Aan de slagBegin gratis

Rendementen evalueren

Laten we nu bekijken hoe onze portefeuillek e uze het zou doen vergeleken met gewoon investeren in de SPY. We doen dit om te zien of onze voorspellingen veelbelovend zijn, ondanks de lage R\(^2\)-waarde.

We stellen een startbedrag voor onze investering in van $1000 en lopen vervolgens door de rendementen van onze voorspellingen en die van SPY. We gebruiken de maandrendementen van onze portefeuillek e uze en van SPY en passen die toe op ons startsaldo. Zo krijgen we per maand inzicht in hoe onze investering presteert, en kunnen we zien hoe onze voorspellingen het overall deden ten opzichte van de SPY. Daarna kunnen we onze portefeuille op basis van de voorspellingen plotten en vergelijken met de SPY.

Deze oefening maakt deel uit van de cursus

Machine Learning voor finance in Python

Bekijk cursus

Oefeninstructies

  • Zet het eerste listelement van zowel algo_cash als spy_cash op hetzelfde bedrag (cash).
  • Vermenigvuldig de cash in onze test_returns-lus met 1 + r om de rendementen op onze cash toe te passen.
  • Net als in de test_returns-lus, voeg je in de SPY-prestatielus cash toe aan spy_cash nadat je eerst met 1 + r hebt vermenigvuldigd om de rendementen toe te voegen aan cash.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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])
Code bewerken en uitvoeren