CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Importez la classe EfficientCVaR depuis pypfopt.efficient_frontier.
  • Créez l'instance ec de la classe EfficientCVaR en utilisant returns. Notez que vous n'avez pas besoin de expected_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() de ec.

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)
Modifier et exécuter le code