CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • 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, 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() de ec.

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