Konvexität im Vergleich zum Faktor plotten
Eine weitere Möglichkeit zu prüfen, welchen Effekt ein bestimmter Faktor auf die Anleihekonvexität hat, ist, diesen Faktor direkt gegen die Konvexität der Anleihe zu plotten.
In dieser Übung bewertest du eine 20-jährige Anleihe mit einem Coupon von 6 % und einem Nennwert von 100 USD und ermittelst anschließend die Konvexität dieser Anleihe für verschiedene Renditeniveaus.
numpy, numpy_financial, pandas und matplotlib wurden bereits als np, npf, pd bzw. plt importiert.
Diese Übung ist Teil des Kurses
Anleihebewertung und -analyse in Python
Anleitung zur Übung
- Erstelle ein Array von Anleiherenditen von 0 bis 20 in Schritten von 0,1 und wandle es in ein
pandas-DataFrame um. - Bestimme den Preis der Anleihe, verschiebe die Renditen nach oben und unten und bewerte neu, und berechne anschließend die Konvexität der Anleihe.
- Plotte ein Diagramm mit den Anleiherenditen auf der x-Achse und der Konvexität auf der y-Achse.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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')
____