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
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
pandasy pon a la columna el nombrebond_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 comoBond 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()