Rendimientos y riesgo ponderados exponencialmente
En este ejercicio, vas a realizar una optimización de cartera con una forma ligeramente distinta de estimar el riesgo y los rendimientos: vas a dar más peso a los datos más recientes en la optimización.
Es una forma inteligente de tratar con datos bursátiles que suelen ser no estacionarios, es decir, cuando la distribución cambia con el tiempo. La implementación puede hacerse rápidamente cambiando el modelo de riesgo que usas para calcular Sigma y el cálculo de rendimientos que usas para obtener mu. El conjunto de datos de precios de acciones está disponible como stock_prices. ¡Vamos a ello!
Este ejercicio forma parte del curso
Introducción al análisis de carteras en Python
Instrucciones del ejercicio
- Usa la matriz de covarianzas ponderada exponencialmente de
risk_modelsy la función de rendimientos históricos ponderados exponencialmente deexpected_returnspara calcularSigmaymu. Establece el span en 180 y la frecuencia (es decir, los días de negociación) en 252. - Calcula la frontera eficiente con los nuevos
muySigma. - Calcula los pesos para la cartera de máximo ratio de Sharpe.
- Obtén el informe de rendimiento.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Define exponentially weightedSigma and mu using stock_prices
Sigma = risk_models.____(____, span=____, frequency=____)
mu = expected_returns.____(____, frequency=____, span=____)
# Calculate the efficient frontier
ef = ____(____, ____)
# Calculate weights for the maximum sharpe ratio optimization
raw_weights_maxsharpe = ____.____()
# Show portfolio performance
ef.____(verbose=True)