💻 AlgoInvest&Trade – Optimisation d’un algorithme de sélection d’investissements ​
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