CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Utilisez la méthode .iterrows() avec ewma_monthly pour itérer sur index, value dans la boucle.
  • Utilisez la date dans la boucle et best_idx pour indexer portfolio_weights et obtenir les pondérations idéales du portefeuille basées sur le meilleur ratio de Sharpe.
  • Ajoutez le ewma aux 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:])
Modifier et exécuter le code