EWMAs berekenen
We gaan nu toewerken naar het maken van features om onze ideale portefeuilles te kunnen voorspellen. Voor nu gebruiken we simpelweg de koersbeweging als feature. We maken eerst een dagelijkse exponentieel gewogen voortschrijdende gemiddelde (EWMA), en resamplen die daarna naar maandniveau. Tot slot verschuiven we het maandelijkse voortschrijdend gemiddelde van de prijs één maand vooruit, zodat we het kunnen gebruiken als feature om toekomstige portefeuilles te voorspellen.
Deze oefening maakt deel uit van de cursus
Machine Learning voor finance in Python
Oefeninstructies
- Gebruik een
spanvan 30 om de dagelijkse exponentieel gewogen voortschrijdende gemiddelde (ewma_daily) te berekenen. - Resample de dagelijkse EWMA naar de maand met de Business Monthly Start-frequentie (BMS) en neem de eerste dag van de maand (
.first()). - Verschuif
ewma_monthlyéén maand vooruit, zodat we de EWMA van de vorige maand als feature kunnen gebruiken om de ideale portefeuille voor de volgende maand te voorspellen.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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])