Minimización del CVaR
Este ejercicio te permitirá practicar con las herramientas de PyPortfolioOpt para minimizar el CVaR como objetivo de gestión del riesgo.
Cargarás el módulo pypfopt.efficient_frontier
y recuperarás la clase EfficientCVaR
, creando una instancia de la clase utilizando los activos de los bancos de inversión durante el periodo 2005-2010.
A continuación, utilizarás el método min_cvar()
de la instancia para buscar los pesos óptimos del portafolio que minimicen el CVaR.
Las rentabilidades de los activos del portafolio están en el vector returns
: este ejercicio también utiliza un diccionario names
para asignar los pesos del portafolio a los nombres de los bancos.
Este ejercicio forma parte del curso
Gestión cuantitativa de riesgos en Python
Instrucciones de ejercicio
- Importa la clase
EfficientCVaR
depypfopt.efficient_frontier
. - Crea la instancia de clase de
EfficientCVaR
ec
utilizandoreturns
; ten en cuenta que no necesitasexpected_returns
, ya que la función objetivo es diferente de la optimización de la varianza media. - Busca y visualiza el portafolio óptimo utilizando el método
.min_cvar()
deec
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Import the EfficientCVaR class
from pypfopt.____ import EfficientCVaR
# Create the efficient frontier for CVaR minimization
ec = ____(None, ____)
# Find the cVaR-minimizing portfolio weights at the default 95% confidence level
optimal_weights = ec.____()
# Map the values in optimal_weights to the bank names
optimal_weights = { names[i] : optimal_weights[i] for i in optimal_weights}
# Display the optimal weights
print(optimal_weights)