Créer des features et des cibles
Pour utiliser le Machine Learning afin de choisir le meilleur portefeuille, nous devons générer des features et des cibles. Nos features viennent d'être créées dans l'exercice précédent : les moyennes mobiles exponentielles des prix. Nos cibles seront les meilleurs portefeuilles trouvés à partir du ratio de Sharpe le plus élevé.
Nous allons utiliser la méthode .iterrows() de pandas pour obtenir les paires index, value du DataFrame ewma_monthly. Dans la boucle, nous définirons la valeur courante de ewma_monthly comme nos features. Ensuite, nous utiliserons l'indice du meilleur ratio de Sharpe (provenant de max_sharpe_idxs) pour récupérer les meilleurs portfolio_weights pour chaque mois et définir cela comme cible.
Cet exercice fait partie du cours
<cours>Machine Learning pour la finance en Python</cours>Instructions de l’exercice
- Utilisez la méthode
.iterrows()avecewma_monthlypour itérer surindex, valuedans la boucle. - Utilisez la
datedans la boucle etbest_idxpour indexerportfolio_weightset obtenir les pondérations idéales du portefeuille basées sur le meilleur ratio de Sharpe. - Ajoutez le
ewmaaux features.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
targets, features = [], []
# Create features from price history and targets as ideal portfolio
for date, ewma in ewma_monthly.____:
# Get the index of the best sharpe ratio
best_idx = max_sharpe_idxs[date]
targets.append(portfolio_weights[____][____])
features.append(____) # add ewma to features
targets = np.array(targets)
features = np.array(features)
print(targets[-5:])