使用 Python 進行債券評價與分析
Joshua Mayhew
Options Trader
回想零息債的定價公式:
$PV = \frac{FV}{(1 + r)^n}$
可重整方程求得殖利率 $(r)$:
$FV = PV \times (1 + r)^n$
$ \frac{FV}{PV} = (1 + r)^n$
$ \sqrt[n]\frac{FV}{PV} = (1 + r)$
$ \sqrt[n]\frac{FV}{PV} -1 = r$
用先前同一檔零息債,反推殖利率:
此債券的殖利率是多少?
3 年期零息債,價格 USD 90.19,面額 USD 100:
$r = \sqrt[n]\frac{FV}{PV} -1$
ytm = (100 / 90.19) ** (1/3) - 1
print(ytm)
0.035
我們用 ytm 表示「到期殖利率」。
附息債公式:
$ PV = \frac{C}{(1 + r)^1} + \frac{C}{(1 + r)^2} + ... +\frac{C}{(1 + r)^n} + \frac{P}{(1 + r)^n}$
$ = \sum_{i=1}^n \frac{C}{(1 + r)^i} + \frac{P}{(1 + r)^n}$
此方程無法直接以 $r$ 表示解出。
我們用試算法尋找 $r$。
這也是 npf.rate() 函式的作法。
回到先前的附息債,條件如下:
它的到期殖利率是多少?
3 年期附息債,年息 3%,價格 USD 97.22:
import numpy_financial as npf
npf.rate(nper=3, pmt=3, pv=-97.22, fv=100)
0.04
記得把 PV 設為負數。
因為買債券的價格是我們付出的現金流(負號)。
使用 Python 進行債券評價與分析