CVaR minimieren
Diese Übung gibt dir Praxis mit den Tools von PyPortfolioOpt zur CVaR-Minimierung als Ziel der Risikosteuerung.
Du lädst das Modul pypfopt.efficient_frontier und holst dir die Klasse EfficientCVaR. Dann erstellst du eine Instanz der Klasse mit den Investmentbank-Assets aus dem Zeitraum 2005–2010.
Anschließend nutzt du die Methode min_cvar() der Instanz, um die optimalen Portfoliogewichte zu finden, die den CVaR minimieren.
Die Renditen der Portfolio-Assets stehen im Vektor returns. Außerdem verwendet diese Übung ein Dictionary names, um Portfoliogewichte Banknamen zuzuordnen.
Diese Übung ist Teil des Kurses
Quantitative Risk Management in Python
Anleitung zur Übung
- Importiere die Klasse
EfficientCVaRauspypfopt.efficient_frontier. - Erstelle die Klasseninstanz
ecvonEfficientCVaRmitreturns. Beachte, dass duexpected_returnsnicht brauchst, da die Zielfunktion sich von der Mean-Variance-Optimierung unterscheidet. - Finde und zeige das optimale Portfolio mit der Methode
.min_cvar()vonec.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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)