Duration uitzetten tegen de factor
Een grafiek maken van duration tegenover een factor zoals looptijd, coupon of rendement is een uitstekende manier om te zien hoe die factor de duration van een obligatie beïnvloedt.
In de video hebben we duration uitgezet tegen de looptijd. In deze oefening doe je hetzelfde voor de couponrente. Je gebruikt een obligatie met een looptijd van 10 jaar, een rendement van 5% en een nominale waarde van USD 100.
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 coupons van 0 tot 10 met stappen van 0,1 en zet die om naar een
pandasDataFrame. - Voeg vier extra kolommen toe aan het DataFrame:
price,price_up,price_downendurationvoor de obligatie. - Maak een grafiek met
bond_couponop de x-as endurationop de y-as.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create array of coupon rates and assign to pandas DataFrame
bond_coupon = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['____'])
# Calculate bond price, price_up, price_down, and duration
bond['price'] = -npf.pv(rate=0.05, nper=10, pmt=bond['bond_coupon'], fv=100)
bond['price_up'] = ____
bond['price_down'] = ____
bond['duration'] = (bond['____'] - bond['____']) / (2 * bond['____'] * 0.01)
# Plot coupon vs. duration, add labels & title, show plot
plt.plot(____, ____)
plt.xlabel('Coupon (%)')
plt.ylabel('Duration (%)')
plt.show()