Obliczanie EWMA
Teraz przystąpimy do tworzenia cech, które pozwolą przewidywać optymalne portfele. Na razie jako cechę wykorzystamy po prostu ruch cen. W tym celu obliczymy dzienną wykładniczo ważoną średnią ruchomą (EWMA), a następnie próbkujemy ją do horyzontu miesięcznego. Na koniec przesuniemy miesięczną średnią ruchomą ceny o jeden miesiąc w przyszłość, aby móc jej użyć jako cechy do przewidywania przyszłych portfeli.
To ćwiczenie jest częścią kursu
Uczenie maszynowe w finansach z Pythonem
Instrukcje do ćwiczenia
- Użyj parametru
spanrównego 30, aby obliczyć dzienną wykładniczo ważoną średnią ruchomą (ewma_daily). - Próbkuj dzienną EWMA do poziomu miesięcznego, korzystając z częstotliwości Business Monthly Start (BMS) i pierwszego dnia miesiąca (
.first()). - Przesuń
ewma_monthlyo jeden miesiąc do przodu, aby móc wykorzystać EWMA z poprzedniego miesiąca jako cechę do przewidywania optymalnego portfela w kolejnym miesiącu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Calculate exponentially-weighted moving average of daily returns
ewma_daily = returns_daily.ewm(span=____).mean()
# Resample daily returns to first business day of the month with the first day for that month
ewma_monthly = ewma_daily.resample(____).____
# Shift ewma for the month by 1 month forward so we can use it as a feature for future predictions
ewma_monthly = ewma_monthly.____.dropna()
print(ewma_monthly.iloc[-1])