Utvärdera avkastning
Nu ska vi se hur vår portföljselektion presterar jämfört med att bara investera i SPY. Vi gör detta för att kontrollera om våra prediktioner är lovande, trots det låga R\(^2\)-värdet.
Vi sätter ett startvärde på 1 000 dollar för vår investering och loopar sedan igenom avkastningen från våra prediktioner samt från SPY. Vi använder månadsavkastningen från vår portföljselektion och SPY och tillämpar den på vårt startkapital. På så sätt får vi en månadsvis bild av hur investeringen utvecklas, och vi kan se hur väl våra prediktioner presterade jämfört med SPY. Därefter kan vi plotta vår portfölj baserad på prediktionerna och jämföra den med SPY.
Den här övningen är en del av kursen
Maskininlärning för finans i Python
Övningsinstruktioner
- Sätt det första listelementet i både
algo_cashochspy_cashtill samma belopp (cash). - Multiplicera
cashi vårtest_returns-loop med1 + rför att tillämpa avkastningen påcash. - Precis som i
test_returns-loopen – lägg tillcashispy_cashi SPY-prestandaloopen efter att ha multiplicerat med1 + rför att lägga till avkastningen tillcash.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Calculate the effect of our portfolio selection on a hypothetical $1k investment
cash = 1000
algo_cash, spy_cash = [cash], ____ # set equal starting cash amounts
for r in test_returns:
cash *= 1 + r
algo_cash.append(cash)
# Calculate performance for SPY
cash = 1000 # reset cash amount
for r in returns_monthly['SPY'].iloc[train_size:]:
cash ____ ____
____
print('algo returns:', (algo_cash[-1] - algo_cash[0]) / algo_cash[0])
print('SPY returns:', (spy_cash[-1] - spy_cash[0]) / spy_cash[0])