EmpezarEmpieza gratis

Representar precios de bonos frente a rentabilidades

Poder trazar un gráfico de precios de bonos frente a rentabilidades te ayuda a analizar qué puede ocurrir con un bono o una cartera de bonos para distintos niveles de tipos de interés en el mercado.

Ahora vas a crear un gráfico de precios de bonos frente a rentabilidades, pero esta vez para dos bonos con distintos vencimientos. Lo harás añadiendo a tu DataFrame de pandas columnas adicionales para cada bono. Ambos bonos pagarán un cupón del 5 %, pero ahora representarás un bono a 5 años y otro a 10 años.

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 rentabilidades del bono desde 0 hasta 20 (sin incluir) en incrementos de 0.1.
  • Convierte este array en un DataFrame de pandas y pon a la columna el nombre bond_yield.
  • Añade dos columnas más, una para cada bono (5 años y 10 años), y calcula el precio para un nivel dado de rentabilidad.
  • Representa un gráfico de estos bonos, estableciendo la etiqueta del eje x como Yield (%) y la del eje y como Bond Price (USD).

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Create an array of bond yields and convert to DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['____'])

# Add columns for different bonds
bond['bond_price_5Y'] = -npf.pv(rate=bond['bond_yield'] / 100, nper=____, pmt=____, fv=____)
bond['bond_price_10Y'] = -npf.pv(rate=____, nper=____, pmt=____, fv=____)

# Plot graph of bonds
plt.plot(bond['bond_yield'], bond['bond_price_5Y'], label='5 Year Bond')
plt.plot(____, ____, label='10 Year Bond')
plt.xlabel(____)
plt.ylabel(____)
plt.legend()
plt.show()
Editar y ejecutar código