Evaluarea și analiza obligațiunilor în Python
Joshua Mayhew
Options Trader
Formula prețului unei obligațiuni zero-cupon:
$PV = \frac{FV}{(1 + r)^n}$
Ecuația poate fi rearanjată pentru a determina randamentul $(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$
Să analizăm aceeași obligațiune zero-cupon, calculând invers:
Care este randamentul acestei obligațiuni?
Obligațiune zero-cupon pe 3 ani, preț 90,19 USD, valoare nominală 100 USD:
$r = \sqrt[n]\frac{FV}{PV} -1$
ytm = (100 / 90.19) ** (1/3) - 1
print(ytm)
0.035
Vom folosi ytm pentru „randament la maturitate".
Formula obligațiunii cu cupon:
$ 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}$
Ecuația nu poate fi rearanjată în funcție de $r$
Se utilizează metoda iterativă pentru a determina $r$
Acesta este modul în care funcționează npf.rate()
Să considerăm obligațiunea cu cupon de mai devreme, care:
Care este randamentul la maturitate?
Obligațiune cu cupon pe 3 ani, cupon anual 3%, preț 97,22 USD:
import numpy_financial as npf
npf.rate(nper=3, pmt=3, pv=-97.22, fv=100)
0.04
VA trebuie setat ca număr negativ.
Prețul obligațiunii reprezintă o plată efectuată (flux de numerar negativ).
Evaluarea și analiza obligațiunilor în Python