Aan de slagGa gratis aan de slag

CVaR minimaliseren

In deze oefening ga je aan de slag met de tools van PyPortfolioOpt voor het minimaliseren van CVaR als risicobeheerdoel.

Je laadt de module pypfopt.efficient_frontier en haalt de klasse EfficientCVaR op, waarna je een instantie van de klasse maakt met de investmentbank-assets over de periode 2005 - 2010.

Vervolgens gebruik je de methode min_cvar() van de instantie om de optimale portefeuillegewichten te vinden die de CVaR minimaliseren.

De rendementen van de portefeuille-assets staan in de vector returns—deze oefening gebruikt ook een woordenboek names om portefeuillegewichten aan banknamen te koppelen.

Deze oefening maakt deel uit van de cursus

Kwantitatief risicobeheer in Python

Cursus bekijken

Oefeninstructies

  • Importeer de klasse EfficientCVaR uit pypfopt.efficient_frontier.
  • Maak de klasse-instantie ec van EfficientCVaR met returns; let op dat je expected_returns niet nodig hebt, omdat de doelfunctie anders is dan bij mean-variance-optimalisatie.
  • Zoek en toon de optimale portefeuille met de methode .min_cvar() van ec.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren