Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Skapa en array med obligationsräntor från 0 till 20 i steg om 0,1 och konvertera den till en pandas DataFrame.
  • 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')
____
Redigera och kör kod