Évaluation et analyse des obligations en Python
Joshua Mayhew
Options Trader
Prenons une obligation de 3 ans avec un coupon annuel de 3 %, une valeur nominale de 100 USD et un rendement de 4 % :

AVERTISSEMENT : le coupon est fixe et ne change pas !
On décompose l'obligation en un ensemble de coupons zéro, puis on les évalue :
Obligation de 3 ans avec coupon annuel de 3 %, valeur nominale de 100 USD et rendement de 4 %
En utilisant la formule d'intérêt composé vue plus tôt :
$ \text{Prix ZC 1 an : } \frac{3}{(1 + 0.04)^1} = 2.88$
$ \text{Prix ZC 2 ans : } \ \frac{3}{(1 + 0.04)^2} = 2.77$
$ \text{Prix ZC 3 ans : } \ \frac{103}{(1 + 0.04)^3} = 91.57$
$\text{Prix obligation à coupon : } 2.88 + 2.77 + 91.57 = 97.22$
Plus généralement, la formule du prix d'une obligation à coupon est :
$ 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}$
En reprenant l'obligation de 3 ans avec un coupon annuel de 3 % et un rendement à l'échéance de 4 % :
import numpy_financial as npf
-npf.pv(rate=0.04, nper=3, pmt=3, fv=100)
97.22
Nous mettons pmt en positif.
Nous ajoutons aussi un signe moins devant la fonction.
Nous fixons fv à 100 et non à 103.
Évaluation et analyse des obligations en Python