Zacznij terazZacznij za darmo

Wykładniczo ważone zwroty i ryzyko

W tym ćwiczeniu przeprowadzisz optymalizację portfela, używając nieco innego podejścia do szacowania ryzyka i zwrotów – nowszym danym nadasz większą wagę w procesie optymalizacji.

To sprytny sposób na radzenie sobie z danymi giełdowymi, które zazwyczaj nie są stacjonarne, tzn. gdy rozkład zmienia się w czasie. Wystarczy zmienić model ryzyka używany do obliczenia Sigma oraz metodę obliczania zwrotów dla mu. Zbiór danych z cenami akcji jest dostępny jako stock_prices. Do dzieła!

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy portfela w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj wykładniczo ważonej macierzy kowariancji z modułu risk_models oraz wykładniczo ważonej funkcji historycznych zwrotów z modułu expected_returns, aby obliczyć Sigma i mu. Ustaw rozpiętość (span) na 180, a częstotliwość (tj. liczbę dni handlowych) na 252.
  • Wyznacz granicę efektywną, korzystając z nowych wartości mu i Sigma.
  • Oblicz wagi portfela o maksymalnym wskaźniku Sharpe'a.
  • Pobierz raport wyników portfela.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Define exponentially weightedSigma and mu using stock_prices
Sigma = risk_models.____(____, span=____, frequency=____)
mu = expected_returns.____(____, frequency=____, span=____)

# Calculate the efficient frontier
ef = ____(____, ____)

# Calculate weights for the maximum sharpe ratio optimization
raw_weights_maxsharpe = ____.____()

# Show portfolio performance 
ef.____(verbose=True)
Edytuj i uruchom kod