Obligatieprijzen plotten tegen rendementen
Een grafiek van obligatieprijzen tegen rendementen helpt je te onderzoeken wat er met een obligatie of een portefeuille van obligaties gebeurt bij verschillende rentestanden in de markt.
Nu ga je een grafiek maken van obligatieprijzen tegen rendementen, maar dit keer voor twee obligaties met verschillende looptijden. Dat doe je door je pandas DataFrame extra kolommen te geven voor elke extra obligatie. De obligaties betalen allebei een coupon van 5%, maar je plot nu een 5-jaars en een 10-jaars obligatie.
numpy, numpy_financial, pandas en matplotlib zijn al voor je geïmporteerd als respectievelijk np, npf, pd en plt.
Deze oefening maakt deel uit van de cursus
Waardering en analyse van obligaties in Python
Oefeninstructies
- Maak een array van obligatierendementen van 0 tot 20 (exclusief) in stappen van 0,1.
- Zet deze array om in een
pandasDataFrame en noem de kolombond_yield. - Voeg twee extra kolommen toe, één voor elke obligatie (5-jaar en 10-jaar), en bepaal de prijs voor een gegeven rendement.
- Plot een grafiek van deze obligaties en zet het label van de x-as op
Yield (%)en het label van de y-as opBond Price (USD).
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()