Dans le cadre du Projet Ingénierie et Entreprise à l'ISAE SUPAERO en dernière année.
Modules nécessaires et installation dans un conda env :
conda create -n pienv python==3.9 pandas matplotlib yfinance pandas-datareader seaborn scikit-learn ipykernel ipympl configobj tqdm -c conda-forge -c anaconda -y
Puis activer le :
conda activate pienv
Installer ensuite ccxt
:
pip install ccxt
Ensuite installer la version de pytorch adaptée à votre système (ici) et tensorboard (pip install tensorboard
devrait suffire).
Pour finir, installer le package pynance
en utilisant le Makefile depuis le dossier où se trouve le Makefile.
make install
Pour faciliter la gestion des chemins, un fichier, dont le chemin doit être ajouté aux variables d'environnement, est utilisé.
Créer un fichier user.cfg
(en réalité n'importe quel nom fonctionne) et placer le où vous le souhaitez dans vos dossiers.
Il doit contenir :
[pie]
path_to_data = votre/chemin/vers/le/dossier
path_to_results = votre/chemin/vers/le/dossier
path_to_configuration_file = votre/chemin/vers/le/dossier
Description de chaque chemin :
- path_to_data : pointe vers le dossier contenant les fichiers .txt avec les noms des stocks dedans. Le format doit correspondre aux exemples fournis dans ce dossier.
- path_to_results : pointe vers le dossier où seront automatiquement sauvegardés les résultats des entraînements par exemple. Rappel : sur git, on ne push que du code (sauf à utiliser Git LFS)
- path_to_configuration_file : Sera utile dans un second temps pour la phase opérationnelle. Une fois que le code sera bien développé, il est plus aisé d'utiliser des fichiers de configuration pour lancer des entraînements voire des analyses.
Une fois cela fait, il est nécessaire d'ajouter le fichier aux variables d'environnement sous le nom : USERCFG.
Dans le fichier .bashrc
sous votre Home
, ajouter toute à la fin la ligne suivante :
export USERCFG="mon/chemin/vers/le/fichier/user.cfg"
Note : ctrl + h permet d'afficher les fichiers cachés (sur linux du moins). Sinon utiliser le terminal.
Voir par exemple ce lien. Attention a bien ajouter pour nom de variable USERCFG
.
Le package s'utilise en ligne de commande, à partir de fichiers de configuraton que l'utilisateur modifie.
Une fois l'installation effectuée, depuis le scipt run.py
qui utilise le package pynance:
python run.py -n <nom_fichier_cfg> -k <type_processus>
Où le fichier de configuration doit être dans le dossier précisé dans le user.cfg
sous le format <nom>.cfg
. Le .cfg
n'est pas à précisé, il est automatiquement ajouté par l'algorithme. De plus, -n
veut dire 'name' tandis que -k
veut dire 'kind'.
Processus possibles (-k
): train, infer, coint
Exemple:
python run.py -n techus_forecast -k train
python run.py -n techus_regr -k train
python run.py -n techus_coint -k coint
python run.py -n techus_infer -k infer
Des exemples sont donnés également dans le Makefile. Vous pouvez notamment, depuis le terminal à la racine du projet, lancer make runs
, ce qui a pour effet de lancer trois runs sur 1) 8 entreprises de technologies des USA (Nasda), 2) 5 entreprises du luxe français (CAC40), 3) 3 entreprises français du secteur de la défense (CAC40).
Le make runs
se découpe ainsi en trois appels:
make techus_run
make luxefr_run
make deffr_run
Chaque appel permet d'entraîner d'abord un modèle de prédiction de cours futur, puis des modèles de régression, de calculer les scores de co-intégration pour les paires possibles et enfin d'utiliser tout cela pour:
- Prédire le cours du marché sur les prochains jours
- Prédire les cours des actions à partir de ces marchés en utilisant les modèles de régression
- Et enfin produire une stratégie.
Un dossier spécifique à la tentative est créé et contiendra les paramètres ainsi que des sauvegardes de modèles et de figures.
Il est également possible d'étudier le cours du marché des cryto en direct. Pour cela, on précise la plateforme d'échange et deux cryptos qu'on voudrait échanger (se référer aux fichiers de configuration pour un exemple). Puis on lance le code. Par exemple:
python run.py -n crypto -k crypto
Ou sinon on peut également lancer directement : make crypto_live
.
Des exemple de fichier de configuration sont disponibles ici
Se référer aux spécifications de ces fichiers de configuration pour plus d'information.
Se référer à:
- documentation depuis le répertoire et ouvrir le fichier
index.html
. - documentation depuis git
- CALOT Paul
- COURNUT Thomas
- DRIF Norman
- GERARD Hugo
- HAYOUN Gabriel
- MRINI Soufiane