Skip to content

Latest commit

 

History

History
80 lines (66 loc) · 14.4 KB

README.fr.md

File metadata and controls

80 lines (66 loc) · 14.4 KB

Python Trading Bot Project

Index

Pourquoi?

Ce projet est un projet scolaire. La consigne était de faire un bot de trading capable d'amasser un max de thunes à partir de données quelconques. Les données proviennent de "https://finnhub.io/docs/api/stock-candles". Ce bot n'as pas été conçu pour être utilisé sur de vrais marchés ou quoi que ce soit du genre. Il n'est en rien garanti et conçu dans un objectif de travail informatique par des personnes peu voire pas qualifiées en trading. N'essayez pas d'en tirer de l'argent vous riqueriez de tout perdre.

Versions

0.0: En développement (ne fonctionne pas).
1.1: Première version viable avec deux stratégies.
1.2: Ajout de plus de stratégies et tests sur divers jeux de données pour voir l'adaptabilité de chacune de nos stratégies à la variation des données sachant que le jeu de données de l'éval ne sera pas celui qu'on nous a donné (testé sur littéralement toutes les données disponibles).
1.3: Ajout d'une représentation visuelle des différentes actions et de l'argent de notre bot par dessus et décision d'utiliser la stratégie 1 suite aux tests précédents (version actuelle et finale).

Comment l'installer et l'utiliser?

Pour cette section, nous allons assumer que vous savez utiliser un ordinateur mais ne savez rien de la programmation. Si c'est le cas et que vous vous retrouvez bloqués, contactez-nous.

Premièrement, vous aurez besoin de Python. Pour ce faire, regardez mon tutoriel sur comment faire.
Bravo! Vous avez désormais Python!

La prochaine étape est d'installer le projet parent. Téléchargez-le depuis le dépôt de notre professeur et dézippez-le n'importe où. Pour les plus qualifiés d'entre vous qui trouvent que c'est beaucoup trop juste pour lancer un objet gardez bien en tête que ça a été prévu pour mettre plein de bots comme le notre en compétition.
Bravo! Vous avez désormais le projet parent!

La dernière étape est d'installer le projet enfant c'est à dire le notre. Téléchargez-le en tant que ZIP comme vous l'avez fait pour le projet parent depuis ce lien (qui est probablement le lien duquel vous venez...). Ensuite, extrayez-le dans le dossier du projet parent. Si ça vous demande si vous voulez remplacer des fichiers dites oui.
Bravo! Vous avez désormais terminé l'installation!

Maintenant, pour le lancer, regardez la description fichier par fichier quel script executer en fonction de ce que vous voulez faire.

Description fichier par fichier

  • .gitignore: Fichier listant les différents fichiers et dossiers que vous ne voulez pas mettre sur git / github (caches, fichiers secret, ...) (Principalement utile quand l'upload est automatisé avec des logiciels comme Github Desktop pour pas qu'ils incluent ces fichiers dans vos commits).
  • .gitmodules: Liens vers les projets des autres étudiants pour les faire apparaître sur le dépôt du prof.
  • README.md: Informations a destination des étudiants.
  • beaglebot.py: Un exemple simple de bots conçu par notre prof à titre de démonstration (dont notre bot hérite juste pour la ligne 9 et le défi XD)
  • botorderclient.py: Client utilisé par les bots participants pour acheter et vendre des actions. Ca permet au prof de vérifier que nous ne trichions pas en faisant une interface immuable entre notre bot et ses actions restreignant au passage certaines choses comme le faites que nous ne puissions pas acheter des actions que nous n'avons pas les moyens d'acheter. Nous donne aussi accès à des informations sur l'argent et les actions en notre possession.
  • candle_sample.txt: Quelques exemples de données pour tester nos bots.
  • collect_candles.py: Exécutable mais lent et pas vraiment très à jour... Un vieux script pour récupérer des données.
  • collect_candles2.py: Exécutable. Le véritable script permettant de collecter des données. Les lignes 10 et 13 indiquent les horodates de début et de fin entre lesquelles collecter des données. La version gratuite de l'API ne nous permet que de collecter les données qu'un mois à la fois, d'aujourd'hui à il y a un an.
  • collect_data.py: Exécutable mais inutile. Un autre document de collecte de données. Si vous rencontrez des erreurs, vérifiez que vous avez le bon module. Ce script ne sauvegarde les données que 100 par 100 et ne récupère pas les prix de fermeture qui sont les plus utilisés.
  • gui.py: Exécutable mais inutile. Un exemple d'interface graphique pour aider les étudiants qui en ont besoin a faire le leur.
  • main.py: EXÉCUTABLE. Le coeur du programme. Lie chacun de nos bots à une instance du client / coursier et utilisant le script shared.py du dossier "shared" pour tout en fait le fichier en lui-même est quasiment vide en soit... Je ne pense pas que l'objectif à la base était juste de casser le fichier surtout sachant le script vide dans le dossier shared.py m'enfin le projet est presque terminé pour notre groupe-classe donc bon...
  • main_simple.py: Une version qui se veut plus simple du fichier main.py. Pourrais être exécutable si notre prof acceptais la demande de modification #4.
  • DOSSIER: shared (Un dossier contenant le gros du code du fichier main.py)
  • FOLDER: ProjetTradingPythonPOO (Le projet de mon équipe)
  • Tout les autres dossiers sont les projets d'autres étudiants que je n'ai pas étudié et que je peux (ni ne veux en vrai j'ai autre chose à faire et c'est pas mon rôle) documenter.

Comment contribuer?

Sachant qu'il s'agit d'un projet scolaire, seuls les camarades de mon groupe de travail son autorisés à participer. Si vous avez vraiment très envie de modifier des choses je ne peux que vous conseiller de faire une fork et si vous voulez que je publie vos modifications pour une raison ou pour une autre venez en discuter avec moi.
Malgré cela, vous pouvez quand même nous aider en ouvrant des rapports de problèmes (bugs, demandes, ...) sur la page dédiée! Si vous le faites, merci beaucoup!

FAQ

Aucune question ne nous a encore été posée.

Nous contacter

reza0310: page de contact.

License

Lisez le fichier "LICENSE" (en anglais).

Dernière mise à jour de la documentation

Mardi 1 mars 2022