Precios previstos vs. reales I
Representar los precios previstos de los bonos para distintos niveles de rendimiento usando la duración, y después compararlos con los precios reales del bono, es una forma excelente de visualizar la precisión de la duración.
En este ejercicio, empezarás calculando la duración del bono y el precio del bono a distintos niveles de rendimiento. En el siguiente ejercicio, obtendrás el precio previsto a partir de la duración y representarás la diferencia.
El bono que vas a analizar es un bono a 10 años que paga un cupón anual del 5% y tiene una rentabilidad hasta el vencimiento del 5%.
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
- Calcula la duración y la duración en dólares del bono.
- Crea un array de rendimientos del bono de 0 a 10 en incrementos de 0,1 y convierte este array en un DataFrame de
pandasllamadobond_yield. - Añade la columna
priceque contenga el precio del bono para cada nivel de rendimiento.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Price a 10 year bond with 5% coupon and 5% yield, reprice at higher and lower yields
price = ____
price_up = ____
price_down = ____
# Find the duration and dollar duration of the bond
duration = ____
dollar_duration = ____ * ____ * ____
# Create an array of yields from 0 to 10 in steps of 0.1, convert to DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['bond_yield'])
# Add a column called price with the bond price for each yield level
bond['price'] = -npf.pv(rate=bond['bond_yield'] / 100, ____, ____, ____)