CommencerCommencez gratuitement

Tracer la convexité en fonction du facteur

Une autre façon d’évaluer l’effet d’un facteur donné sur la convexité d’une obligation est de tracer directement ce facteur par rapport à la convexité de l’obligation.

Dans cet exercice, vous allez évaluer le prix d’une obligation à 20 ans avec un coupon de 6 % et une valeur nominale de 100 USD, puis calculer la convexité de cette obligation pour différents niveaux de rendement.

numpy, numpy_financial, pandas et matplotlib ont déjà été importés pour vous sous les noms np, npf, pd et plt, respectivement.

Cet exercice fait partie du cours

<cours>Évaluation et analyse des obligations en Python</cours>
Voir le cours

Instructions de l’exercice

  • Créez un tableau de rendements obligataires de 0 à 20 par incréments de 0,1 et convertissez-le en DataFrame pandas.
  • Calculez le prix de l’obligation, décalez les rendements vers le haut et vers le bas puis réévaluez le prix, ensuite calculez la convexité de l’obligation.
  • Tracez un graphique avec les rendements obligataires en abscisse et la convexité en ordonnée.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Create array of bond yields and covert to pandas DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['bond_yield'])

# Find price of bond, reprice for higher and lower yields, calculate convexity
bond['price'] = -npf.pv(rate=bond['____'] / 100, nper=____, pmt=____, fv=____)
bond['price_up'] = ____
bond['price_down'] = ____
bond['convexity'] = (bond['____'] + bond['____'] - 2 * bond['____']) / (bond['____'] * 0.01 ** 2)

# Create plot of bond yields against convexity, add labels to axes, display plot
plt.plot(bond['____'], bond['____'])
plt.xlabel('Yield (%)')
plt.ylabel('Convexity')
____
Modifier et exécuter le code