Trading-Attitude
Les meilleurs indicateurs techniques
-

Intelligence artificielle pour le trading en bourse

Intelligence artificielle et trading en bourse… Voici tout ce qu’il faut pour utiliser l’intelligence artificielle, le deep learning, le machine learning et les réseaux de neurones pour trader en bourse. J’ai réuni toutes les informations pour bien démarrer dans le trading avec les algorithmes d’IA et le Machine Learning.

Intelligence artificielle et bourse

Pourquoi l’intelligence artificielle, le machine learning et le deep learning ?

Avec l’Analyse Technique, le trading consiste avant tout à reconnaître des patterns et des formes graphiques. Or, le machine learning c’est aussi reconnaître des formes géométriques. Des formes plus ou moins compliquées. Avec peu ou beaucoup de dimensions. Bienvenue dans le monde de l’intelligence artificielle !

Les patterns graphiques (chartisme) mais aussi les indicateurs techniques sont des patterns à 2 dimensions. Des images, quoi. Or le deep learning est spécialement adapté à la reconnaissance de formes dans des images.

Il est donc judicieux d’utiliser l’intelligence artificielle (IA) pour trader. Après tout, le trader ne fait que reconnaître des signaux d’entrée. Il utilise sa vision. Et son réseau de neurones : le cerveau.

Un article avec tout ce qu’il faut pour appliquer l’IA au trading

Je vous propose donc dans ce post tout ce qu’il vous faut pour commencer dans l’intelligence artificielle adaptée au trading en bourse sur les actions. Ou autres actifs.

Nous allons voir :

  • Quels sites et librairies utiliser pour télécharger les cours historiques de bourse.
  • Quel langage informatique utiliser en intelligence artificielle.
  • Quelles librairies utiliser pour le deep learning.
  • Comment construire des réseaux de neurones.
  • Quels modèles de machine learning utiliser.
  • Quels sites utiliser pour créer des algorithmes de trading.
  • Quoi utiliser comme outil pour exécuter les phases d’apprentissage.

Tout un programme !

Comment télécharger les cours de bourse historiques ?

Il y a plusieurs sites qui permettent de télécharger les cours de bourse :

Avant de les détailler, vous pourrez stocker les cours sous forme de fichiers CSV ou de base de données. Vous avez par exemple TinyDB.

Quandl

Sur Quandl il suffit de s’inscrire pour récupérer une clé d’API, puis de l’utiliser avec différents langages pour récupérer des cours historiques unitairement ou en masse. Python, R, Excel, Ruby ou Rest/JSon sont disponibles.

Sans API key le nombre de requêtes par jour est limité. Les bases peuvent être téléchargée en entier pour celles qui sont premium et pour lesquelles on a souscrit.

L’inscription est gratuite. Il y a des tas de bases de données, pas seulement des actions. Certaines sont Free, d’autres payantes, dites Premium.

  • La base free pour les actions FR est celle-ci.
  • Celle pour les actions US est la base WIKI.

La liste des tickers disponibles dans WIKI se trouve derrière ce lien.

Malheureusement, si la base WIKI peut servir à récupérer des historiques, elle n’est plus mise à jour ! Dommage quand même.

Vous retrouverez les différentes bases principales sur cette page.

Alpha-Vantage

Ce site permet de télécharger des prix EOD et de l’intraday sur les actions, les devises et les cryptos, entre autres. Pas d’inscription, mais il faut laisser son adresse email pour obtenir une API key. Grâce à cette clé, l’accès gratuit est limité à 5 requêtes d’API par minute et 500 par jour.

Si vous voulez avoir plus, il faut passer en premium. Cela commence à 30 USD par mois. Dans la documentation du site vous trouverez un code pour obtenir 10% de réduction sur les flux polygon.io. Voir cette page.

Il est possible de télécharger directement avec !wget un csv : https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=IBM&apikey=demo&datatype=csv

Ou d’utiliser du code : voir cet exemple

Alpha-Vantage permet aussi de télécharger une cinquantaine d’indicateurs pour une action. Mais nous verrons plus loin comment faire autrement.

Quel langage informatique utiliser pour télécharger les cours de bourse ?

Le plus simple est d’utiliser Python 3.x. Python est un langage simple et très adapté au Machine Learning.

De plus je vais vous montrer comment exécuter vos algorithmes de deep learning en python.

Environnements de développement python pour a data science

Il y a plusieurs environnements de développement python possibles :

  • Anaconda – Jupyter Notebook.
  • PyCharm.
  • Spyder.
  • Google Colaboratory.
  • AWS Machine Learning AMI

Spyder

Spyder est un IDE Python populaire. C’est un logiciel que l’on installe ou qui peut être lancé via Anaconda (que nous verrons plus loin).

Je ne vais pas détailler plus car ce n’est pas la solution que je vous recommande.

PyCharm

PyCharm est un autre IDE populaire et édité par JetBrains, l’éditeur de IntelliJ Idea, un IDE ultra populaire pour le langage Java.

Si vous devez coder en python, choisissez cet IDE.

Mais le problème avec la datascience c’est que :

  • Il faut plein de librairies.
  • Il faut de la puissance CPU pour effectuer les calculs.

On peut bien sûr installer les librairies dans Spyder et PyCharm, mais il y a une solution simple.

Anaconda

Anaconda est une application qui s’installe. Son cœur est conda (en mode console). C’est un gestionnaire d’environnement python qui est installé avec un grand nombre de librairies adaptées au machine learning.

Il offre les IDE comme Spyder et Notebook.

Autant un IDE comme PyCharm ou Spyder peuvent éditer et exécuter du code Python, un Notebook c’est différent.

Un Notebook est une page web dans laquelle on peut coller du code et du texte, et l’exécuter. Un Notebook est découpé en cellules. Chaque cellule est exécutable séparément (mais en séquence). Le résultat s’affiche en dessous. C’est très pratique pour documenter un code et montrer les graphiques des résultats de machine learning.

De plus, un Notebook peut s’exécuter sur un serveur distant. Et cela résout notre second problème : la puissance CPU.

Google Colaboratory

Google colab, pour les intimes, est un environnement de Notebook intégré à Google Drive.

C’est donc l’équivalent de Conda + notebook mais en ligne, gratuit et vous permettant d’utiliser des GPU et des TPU. Mais une explication s’impose.

CPU, GPU, TPU : de la puissance !

Quand on pratique le deep learning cela implique énormément de calculs. Cela consomme de la RAM mais surtout du CPU (le processeur de votre PC).

Or, le CPU d’un ordinateur n’est pas forcément adapté aux calculs réalisés dans le cadre des réseaux de neurones. Par exemple, il faut faire des dérivations, etc. Il existe des processeurs plus adaptés que des CPU, ce sont les GPU. Graphical Processing Units.

Les GPU ce sont les processeurs qui servent à afficher tout ce que vous voyez sur votre écran. Les ordinateurs pour gamers ont des GPU puissants. De même, pour miner des cryptos on peut utiliser des GPU car les calculs sont intenses.

À ce titre, les fabricants de GPU ont la cote. NVidia, STM sont à suivre en bourse et profitent du développement des cryptos, de l’IA et de la sécurité et tout ce qui est digital.

Mais les GPU c’est pas encore le plus adapté.

Les tensors

Nous allons voir plus loin que les calculs en deep learning peuvent être réalisés grâce à TensorFlow 2. C’est une librairie qui manipule des tensors (en gros, des matrices).

Or, il existe des processeurs adaptés aux calculs à base de tenseurs. Ce sont les TPU.

Google Colab offre gratuitement (ou 7 dollars par mois) des TPU pour vos calculs.

Bien sûr, comme beaucoup de gens dans le monde utilisent Google Colab, les ressources allouées à vos calculs de machine learning ne sont pas infinies. Mais cela libère votre PC. Pas besoin d’une machine de course pour faire du deep learning en bourse !

Et si Google Colab (gratuit) ne suffit pas, vous pouvez toujours choisir une autre option…

Une AMI Deep Learning chez AWS

Si vous avez besoin de vraiment beaucoup de puissance pour accélérer l’apprentissage d’un algorithme de deep learning… Choisissez une machine virtuelle AWS spécialisée. En terme de CPU et RAM il y a des monstres. Cela coûte plus cher, mais cela peut répondre à votre besoin. Découvrez les détails ici.

Vous pouvez aussi utiliser SageMaker.

Autres solutions cloud

https://towardsdatascience.com/why-i-moved-from-google-colab-and-amazon-sagemaker-to-saturn-cloud-675f0a51ece1

Saturn, Azure, Kaggle, IBM sont d’autres alternatives à Colab.

Quels frameworks de machine learning utiliser ?

Voici une rapide liste des frameworks et librairies (essentiellement python) à utiliser pour de la data science.

Numpy manipule des matrices et permet d’effectuer des calculs sur celles-ci.

Pandas permet de rapidement enregistrer et lire des fichiers CSV et manipuler des dataframes (matrices).

Scikit-learn contient tout ce qu’il faut pour apprendre le machine learning. Mais reste plutôt pédagogique. Vous y trouverez la plupart des modèles et pipelines de machine learning.

TensorFlow 2 est le framework roi. Il peut être utilisé en python et en java. Il a été créé par Google. Google Colab l’intègre parfaitement.

L’avantage de Tensorflow c’est que le modèle peut ensuite être exécuté en Java ou sur Android avec Tensorflow Lite.

Voir aussi ce lien et celui-ci pour utiliser TensorFlow dans PyCharm.

Il y a aussi d’autres frameworks :

  • Keras (Tensorflow 2 l’utilise).
  • PyTorch.
  • MatPlotLib : pour tracer des graphiques.
  • Scipy.

Voici une formation Udemy gratuite sur les bases de ces librairies de machine learning.

Je vous conseille aussi ces formations en intelligence artificielle :

Comme vous pouvez le voir, certaines traitent du trading.

Quels modèles de deep learning utiliser pour trader les actions ?

Clarifions les choses : un réseau de neurones va pouvoir déterminer soit une prédiction, soit une classification. Deux notions importantes en intelligence artificielle.

Prédiction

La prédiction, bien sûr, c’est prévoir les cours de bourse en fonction du passé. Ce n’est pas le meilleur choix d’après moi. Mais vous trouverez beaucoup d’exemples de ce type.

Pour prédire une série de nombre (Time series en ingliche) on peut utiliser un modèle LSTM. LSTM pour Long Short-Term Memory. C’est un modèle très utilisé en langage naturel (traduction, génération de texte). Il donne une importance différente aux éléments de la série temporelle récents et distants.

Dans le cas des actions et de la bourse, cela peut sans doute prévoir les cours à très court terme. Mais cela ne me semble pas suffisant.

Le LSTM est même inefficace, en fait.

Voici trois exemples : exemple sur Datacamp, exemple 2, et celui-ci.

La classification

Pour simplifier, disons que la classification cela permet de décider si un ensemble de données correspond à un type d’objet ou un autre. Par exemple, on va analyser une image pour savoir si elle correspond à un chat ou un chien.

Le deep learning

Le deep learning c’est une forme spéciale de machine learning qui ne nécessite pas l’intervention d’experts d’un domaine.

Par exemple, dans le cas du trading en bourse… Un trader va se baser sur des patterns graphiques ou des indicateurs.

Algorithme de trading vs intelligence artificielle

Typiquement, un algorithme de trading va être construit par un trader expert. Il prend des indicateurs, les tord dans tous les sens et définit des signaux d’achat et de vente.

Réseau de neurones

Dans le cas du deep learning, on donne les cours et éventuellement des indicateurs à manger à un réseau de neurones. Après de nombreux calculs, le réseau apprend à reconnaître les bonnes configurations. Il faut lui fournir beaucoup de données pour qu’il apprenne.

L’apprentissage, clé en intelligence artificielle

C’est le processus d’apprentissage. Quand les erreurs sont faibles, on sauvegarde alors la configuration du réseaux. On peut ensuite proposer au réseau de neurones (le modèle) de nouveaux cours. Il dira si la configuration est haussière ou baissière.

Intelligence artificielle : un système expert

On entraîne donc un expert. La machine va apprendre toute seule à faire ce qu’un trader chevronné fait avec ses yeux et son cerveau.

Génial, non ?

En réalité, ce n’est pas aussi simple que cela. En intelligence artificielle il faut travailler beaucoup pour trouver le bon modèle.

Un modèle prometteur

Ce qui semble prometteur mais que je n’ai pas encore exploré à la date d’écriture de cet article, c’est le Deep Reinforcement Learning. C’est un paradigme assez différent ce ce qui précède. Je vous en dirai plus si mes recherches donnent quelque chose d’intéressant.

Back tester les résultats

Une fois vos bonnes configurations détectables par réseau de neurones, il faut pouvoir backtester la chose.

Il existe un outil intéressant qui permet de backtester en python un algorithme et même calculer la performance sur un portefeuille.

Il s’agit de…

Coder les indicateurs techniques et afficher les graphiques

Voici comment coder les indicateurs techniques en python.

Cette page vous donnera des éléments pour savoir comment afficher des graphiques boursiers en python avec Matplotlib, une librairie graphique en Python.

Quantopian

Quantopian est une plateforme basée sur le cloud. Elle permet de backtester des algorithmes de trading.

L’outil est très puissant et je ne le maîtrise pas encore à l’heure où j’écris.

Autres outils

Voici une liste d’autres outils d’intelligence artificielle qui pourraient intéresser le trader.

Voici quelques exemples de code proposés par des personnes qui ont déjà traité le trading avec l’intelligence artificielle :

Conclusion

Pour moi le LSTM n’est pas la solution, ou alors à très court terme. Il faut d’après moi axer les efforts sur la reconnaissance de patterns dans les indicateurs. Les réseaux de neurones et le deep learning sont des outils formidables pour cela.

J’espère que cet article vous aidera à aborder le trading via l’intelligence artificielle. Et si vous ne voulez pas vous lancer dans le python, vous pouvez rester sur les indicateurs techniques.

Si vous voulez découvrir les bases du machine learning par les pontes de la finance de marché, voici deux livres :




 


Image : canva

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CommentLuv badge