Evaluează randamentele
Să vedem acum cum s-ar fi comportat selecția noastră de portofoliu față de o simplă investiție în SPY. Facem acest lucru pentru a verifica dacă predicțiile noastre sunt promițătoare, chiar și în condițiile unui R\(^2\) scăzut.
Vom stabili o valoare inițială a investiției de 1.000 $, apoi vom parcurge randamentele obținute din predicțiile noastre și din SPY. Vom folosi randamentele lunare din selecția noastră de portofoliu și din SPY și le vom aplica soldului inițial de numerar. Astfel vom obține o imagine lună de lună a evoluției investiției noastre și vom putea compara rezultatele predicțiilor cu performanța SPY. În final, vom reprezenta grafic portofoliul nostru și îl vom compara cu SPY.
Acest exercițiu face parte din cursul
Machine Learning pentru finanțe în Python
Instrucțiuni pentru exercițiu
- Setează prima intrare din listele
algo_cashșispy_cashla aceeași valoare (cash). - Înmulțește
cashdin buclatest_returnscu1 + rpentru a aplica randamentele lacash. - Similar cu bucla
test_returns, în bucla de performanță SPY, adaugăcashlaspy_cashdupă ce îl înmulțești cu1 + rpentru a incorpora randamentele încash.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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])