Créer des caractéristiques et des cibles
Pour utiliser le Machine Learning afin de choisir le meilleur portefeuille, nous devons générer des caractéristiques et des cibles. Nos caractéristiques viennent tout juste d'être créées dans l'exercice précédent : les moyennes mobiles exponentielles des prix. Nos cibles seront les meilleurs portefeuilles que nous avons trouvés selon le 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 caractéristiques. Ensuite, nous utiliserons l'indice du meilleur ratio de Sharpe (depuis max_sharpe_idxs) pour récupérer les meilleurs portfolio_weights pour chaque mois et définir cela comme cible.
Cette activité fait partie du cours
Machine Learning pour la finance en Python
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 selon le meilleur ratio de Sharpe. - Ajoutez le
ewmaaux caractéristiques.
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:])