Évaluer les rendements
Voyons maintenant comment notre sélection de portefeuille se comporterait par rapport à un simple investissement dans le SPY. Nous faisons cela pour vérifier si nos prédictions sont prometteuses, malgré la faible valeur de R\(^2\).
Nous allons fixer une valeur initiale d'investissement de 1 000 $, puis parcourir les rendements issus de nos prédictions ainsi que ceux du SPY. Nous utiliserons les rendements mensuels de notre sélection de portefeuille et du SPY et les appliquerons à notre solde de trésorerie de départ. Nous obtiendrons ainsi une vue mois par mois de la performance de l'investissement, et nous pourrons comparer globalement nos prédictions au SPY. Ensuite, nous tracerons notre portefeuille issu des prédictions et le comparerons au SPY.
Cet exercice fait partie du cours
<cours>Machine Learning pour la finance en Python</cours>Instructions de l’exercice
- Définissez les premières entrées de liste de
algo_cashetspy_cashà la même valeur (cash). - Multipliez
cashdans notre boucletest_returnspar1 + rafin d'appliquer les rendements à notrecash. - Comme dans la boucle
test_returns, dans la boucle de performance du SPY, ajoutezcashàspy_cashaprès l'avoir multiplié par1 + rpour intégrer les rendements àcash.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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])