Tracer le prix des obligations en fonction des rendements
Pouvoir tracer le prix des obligations en fonction des rendements permet d’examiner ce qui peut arriver à une obligation ou à un portefeuille d’obligations pour différents niveaux de taux d’intérêt sur le marché.
Vous allez maintenant créer un graphique du prix des obligations en fonction des rendements, mais cette fois pour deux obligations de maturités différentes. Pour cela, vous allez ajouter des colonnes supplémentaires à votre DataFrame pandas, une par obligation. Les obligations considérées verseront toutes deux un coupon de 5 %, mais vous tracerez ici une obligation à 5 ans et une obligation à 10 ans.
numpy, numpy_financial, pandas et matplotlib ont déjà été importés pour vous sous les alias np, npf, pd et plt, respectivement.
Cet exercice fait partie du cours
Évaluation et analyse des obligations en Python
Instructions
- Créez un tableau de rendements obligataires allant de 0 à 20 (exclus) par incréments de 0,1.
- Convertissez ce tableau en DataFrame
pandaset nommez la colonnebond_yield. - Ajoutez deux colonnes supplémentaires, une pour chaque obligation (5 ans et 10 ans), et calculez le prix pour un niveau de rendement donné.
- Tracez le graphique de ces obligations en définissant le libellé de l’axe des x sur
Yield (%)et celui de l’axe des y surBond Price (USD).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create an array of bond yields and convert to DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['____'])
# Add columns for different bonds
bond['bond_price_5Y'] = -npf.pv(rate=bond['bond_yield'] / 100, nper=____, pmt=____, fv=____)
bond['bond_price_10Y'] = -npf.pv(rate=____, nper=____, pmt=____, fv=____)
# Plot graph of bonds
plt.plot(bond['bond_yield'], bond['bond_price_5Y'], label='5 Year Bond')
plt.plot(____, ____, label='10 Year Bond')
plt.xlabel(____)
plt.ylabel(____)
plt.legend()
plt.show()