Duration

Évaluation et analyse des obligations en Python

Joshua Mayhew

Options Trader

Le contexte de la duration

  • Les prix et les rendements évoluent en sens inverse
  • On ne sait pas à quel point une obligation est sensible aux taux
  • La duration mesure la sensibilité aux taux d'intérêt
Évaluation et analyse des obligations en Python

Exemple motivant

  • Prenez des obligations à 5 ans et 10 ans, toutes deux à 5 % de coupon
  • À 5 % de rendement, elles valent toutes deux 100 USD :
-npf.pv(rate=0.05, nper=5, pmt=5, fv=100)
-npf.pv(rate=0.05, nper=10, pmt=5, fv=100)
100.00
100.00
Évaluation et analyse des obligations en Python

Exemple motivant

Si les taux montent à 6 % :

-npf.pv(rate=0.06, nper=5, pmt=5, fv=100)
-npf.pv(rate=0.06, nper=10, pmt=5, fv=100)
95.79
92.64
  • L'obligation à 5 ans perd 4,21 % de sa valeur, celle à 10 ans perd 7,36 %

  • L'obligation à 10 ans est plus sensible aux variations de taux

Évaluation et analyse des obligations en Python

Qu'est-ce que la duration ?

  • La duration est le % de variation du prix pour 1 % de variation du rendement (taux).
  • Duration plus élevée = risque de taux plus élevé
  • Généralement utilisée pour :
    • Mesurer le risque de taux
    • Couvrir le risque de taux
    • Anticiper P&L quand les taux évoluent
Évaluation et analyse des obligations en Python

Calculer la duration

Nous utiliserons une formule simplifiée de la duration :

 

${\large Duration = \frac{P_{down}\ -\ P_{up} }{2\ \times\ P\ \times\ \Delta y}}$

 

  • $P_{down}$ = prix de l'obligation avec un rendement inférieur de 1 %
  • $P_{up}$ = prix de l'obligation avec un rendement supérieur de 1 %
  • $P$ = prix de l'obligation au rendement actuel
  • $\Delta y$ = variation de rendement (nous utiliserons 1 %)
Évaluation et analyse des obligations en Python

Exemple de duration

Obligation à 10 ans, coupon annuel 5 %, rendement actuariel 4 % : quelle est sa duration ?

${ Duration = \frac{P_{down}\ -\ P_{up} }{2\ \times\ P\ \times\ \Delta y}}$

price = -npf.pv(rate=0.05, nper=10, pmt=5, fv=100)

price_up = -npf.pv(rate=0.06, nper=10, pmt=5, fv=100) price_down = -npf.pv(rate=0.04, nper=10, pmt=5, fv=100)
duration = (price_down - price_up) / (2 * price * 0.01) print(duration)
7.74

Un mouvement de 1 % des taux entraîne une variation de 7,74 % du prix de l'obligation.

Évaluation et analyse des obligations en Python

Récapitulatif

  • Des obligations peuvent réagir différemment pour la même variation de rendement
  • La duration est le % de variation du prix d'une obligation pour 1 % de variation du rendement
  • La duration mesure la sensibilité aux taux d'intérêt
Évaluation et analyse des obligations en Python

Passons à la pratique !

Évaluation et analyse des obligations en Python

Preparing Video For Download...