Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een array van obligatierendementen van 0 tot 20 (exclusief) in stappen van 0,1.
  • Zet deze array om in een pandas DataFrame en noem de kolom bond_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 op Bond 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()
Code bewerken en uitvoeren