Beräkna EWMA:er
Nu ska vi skapa några särdrag för att kunna förutsäga våra optimala portföljer. Vi använder prisrörelsen som särdrag för tillfället. För att göra det skapar vi ett dagligt exponentiellt viktat glidande medelvärde (EWMA), som vi sedan samplar om till månadsintervall. Slutligen förskjuter vi det månatliga glidande medelvärdet en månad framåt, så att vi kan använda det som ett särdrag för att förutsäga framtida portföljer.
Den här övningen är en del av kursen
Maskininlärning för finans i Python
Övningsinstruktioner
- Använd ett
spanpå 30 för att beräkna det dagliga exponentiellt viktade glidande medelvärdet (ewma_daily). - Sampla om det dagliga EWMA till månadsintervall med hjälp av frekvensen Business Monthly Start (BMS) och månadens första dag (
.first()). - Förskjut
ewma_monthlyen månad framåt, så att vi kan använda föregående månads EWMA som ett särdrag för att förutsäga nästa månads optimala portfölj.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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])