Avaliar retornos
Agora vamos ver como a nossa seleção de portfólio teria se saído em comparação a investir apenas no SPY. Vamos fazer isso para verificar se nossas previsões são promissoras, apesar do baixo valor de R\(^2\).
Vamos definir um valor inicial para o investimento de $1000 e, em seguida, percorrer os retornos das nossas previsões e também do SPY. Usaremos os retornos mensais da nossa seleção de portfólio e do SPY e os aplicaremos ao nosso saldo inicial em caixa. Com isso, teremos uma visão mês a mês de como está o nosso investimento e poderemos ver como nossas previsões se saíram no geral versus o SPY. Em seguida, podemos plotar nosso portfólio com base nas previsões e compará-lo ao SPY.
Este exercicio faz parte do curso
Machine Learning para Finanças em Python
Instruções do exercicio
- Defina as primeiras entradas das listas
algo_cashespy_cashcom o mesmo valor (cash). - Multiplique o
cashno nosso looptest_returnspor1 + rpara aplicar os retornos ao nossocash. - Assim como no loop
test_returns, no loop de desempenho do SPY, acrescentecashaspy_cashapós multiplicar por1 + rpara adicionar os retornos acash.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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])