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
Instrukcje do ćwiczenia
- Użyj wykładniczo ważonej macierzy kowariancji z modułu
risk_modelsoraz wykładniczo ważonej funkcji historycznych zwrotów z modułuexpected_returns, aby obliczyćSigmaimu. Ustaw rozpiętość (span) na 180, a częstotliwość (tj. liczbę dni handlowych) na 252. - Wyznacz granicę efektywną, korzystając z nowych wartości
muiSigma. - 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)