Discussion de l'article "Développement d'un robot en Python et MQL5 (Partie 1) : Pré-traitement des données"

 

Un nouvel article Développement d'un robot en Python et MQL5 (Partie 1) : Pré-traitement des données a été publié :

Développement d'un robot de trading basé sur l'apprentissage automatique : Un guide détaillé. Le premier article de la série traite de la collecte et de la préparation des données et des caractéristiques. Le projet est mis en œuvre à l'aide du langage de programmation et des bibliothèques Python, ainsi que de la plateforme MetaTrader 5.

Le marché devient de plus en plus complexe. Aujourd'hui, il s'agit d'une bataille d'algorithmes. Plus de 95% du chiffre d'affaires des transactions est généré par des robots. 

L'étape suivante est l'apprentissage automatique. Il ne s'agit pas d'IA forte, mais ce ne sont pas non plus de simples algorithmes linéaires. Le modèle d'apprentissage automatique est capable de réaliser des bénéfices dans des conditions difficiles. Il est intéressant d'appliquer l'apprentissage automatique pour créer des systèmes de trading. Grâce aux réseaux neuronaux, le robot de trading analysera des données volumineuses, trouvera des modèles et prédira l'évolution des prix.

Nous examinerons le cycle de développement d'un robot de trading : collecte de données, traitement, expansion de l'échantillon, ingénierie des caractéristiques, sélection et formation de modèles, création d'un système de trading via Python et suivi des transactions.

Travailler en Python a ses propres avantages : la rapidité dans le domaine de l'apprentissage automatique, ainsi que la possibilité de sélectionner et de générer des caractéristiques. L'exportation de modèles vers ONNX nécessite exactement la même logique de génération de caractéristiques qu'en Python, ce qui n'est pas facile. C'est pourquoi j'ai choisi le trading en ligne via Python.


Auteur : Yevgeniy Koshtenko

[Supprimé]  
Une approche sensée 👍 une manière intéressante de sélectionner les caractères.
 
Merci beaucoup pour cet article intéressant. Je n'ai jamais utilisé Python auparavant, mais vous m'avez donné envie d'apprendre cet outil puissant. J'attends avec impatience les nouvelles publications et j'espère pouvoir suivre la tendance !
 

В задаче прогнозирования EURUSD мы добавили бинарный столбец "labels", указывающий, превысило ли следующее изменение цены спред и комиссию.

D'ailleurs, sur plus de 700 000 données, le prix a changé de manière plus importante que l'écart dans seulement 70 000 cas.

L'EURUSD a un écart de ~0 90% du temps. Vous travaillez avec des données H1. Comment avez-vous obtenu ce résultat ?

 
Кстати, искушенный в машинном обучении читатель уже давно понял, что мы в итоге разработаем модель классификации, а не регрессии. Мне больше нравятся регрессионные модели, я в них вижу немного больше логики для прогнозирования, нежели в моделях классификации. 
Il semble que la deuxième phrase contredise la première.
 

Фича инжиниринг — преобразование исходных данных в набор признаков для обучения моделей машинного обучения. Цель — найти наиболее информативные признаки. Есть ручной подход (человек выбирает признаки) и автоматический (с помощью алгоритмов).

Nous utiliserons une approche automatique. Nous appliquerons la nouvelle méthode de création de caractéristiques pour extraire automatiquement les meilleures caractéristiques de nos données. Nous sélectionnerons ensuite les plus informatives parmi l'ensemble obtenu.

La meilleure caractéristique pour la prédiction des prix s'est avérée être le prix d'ouverture lui-même. Les signes basés sur les moyennes mobiles, les incréments de prix, l'écart type, les variations de prix quotidiennes et mensuelles ont été inclus dans le top. Les signes générés automatiquement se sont révélés peu informatifs.

La qualité des algorithmes de génération de caractéristiques, ou plutôt leur absence totale, pose problème.


Une personne a généré tous les attributs à partir des données OHLCT - cinq colonnes au total. Vous poussez l'algorithme de génération de caractéristiques sur un nombre beaucoup plus important de caractéristiques initiales. Il est difficile d'imaginer que l'algorithme de génération de puce ne puisse pas reproduire la puce MA la plus simple.

 
J'ai apprécié la langue, le style et la présentation des informations dans l'article. Merci à l'auteur !
 

Le regroupement de caractéristiques combine des caractéristiques similaires en groupes afin de réduire le nombre de caractéristiques. Cela permet de se débarrasser des données redondantes, de réduire la corrélation et de simplifier le modèle sans surajustement. La meilleure caractéristique pour la prédiction des prix s'est avérée être le prix d'ouverture lui-même.

Le regroupement a-t-il éliminé les prix HLC parce qu'ils tombaient dans le même groupe que le prix O ?

Si le prix s'est avéré être le meilleur signe pour sa prédiction (et que les autres signes sont ses dérivés), cela signifie-t-il que nous devrions oublier les autres signes et qu'il est raisonnable d'ajouter plus de données d'entrée en passant à un horizon temporel inférieur et en prenant les prix d'autres symboles comme signes ?

[Supprimé]  

Les prix doivent, bien entendu, être retirés de l'échantillon d'entraînement, car le MO n'obtiendra pas de résultats satisfaisants sur les nouvelles données, en particulier s'ils se situent en dehors de la fourchette d'entraînement.

Le caractère informatif élevé des prix découle du caractère unique de leurs valeurs, c'est-à-dire qu'il est plus facile pour l'algorithme de se souvenir ou de faire correspondre les prix avec les étiquettes.

Dans la pratique de la MO, ce ne sont pas seulement les caractéristiques non informatives qui sont éliminées, mais aussi les caractéristiques surinformatives suspectes, qui sont les prix bruts.

Dans un scénario idéal, il devrait y avoir plusieurs attributs qui sont +- également informatifs. En d'autres termes, il n'y a pas de leaders ou d'outsiders évidents. Cela signifie qu'aucun des attributs n'encombre la formation et ne tire la couverture à soi.
 
Maxim Dmitrievsky #:

Les prix doivent, bien entendu, être retirés de l'échantillon d'entraînement, car le MO n'obtiendra pas de résultats satisfaisants sur les nouvelles données, en particulier s'ils se situent en dehors de la fourchette d'entraînement.

Si nous allons jusqu'aux retours, l'algorithme de génération de caractéristiques est obligé de générer une somme cumulative, qui correspondra aux mêmes prix. En même temps, on ne saura pas qu'il s'agit des prix.

[Supprimé]  
fxsaber #:

Si nous passons aux retours, alors l'algorithme de génération de caractéristiques est obligé de générer une somme cumulative, qui sera les mêmes prix. On ne saura pas qu'il s'agit des prix.

Je ne comprends pas

Tous les signes devraient être pseudo-stationnaires, comme des incréments. Les prix bruts devraient être supprimés de la formation.