Création d'un bot de trading à l'aide de l'apprentissage automatique dans l'analyse de séries chronologiques

Ce n'est pas un article technique, il n'y a pas d'analyse détaillée des méthodes et de la théorie. C'est juste que d'une manière ou d'une autre, je me suis laissé emporter par l'apprentissage automatique et, comme beaucoup de gens qui sont nouveaux sur ce sujet, j'ai décidé de créer un bot de trading. Cependant, cela est devenu plus qu'un simple projet de formation. Voilà ce que je veux dire à propos de tout cela.

Un peu sur l'apprentissage automatique


L'apprentissage automatique (Machine Learning; ci-après dénommé MO), d'une manière ou d'une autre, fait partie intégrante de l'industrie de l'intelligence artificielle (Intelligence artificielle; ci-après AI), de la science et de la technologie, qui permet aux systèmes informatiques "intelligents" de simuler le comportement humain. Cette industrie comprend également le concept de Deep Learning, qui affecte les réseaux de neurones et l'imitation de la pensée humaine.

La discipline académique de l'IA est étudiée comme une machine, c'est-à-dire ordinateur, résoudre des problèmes qui ne sont soumis qu'à l'esprit humain. Cela peut être une tâche telle que comprendre le texte lu, ou déterminer les mouvements dans un jeu de dames, ou résoudre un puzzle. MO est de développer des algorithmes qui aident l'ordinateur à tirer des conclusions sur la base des informations reçues. Le carburant de tout dans ce cas, ce sont les données.

image
(c) Oracle

À l'ère de l'information, les informations et les données sont les plus précieuses. Tout ce que nous faisons, hors ligne ou en ligne, génère de nouvelles données: que ce soit du texte, des données audio, vidéo, des mesures sensorielles, des gadgets «intelligents» et l'échange de données entre eux. Les opportunités de collecte de données volumineuses et nouvelles augmentent rapidement en raison de la disponibilité des périphériques matériels, du développement de l'infrastructure cloud et, en raison de l'utilisation massive de ces technologies, d'une baisse de leur coût. La connaissance ou l'information, c'est le pouvoir - l'axiome est vrai mais il y a un «mais».

La possession d'énormes volumes d'informations ne profite pas encore à son détenteur. Mais c'est grâce aux algorithmes et aux méthodes de MO que le Big Data commence à avoir un sens et à bénéficier. Plus spécifiquement, les systèmes MO remarquent des modèles et tirent des conclusions basées sur de nombreux facteurs dans le système de données, sans être programmés pour cela.

Les principales applications de MO aujourd'hui sont la reconnaissance d'objets, la vision par ordinateur, l'analyse de données, le contrôle qualité (surveillance) et l'analyse prédictive.

Nous savons donc que l'apprentissage automatique repose sur des algorithmes de traitement des données et sur les données elles-mêmes. À propos des méthodes MO, vous pouvez vous plonger dans une série distincte d'articles. Leur description serait comparable à la liste des technologies possibles dans le développement Web et leur application si chacune de ces technologies a ses avantages et ses inconvénients.

Il convient seulement de noter qu'avec le temps, les algorithmes et les méthodes de traitement des données s'améliorent, et les données deviennent de plus en plus, ce qui améliore la qualité du traitement des données.

Parmi les types de données, je voudrais faire attention aux séries chronologiques sur l'exemple d'un projet personnel - le trading automatisé de crypto-monnaie.

Analyse des séries chronologiques


Une série chronologique est un type de données qui peuvent être représentées sous forme de séquences de mesures ordonnées à des instants temporels non aléatoires.

L'analyse des séries chronologiques a deux objectifs principaux:
déterminer la nature d'une série et prévoir (prédire les valeurs futures d'une série chronologique à partir des valeurs présentes et passées). Cela implique l'identification et la description du modèle de série et l'interprétation des données, ce qui nous permet de déduire la valeur future de la série.

En utilisant des méthodes MO pour ces données, nous pouvons trouver des modèles plus profonds dans les données. En conséquence, nous obtenons une prévision plus «intelligente» des valeurs futures.

Contrairement à l'analyse d'échantillons de données aléatoires, l'analyse des séries chronologiques est basée sur l'hypothèse que des valeurs séquentielles dans le fichier de données sont observées à intervalles réguliers. Dans d'autres méthodes, nous ne sommes pas importants et ne souhaitons pas souvent relier les observations au temps.

En d'autres termes, pour l'analyse, il est important que l'événement X se soit produit au moment Y. Par exemple, le taux de change, nous sommes importants dans la sélection, où le prix est lié à un moment précis. Si vous perturbez l'ordre des dates dans une série de date-prix, cela perdra tout son sens.

Par exemple, en utilisant des séries temporelles financières, l'algorithme MO peut faire une prévision de croissance ou de baisse de rentabilité. Lors du traitement de fichiers audio, où les séries temporelles seront exprimées par des changements de tonalité par rapport à la synchronisation, vous pouvez analyser la signification du discours. Compte tenu des données météorologiques, des prévisions météorologiques complexes peuvent être dérivées par le MO et la série chronologique.

Si les algorithmes du MO analysent, disons, les images des phoques, alors nous ne nous soucions pas du moment, ni même de l'ordre dans lequel les images arrivent.

Utiliser les crypto-monnaies comme exemple


Dans mon projet, j'ai essayé de répondre à la question de savoir s'il était possible de construire un système de trading entièrement automatique basé sur des méthodes d'apprentissage automatique. Pour ce faire, j'ai trouvé et collecté des données historiques sur les prix du bitcoin, les volumes de transactions, ainsi que les commandes passées et retirées.

Après un certain temps, par essais et erreurs, je suis arrivé à une certaine compréhension de la façon dont ces données doivent être interprétées, quelle architecture de réseau neuronal utiliser, comment étiqueter les données, etc. En particulier, la formation est menée avec une granularité de 10 secondes, et le prix à l'avenir est utilisé comme valeur résultante.

Maintenant, l'algorithme utilise plusieurs modèles formés à des moments différents, car J'ai constamment amélioré l'algorithme d'apprentissage et y ai ajouté de nouvelles données collectées. Pour l'implémentation, le langage de programmation Python a été utilisé avec les bibliothèques Keras, Scipy, Pandas.

Le script pour exécuter les opérations de trading place des ordres sur la plateforme de trading Bitmex 24h / 24. Lorsqu'un signal apparaît pour ouvrir une position et terminer la transaction pertinente, le script attendra que le prix atteigne les niveaux Take Profit ou Stop Loss, ou jusqu'à ce que la transaction expire (Time To Live).


Le fichier journal principal qui affiche le traitement des données en temps réel

L'algorithme de traitement des données repose sur l'analyse des données techniques, l'historique des échanges, les ordres précédents, les ordres et les actualités liés à la crypto-monnaie (via le traitement du langage naturel ou le traitement du langage naturel - NLP).

La principale mesure de réussite est la précision basée sur le nombre de commandes Take profit par rapport au nombre total de commandes. Au total, la prévision est considérée comme réussie lorsque l'ordre Take Profit est atteint, tandis que Stop Loss et Time to Live sont reconnus par le modèle comme infructueux.

Précision = (Nombre de commandes de type Take profit) / (Nombre total de commandes)

La négociation est considérée comme rentable lorsque la précision de 67% est atteinte.
MoisPrécision
Janvier 202072%
Février 202070%
Mars 202060%
Avril 202070%

Vous trouverez ci-dessous les transactions présentées visuellement à l'aide d'une telle solution logicielle.


Les triangles verts sont des transactions réussies (prenez le profit réalisé), les triangles rouges sont infructueux (stop loss, Time to Live). Les triangles regardant vers le haut achètent des offres, les triangles regardant vers le bas vendent des offres.

En garde à vue


Le trading automatisé n'est qu'une des applications les plus évidentes possibles de l'analyse des séries chronologiques. Si nous parlons d'entreprise, il est extrêmement important de prévoir différents indicateurs en fonction des données collectées. Sur la base de ces prévisions, d'importantes décisions commerciales peuvent désormais être prises et, à l'avenir, le volume des décisions prises automatiquement ne fera qu'augmenter.

Effectuer de tels calculs est un processus assez gourmand en ressources. Heureusement, la puissance de calcul des systèmes informatiques est en constante augmentation. De plus, la branche moderne de l'informatique qui étudie l'IA vise à créer des algorithmes qui utilisent le plus efficacement les ressources informatiques disponibles pour identifier les modèles dans les données accumulées.

La dérivation et la construction de prévisions sont impossibles sans l'utilisation de séries chronologiques. C'est ce type de données qui sous-tend les prévisions qui aident les dirigeants à prendre des décisions vitales pour l'entreprise. Sans aucun doute, l'analyse des séries chronologiques et leur traitement par les algorithmes MO fait partie intégrante des processus métier de demain.

All Articles