Évaluer les rendements
Voyons maintenant comment notre sélection de portefeuille se comporterait comparativement à un simple placement dans le SPY. Nous faisons cet exercice pour vérifier si nos prédictions sont prometteuses, malgré la faible valeur de R\(^2\).
Nous allons fixer une valeur de départ de 1 000 $ pour notre investissement, 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 nous les appliquerons à notre solde de trésorerie initial. Nous obtiendrons ainsi un portrait mensuel de la performance de notre investissement et nous pourrons voir, au final, comment nos prédictions se comparent à celles du SPY. Ensuite, nous pourrons tracer notre portefeuille issu des prédictions et le comparer au SPY.
Cette activité fait partie du cours
Machine Learning pour la finance en Python
Instructions de l’exercice
- Attribuez la même valeur (
cash) à la première entrée des listesalgo_cashetspy_cash. - Multipliez
cashdans la boucletest_returnspar1 + rafin d'appliquer les rendements àcash. - 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])