1. Apprendre
  2. /
  3. Cours
  4. /
  5. Machine Learning pour la finance en Python

Connected

Exercice

Calculer des portefeuilles

Nous allons maintenant générer des portefeuilles afin de trouver le meilleur de chaque mois. La fonction random.random() de numpy génère des nombres aléatoires selon une distribution uniforme; on les normalise ensuite pour qu'ils totalisent 1 à l'aide de l'opérateur /=. Nous utilisons ces pondérations pour calculer le rendement et la volatilité. Les rendements sont des sommes des pondérations multipliées par les rendements individuels. La volatilité est plus complexe et fait intervenir les covariances des différentes actions.

Enfin, nous stockerons les valeurs dans des dictionnaires pour les utiliser plus tard, en utilisant les dates des mois comme clés.

Ici, nous ne générerons que 10 portefeuilles pour chaque date afin d'accélérer l'exécution du code, mais en pratique vous voudriez plutôt utiliser de 1000 à 5000 portefeuilles générés aléatoirement pour quelques actions.

Instructions

100 XP
  • Générez 3 nombres aléatoires pour les pondérations avec np.random.random().
  • Calculez returns en prenant le produit scalaire (np.dot(); multiplie élément par élément et additionne deux tableaux) de weights avec les rendements mensuels pour la date courante dans la boucle.
  • Utilisez la méthode .setdefault() pour ajouter une liste vide ([]) au dictionnaire portfolio_weights pour la date courante, puis ajoutez-y weights.