Wycena i analiza obligacji w Pythonie
Joshua Mayhew
Options Trader
Rozważmy 3-letnią obligację z rocznym kuponem 3%, wartością nominalną 100 USD i rentownością 4%:

UWAGA: Kupon jest stały i nie zmienia się!
Rozkładamy obligację na zbiór obligacji zerokuponowych, a następnie wyceniamy je:
3-letnia obligacja z rocznym kuponem 3%, wartością nominalną 100 USD i rentownością 4%
Korzystając z wcześniejszego wzoru na procent składany:
$ \text{Cena OZK 1r: } \frac{3}{(1 + 0.04)^1} = 2.88$
$ \text{Cena OZK 2r: } \ \frac{3}{(1 + 0.04)^2} = 2.77$
$ \text{Cena OZK 3r: } \ \frac{103}{(1 + 0.04)^3} = 91.57$
$\text{Cena obligacji kuponowej: } 2.88 + 2.77 + 91.57 = 97.22$
Ogólny wzór na cenę obligacji kuponowej:
$ Price = 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}$
Biorąc tę samą 3-letnią obligację z rocznym kuponem 3% i rentownością do wykupu 4%:
import numpy_financial as npf
-npf.pv(rate=0.04, nper=3, pmt=3, fv=100)
97.22
Ustawiamy pmt jako wartość dodatnią.
Stawiamy minus przed funkcją.
Ustawiamy fv na 100, nie 103.
Wycena i analiza obligacji w Pythonie