Skip to content

💻 AlgoInvest&Trade – Optimisation d’un algorithme de sélection d’investissements ​

DynamicProgramming

Contexte ​

Dans le cadre de ma formation chez OpenClassrooms, j’ai rejoint AlgoInvest&Trade, une société spécialisée dans les investissements financiers à court terme. Mon rôle en tant que développeur Python était de traduire les besoins métier en solutions techniques, en collaboration avec une équipe issue du monde de la finance.

Ce projet visait à créer un algorithme d’optimisation des bénéfices pour aider les clients à sélectionner les meilleures actions, sous contraintes budgétaires strictes.

Objectif ​

Concevoir une solution complète en deux étapes :

  • Une solution “brute-force” qui Ă©value toutes les combinaisons possibles d’actions
  • Une version optimisĂ©e capable de fournir un rĂ©sultat en moins d'une seconde

Le programme devait lire un fichier CSV, calculer la rentabilité de chaque combinaison d’actions, et retourner la stratégie d’investissement la plus rentable pour un budget maximal de 500 €.

Défis techniques ​

  • Conception d’un algorithme de force brute parcourant l’ensemble des combinaisons (problème du sac Ă  dos/“Knapsack Problem”)
  • Optimisation par programmation dynamique pour rĂ©duire la complexitĂ© temporelle
  • Comparaison des performances des deux approches : temps d'exĂ©cution, mĂ©moire, prĂ©cision
  • Élaboration d’un jeu de diapositives contenant :
    • Analyse des deux algorithmes (brute-force vs optimisĂ©)
    • Diagrammes, pseudocode, et notation Big-O
    • Étude comparative sur plusieurs datasets rĂ©els avec dĂ©cisions humaines en rĂ©fĂ©rence
  • DĂ©tection et gestion des donnĂ©es erronĂ©es ou incomplètes

Compétences développées ​

  • RĂ©solution de problèmes algorithmiques avancĂ©s en Python
  • Optimisation de code avec des approches scalables (programmation dynamique, tri, etc.)
  • Évaluation de la complexitĂ© algorithmique (notation Big-O, analyse mĂ©moire)
  • Comparaison entre approche exhaustive et solution efficace
  • DĂ©veloppement d’une solution fiable, robuste et testable
  • RĂ©daction de rapports techniques et supports de prĂ©sentation Ă  destination de profils non techniques

Liens utiles ​

Logo de Gitlab