CommencerCommencer 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

Évaluation et analyse des obligations en Python

Afficher le cours

Instructions

  • 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 cet exemple de code.

# 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