Valutare i rendimenti
Vediamo ora come si comporterebbe la nostra selezione di portafoglio rispetto a investire semplicemente nello SPY. Lo facciamo per capire se le nostre previsioni sono promettenti, nonostante il basso valore di R\(^2\).
Imposteremo un valore iniziale per il nostro investimento di $1000, poi scorreremo i rendimenti delle nostre previsioni e quelli di SPY. Useremo i rendimenti mensili della nostra selezione di portafoglio e di SPY e li applicheremo al nostro saldo di cassa iniziale. In questo modo otterremo una visione mese per mese di come sta andando il nostro investimento e potremo vedere come, nel complesso, le nostre previsioni si sono comportate rispetto allo SPY. Successivamente, potremo tracciare il nostro portafoglio basato sulle previsioni e confrontarlo con SPY.
Questo esercizio fa parte del corso
Machine Learning per la finanza in Python
Istruzioni dell'esercizio
- Imposta la prima voce di entrambe le liste
algo_cashespy_cashallo stesso importo (cash). - Moltiplica
cashnel ciclo sutest_returnsper1 + rper applicare i rendimenti al nostrocash. - Come nel ciclo su
test_returns, nel ciclo di performance dello SPY aggiungi (append)cashaspy_cashdopo aver moltiplicato per1 + rper includere i rendimenti incash.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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])