Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj klasę EfficientCVaR z modułu pypfopt.efficient_frontier.
  • Utwórz instancję ec klasy EfficientCVaR, używając returns; pamiętaj, że nie potrzebujesz expected_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() obiektu ec.

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)
Edytuj i uruchom kod