Reprezentarea grafică a convexității față de factor
O altă modalitate de a verifica efectul unui anumit factor asupra convexității unei obligațiuni este să trasezi direct un grafic al acestui factor în raport cu convexitatea obligațiunii.
În acest exercițiu, vei calcula prețul unei obligațiuni cu scadență de 20 de ani, cupon de 6% și valoare nominală de 100 USD, apoi vei determina convexitatea acestei obligațiuni pentru diferite niveluri ale randamentelor.
numpy, numpy_financial, pandas și matplotlib au fost deja importate ca np, npf, pd și, respectiv, plt.
Acest exercițiu face parte din cursul
Evaluarea și analiza obligațiunilor în Python
Instrucțiuni pentru exercițiu
- Creează un array de randamente ale obligațiunilor de la 0 la 20 cu increment de 0,1 și convertește-l într-un DataFrame
pandas. - Calculează prețul obligațiunii, modifică randamentele în sus și în jos și recalculează prețul, apoi determină convexitatea obligațiunii.
- Trasează un grafic cu randamentele obligațiunilor pe axa x și convexitatea pe axa y.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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')
____