Minimiser la CVaR
Cet exercice vous permet de vous exercer avec les outils de PyPortfolioOpt pour la minimisation de la CVaR comme objectif 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 pour 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 se trouvent dans le vecteur returns. Cet exercice utilise aussi un dictionnaire names pour faire la correspondance entre les pondérations du portefeuille et les noms des banques.
Cette activité fait partie du cours
Gestion quantitative des risques en Python
Instructions de l’exercice
- Importez la classe
EfficientCVaRdepuispypfopt.efficient_frontier. - Créez l'instance
ecde la classeEfficientCVaRen utilisantreturns. Notez que vous n'avez pas besoin deexpected_returns, puisque 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 ce code d’exemple.
# 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)