Nos formations : www.jedha.co
Projet IA de Christian Gandon
Dans son projet final, Christian nous présente les outils et modèles de prédiction de Machine Learning pour l'achat et la vente de Bitcoin
3. Approche
Court-terme :
A chaque minute, j’essaie de deviner si je
suis dans un creux ou un pic pour les 100
prochaines minutes.
Simple :
si creux = j’achète
si pic = je vends
Je n’essaie pas d’évaluer la valorisation future
Données :
Cours BTC/USD minute par minute sur Q1.2019:
● valo open/close,
● volume transactions,
● deal initié par acheteur ou vendeur.
5. Oui!
Si elle avait été productive sur Avril 2019,
l’application aurait généré un profit de 12,8%
(vs. croissance naturelle du BTC de 7,5%)
creux:
2 sur 3 sont
corrects
(66%)
pics:
3 sur 5 sont
corrects
(60%)
6. ● Pour éliminer les faux positifs il faut se limiter à très peu de deals, i.e. les quelques
pics/creux avec les certitudes de prédictions >90%
● Le 1er trimestre a été croissant, n’a pas été testée en marché descendant
...Mais:
Matrices de confusion
Creux Pics
pred yes 21 11 23 15
pred no 2102 5357 1772 5681
true
yes
true
no
true
yes
true
no
8. Mes apprentissages
● Collecte de données:
○ boucles sur API des places d’échanges
○ concaténation en fichiers plats
○ Simple, gratuit… easy.
● Préparation des données:
○ Pour LSTM, chaque observation doit contenir l’historique de la série
temporelle. Attention au volume et au temps de calcul!
○ Ne pas suivre toutes les hypothèses en même temps. Dérouler une
hypothèse jusqu’au bout, puis ensuite faire varier les paramètres.
● Entraînement du réseau:
○ 48h sur un laptop pour 1000 epoch...
○ ...vs 3h sur une machine virtuelle GPU (Paperspace.com: 2euros/heure)
○ Optimisation du training avec gestion différenciée du batch_size pour le
training et le test (requiert un export/import des poids)
9. Prochaines étapes
● Enrichir:
○ Traiter les séries temporelles comme des images (en cours)
○ Interpréter les sentiments des tweets et news (en cours)
○ Ajouter les tendances moyen terme
○ Ajouter les cours d’autres places de marché
● Automatiser:
○ La collecte de données et l'entraînement continu du modèle
○ L’exécution des achats/ventes réels
○ Inclure des seuils de sécurité en cas d’erreur de prédiction
12. Même avec des prédictions à 100% sur Q1.2019:
● la médiane du gain par trade aurait été négative (-4eur)...
● ...mais le gain moyen aurait été positif (+9eur)
● => en effet, on perd souvent un peu mais on gagne quelques fois beaucoup.
A noter:
Distribution des gains si tous les
pics et creux sont bien détectés: Zoom sur les 50%
13. Références:
Prédiction de cours avec LSTM:
● https://towardsdatascience.com/predicting-stock-price-with-lstm-13af86a74944
● https://towardsdatascience.com/predicting-ethereum-prices-with-long-short-term-memory-lstm-2a5465d3fd
Optimisation de Batch_size sur LSTM:
● https://machinelearningmastery.com/use-different-batch-sizes-training-predicting-python-keras/
Stacked LSTM:
● https://machinelearningmastery.com/stacked-long-short-term-memory-networks/
Classification de séries temporelles avec conversion des courbes en images:
● https://forums.fast.ai/t/share-your-work-here/27676/367
● https://medium.com/analytics-vidhya/encoding-time-series-as-images-b043becbdbf3