CommencezCommencez gratuitement

Tracer la convexité en fonction du facteur

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

Dans cet exercice, vous allez évaluer le prix d'une obligation sur 20 ans avec un coupon de 6 % et une valeur nominale de 100 $ US, puis calculer la convexité de cette obligation pour différents niveaux de rendements.

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

Cette activité fait partie du cours

Évaluation et analyse des obligations en Python

Voir le cours

Instructions de l’exercice

  • Créez un tableau de rendements obligataires de 0 à 20 par pas de 0,1 et convertissez-le en DataFrame pandas.
  • Trouvez le prix de l'obligation, augmentez et diminuez les rendements puis réévaluez l'obligation, et calculez ensuite sa convexité.
  • Tracez un graphique des rendements obligataires sur l'axe des x et de la convexité sur l'axe des y.

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