Zacznij terazZacznij za darmo

Ocena zwrotów

Sprawdźmy teraz, jak radziłby sobie nasz wybrany portfel w porównaniu z prostą inwestycją w SPY. Dzięki temu ocenimy, czy nasze prognozy są obiecujące – nawet przy niskiej wartości R\(^2\).

Ustawimy początkową wartość inwestycji na 1000 USD, a następnie przejdziemy pętlą przez zwroty z naszych prognoz oraz ze SPY. Zastosujemy miesięczne zwroty z wybranego portfela i SPY do początkowego salda gotówkowego. W ten sposób uzyskamy miesięczny obraz wyników naszej inwestycji i będziemy mogli porównać skuteczność prognoz z wynikami SPY. Na końcu zwizualizujemy nasz portfel i zestawimy go z SPY.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Ustaw pierwszą wartość na obu listach – algo_cash i spy_cash – na tę samą kwotę (cash).
  • W pętli po test_returns pomnóż cash przez 1 + r, aby zastosować zwroty do zmiennej cash.
  • Podobnie jak w pętli po test_returns, w pętli obliczającej wyniki SPY dodaj cash do listy spy_cash po pomnożeniu przez 1 + r, aby uwzględnić zwroty w saldzie cash.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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])
Edytuj i uruchom kod