Renditen auswerten
Schauen wir uns jetzt an, wie sich unsere Portfolioauswahl im Vergleich zu einer reinen Investition in den SPY geschlagen hätte. So sehen wir, ob unsere Vorhersagen trotz des niedrigen R\(^2\)-Werts vielversprechend sind.
Wir setzen einen Startwert für unsere Investition von 1.000 $, dann iterieren wir über die Renditen aus unseren Vorhersagen sowie aus dem SPY. Wir verwenden die monatlichen Renditen unserer Portfolioauswahl und des SPY und wenden sie auf unseren anfänglichen Kassenbestand an. So erhalten wir ein monatliches Bild davon, wie sich unsere Investition entwickelt, und wir können sehen, wie unsere Vorhersagen insgesamt im Vergleich zum SPY abgeschnitten haben. Anschließend plotten wir unser Portfolio basierend auf den Vorhersagen und vergleichen es mit dem SPY.
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>Übungsanweisungen
- Setze die ersten Listeneinträge von
algo_cashundspy_cashbeide auf denselben Betrag (cash). - Multipliziere das
cashin unserertest_returns-Schleife mit1 + r, um die Renditen auf unsercashanzuwenden. - Wie in der
test_returns-Schleife: Hänge in der SPY-Performance-Schleifecashanspy_cashan, nachdem du es mit1 + rmultipliziert hast, um die Renditen zucashhinzuzufügen.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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])