Valutazione e analisi delle obbligazioni in Python
Joshua Mayhew
Options Trader
Considera un'obbligazione a 3 anni con cedola annua del 3%, valore nominale di USD 100 e rendimento del 4%:

ATTENZIONE: La cedola è fissa e non cambia!
Scomponiamo l'obbligazione in una serie di zero coupon, poi le prezzamo:
Obbligazione a 3 anni con cedola annua 3%, valore nominale USD 100 e rendimento 4%
Usando la formula dell'interesse composto vista prima:
$ \text{Prezzo ZCB 1 anno: } \frac{3}{(1 + 0.04)^1} = 2.88$
$ \text{Prezzo ZCB 2 anni: } \ \frac{3}{(1 + 0.04)^2} = 2.77$
$ \text{Prezzo ZCB 3 anni: } \ \frac{103}{(1 + 0.04)^3} = 91.57$
$\text{Prezzo obbligazione con cedola: } 2.88 + 2.77 + 91.57 = 97.22$
Più in generale, la formula del prezzo di un'obbligazione con cedola è:
$ 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}$
Prendiamo la stessa obbligazione a 3 anni con cedola annua del 3% e rendimento a scadenza del 4%:
import numpy_financial as npf
-npf.pv(rate=0.04, nper=3, pmt=3, fv=100)
97.22
Impostiamo pmt positivo.
Mettiamo anche un segno meno davanti alla funzione.
Impostiamo fv a 100, non 103.
Valutazione e analisi delle obbligazioni in Python