Minimalizacja CVaR
To ćwiczenie pozwoli ci przećwiczyć narzędzia PyPortfolioOpt do minimalizacji CVaR jako celu zarządzania ryzykiem.
Załadujesz moduł pypfopt.efficient_frontier i pobierzesz klasę EfficientCVaR, tworząc jej instancję na podstawie danych dotyczących aktywów banków inwestycyjnych z okresu 2005–2010.
Następnie użyjesz metody min_cvar() tej instancji, aby znaleźć optymalne wagi portfela minimalizujące CVaR.
Stopy zwrotu aktywów portfela znajdują się w wektorze returns – ćwiczenie korzysta też ze słownika names, który przypisuje wagi portfela do nazw banków.
To ćwiczenie jest częścią kursu
Ilościowe zarządzanie ryzykiem w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj klasę
EfficientCVaRz modułupypfopt.efficient_frontier. - Utwórz instancję
ecklasyEfficientCVaR, używającreturns; pamiętaj, że nie potrzebujeszexpected_returns, ponieważ funkcja celu różni się od optymalizacji opartej na średniej i wariancji. - Znajdź i wyświetl optymalny portfel, używając metody
.min_cvar()obiektuec.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)