Discussion de l'article "Des matrices aux modèles : comment construire un pipeline ML en MQL5 et l’exporter au format ONNX"

Un nouvel article Des matrices aux modèles : comment construire un pipeline ML en MQL5 et l’exporter au format ONNX a été publié :

L’article décrit la mise en place d’un pipeline ML coordonné dans MetaTrader 5, avec une séparation des rôles : Python entraîne le modèle et l’exporte au format ONNX, tandis que MQL5 reproduit la normalisation et l’ACP à l’aide de matrix/vector et effectue l’inférence. Cette approche rend les entrées du modèle stables et vérifiables, et le Testeur de Stratégie de MetaTrader 5 fournit des métriques pour analyser le comportement du système.

Ce qui rend l’apprentissage automatique (ML) intimidant dans le terminal, ce n’est pas tant le modèle lui-même que tout ce qui l’entoure. On pourrait croire qu’il est impossible de se passer d’une pile technique distincte, de scripts Python et d’une intégration complexe. On finit donc par avoir l’impression que le ML est quelque chose d’extérieur à MetaTrader 5.

Mais une fois les couches superflues retirées, les choses deviennent plus claires. Tout pipeline ML est une suite d’opérations de base : générer des caractéristiques, les mettre à l’échelle, supprimer la redondance et transmettre le résultat au modèle. Il ne s’agit pas de la magie des réseaux neuronaux, mais d’algèbre linéaire ordinaire.

Dans cet article, nous suivrons ce chemin étape par étape, sans théorie superflue, en nous appuyant sur les matrices et les vecteurs comme outil principal. L’accent est mis sur l’objectif principal : comment obtenir des résultats reproductibles aussi bien à l’entraînement que dans un environnement de trading réel.

Pipeline ML


Auteur : MetaQuotes

À mon humble avis, normaliser et calculer l'ACP sur l'ensemble des données avant de les diviser en échantillons d'apprentissage et de validation revient à prédire l'avenir. Lorsque vous travaillez en ligne, vous n'avez pas la possibilité de modifier la normalisation ni d'adapter l'ACP en fonction des dernières données. Une expérience rigoureuse consisterait à diviser d'abord les données en deux ensembles, puis à effectuer la normalisation et l'ACP uniquement sur la partie « in-sample », avant d'appliquer les métaparamètres de transformation des données d'entrée ainsi obtenus à la partie « out-of-sample ».
Stanislav Korotky #:
À mon humble avis, normaliser et calculer l'ACP sur l'ensemble des données, puis seulement ensuite le diviser en échantillons d'apprentissage et de validation, revient à prédire l'avenir. Lorsque vous travaillez en ligne, vous n'avez pas la possibilité de modifier la normalisation ni d'adapter l'ACP en fonction des dernières données. Une expérience rigoureuse consisterait à diviser d’abord les données en deux ensembles, puis à effectuer la normalisation et l’ACP uniquement sur la partie « in-sample », avant d’appliquer les métaparamètres de transformation des données d’entrée ainsi obtenus à la partie « out-of-sample ».
D'ailleurs, tous les forums commettent encore cette erreur, notamment en ce qui concerne la décomposition en ondelettes suivie d'un traitement et d'un apprentissage.

En conséquence, même un indicateur à aiguilles classique affiche des aiguilles « aux extrêmes ».

C’est dangereux, on ne comprend pas tout de suite où est le piège.