Calcul des rendements obligataires

Évaluation et analyse des obligations en Python

Joshua Mayhew

Options Trader

Pourquoi calculer le rendement ?

  • Le rendement à l'échéance indique le rendement attendu de l'investissement
  • Utile pour comparer des obligations aux caractéristiques différentes
Évaluation et analyse des obligations en Python

Formule du rendement d'une zéro coupon

Rappelez-vous la formule du prix d'une obligation zéro coupon :

$PV = \frac{FV}{(1 + r)^n}$

On peut réarranger pour isoler le rendement $(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$

Évaluation et analyse des obligations en Python

Exemple : rendement d'une zéro coupon

Reprenons la même zéro coupon et remontons le calcul :

  • Échéance : 3 ans
  • Valeur nominale : 100 USD
  • Prix : 90,19 USD

 

Quel est son rendement ?

Évaluation et analyse des obligations en Python

Calcul du rendement d'une zéro coupon

Zéro coupon 3 ans, prix 90,19 USD, nominal 100 USD :

$r = \sqrt[n]\frac{FV}{PV} -1$

ytm = (100 / 90.19) ** (1/3) - 1
print(ytm)
0.035

 

Nous utiliserons ytm pour « yield to maturity ».

Évaluation et analyse des obligations en Python

Formule du rendement d'une obligation à coupon ?

Formule d'une obligation à coupon :

$ 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}$

Cette équation ne peut pas être résolue explicitement en $r$

On cherche $r$ par essais-erreurs

C'est ainsi que fonctionne la fonction npf.rate()

Évaluation et analyse des obligations en Python

Exemple : rendement d'une obligation à coupon

Considérons l'obligation à coupon vue plus tôt, qui :

  • arrive à échéance dans 3 ans
  • verse un coupon annuel de 3 %
  • a un prix de 97,22 USD

 

Quel est son rendement à l'échéance ?

Évaluation et analyse des obligations en Python

Calcul du rendement d'une obligation à coupon

Obligation à coupon 3 ans, coupon annuel 3 %, prix 97,22 USD :

import numpy_financial as npf
npf.rate(nper=3, pmt=3, pv=-97.22, fv=100)
0.04

N'oubliez pas de définir PV en nombre négatif.

Le prix de l'obligation est une sortie de trésorerie (flux négatif).

Évaluation et analyse des obligations en Python

Passons à la pratique !

Évaluation et analyse des obligations en Python

Preparing Video For Download...