Plotta konvexitet mot faktorn
Ett annat sätt att undersöka hur en viss faktor påverkar en obligations konvexitet är att direkt plotta ett diagram över faktorn mot obligationens konvexitet.
I den här övningen ska du prissätta en 20-årig obligation med en kupong på 6 % och ett nominellt värde på 100 USD, och sedan beräkna konvexiteten för olika räntenivåer.
numpy, numpy_financial, pandas och matplotlib har redan importerats åt dig som np, npf, pd respektive plt.
Den här övningen är en del av kursen
Obligationsvärdering och -analys i Python
Övningsinstruktioner
- Skapa en array med obligationsräntor från 0 till 20 i steg om 0,1 och konvertera den till en
pandasDataFrame. - Beräkna priset på obligationen, förskjut räntorna uppåt och nedåt och prissätt om, och beräkna sedan obligationens konvexitet.
- Plotta ett diagram med obligationsräntor på x-axeln och konvexitet på y-axeln.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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')
____