EmpezarEmpieza gratis

Representar convexidad frente al factor

Otra forma de ver cómo afecta un determinado factor a la convexidad de un bono es trazar directamente un gráfico de ese factor frente a la convexidad del bono.

En este ejercicio, vas a valorar un bono a 20 años con un cupón del 6% y un valor nominal de 100 USD, y luego calcular la convexidad de este bono para distintos niveles de rendimiento.

numpy, numpy_financial, pandas y matplotlib ya se han importado como np, npf, pd y plt, respectivamente.

Este ejercicio forma parte del curso

Valoración y análisis de bonos en Python

Ver curso

Instrucciones del ejercicio

  • Crea un array de rendimientos del bono de 0 a 20 en incrementos de 0,1 y conviértelo en un DataFrame de pandas.
  • Calcula el precio del bono, desplaza los rendimientos hacia arriba y hacia abajo y vuelve a valorar; después, calcula la convexidad del bono.
  • Traza un gráfico con los rendimientos del bono en el eje x y la convexidad en el eje y.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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')
____
Editar y ejecutar código