Skip to content

Trading Places : Quand les analystes techniques rencontrent l’intelligence artificielle

Guillaume Thibault

Trading Places : Quand les analystes techniques rencontrent l’intelligence artificielle

L’hypothèse de l’efficience des marchés, développée par Eugene Francis Fama, stipule que les prix des titres financiers représentent toutes les informations disponibles à tout moment, ce qui rend impossible l’achat d’une action sous-évaluée ou la vente d’une action surévaluée. Dans cet esprit, selon l’hypothèse la moins restrictive de l’efficience du marché, les prix reflètent toute l’information disponible dans le passé, ce qui rend l’analyse technique inutile pour prédire l’évolution future des prix.

L’analyse technique est une méthode d’analyse financière qui se concentre sur l’étude de l’historique des prix et des volumes de transactions d’un actif, comme les actions, les devises, les matières premières, les obligations, etc. Cette méthode repose sur l’idée que les tendances du marché, les modèles et le comportement passé peuvent être utilisés pour prédire les mouvements de prix futurs.

Les analystes techniques utilisent des graphiques pour représenter les tendances historiques des prix et des indicateurs techniques pour évaluer la force ou la faiblesse du marché. Ces indicateurs comprennent les moyennes mobiles, les oscillateurs, les volumes de transactions, les niveaux de soutien et de résistance, et d’autres mesures qui aident à identifier les tendances et les modèles dans les données historiques.

Afin de tester l’hypothèse d’une faible efficacité des marchés financiers, essayons de sortir des signaux d’analyse technique.

 

Un cas d’utilisation pour l’intelligence artificielle ?

Sachant que le principe principal est l’extraction de signaux à partir de ces mesures, il peut être intéressant d’essayer d’utiliser des outils d’intelligence artificielle pour automatiser l’analyse technique, au lieu d’utiliser mes faibles connaissances dans le domaine. Ces algorithmes d’apprentissage automatique peuvent être utilisés pour identifier des modèles dans les données historiques qui ne sont pas facilement identifiables par les humains, ou pour détecter des anomalies dans les tendances qui pourraient indiquer des changements dans la direction du marché.

L’utilisation de l’intelligence artificielle dans l’analyse technique peut aider à automatiser certaines tâches telles que la recherche de signaux d’achat et de vente, l’identification des niveaux de support et de résistance, le suivi des volumes de transactions, etc. Cela peut aider les traders et les investisseurs à prendre des décisions plus rapides et plus précises sur la base de données plus complètes et plus fiables.

Avertissement

Il est important de noter que l’utilisation de l’intelligence artificielle pour prendre des décisions d’achat et de vente sur les marchés financiers comporte des risques énormes et peut entraîner des pertes importantes. Les algorithmes d’apprentissage automatique ne peuvent pas prédire avec certitude les fluctuations du marché et une supervision humaine est nécessaire pour éviter les erreurs ou les mauvaises interprétations des données.

Cela dit, cet article ne suit pas cette recommandation et vise plutôt à explorer la possibilité d’utiliser l’intelligence artificielle pour effectuer une analyse technique afin d’exécuter des ordres d’achat et de vente sur les marchés financiers.

En d’autres termes : Ne pas reproduire à la maison 😉

Le projet

L’idée est d’essayer des modèles d’analyse d’image ayant la propriété d’invariance de translation sur des graphes techniques, dans le but que les techniques d’apprentissage automatique apprennent directement les signaux d’analyse technique. L’article est consacré à une première preuve de concept dans ce domaine.

 

Les données

Pour commencer de manière relativement simple, utilisons des graphiques en chandelier. Ce type de graphique représente les mouvements de prix d’un actif financier. Chaque chandelier représente le prix d’ouverture, le prix de clôture, ainsi que les prix les plus élevés et les plus bas pendant la période considérée. Ce type de graphique vous permet de visualiser rapidement les mouvements de prix d’un actif et de détecter des tendances ou des modèles dans les données historiques.

Dans notre cas, commençons par utiliser un intervalle de 2 minutes par bougie et composons des graphiques avec 30 bougies correspondant à des intervalles de 60 minutes par graphique. Puisque nous allons utiliser des techniques de deep learning sur des images, il est important de supprimer toute information qui pourrait être utilisée par le modèle pour faire sa prédiction et qui n’est pas un chandelier. Le graphique suivant correspond à une image que le modèle devra analyser pour extraire un signal.

Sachant que ces images seront utilisées pour l’entraînement du modèle, simplifions les graphiques d’avantage pour réduire la mémoire et la puissance de calcul nécessaires à l’entraînement. Pour cela, diminuons la résolution de l’image, sans perdre d’information, en augmentant la taille des bandes et en utilisant plusieurs couleurs pour distinguer les différentes parties des bougies.

 

Créer l’ensemble de données

Le code pour le traitement des données peut être trouvé dans le [notebook complet] (https://github.com/guthi1/technical-analysis-trading-dumpster-fire/blob/main/notebook.ipynb).

Quelques détails supplémentaires :

  • Source – bibliothèque python yfinance

  • Tickers – 186 tickers avec le plus grand volume de transactions pour le 17 février 2023.

  • Jeu de données d’entraînement : 4464 images

  • Ensemble de données de validation : 1116 images

Plage de dates (s’ajustera automatiquement aux 5 derniers jours de transaction de la date que le notebook est exécuté) :

  • 2023-02-13 10:30:00-05:00 à 2023-02-17 15:30:00-05:00
  • Seuil de date pour les 20% de l’ensemble de validation : > 2023-02-16 19:18:00-05:00

Étape importante : Examinez la distribution de nos données pour voir si elle n’est pas trop déséquilibrée.  

DataLoader

Créons un chargeur de données pour le jeu de données que nous avons créé.

Maintenant que nous avons notre jeu de données, nous devons le diviser en un jeu de formation et un jeu de validation et nous avons besoin d’un chargeur de données pour pouvoir utiliser minibatch.

 

Contrôle de sécurité pour s’assurer que le redimensionnement de l’image ne supprime pas d’informations.

  

Le modèle

Le modèle choisi est un modèle de réseau neuronal convolutionnel (CNN), qui est une architecture de réseau neuronal profond utilisée dans les tâches de vision par ordinateur. Les filtres de convolution sont un composant clé des CNN. Ce sont des filtres qui analysent l’image pour en extraire les caractéristiques importantes.

Les filtres de convolution sont appliqués à chaque partie de l’image et sont utilisés pour extraire des caractéristiques telles que les bords, les textures et les formes. Les filtres de convolution sont définis par leurs dimensions (largeur et hauteur) et leur profondeur. Pendant l’apprentissage, le CNN ajuste automatiquement les valeurs des filtres de convolution pour optimiser les performances de la tâche de classification ou de régression.

Le modèle utilisé sera Restnet-18, un modèle de réseau neuronal convolutif profond (CNN), développé par Kaiming He et plusieurs autres chercheurs de Microsoft Research initialement publié dans l’article “Deep Residual Learning for Image Recognition” en 2015.

Ce type d’architecture est très populaire en raison de l’utilisation de connexions résiduelles, une méthode utilisée pour résoudre le problème de la dégradation de la précision du réseau lorsque la profondeur du réseau augmente en ajoutant des connexions directes qui contournent plusieurs couches de convolution. Ces connexions résiduelles permettent au réseau de conserver les informations précédemment apprises et facilitent ainsi l’apprentissage de nouvelles représentations d’images.

MLP

À titre de référence, pour démontrer l’utilité potentielle de ce type de modèle, établissons un point de référence auquel comparer le modèle CNN. Nous utiliserons un modèle simple de réseau neuronal dense (MLP), dans lequel chaque neurone est connecté à chaque pixel de l’image, comme suit :

Maintenant, l’entraînement de ce modèle peut se faire en quelques minutes.

Résultat

En examinant les résultats préliminaires d’un tel modèle, nous constatons qu’il est incapable de détecter des modèles dans l’ensemble de formation et de validation. Les résultats correspondent à un résultat complètement aléatoire.

  

Resnet-18

Maintenant, essayons avec Resnet-18  Nous pouvons ensuite créer le modèle avec le bloc résiduel défini précédemment. Paramètre que nous allons utiliserMaintenant, l’entraînement prendra environ 10 minutes sur une carte graphique Tesla T4

Résultat

En regardant les résultats de cette expérimentation, nous pouvons voir que le modèle Restnet-18 réussit à extraire des modèles de l’ensemble d’entraînement. Les filtres appris par le modèle ont également réussi à détecter des modèles dans l’ensemble d’apprentissage et les prédictions ont atteint une précision d’environ 50%. Ce résultat est prometteur. Il est important de mentionner que le jeu de données a été conçu pour être relativement réaliste, c’est-à-dire qu’il s’agit d’entraîner le modèle sur un jeu de données historique et de faire la prédiction sur un jeu de données dont la date est postérieure à celle du jeu de données d’entraînement. Le cas contraire donne des résultats plus impressionnants de ~60%, mais ceux-ci ne sont pas réalistes.

 

Conclusion

L’utilisation du modèle d’apprentissage profond pour apprendre les signaux des graphiques techniques s’avère être un succès. Le modèle a prouvé qu’il prenait la bonne décision entre acheter, ne rien faire et vendre avec une précision de 50%, ce qui est supérieur au hasard (33%) et au fait de toujours prendre la classe dominante (40%). L’utilisation du modèle dans la pratique reste inconcevable sans l’utilisation d’autres outils d’analyse.

Les résultats de l’article m’impressionnent personnellement car j’ai encore du mal à croire que des signaux puissent être cachés dans des données historiques car le passé n’est pas garant de l’avenir.

En réalité, l’analyse technique est utilisée par de nombreux traders et investisseurs pour prendre des décisions d’achat et de vente d’actifs. Cependant, ces méthodes ne tiennent pas compte des fondamentaux d’une entreprise ou d’un marché, tels que les données financières, les nouvelles économiques, les facteurs macroéconomiques, etc. Par conséquent, l’analyse technique est souvent utilisée en combinaison avec l’analyse fondamentale pour obtenir une image plus complète des marchés financiers.

Quelques points qu’il pourrait être intéressant d’approfondir :

  • Visualisation des filtres appris par le modèle.
  • Augmenter le volume des données utilisées.
  • Ajouter plus de courbes d’analyse fondamentale sur les graphiques.
  • Tester différents modèles, car un seul a été testé.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.