Zacznij terazZacznij za darmo

Wykres wypukłości względem czynnika

Innym sposobem sprawdzenia, jak dany czynnik wpływa na wypukłość obligacji, jest bezpośrednie wykreślenie zależności między tym czynnikiem a wypukłością obligacji.

W tym ćwiczeniu wycenisz 20-letnią obligację z kuponem 6% i wartością nominalną 100 USD, a następnie wyznaczysz wypukłość tej obligacji dla różnych poziomów rentowności.

numpy, numpy_financial, pandas oraz matplotlib zostały już zaimportowane jako np, npf, pd i plt.

To ćwiczenie jest częścią kursu

Wycena i analiza obligacji w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz tablicę rentowności obligacji od 0 do 20 z krokiem 0,1 i przekształć ją w obiekt DataFrame biblioteki pandas.
  • Wyznacz cenę obligacji, przesuń rentowności w górę i w dół, przelicz ceny, a następnie oblicz wypukłość obligacji.
  • Narysuj wykres, na którym oś x przedstawia rentowności obligacji, a oś y – wypukłość.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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')
____
Edytuj i uruchom kod