Minimiser la CVaR
Cet exercice vous permet de vous entraîner à utiliser les outils de PyPortfolioOpt pour minimiser la CVaR dans une optique de gestion du risque.
Vous allez charger le module pypfopt.efficient_frontier et récupérer la classe EfficientCVaR, puis créer une instance de cette classe en utilisant les actifs des banques d’investissement sur la période 2005-2010.
Vous utiliserez ensuite la méthode min_cvar() de l’instance pour trouver les pondérations de portefeuille optimales qui minimisent la CVaR.
Les rendements des actifs du portefeuille sont fournis dans le vecteur returns. Cet exercice utilise aussi un dictionnaire names pour faire correspondre les pondérations aux noms des banques.
Cet exercice fait partie du cours
Gestion quantitative des risques en Python
Instructions
- Importez la classe
EfficientCVaRdepuispypfopt.efficient_frontier. - Créez l’instance
ecde la classeEfficientCVaRen utilisantreturns; notez que vous n’avez pas besoin deexpected_returns, car la fonction objectif diffère de l’optimisation moyenne-variance. - Trouvez et affichez le portefeuille optimal à l’aide de la méthode
.min_cvar()deec.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)