Comment nous avons construit la plateforme de trading la plus puissante propulsée par le machine learning : l'évolution de MQL et de MetaTrader à travers les archives, les forums et les versions
Des premiers Expert Advisors à l'Assistant IA agentique, au MCP et à OpenBLAS : l’évolution de l’écosystème MQL.
L'histoire de MQL est celle de sa transformation, d'un simple langage pour les stratégies de trading à un environnement complet de développement et d'analyse. Aujourd'hui, l'écosystème combine MetaEditor, MQL5, Python, ONNX, l'Assistant IA agentique, le Model Context Protocol (MCP), OpenBLAS et l'infrastructure Git d'Algo Forge.

Du langage des Expert Advisors à un IDE
Aujourd'hui, il est difficile de considérer MetaEditor comme un simple éditeur de code. Il comprend la documentation, un compilateur, un débogueur, un profileur, la gestion de projet, l'intégration de MQL5.COM, le stockage centralisé du code source, l'intégration de Python, la prise en charge d’ONNX, un Assistant IA, la prise en charge des bases de données SQLite et la possibilité de travailler avec des fichiers CSV sous forme de tableaux modifiables. Pourtant, cette évolution ne s'est pas produite du jour au lendemain.
Dès les premières générations de ses plateformes, MetaQuotes s'est orientée dans une seule direction : donner aux traders non seulement un graphique et un bouton de passage d’ordres, mais aussi la possibilité de décrire une idée de trading en code, de la tester sur des données historiques et de la mettre en œuvre sans intervention humaine. L'histoire de MQL est celle de la façon dont un langage simple pour les Expert Advisors a progressivement évolué vers un environnement d'ingénierie à part entière.
Internet n'a pas tout préservé. Certaines anciennes pages ont entièrement disparu ; d'autres ne subsistent que dans la Internet Archive Wayback Machine ; et certaines peuvent être trouvées dans des archives de forums et d'anciens articles de presse. Néanmoins, il reste suffisamment de matière pour faire apparaître la trajectoire principale de cette évolution :
Fx Charts → MetaQuotes → MetaTrader → MetaTrader 4 → MetaTrader 5
Cette distinction est importante. Les archives contiennent différents numéros de build, des désignations de version internes et des titres d'anciens fils de discussion du forum. Toutefois, l’histoire publique de la plateforme se comprend mieux comme une progression de produits et d’idées plutôt que comme une séquence de numéros de version. Au cœur de cette histoire ne se trouvent pas les versions publiées des logiciels, mais la transformation progressive d'un terminal de trading en un espace de travail pour développeurs.
Les Expert Advisors ont précédé le langage
La plus ancienne référence d'archive au site web MetaQuotes remonte à février 2001. MetaQuotes Software Corp. a été officiellement constituée le 27 novembre 2000, mais les discussions concernant la future plateforme et l'automatisation du trading avaient commencé encore plus tôt. Les archives contiennent un message de forum daté du 23 novembre 2000, soit quatre jours avant l'enregistrement officiel de la société.

Ce qui rend cette découverte précoce particulièrement intéressante, ce n'est ni l'apparence du site web ni ses détails techniques. Le point important est que MQL n'existait pas encore, alors que le concept d’Expert Advisors était déjà présent. Dès le départ, l'accent n'était pas seulement mis sur les graphiques et les cotations, mais aussi sur la programmation des systèmes de trading.
Cela a donné le ton à tout ce qui a suivi. Dès le premier jour, MetaQuotes a considéré le terminal non pas comme une fenêtre passive de surveillance du marché, mais comme un environnement où les utilisateurs pouvaient formaliser une stratégie et déléguer son exécution à un logiciel.
MetaQuotes et la première version de MQL
La première mention publique notable de MQL est apparue en novembre 2001. C’est à ce moment-là que MetaQuotes version 1.78 a été publiée, introduisant la possibilité de créer des stratégies de trading personnalisées — des Expert Advisors — en utilisant le langage interne de la plateforme : le MetaQuotes Language.
L'annonce de l'époque esquissait déjà la vision à long terme de la plateforme : les Expert Advisors devaient définir la logique de trading, être testés sur des données historiques, exécuter automatiquement les opérations sur le compte et gérer les positions ouvertes sans intervention humaine.
Selon les normes actuelles, le premier MQL paraissait remarquablement modeste. L'intégralité de ses spécifications tient sur une seule page HTML. Ce langage ne comportait ni boucles, ni tableaux, ni la structure familière d'un programme complet. Un petit ensemble de variables à virgule flottante prédéfinies était utilisé pour les calculs.
Toutefois, juger cette étape importante uniquement sur la base de sa syntaxe serait une erreur. La véritable avancée ne résidait pas dans l'expressivité du langage, mais dans son niveau d'intégration. Les Expert Advisors fonctionnaient directement dans le terminal client gratuit, accédaient aux séries temporelles et aux indicateurs techniques, pouvaient analyser le marché et envoyer des ordres de trading au serveur.
Cela a marqué l'émergence d'un principe qui allait devenir la norme pour l'ensemble de l'écosystème MQL : une stratégie de trading n'est pas un signal externe qui doit être importé manuellement dans le terminal, mais plutôt un programme exécutable au sein de la plateforme de trading.
MetaTrader : une nouvelle plateforme, une nouvelle échelle
En mai 2002, les tests publics de la nouvelle plateforme MetaTrader ont commencé. Il s'agissait de bien plus qu'une simple mise à jour cosmétique ; cela représentait une refonte majeure des composants du serveur et du gestionnaire. Les annonces mentionnaient la prise en charge de centaines d'instruments, notamment les marchés Forex, CFD, à terme et boursiers, de nouveaux protocoles de communication et la capacité de servir des milliers d'utilisateurs en ligne.
Cette étape est importante dans l'histoire du MQL pour deux raisons.
Premièrement, le terminal est devenu partie intégrante d'un écosystème plus vaste. Le trading automatisé n'était plus conçu comme une application autonome, mais comme un système intégré comprenant un serveur, des outils de gestion, une large base d'utilisateurs et différentes catégories d'instruments financiers.
Deuxièmement, il est devenu évident que l'ancien langage ne suffisait pas. Si l'on attendait des utilisateurs non seulement qu'ils exécutent des Expert Advisors préconfigurés, mais aussi qu'ils décrivent la logique de trading, le langage devait se rapprocher de la programmation conventionnelle.
MQL II : le langage commence à ressembler à un véritable langage de programmation
À l'automne 2002, la version 2.03 de MetaTrader a introduit une nouvelle version du langage : MQL II.

On ne pouvait plus le considérer comme un simple ensemble de formules pour construire des Expert Advisors. La documentation MQL II était environ trois fois plus longue que celle du MQL original, bien qu'elle tienne toujours sur une seule page HTML. Le langage a introduit les variables réelles, les chaînes de caractères et les variables booléennes, les tableaux, les boucles for et while, ainsi qu'un ensemble étendu de fonctions intégrées. Ces fonctions comprenaient les fonctions mathématiques Abs, Ceil, Cos, Exp, Floor, Log, Mod, Pow, Round, Sin, Sqrt et Tan.
C'était un pas en avant significatif. Les utilisateurs travaillaient toujours dans un cadre assez rigide : chaque fichier source définissait essentiellement une fonction exécutable qui était exécutée dès qu'un tick arrivait pour un instrument financier. Dans ce cadre, il était toutefois déjà possible de mettre en œuvre une logique plus complexe et d'utiliser des conditions, des boucles, des tableaux et des calculs mathématiques.
Par la suite, il est devenu possible d'appeler des fichiers compilés externes, résolvant partiellement le problème de l'absence de fonctions personnalisées dans un seul fichier source. En interne, l'implémentation était encore très éloignée des futurs MQL4 et MQL5 : le code s'exécutait sur une machine à pile construite autour de la Notation Polonaise Inverse. Pour les utilisateurs, cependant, ce n'était pas le plus important. L'essentiel était qu'une stratégie de trading évoluait progressivement d'un ensemble de conditions vers un programme à part entière.
En termes de syntaxe, MQL II ressemblait au langage Pascal. Cela aussi était intentionnel. Le Pascal était considéré comme l'un des langages les plus accessibles pour apprendre la programmation, ce qui correspondait parfaitement à la philosophie de MetaQuotes à l'époque : chaque utilisateur du terminal de trading devait avoir la possibilité de développer sa propre stratégie de trading.
Indicateurs personnalisés : MQL va au-delà des Expert Advisors
Au printemps 2003, le développement de MQL a franchi une nouvelle étape importante. En mars, de nouveaux indicateurs intégrés et de nouvelles fonctions de gestion de fichiers ont été ajoutés au terminal : FileOpen, FileClose, FileDelete, FileSize, FileTell, FileSeek, FileWrite, FileReadNumber, FileReadString, et autres.
Mais le tournant majeur est survenu en avril 2003 : la version 3.10 de MetaTrader a introduit la prise en charge des indicateurs personnalisés et des fonctions en MQL.

Cela a élargi le rôle du langage. Jusqu'alors, MQL était principalement associé aux Expert Advisors : l'utilisateur décrivait une stratégie de trading, et le terminal l'exécutait à chaque tick. Les indicateurs personnalisés ont introduit un cas d'utilisation différent : les traders pouvaient désormais programmer non seulement leurs décisions de trading, mais aussi leurs propres méthodes d'analyse du marché.
Ainsi, MQL a commencé à couvrir deux aspects distincts du travail d'un trader : la prise de décisions de trading et la création d'outils d’analyse. Avec le temps, cette combinaison deviendrait la norme dans MetaTrader 4 : Les Expert Advisors, les indicateurs, les scripts et les bibliothèques seraient traités comme différents types de programmes au sein d'un même environnement.
Une étape de transition : de la simplicité à un langage à part entière
À la mi-2003, il était devenu évident que la prochaine plateforme majeure ne pouvait pas simplement être une extension de l'ancienne architecture existante. Un nouveau produit, un nouveau langage et un nouvel environnement étaient nécessaires.
Au cours du processus de développement, des solutions transitoires ont été mises en œuvre, ne laissant quasiment aucune trace sur Internet. Mais la direction des changements était claire. Les développeurs ont décidé de s'éloigner du modèle « un fichier source = une fonction », de l'exécution basée sur la pile et d'une syntaxe trop didactique. Le futur langage serait plus proche des langages de type C, prendrait en charge des structures de programmes plus complexes et permettrait aux utilisateurs de construire non seulement des Expert Advisors simples, mais aussi des systèmes de trading sophistiqués.
Cela a également marqué un changement de philosophie. Au départ, l'idée était à peu près la suivante : chaque trader devait pouvoir programmer sa propre stratégie. Au moment du développement de MQL4, cette idée s'était précisée : tout utilisateur compétent devait pouvoir programmer une stratégie de trading de toute complexité sans quitter le terminal.
En même temps, la simplicité restait une priorité. Les stratégies simples étaient censées rester simples. Mais le seuil de complexité devait être considérablement relevé.
MetaTrader 4 et MQL4 : le terminal devient un IDE
Le développement de MetaTrader 4 a débuté durant l'été 2003. Lors des discussions de l'époque, les développeurs ont progressivement révélé ses capacités futures : tests plus avancés, accès aux séries temporelles pour différents symboles et différentes périodes, fonctions de trading étendues, scripts, indicateurs personnalisés avec un grand nombre de tampons d'indicateurs et appels à des fonctions externes à partir de DLL. Le 5 février 2004, un exemple de code source de programme MQL4 a été publié pour que les développeurs puissent l'examiner.
Début 2004, il était devenu évident qu'il ne s'agirait pas d'une simple mise à jour. Le système était en fait réécrit de A à Z. Cela a pris plus de temps que prévu, mais c'est précisément pourquoi MetaTrader 4 est finalement devenu non pas un simple ensemble d'améliorations, mais une nouvelle plateforme.
Le 18 novembre 2004, MetaQuotes a annoncé la sortie prochaine de la version bêta de MetaTrader 4. Cette annonce était importante non seulement pour ses fonctionnalités de trading et d'analyse. Pour la première fois, un seul produit réunissait un modèle clair pour le trading algorithmique grand public : le terminal, le langage de programmation MetaQuotes Language 4, l’IDE MetaEditor 4, les Expert Advisors, les indicateurs personnalisés et les scripts.

À partir de ce moment-là, MetaTrader n'était plus simplement un terminal de trading doté de capacités d'automatisation. MetaTrader 4 est devenue une plateforme offrant aux développeurs un espace de travail dédié.
Sur le site web MetaQuotes, la documentation MQL4 était remarquablement compacte : types de données, opérations et expressions, instructions, fonctions, variables, le préprocesseur et, plus tard, la syntaxe du langage. La documentation de référence complète était intégrée à MetaEditor. Il s'agissait d'une décision de conception fondamentale : les développeurs n'avaient plus besoin de passer par un navigateur chaque fois qu'ils avaient besoin de documentation. La documentation, le code source et les outils de compilation étaient tous disponibles au même endroit.

MQL4 était déjà un langage de programmation procédural à part entière. Il a introduit des fonctions définies par l'utilisateur, une structure de programme plus familière, des scripts pour une exécution unique, des bibliothèques sous forme de fichiers EX4 et la possibilité d'appeler des fonctions à partir de DLL externes.
MetaEditor est devenu bien plus qu'un simple éditeur de texte. Il offrait une aide à la navigation, la coloration syntaxique, la compilation, la prise en charge de différents types de programmes MQL et une documentation intégrée. À ce stade, la formule qui allait faire de MetaTrader 4 une plateforme largement utilisée pour le trading algorithmique était pleinement établie :
TERMINAL + LANGAGE + ÉDITEUR + AIDE + TESTS + COMMUNAUTÉ
Le 1er juillet 2005, après un long processus de développement, MetaTrader 4 a été lancé en tant que plateforme de trading complète. À partir de ce moment-là, l'histoire ne portait plus seulement sur l'évolution d'un langage de programmation, mais aussi sur l'émergence de l'écosystème : un site web dédié aux développeurs, la Base de Code, des articles, des championnats de robots de trading et une immense communauté d'utilisateurs de MQL4.
Ce sera le sujet de la prochaine partie.
MQL4.COM : le langage se crée une communauté
Après la sortie de MetaTrader 4, il est devenu évident que la plateforme seule ne suffisait pas. Si les utilisateurs pouvaient écrire des Expert Advisors, des indicateurs, des scripts et des bibliothèques, ils avaient également besoin de documentation, d'exemples, de discussions, d'articles et d'un endroit pour partager du code.
Le 8 novembre 2005, un site web dédié aux développeurs MQL4, MQL4.COM, a été lancé.
Il s'agissait d'une étape importante : MQL4 n'était plus seulement un langage intégré au terminal de trading. Il devenait le centre d'un écosystème de développeurs distinct. Un forum, de la documentation, une Base de Code et des articles sont apparus sur le site web. Par la suite, les documents ont commencé à être publiés non seulement en russe et en anglais, mais aussi en chinois.
La Base de Code s'est rapidement remplie de programmes prêts à l'emploi. Moins d'un mois après son lancement, la Base de Code contenait déjà plus de 50 Expert Advisors, environ 200 indicateurs, 35 scripts et 17 bibliothèques. Les Expert Advisors, les indicateurs, les scripts et les bibliothèques ont transformé MQL4, un langage « réservé aux initiés », en un outil pratique à usage généralisé. Les utilisateurs pouvaient non seulement écrire des programmes à partir de zéro, mais aussi étudier le code d'autres personnes, modifier des solutions existantes, poser des questions à leurs auteurs et se familiariser progressivement avec le développement logiciel.
Il est révélateur que dès 2006, l'une des publications de la communauté présentait un Expert Advisor utilisant l'intelligence artificielle — un réseau de neurones monocouche. À l'époque, c'était loin d'être courant. Il n'y avait alors aucun engouement comparable à celui d'aujourd'hui autour de l'IA et de l'apprentissage automatique. Pourtant, l'idée était déjà présente au sein de la communauté : une stratégie de trading pouvait être construite non seulement autour de règles et d'indicateurs, mais aussi sur un modèle entraînable.
Cet épisode permet d'expliquer pourquoi l'évolution ultérieure de MQL a naturellement conduit à Python, ONNX, l’Assistant IA et OpenBLAS. L'intérêt pour l'apprentissage automatique n'est pas apparu de nulle part. Il a simplement fallu du temps pour que la plateforme, le langage et les capacités informatiques atteignent le niveau requis pour la prendre en charge.
Championnat de Trading Automatisé : des Expert Advisors entrent en scène
La prochaine étape majeure était le Championnat de Trading Automatisé. La première compétition pour les systèmes de trading écrits en MQL4 a eu lieu fin 2006. C'était bien plus qu'un simple concours pour gagner de l'argent. Ce championnat a servi de démonstration publique du concept fondamental de MetaTrader 4 : les Expert Advisors pouvaient trader de manière autonome, et leurs performances pouvaient être surveillées en temps réel.
Un total de 258 développeurs ont participé au championnat 2006. La cagnotte s'élevait à 80 000 dollars et la compétition a duré 12 semaines. Pour l'époque, il s'agissait d'une déclaration publique forte : le trading automatisé n'était plus un sujet réservé à un petit groupe de programmeurs. C'était devenu un spectacle que les traders, les courtiers et les développeurs pouvaient suivre.
Mais les prix n’étaient même pas l’aspect le plus important. Le championnat a servi de test de résistance pour l'ensemble de l'infrastructure. Les organisateurs ont préparé les serveurs pour cela, ont lancé de nombreux terminaux, ont assuré des conditions de fonctionnement identiques pour les Expert Advisors et ont donné aux spectateurs la possibilité de suivre les résultats en ligne.
Cette pratique a donné naissance à de nombreuses idées qui se sont avérées utiles par la suite au sein de l'écosystème MetaTrader : vérifications automatisées des Expert Advisors, protection logicielle, hébergement VPS, terminaux clients légers, terminaux web, signaux de trading et, finalement, le Market.
En 2007, le nombre de participants est passé à 603, et en 2008 il a atteint 705. Ce n'était plus un événement ponctuel, mais la preuve de l'ampleur qu'avait atteinte la communauté. Des personnes développaient des robots de trading, débattaient des algorithmes, comparaient les approches, étudiaient des entretiens avec d'autres participants et tentaient de comprendre pourquoi certains systèmes pouvaient survivre au trading réel tandis que d'autres s'effondraient après leurs premières semaines.
Il convient également de noter que les réseaux neuronaux ont continué d'apparaître dans les championnats. Le lauréat de 2007, Alexander Topchilo, a utilisé une approche de réseau neuronal dans son Expert Advisor, en développant et en testant d'abord le système en C++ puis en le portant vers MQL4. Entretien avec Alexander Topchilo (Better)
En 2008, Leonid Velichkovsky a présenté un Expert Advisor utilisant un réseau neuronal entraîné dans NeuroShell. Entretien avec Leonid Velichkovsky (LeoV)
Il s'agit d'un détail important pour l'ensemble de l'article. L'histoire de MQL ne se résume pas à l'histoire de sa syntaxe. C'est l'histoire de traders qui tentent d'intégrer des concepts de plus en plus complexes dans le terminal : des règles simples basées sur des indicateurs aux statistiques, à l'optimisation, aux réseaux neuronaux et à l'apprentissage automatique.
Le championnat n'a pas eu lieu en 2009. MetaQuotes finalisait le développement de sa prochaine plateforme majeure, MetaTrader 5, ainsi que du nouveau langage MQL5.
MQL5 : la nouvelle plateforme commence par le langage
Les discussions sur l'avenir de MQL5 ont commencé bien avant le lancement public de MetaTrader 5. Dès 2007, les utilisateurs de MQL4.COM discutaient activement de ce qu'ils attendaient du nouveau langage. Une recherche sur « MQL5 » en octobre 2007 a renvoyé plus de 15 pages de liens vers des messages sur le forum MQL4.COM. Les utilisateurs réclamaient des performances plus rapides, une conception plus structurée, de nouvelles capacités de test, une gestion des données plus simple et un modèle de programmation plus moderne.
En interne, l'orientation du développement était encore plus radicale. Le nouveau langage a été conçu pour s'éloigner de la représentation intermédiaire caractéristique de MQL4 et générer à la place du code natif. Cela impliquait un niveau de performance différent et des exigences architecturales différentes pour le langage lui-même.
La première mention archivée du domaine MQL5.COM remonte à novembre 2007. Le simple fait qu'un domaine distinct ait émergé montrait qu'il ne s'agissait pas seulement d'une nouvelle syntaxe, mais d'un futur écosystème.

Le 31 mars 2008, le nouveau langage MQL5 a été officiellement annoncé dans un entretien traitant des fonctionnalités du futur langage. L'interview elle-même n'a pas été conservée dans les archives publiques, mais la date est significative : avant même la sortie de MetaTrader 5, les développeurs avaient commencé à préparer la communauté à un nouveau modèle de programmation.
Dès l’été 2009, le site web MQL5.COM promettait déjà explicitement un lancement imminent.

Le 12 octobre 2009, le test bêta de MetaTrader 5 commençait. Un mois plus tard, le 18 novembre 2009, la version bêta de MQL5.community — un nouveau site web pour les développeurs MQL5 — était lancée.
MQL5.Community : plus qu'un forum, une infrastructure
Dès le départ, MQL5.community n'a pas été conçu comme un forum ordinaire. Dès le départ, elle a été conçue autour de la structure d'un écosystème plus large : documentation, forum, Base de Code, articles, ressources pédagogiques et nouveaux services pouvant être ajoutés au fur et à mesure de l'évolution de la plateforme.
Les développeurs se sont efforcés de préserver ce qui fonctionnait déjà sur MQL4.COM : les discussions, la Base de Code, les articles et le modèle familier de partage des connaissances. Mais le nouveau site web se voulait plus large. MQL5 était plus complexe, MetaTrader 5 était plus ambitieux, et la communauté avait donc besoin d'une infrastructure plus robuste.
Un geste important a été la migration des comptes depuis MQL4.COM. Les utilisateurs n'avaient pas à repartir de zéro : ils pouvaient se connecter au nouveau site en utilisant leurs comptes existants. Cela a permis de faire le lien entre les deux époques et a montré que MQL5 n'a pas rejeté l'expérience accumulée avec MQL4, mais l'a développée à un niveau supérieur.
Cela a créé un nouveau point de convergence : le langage, la documentation, les articles, le code, le forum et les futurs services ont tous été réunis en un seul endroit. MQL5.community n'était plus un module complémentaire du terminal, mais une partie intégrante de la plateforme.
MetaTrader 5 et MQL5 : le langage devient un outil d'ingénierie
Le 1er juin 2010, la plateforme de trading MetaTrader 5 a été lancée. Contrairement à la génération précédente, elle a été conçue non seulement pour le Forex, mais aussi pour le trading sur les marchés boursiers. Cela a nécessité des modifications non seulement au niveau du terminal, mais aussi au niveau du langage.
MQL5 a constitué un grand pas en avant par rapport à MQL4. Il s'agissait déjà d'un langage de programmation orienté objet similaire au C++. Les programmes MQL5 étaient compilés en code natif x86 ou x64, offrant un niveau de performance inédit. Dans le même temps, le concept de base de MQL est resté inchangé : les utilisateurs devaient pouvoir écrire aussi bien des programmes simples que des systèmes de trading sophistiqués.
Le modèle de trading est également devenu plus complexe. MetaTrader 5 a introduit des entités distinctes pour les ordres, les transactions et les positions. Les opérations de trading se sont rapprochées des réalités de l'infrastructure boursière, mais pour les développeurs, cela signifiait davantage de détails à gérer. Par conséquent, la bibliothèque standard a été développée parallèlement au langage, incluant des classes de trading pour simplifier le travail avec les cas d'utilisation courants.
À son lancement, MQL5 disposait d'environ 400 fonctions intégrées, soit à peu près le même nombre que MQL4 à cette époque. Mais le nombre de fonctions n'était pas le point le plus important. Ce qui importait, c'était la direction du développement. MQL5 a été conçu comme un langage permettant de construire des systèmes à grande échelle : avec des classes, la gestion d’événements, une bibliothèque standard, des tests, l’optimisation et de futurs services construits autour de la plateforme.
Une section distincte de la documentation a été créée pour les utilisateurs de MQL4, expliquant comment migrer vers MQL5. C'était nécessaire : le nouveau langage était plus puissant, mais il exigeait une façon de penser différente. Si MQL4 avait rendu le trading algorithmique accessible au grand public, MQL5 visait à le rendre plus orienté vers l'ingénierie.
Championnats MQL5 : la nouvelle plateforme est soumise à des tests publics.
En 2010, le Championnat de trading automatisé a fait son retour, cette fois en tant que compétition pour les Expert Advisors MQL5. C'était une étape logique : la nouvelle plateforme avait besoin d'une démonstration publique, et les développeurs devaient voir comment MQL5 fonctionnait non seulement dans des exemples tirés de la documentation, mais aussi dans une véritable compétition de robots de trading sur trois mois.
Le championnat 2010 a enregistré 314 participants. En 2011, on comptait 395 participants, et en 2012, 451. Ces compétitions n'étaient pas seulement une continuation de la tradition des championnats MQL4, mais aussi une vitrine des avantages de la nouvelle plateforme : des performances supérieures, un nouveau testeur de stratégie, un modèle de trading plus sophistiqué et des capacités de développement d’Expert Advisors à grande échelle.
Une fois de plus, les championnats ont rempli de multiples objectifs. Pour les traders, c'était un divertissement et une occasion de voir le trading automatisé en action. Pour les développeurs, c'était un terrain d'expérimentation pratique pour tester leurs idées. Pour MetaQuotes, ils ont généré des retours d'information sur le langage, le terminal, le testeur de stratégie, l'infrastructure et le comportement du programme dans des conditions réelles. Et, bien sûr, ils ont contribué à populariser le langage MQL5.
Nouveau MQL4 : l’influence inverse de MQL5
Après la sortie de MetaTrader 5, on aurait pu croire que le développement de MQL4 allait progressivement passer au second plan. Mais c'est le contraire qui s'est produit. La base d'utilisateurs massive de MetaTrader 4 et le code accumulé au fil des ans nécessitaient une mise à jour soignée, et non un gel.
En juillet 2013, des changements majeurs apportés à MetaTrader 4 et MQL4 ont été annoncés. L'idée était inhabituelle : au lieu d'obliger tout le monde à porter son code de MQL4 à MQL5, MetaQuotes intégrerait autant de fonctionnalités que possible de la nouvelle base technologique dans MQL4.
Cela a conduit à un compilateur unifié pour MQL4 et MQL5, un MetaEditor unifié, la prise en charge de nouveaux outils de développement, une protection renforcée pour les fichiers EX4/EX5 et la possibilité d'utiliser le Market pour les applications dans MetaTrader 4.
C'était une décision importante pour l'ensemble de l'écosystème. MQL4 n'est pas resté un « langage de génération précédente ». Il comprenait désormais des classes, des structures, de nouveaux types de données, des gestionnaires d'événements, un modèle de compilation plus rigoureux, la prise en charge des ressources, de nouvelles capacités graphiques et le même ensemble d'outils de développement que MQL5.
À peine un mois plus tard, une version bêta de l'IDE MetaTrader 4, incluant un nouveau compilateur et l’éditeur MQL4 était publiée. Fin 2013, les tests publics ont commencé pour la version mise à jour de MetaTrader 4 avec le nouveau MQL4 et le Market d'applications. Le 3 février 2014, le build 600 du terminal client MetaTrader 4 a été publié.
Cette version a effectivement divisé l'histoire de MQL4 en deux époques. L'ancien MQL4 était un langage simple, semblable au C, parfaitement adapté aux Expert Advisors et aux indicateurs. Le nouveau MQL4 se rapprochait beaucoup plus du MQL5 : il proposait une programmation orientée objet, un MetaEditor unifié, un nouveau compilateur et la possibilité de créer des applications plus complexes.
Dans le même temps, MetaTrader 4 a conservé son plus grand avantage : sa vaste base existante d’utilisateurs, de programmes et de connaissances n’a pas été abandonnée. L'ancien écosystème s'est plutôt vu doter d'une nouvelle base technologique.
Ainsi, MQL4 et MQL5 ne semblaient plus être deux mondes complètement différents. L'un des langages est né de la pratique généralisée du trading automatisé, tandis que l'autre a émergé d'un effort visant à construire une plateforme d'ingénierie plus rigoureuse et plus puissante. Après la version 600, une couche commune est apparue entre elles : MetaEditor, le compilateur, le style de développement, la protection des programmes et les services de la communauté MQL5.
À ce stade, l'histoire du MQL avait depuis longtemps dépassé le stade de simple « langage pour Expert Advisors ». Tout un écosystème s'était formé autour de lui : des terminaux, un éditeur, une documentation, une Base de Code, des articles, des championnats, le Market, des signaux, des VPS et une immense communauté. Mais la prochaine étape de développement nécessiterait encore plus : des données externes, le calcul distribué, l’apprentissage automatique, les matrices, les réseaux neuronaux et l’algèbre linéaire avancée.
Ce sera le sujet de la prochaine partie.
L'évolution de MQL5 : le langage évolue
Après le lancement de MetaTrader 5, le développement de MQL5 s'est poursuivi sur plusieurs voies parallèles. L'un des axes de travail concernait le langage lui-même : il devenait de plus en plus similaire au C++ et mieux adapté aux projets de grande envergure. Le second concernait les environnements d'exécution : les programmes MQL5 ne se limitaient plus aux Expert Advisors et aux indicateurs exécutés sur les graphiques. Le troisième volet était axé sur le calcul : le testeur de stratégie, l’optimisation dans le cloud, OpenCL, les matrices, Python et ONNX ont progressivement repoussé les limites de ce qui pouvait être fait au sein de la plateforme.
Prises individuellement, ces mises à jour peuvent ressembler à une longue liste de versions. Prises ensemble, elles révèlent toutefois une transformation plus importante : MQL5 évoluait d'un langage destiné aux robots de trading vers un environnement universel de développement, de calcul, d'analyse de données et d'intégration avec des technologies externes.
Le langage se rapproche du C++
Initialement, MQL5 a été développé comme un successeur plus rigoureux et plus rapide de MQL4. Mais dès ses premières années, il est devenu évident que la syntaxe orientée objet de base ne suffisait pas. Les développeurs avaient besoin d'outils pour les projets de plus grande envergure : réutilisation du code, algorithmes génériques, héritage plus sûr, espaces de noms et prise en charge des types de données complexes.
Les ressources ont été introduites le 19 janvier 2011. Terminal Client MetaTrader 5 build 384. Cela a permis d'intégrer directement des images, des données et d'autres fichiers auxiliaires dans un programme. Plus tard, les variables de ressources ont été introduites : du code OpenCL, des données binaires ou du texte pouvaient être inclus dans un programme MQL5 sans transformer le projet en une collection de dépendances externes.
Les modèles de fonction (function templates) ont été introduits le 16 novembre 2012, avec le Terminal de Trading MetaTrader 5 build 722.
Les modèles de classe (class templates) ont été introduits le 23 octobre 2015, avec MetaTrader 5 build 1200 : historique des ticks et paiement direct pour les services. Il s'agissait d'étapes importantes vers la programmation générique. Le même code pouvait être utilisé pour différents types de données sans avoir à réécrire les algorithmes manuellement.
En 2016, le langage a acquis plusieurs fonctionnalités familières aux développeurs C++ :
Les classes abstraites ont été introduites le 1er avril 2016, avec MetaTrader 5 build 1295.
La conversion dynamique de type avec dynamic_cast a été introduite en juin 2016.
Les interfaces ont été introduites le 15 août 2016.
Les modificateurs final et override ont été ajoutés le 16 septembre 2016 — Nouvelle version de la plateforme MetaTrader 5 build 1430 : onglet Exposition mis à jour.
Aucun de ces changements n'était purement cosmétique. Ils ont permis de construire des hiérarchies de classes plus strictes et plus sûres, de définir explicitement l'intention du développeur et de détecter certaines classes d'erreurs lors de la compilation.
Les espaces de noms ont été introduits le 5 octobre 2019, avec MetaTrader 5 build 2170 : portées en MQL5, une mise à jour majeure du Testeur de Stratégie et un hébergement intégré. Ceci est particulièrement important pour les grands projets et les bibliothèques tierces : les noms de classes, de fonctions et de variables ne sont plus en conflit, et le code peut être organisé plus proprement en modules.
Le type de données complex a été ajouté le 21 mai 2021, avec MetaTrader 5 build 2940 : le positionnement des services MQL5 est mis en valeur dans l'espace de travail et la conception a été mise à jour. Il ne s'agissait plus d'une fonctionnalité « destinée aux Expert Advisors », mais d'un pas vers l'ingénierie et le calcul scientifique. Les nombres complexes sont utilisés en analyse spectrale, en algèbre linéaire, en traitement du signal et dans de nombreuses méthodes numériques.
Les types matrix et vector ont été ajoutés le 28 janvier 2022 — MetaTrader 5 build 3180 : vecteurs et matrices en MQL5 et convivialité améliorée. Cela représentait quelques étapes supplémentaires vers l'ingénierie et le calcul scientifique, jetant les bases de l'intégration avec ONNX et de l'utilisation future de la bibliothèque OpenBLAS.
Les types de données complexf, vectorcf et matrixcf ont été ajoutés le 27 septembre 2024. MetaTrader 5 build 4570 : améliorations apportées à la version Web et intégration d'OpenBLAS dans MQL5.
MQL5 acquérait progressivement les caractéristiques d'un langage adapté non seulement à l'écriture de la logique de trading, mais aussi à la construction de grandes bibliothèques, de modules de calcul, d'interfaces de modèles et de code d'infrastructure.
Le Testeur de Stratégie comme environnement de calcul
Un axe de développement distinct est lié au Testeur de Stratégie. Le Testeur de Stratégie a toujours été important dans MetaTrader : sans tests sur les données historiques, le trading automatisé n’est rien de plus qu’une série de conjectures. Mais dans MQL5, le Testeur de Stratégie a commencé à aller au-delà du simple test d'un Expert Advisor.
En 2012, les gestionnaires d'événements OnTesterInit, OnTesterDeinit et OnTesterPass ont été introduits, ainsi que des fonctions permettant de travailler avec des data frames : FrameAdd, FrameFirst, FrameNext et FrameInputs. Cela permettait aux agents de test d'envoyer non seulement un résultat final unique au terminal, mais aussi des données quelconques.
Il est facile de sous-estimer l'importance de cette mise à jour. En pratique, cela a transformé l'optimisation en un processus de calcul plus flexible. Un Expert Advisor pouvait non seulement renvoyer le critère d'optimisation, mais aussi transmettre un ensemble de résultats intermédiaires, de statistiques, de métriques personnalisées ou de données pour une analyse plus approfondie.
Associé au réseau MQL5 Cloud Network, cela a ouvert la voie aux calculs distribués. Formellement, tout restait au sein de l'infrastructure du Testeur de Stratégie. Mais en pratique, MQL5 avait acquis un mécanisme de traitement parallèle des tâches qui ne devaient pas nécessairement se limiter aux explorations paramétriques classiques d'un robot de trading.
Voici un autre exemple d'une tendance générale : les outils initialement créés pour le trading algorithmique s'avéraient progressivement utiles pour un éventail plus large de scénarios informatiques.
MQL5 dépasse les limites du graphique
Le modèle de programme MQL classique était lié à un graphique : un Expert Advisor s’exécutait sur un symbole, un indicateur était dessiné dans une fenêtre et un script effectuait une action ponctuelle. MQL5 a progressivement étendu ce modèle.
La prise en charge d'OpenCL a été ajoutée le 3 février 2012, avec Terminal de Trading MetaTrader 5 build 581. Cela a permis d’exploiter le calcul parallèle sur les périphériques disponibles et d'accélérer les tâches bien adaptées au traitement massif de données.
Des fonctions pour travailler avec des symboles personnalisés ont été ajoutées le 20 décembre 2017 — MetaTrader 5 build 1730 : projets dans MetaEditor et instruments synthétiques. Les développeurs ont acquis la possibilité de créer leurs propres symboles, de les alimenter avec des données historiques, de mettre à jour les ticks et de construire des instruments synthétiques. C’était important pour la recherche : les idées pouvaient être testées non seulement sur des données de courtiers standard, mais aussi sur des séries chronologiques personnalisées, des instruments agrégés et des ensembles de cotations spécialisés.
La prise en charge native des bibliothèques .NET a été ajoutée le 26 octobre 2018 — MetaTrader 5 build 1930 : fenêtres graphiques flottantes et bibliothèques .NET en MQL5. MetaEditor a pris en charge une partie du processus d'import de fonctions, offrant ainsi aux développeurs un moyen plus simple d'utiliser du code externe sans avoir à écrire manuellement des wrappers complexes.
Un nouveau type de programme MQL5, les Services (programmes qui ne sont attachés à aucun graphique), a été introduit le 21 février 2019, avec MetaTrader 5 build 2005 : Calendrier Economique, programmes MQL5 en tant que services et une API pour le langage R. Un service peut s'exécuter en arrière-plan, démarrer en même temps que le terminal et effectuer des tâches d'infrastructure. Cela change considérablement le concept d'un programme MQL : il ne s'agit plus nécessairement d'un Expert Advisor, d'un indicateur ou d'un script.
Les fonctions réseau permettant d'établir des connexions TCP ont également été ajoutées le 21 février 2019, dans la mise à jour MetaTrader 5 build 2005. Un programme MQL5 a acquis la capacité d'échanger des données avec des systèmes externes via des sockets, à condition que les adresses concernées soient explicitement autorisées dans les paramètres du terminal. Cela a élargi l'éventail des scénarios d'intégration : sources de données personnalisées, services locaux, analyses externes et échange de données entre applications.
La prise en charge des bases de données et la prise en charge de DirectX ont été ajoutées le 6 décembre 2019, avec le build 2265 de MetaTrader 5 : fonctions DirectX pour la visualisation 3D en MQL5 et configuration des symboles dans le Testeur de Stratégie. Ces mises à jour peuvent sembler sans lien entre elles, mais elles partagent une idée commune : MQL5 ne se limitait plus aux appels de fonctions de trading et aux tampons d'indicateurs. Des outils pour le stockage, la visualisation, l'intégration externe et le traitement en arrière-plan des données ont été ajoutés au langage.
Python: un pont vers l'analyse des données et l'apprentissage automatique
Le 14 juin 2019, l’intégration de Python a été ajoutée à MetaTrader 5 : intégration de Python, prise en charge du Market et des Signaux sous Wine (Linux/macOS), ainsi que des optimisations majeures du Testeur de Stratégie dans le build 2085 de MetaTrader 5. Il s'agissait d'un des ponts les plus importants entre la plateforme de trading et le vaste monde de l'analyse des données.
À ce stade, Python était déjà devenu l'outil standard pour l'apprentissage automatique, les statistiques, le traitement des données et la visualisation. La prise en charge de Python a permis de récupérer des données de MetaTrader 5 et de les utiliser dans des processus de recherche externes : construction de modèles, test d’hypothèses, préparation d’ensembles de données, analyse des résultats, puis réintégration des informations dans la plateforme de trading.
On retrouve une fois de plus la même logique de développement. MetaTrader ne prétend pas remplacer le monde extérieur dans son intégralité. Au lieu de cela, la plateforme offre aux développeurs une passerelle : l'infrastructure de données et de trading reste dans le terminal, et les flux de travail de recherche et d'apprentissage automatique peuvent s'exécuter là où un riche écosystème de bibliothèques existe déjà pour eux.
ONNX : les modèles d'apprentissage automatique arrivent sur MQL5
L'étape suivante a permis de rapprocher encore davantage l'apprentissage automatique de la plateforme. Le 10 mars 2023, MetaTrader 5 a ajouté la prise en charge de ONNX, un format ouvert pour l'échange de modèles d'apprentissage automatique — build 3620 de MetaTrader 5 : améliorations du terminal Web, prise en charge d'ONNX et multiplication matricielle accélérée en MQL5.
Le concept ONNX est parfaitement adapté à une plateforme comme MetaTrader. Vous pouvez entraîner le modèle en dehors du terminal — par exemple, en Python à l'aide de bibliothèques familières — puis l'exporter au format ONNX et l'utiliser dans un programme MQL5. Cela sépare deux tâches : l’entraînement du modèle et son application à la logique de trading.
Il s'agit d'une simplification majeure pour les développeurs. Il n'est pas nécessaire de réécrire manuellement un réseau neuronal en MQL5 ni de construire l'intégralité de l'infrastructure d'entraînement à l'intérieur du terminal. Des outils externes peuvent être utilisés pour préparer le modèle, et MQL5 peut se concentrer sur l'intégration du modèle dans un Expert Advisor, un indicateur ou une application de recherche.
Ainsi, l'intérêt de longue date de la communauté MQL pour les réseaux neuronaux a pris une forme technologique plus aboutie. Alors que les Expert Advisors à réseau neuronal étaient des expériences isolées menées par des passionnés entre 2006 et 2008, ONNX a offert aux développeurs une méthode standard pour intégrer des modèles entraînés dans MQL5.
Assistant IA : du prompt à un agent à part entière
La première version de l'Assistant IA est apparue dans MetaEditor le 14 juin 2023. Cela raccourcissait déjà le chemin entre une question et le code : un développeur pouvait surligner un extrait de code, demander une explication, recevoir une implémentation de fonction ou une correction, puis intégrer manuellement le résultat dans le programme. C'était utile, mais mécaniquement, cela restait une évolution du format de chat traditionnel : une question, une réponse textuelle, la copie et la vérification.
Le 24 juillet 2026, dans le build 6060 de MetaTrader 5, la plateforme est passée à un modèle différent. Le terminal et MetaEditor ont bénéficié d'une prise en charge intégrée du protocole MCP (Model Context Protocol) et de l'intelligence artificielle agentique. L'Assistant IA ne se limite plus à la génération de texte : il peut planifier une séquence d'actions et invoquer les outils fournis par la plateforme — lire des données, trouver et modifier des fichiers, créer des projets, analyser l'environnement de trading et renvoyer des résultats structurés.
Les développeurs ont explicitement décrit cette distinction : au lieu du mode « question-réponse-copie » devenu obsolète, la plateforme a introduit un agent à part entière capable d’effectuer des tâches complexes. Cela représente un changement d'échelle significatif. L'Assistant n'est plus seulement un générateur d'extraits de code MQL5 ; il devient un acteur à part entière du flux de travail des développeurs et des traders.

MCP : un pont standard entre l'IA et MetaTrader
Le protocole MCP (Model Context Protocol) est une norme ouverte grâce à laquelle un agent d'IA se connecte aux données et aux fonctions d'une application. Pour MetaTrader, cela signifie que le terminal et MetaEditor ne sont pas simplement des fenêtres avec une interface de discussion, mais sont des fournisseurs d'outils spécialisés. Au lieu de recevoir une description abstraite de la plateforme, le modèle obtient une interface de programmation contrôlée pour des opérations spécifiques.
Dans MetaEditor, un agent peut récupérer des informations sur l'espace de travail, rechercher des fichiers et du texte, lire et modifier le code source, créer de nouveaux programmes, vérifier la syntaxe, compiler des fichiers individuels et construire des projets. Dans le terminal, il a accès aux données de marché, aux graphiques ouverts, aux paramètres du compte, aux positions, aux ordres et à l'historique de trading. Chaque serveur MCP peut ajouter des sources externes, telles que des sources publiques de cotations, des actualités et d'autres données à analyser.
Cette architecture fonctionne dans les deux sens. L'Assistant IA intégré utilise les outils MetaTrader et MetaEditor MCP. Mais les mêmes serveurs peuvent être connectés à des systèmes d'agents externes compatibles avec le protocole, notamment OpenAI Codex, Claude Code et d'autres solutions. Les utilisateurs ne sont donc pas liés à une interface ou un modèle unique : la plateforme fournit les outils et l’agent est sélectionné en fonction de la tâche à accomplir.
Le système permet d’utiliser ses propres clés API pour OpenAI, Anthropic, Gemini, DeepSeek, Ollama et d'autres fournisseurs compatibles. Pour les utilisateurs qui se connectent avec leur compte MQL5.community, le plan gratuit MQL5 Lite est automatiquement activé : les paramètres de l’Assistant IA sont synchronisés entre le terminal et MetaEditor.
Assistant IA dans la plateforme de trading
L'assistant intégré à MetaTrader 5 fonctionne dans le contexte du terminal lui-même. Il peut expliquer la situation actuelle d'un instrument particulier, examiner les cotations historiques, visualiser les instruments provenant du Market Watch, analyser les positions ouvertes et l'historique des transactions, identifier les opérations risquées et générer un rapport.

Grâce aux outils réseau connectés, l'agent peut combiner les données internes du terminal avec des informations externes. Un scénario présenté dans l'annonce montrait l'assistant récupérant les dernières informations concernant un instrument, examinant les données étape par étape et les comparant aux cotations. Il ne s'agit plus d'une simple requête à une source de référence, mais d'une analyse en plusieurs étapes dans laquelle l'agent rassemble lui-même les éléments de contexte nécessaires.
Les opérations de trading sont soumises à des contrôles distincts. Dans les paramètres, vous pouvez les désactiver complètement, les autoriser ou exiger une confirmation manuelle. Les requêtes réseau et les opérations en ligne de commande peuvent également être contrôlées séparément. Les recommandations de l'assistant restent informatives : la décision finale et la responsabilité du trading incombent à l'utilisateur.
Assistant IA dans MetaEditor
Dans MetaEditor, l'agent peut créer un nouveau programme MQL5 à partir d'une description en langage naturel, analyser un projet existant, trouver des erreurs, suggérer des correctifs, restructurer le code, améliorer la lisibilité du code et expliquer un algorithme complexe. La principale différence avec la première version est que le résultat ne se limite pas nécessairement au texte du chat : l’agent peut créer ou modifier un fichier, lancer la compilation et vérifier le résultat.

Pour les bases de code importantes, cela est particulièrement essentiel. L'assistant peut rechercher les définitions et les utilisations des identifiants dans plusieurs fichiers, lire les modules inclus associés, prendre en compte la structure du projet et effectuer la tâche sous forme d'une série d'opérations. L'historique des requêtes est enregistré dans l'onglet « Discussions » du Navigateur, ce qui fait de la collaboration avec l'agent une partie intégrante du projet plutôt qu'une simple suggestion de codage ponctuelle.
Le build 6060 a également amélioré l'éditeur lui-même : les blocs de code peuvent désormais être repliés, et toutes les occurrences d'un identifiant sélectionné sont mises en surbrillance. Ces fonctionnalités ne sont pas directement liées à l'IA, mais elles renforcent le même scénario : l'analyse et la maintenance de projets de grande envergure.
De l'écriture du code au cycle « Développer — Tester — Améliorer »
Le principal axe de développement concerne le Testeur de Stratégie. Les réponses dans le fil de discussion sur les tests décrivent le flux de travail automatisé ciblé:
- élaborer une stratégie basée sur les exigences du trader ;
- exécuter des tests et optimiser les paramètres ;
- analyser le rapport, modifier le code ou les paramètres, et relancer le test ;
- interrompre en cas d'échec ou une fois qu'un résultat acceptable est atteint ;
- présenter la version finale et un rapport à l'utilisateur.
Il convient de distinguer ce scénario de la promesse selon laquelle « l’IA trouvera une stratégie rentable ». Un agent peut automatiser le cycle d'ingénierie et tester davantage d'hypothèses, mais il ne peut pas éliminer le sur-apprentissage, les erreurs dans les données sources, l'instabilité du marché ou le besoin de validation indépendante. La valeur du MCP réside ici ailleurs : le testeur, le compilateur, les fichiers de projet et les résultats d’optimisation peuvent être liés en une seule séquence d’actions contrôlée.
Lors des tests bêta, ce flux de travail a été progressivement étendu, avec l'ajout et la configuration d'outils individuels de haut niveau pour le Testeur de Stratégie. Par conséquent, le cycle entièrement autonome décrit ici doit être considéré comme une orientation pour le développement du système agentiel, plutôt que comme une garantie que toute tâche complexe puisse déjà être effectuée sans intervention de l'utilisateur.
Sécurité : donner à l'agent des outils, pas un accès illimité à l'ordinateur
Plus un agent peut effectuer d'actions, plus des limites claires deviennent importantes. L'accès repose sur le principe des autorisations explicites. Le répertoire de travail MQL5 est disponible pour les opérations sur les fichiers sources, et les répertoires de test et de journalisation peuvent être limités à un accès en lecture seule. L'accès au profil utilisateur est activé séparément. Le trading, l'accès au réseau et la ligne de commande sont également contrôlés par des paramètres distincts.
Les opérations en ligne de commande — telles que PowerShell, Python et autres processus externes — sont particulièrement puissantes et potentiellement dangereuses ; elles sont donc clairement indiquées dans l'interface et peuvent être désactivées séparément. Ce mode transforme l'assistant en un agent polyvalent, mais augmente simultanément la surface d'attaque potentielle.
Lors de discussions avec des traders sur le forum, les développeurs ont également souligné l'importance des sauvegardes et du contrôle de version. Pour le développement automatisé, Git n'est pas seulement une commodité, mais un mécanisme de sécurité fondamental : les modifications doivent être visibles, comparables et réversibles. Ici, la nouvelle architecture d'IA s'intègre parfaitement avec MQL5 Algo Forge.
Instructions et skills relatives au projet
Il ne suffit pas à un agent de voir les fichiers ; il doit également comprendre les règles propres à ce projet. À cette fin, les fichiers d'instructions pour MetaEditor et MetaTrader sont utilisés dans le répertoire MQL5\Profiles\Agents. Les utilisateurs peuvent remplacer les instructions par défaut par les leurs afin de définir le style de codage, les conventions de nommage, les procédures de validation et autres exigences persistantes.
Étant donné que ces fichiers se trouvent dans la zone MQL5, ils peuvent être stockés avec les projets dans Algo Forge. Le dépôt peut donc contenir non seulement le code source et le fichier README, mais aussi des instructions pour l'IA : comment construire le projet, quels fichiers ne doivent pas être modifiés, quels tests exécuter et dans quel format le résultat doit être présenté.
Dans les discussions du forum, les développeurs ont également introduit des instructions locales pour chaque projet et skill — des procédures réutilisables et spécialisées pour l'agent. Cela montre la direction dans laquelle le système évolue : d’une messagerie instantanée généraliste à un assistant numérique configurable au sein du projet, connaissant les outils de la plateforme et les règles d’une équipe particulière.
Matrices et vecteurs : préparation de MQL5 pour l'algèbre linéaire sérieuse
Pour l'apprentissage automatique, les statistiques et les méthodes numériques, les classes, les modèles et les intégrations externes ne suffisent pas. Il est également essentiel de disposer d'une méthode pratique pour travailler avec des vecteurs, des matrices et des opérations d'algèbre linéaire de base.
Le 28 janvier 2022, MQL5 a introduit les types matrix et vector (matrice et vecteur). Il s'agissait d'un changement important, et pas seulement d'un point de vue syntaxique. Les matrices et les vecteurs n'ont pas été conçus comme des tableaux ordinaires, mais comme des objets dotés de leurs propres propriétés et méthodes.
Un vecteur a une taille, et une matrice a des dimensions de lignes et de colonnes. Un ensemble distinct de méthodes a commencé à se développer autour d'eux. Les développeurs ont ainsi bénéficié d'une méthode plus naturelle pour écrire du code informatique : créer des matrices, les transposer, les multiplier, calculer des décompositions, résoudre des systèmes d'équations et travailler avec des normes, des rangs et d'autres caractéristiques numériques.
À ce stade, MQL5 était déjà sensiblement différent du langage qui avait débuté avec une logique simple d’Expert Advisor à chaque tick. Le langage incluait désormais des structures pour les modèles mathématiques, alors que la plateforme offrait des liens vers Python, ONNX, OpenCL et l'optimisation cloud.
Mais une véritable base numérique exige plus qu'un simple type de matrice pratique. Il fallait également une bibliothèque d'algèbre linéaire éprouvée sur laquelle on puisse s'appuyer pour la mise en œuvre de méthodes complexes. C’est pourquoi la prochaine étape majeure a été l’intégration d’OpenBLAS.
Ce sera le sujet de la prochaine partie.
Pourquoi OpenBLAS ?
Une fois que les matrices, les vecteurs, les nombres complexes, ONNX et les scénarios d'apprentissage automatique sont apparus dans MQL5, la question suivante est devenue inévitable : quelle base mathématique devrait venir ensuite ?
Vous pouvez écrire chaque méthode manuellement. Vous pouvez ajouter quelques opérations rapides pour les matrices. Vous pouvez vous limiter à la multiplication, aux décompositions et à la résolution de systèmes d'équations. Mais cette approche aboutit rapidement à un ensemble de fonctions disparates, difficiles à développer, à tester et à maintenir.
Une plateforme comme MetaTrader 5 avait besoin de plus que juste une nouvelle et simple « bibliothèque rapide ». Il faut une base standard pour l'algèbre linéaire : large, éprouvée, portable et adaptée à l'expansion progressive des méthodes MQL5.
Avant de choisir OpenBLAS, d'autres options ont également été envisagées : ALGLIB, LIBXSMM, Eigen et oneMKL. Chacune a ses points forts, mais l'objectif de MQL5 était plus large que la simple accélération d'une seule opération ou la couverture d'une seule classe d'algorithmes.
ALGLIB est remarquable en tant que bibliothèque numérique polyvalente : optimisation, approximation, algèbre linéaire, statistiques et autres algorithmes. Cependant, pour le rôle de couche fondamentale au sein d'une plateforme, ce ne sont pas seulement les fonctionnalités qui importent, mais aussi le modèle de licence, les éditions de la bibliothèque, les conditions de distribution, la prévisibilité de l'intégration et le support à long terme.
LIBXSMM excelle dans les opérations spécialisées sur les matrices denses et creuses, en particulier dans les problèmes impliquant de petites matrices et des primitives d'apprentissage profond. Cela en fait un outil utile, mais plus limité. Il fonctionne bien dans les situations où vous devez tirer le meilleur parti d'une classe spécifique d'opérations, mais il ne remplace pas une base solide orientée LAPACK pour un large éventail de méthodes d'algèbre linéaire.
Eigen est une excellente bibliothèque de modèles C++ pour les matrices, les vecteurs, les solveurs numériques et les algorithmes associés. Mais Eigen est fondamentalement une approche C++ : une bibliothèque composée uniquement d’en-têtes, de modèles, de modèles d’expressions et d’une intégration étroite avec le code C++. Pour l'intégration interne à la plateforme MQL5, une approche différente était nécessaire : une couche de calcul stable pouvant servir de base à la mise en œuvre des méthodes matrix, matrixf, matrixc et matrixcf.
oneMKL a également été prise en considération. Il s'agit d'une puissante bibliothèque mathématique dotée d'une longue histoire, d'une optimisation robuste et d'un large éventail de fonctionnalités. Mais la vitesse n'est pas le seul critère important pour un produit de plateforme. Les facteurs clés comprennent la portabilité, le degré de dépendance vis-à-vis du fournisseur, les conditions de distribution, le contrôle de l'intégration et la prévisibilité du comportement selon les différentes configurations utilisateur.
OpenBLAS s'est avéré être le compromis le plus approprié. Il s'agit d'une bibliothèque BLAS optimisée et open source qui offre des performances élevées dans les opérations d'algèbre linéaire de base et sert de fondement à des méthodes plus complexes. Pour MQL5, le facteur clé était précisément sa couverture des tâches LAPACK : non pas une simple opération rapide, mais une base solide pour la SVD, les valeurs propres, la résolution de systèmes d'équations linéaires, les problèmes des moindres carrés, les factorisations et le raffinement de la solution.
Autrement dit, le choix d'OpenBLAS était une décision technique, et non décorative. L’objectif était d’établir une base qui nous permettrait de développer systématiquement des méthodes mathématiques pour MQL5 : des opérations matricielles de base aux algorithmes numériques de plus en plus complexes.
OpenBLAS en MQL5 : des matrices à une base numérique complète
Le 27 septembre 2024, l'intégration native d'OpenBLAS a été introduite dans le build 4570 de MetaTrader 5. Dans le même temps, MQL5 a intégré de nouveaux types de données pour prendre en charge les calculs sur les nombres complexes à virgule flottante :
- complexf — un nombre complexe utilisant des données flottantes ;
- vectorcf — un vecteur contenant des éléments de type complexf ;
- matrixcf — une matrice contenant des éléments de type complexf.
À première vue, cela peut ressembler à un détail technique. En réalité, il s'agit d'une couche importante pour l'avenir des capacités mathématiques de MQL5. MQL5 disposait déjà des types matrix, vector et complex, ainsi que de méthodes associées Mais OpenBLAS nécessitait un ensemble de types plus complet : données réelles et complexes, nombres à virgule flottante et à double précision, et différentes variantes de matrices et de vecteurs.
MQL5 apporte donc bien plus qu'une simple « méthode SVD » ou une « méthode des valeurs propres ». Il s’agit ainsi d’une base sur laquelle des familles d'algorithmes peuvent être construites pour différents types de données et différents problèmes numériques.
Les premières méthodes OpenBLAS dans MQL5 étaient liées à la décomposition en valeurs singulières et au calcul des valeurs propres. C'était un point de départ naturel. La décomposition en valeurs singulières (SVD) et les problèmes de valeurs propres sous-tendent un grand nombre d'algorithmes pratiques : de l'analyse de stabilité et de la réduction de dimensionnalité à l'apprentissage automatique, aux statistiques, au traitement du signal et à la construction de modèles.
Plusieurs variantes algorithmiques ont été ajoutées pour la SVD : divide-and-conquer, QR, QR avec pivot, bissection, Jacobi de haut niveau, Jacobi de bas niveau et méthodes pour les matrices bidiagonales. C’est important car les méthodes numériques ont rarement une seule « meilleure » solution pour toutes les situations. Une méthode rapide peut être moins précise sur des données mal conditionnées, alors qu'une approche plus stable peut s'avérer plus coûteuse en termes de calcul. La plateforme devrait laisser le choix aux développeurs.
Les méthodes de valeurs propres traitent une classe de problèmes différente. Elles sont utilisées pour l'analyse des matrices carrées, des matrices symétriques et hermitiennes, de la stabilité des systèmes, des caractéristiques spectrales et de nombreuses procédures de calcul utilisées en statistique, en optimisation et en modélisation.
La section OpenBLAS de la documentation MQL5 a continué de s'étoffer depuis. C’est un point important : l’intégration d’OpenBLAS n’est pas une mise à jour ponctuelle, mais une orientation de développement continue. Les méthodes matricielles et vectorielles acquièrent progressivement de plus en plus de capacités applicables à différents types de matrices : matrix, matrixf, matrixc, and matrixcf.
La prochaine étape logique consiste à utiliser des méthodes pour affiner les solutions, estimer les erreurs, améliorer la stabilité numérique et effectuer des factorisations supplémentaires. C’est précisément ainsi que se construit une base mathématique solide : non pas en passant de « rien » à « tout », mais en couvrant progressivement un nombre toujours croissant de problèmes LAPACK standard.
Pourquoi cela est important pour un développeur MQL
Pour un trader ordinaire, OpenBLAS peut sembler quelque chose de lointain : une bibliothèque pour mathématiciens, ingénieurs et calculs scientifiques. Mais au sein de l'écosystème MQL, son arrivée a des implications très concrètes.
Les développeurs peuvent créer des modèles plus complexes directement en MQL5. Au lieu de simplement appeler un indicateur, de comparer deux valeurs et d'envoyer un ordre, ils peuvent travailler avec des données sous forme de tableaux, de vecteurs et de matrices. Ils peuvent calculer des décompositions, résoudre des systèmes d'équations, évaluer la stabilité et utiliser des méthodes qui devaient auparavant être transférées vers Python, C++ ou des bibliothèques tierces.
Cela ne rend pas Python, ONNX ou les outils externes obsolètes. Au contraire, ils commencent à se compléter plus efficacement. Python est parfaitement adapté à la recherche, à l'entraînement de modèles et à la préparation des données. ONNX est pratique pour importer un modèle entraîné dans le terminal. OpenBLAS fournit à MQL5 une base numérique robuste pour les cas où des calculs doivent être effectués au sein de la plateforme.
De ce fait, MetaTrader 5 devient progressivement un environnement où les utilisateurs peuvent non seulement trader et tester des Expert Advisors, mais aussi construire un flux de travail informatique complet :
- récupérer les données du marché ;
- préparer les caractéristiques et les matrices ;
- utiliser un modèle ONNX ;
- effectuer des calculs numériques à l'aide de matrices/vecteurs ;
- tester l'idée dans le Testeur de Stratégie ;
- paralléliser l'optimisation ;
- intégrer le résultat dans un Expert Advisor, un indicateur ou un service.
C’est pourquoi OpenBLAS doit être considéré non pas isolément, mais conjointement avec les étapes précédentes : MQL5, MetaEditor, Python, ONNX, matrices, vecteurs et Assistant IA.
Assistant IA agentique, MCP et OpenBLAS : trois couches d'un même environnement d'ingénierie
À première vue, l'Assistant IA agentique, MCP et OpenBLAS semblent appartenir à différentes parties de la plateforme. L'Assistant IA gère l'intention de l'utilisateur, MCP connecte le modèle aux outils et OpenBLAS exécute les algorithmes numériques. Ensemble, ils forment toutefois un flux de travail informatique cohérent.
L'Assistant IA est chargé de formuler et de décomposer la tâche : comprendre la demande, créer un plan, sélectionner les actions et interpréter les résultats. MCP offre à l'agent un accès contrôlé au terminal, à MetaEditor, aux projets, au marché, à l'historique de trading et aux données externes. OpenBLAS, les opérations matricielles/vectorielles, ONNX et d'autres technologies fournissent au programme MQL5 la puissance de calcul nécessaire pour implémenter le modèle lui-même.
Auparavant, les développeurs devaient basculer manuellement entre l'éditeur, la documentation de l'aide, le forum, le Testeur de Stratégie, un notebook Python et les bibliothèques externes. Certains de ces changements de contexte peuvent désormais être décrits comme une tâche unique : examiner le projet, modifier le code, compiler le programme, préparer les données, exécuter l’analyse et produire un rapport. L'agent ne remplace ni le compilateur, ni le Testeur de Stratégie, ni la bibliothèque mathématique ; il les relie.
C’est pourquoi MCP n’est pas moins important que le modèle de langage lui-même. Sans outils spécialisés, même un modèle puissant reste un simple interlocuteur. Avec MCP, il acquiert la possibilité d'agir au sein de la plateforme, tout en restant dans les limites des autorisations définies par l'utilisateur.
Algo Forge : le code devient un projet
Un environnement d'ingénierie moderne a besoin d'une autre couche essentielle à tout effort de développement sérieux : le contrôle de version, l'historique des modifications, la collaboration et la publication du projet en tant que dépôt vivant. Au sein de l'écosystème MQL, MQL5 Algo Forge a progressivement endossé ce rôle.
Le prédécesseur d'Algo Forge était MQL5 Storage — un dépôt en ligne pour le code source MQL4/MQL5 intégré à MetaEditor. Il répondait déjà à un problème important : les développeurs pouvaient stocker leur code dans un dépôt sécurisé, consulter l’historique des modifications, revenir aux versions précédentes et travailler sur des projets d’équipe directement depuis l’éditeur.
Cependant, le dépôt précédent était basé sur Subversion et était devenu obsolète. Sa logique fonctionnait bien pour stocker et synchroniser le code source. Mais le développement moderne exige davantage : un historique local, des opérations rapides, des branches pour l’expérimentation, la fusion des modifications, le travail hors ligne et une collaboration transparente entre plusieurs développeurs sur un même projet.
Le 6 juin 2025, MetaTrader 5 build 5100 a introduit un dépôt de code source entièrement repensé : MQL5 Storage est passé de Subversion à Git, et simultanément, un nouveau portail de gestion de projet en ligne — MQL5 Algo Forge — a été lancé.
Il s'agit d'un tournant important. Alors que la Base de Code répondait à la question « Où puis-je trouver un exemple tout prêt ? », Algo Forge répondait à une question différente : « Comment gérer un projet en constante évolution ? » Un Expert Advisor ou une bibliothèque complexe ne se résume plus à un simple fichier MQ5. Il peut inclure des fichiers, des configurations de test, des ensembles de paramètres, des modèles, de la documentation, un fichier README, des scripts de support, un historique des expériences et plusieurs branches de développement.
Git change la manière de travailler avec ce type de code. Un développeur peut créer une branche distincte pour une nouvelle idée, la tester dans le Testeur de Stratégie, comparer les modifications, revenir à un état précédent, fusionner une expérience réussie dans la version principale et envoyer le résultat vers un dépôt cloud. L'historique du projet n'est plus conservé dans la mémoire de l'auteur ni dans des dossiers portant des noms tels que « final_new_2 ». Il devient partie intégrante de l'IDE.
Algo Forge ajoute une dimension sociale à cela. Les développeurs peuvent explorer les projets publics, suivre les auteurs, créer des équipes, forker des projets, cloner des dépôts, consulter les fichiers, les commits et les branches, préparer la documentation et partager des projets en ligne. Pour l'écosystème MQL, cela signifie passer du partage de fichiers de code source individuels à une véritable culture de développement collaboratif.
Ceci est particulièrement important pour les articles et le matériel pédagogique. Le code d'un article ne devrait pas se trouver uniquement dans une archive ou dans un ensemble de fichiers joints. Il peut être configuré comme un projet dans Algo Forge, avec une structure claire, un fichier README.md, préservant l'historique des modifications et offrant aux lecteurs non seulement du texte, mais aussi un point d'entrée fonctionnel. L'article explique le concept, et le dépôt le démontre en pratique.
Ainsi, MetaEditor étend une fois de plus son rôle. À l'origine, c'était un endroit pour écrire et compiler du code. Puis vinrent la documentation, les projets, le débogage, le profilage, l'Assistant IA et les intégrations. Désormais, un flux de travail Git complet fait également partie du tableau : historique, branches, commits, synchronisation et collaboration.
Dans cette optique, Algo Forge n'est pas un « service annexe » distinct, mais bien le prolongement de la même ligne de développement. Un programme MQL a évolué, passant d'un simple Expert Advisor sur un seul graphique à un projet d'ingénierie pouvant être versionné, discuté, développé par une équipe, publié et maintenu pendant des années.
Des Expert Advisors à un environnement d'ingénierie
Si l'on considère l'ensemble de son histoire, l'évolution du MQL apparaît remarquablement cohérente.
Les Expert Advisors sont apparus avant même l’existence d’un langage de programmation à part entière. Puis est apparu le premier MQL : une courte page de documentation, quelques variables et la possibilité d’exécuter une stratégie de trading directement dans le terminal. MQL II a suivi avec les boucles, les tableaux, les types de données et les fonctions mathématiques. Les indicateurs personnalisés ont étendu le langage au-delà des Expert Advisors.
MetaTrader 4 a réuni tous ces éléments dans un modèle grand public : le terminal, MQL4, MetaEditor, la documentation, les Expert Advisors, les indicateurs, les scripts, les bibliothèques et les tests. MQL4.COM a ajouté la communauté, la Base de Code et des articles. Les championnats ont démontré que le trading automatisé pouvait être public, compétitif et à grande échelle.
MetaTrader 5 et MQL5 ont repoussé les limites de la complexité. La programmation orientée objet, le code natif, la bibliothèque standard, un nouveau modèle de trading, un Testeur de Stratégie amélioré, l'optimisation dans le cloud et MQL5.community ont transformé le langage en un outil d'ingénierie plus rigoureux.
Puis MQL5 a influencé l'évolution de MQL4 en retour : un compilateur unifié, un MetaEditor unifié, un nouveau langage, la protection des programmes et la boutique des applications avec le Market. Le produit grand public déjà bien établi a bénéficié d'une nouvelle base technologique.
MQL5 a ensuite commencé à s'éloigner de l’Expert Advisor traditionnel : OpenCL, symboles personnalisés, .NET, services, fonctions réseau, SQLite, DirectX, Python, ONNX, matrices et vecteurs. Tout cela a progressivement élargi la notion de ce que pouvait être un programme MQL.
Assistant IA agentique, Model Context Protocol (MCP) et OpenBLAS ne sont pas des ajouts fortuits à cette histoire. Ils en constituent la suite logique, car ils s'appuient sur le même principe qui était déjà évident en 2001 : donner aux utilisateurs plus d'autonomie au sein de la plateforme.
À l'époque, l'autonomie signifiait la capacité de rédiger un Expert Advisor et d'exécuter une opération de trading sans intervention humaine. Aujourd'hui, cela signifie bien plus : confier une tâche à un agent en langage naturel, lui accorder un accès contrôlé aux outils via MCP, écrire et construire du code, utiliser un modèle d'apprentissage automatique externe, effectuer des calculs d'algèbre linéaire numérique, tester le système sur des données historiques et le déployer dans l'infrastructure MetaTrader.
Non pas une histoire de versions, mais l'histoire d'une idée
Il est facile de transformer l'historique de MQL en une longue liste de dates, de numéros de build et de noms de fonctions. Mais cela ne tient pas compte de l'essentiel.
Il ne s'agit pas d'une histoire sur la façon dont une syntaxe en a remplacé une autre. Il ne s'agit pas non plus de l'histoire de la façon dont de plus en plus d'éléments de menu ont été progressivement ajoutés au terminal.
C'est l'histoire de la façon dont la plateforme de trading a progressivement intégré en son sein de plus en plus le travail des développeurs. La première étape a été l’exécution des Expert Advisors. Ensuite, le langage. Puis l’éditeur de code. Puis la documentation, les tests, la Base de Code, les articles, les championnats, le Market, l'optimisation cloud, les intégrations externes, l'apprentissage automatique, l'Assistant IA, l'algèbre linéaire numérique et la gestion de projet via Algo Forge.
En ce sens, le MetaEditor moderne n'est pas simplement le descendant d'une ancienne fenêtre d'édition d’Expert Advisor. Il s'agit du point d'intégration de l'ensemble de l'écosystème MQL : le langage, la documentation, les projets, le débogage, le profilage, les modèles, les méthodes mathématiques, l'assistance agentielle, les outils MCP et l'infrastructure Git pour le développement collaboratif.
C’est pourquoi le parcours qui mène des premiers Expert Advisors à l’Assistant IA agentique, au MCP et à OpenBLAS ne ressemble pas à une collection d’événements isolés, mais à une ligne de développement continue. Depuis ses débuts, MetaQuotes n'a pas seulement construit un terminal pour surveiller le marché, mais un environnement dans lequel une idée de trading devient un programme, et un programme devient un processus d'ingénierie gérable.
Cette idée continue de guider l'évolution du MQL.
Traduit du russe par MetaQuotes Ltd.
Article original : https://www.mql5.com/ru/articles/22768
Avertissement: Tous les droits sur ces documents sont réservés par MetaQuotes Ltd. La copie ou la réimpression de ces documents, en tout ou en partie, est interdite.
Comment Échanger des Données : Une DLL pour MQL5 en 10 minutes
Optimisation de portefeuille sur le Forex : Intégration de la VaR et de la théorie de Markowitz
L'Histogramme des prix (Profile du Marché) et son implémentation en MQL5
Trading algorithmique basé sur des figures de retournement 3D
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Mais pourquoi diable la version 2001 de Marketwatch affiche-t-elle un fuseau horaire ?!
Oui. C'était intéressant de s'en souvenir. La mémoire humaine est une chose étrange. On oublie vite tout ce qu'il y a de bon, tandis que les mauvaises expériences restent gravées dans la mémoire pendant longtemps. Je me souviendrai longtemps de la transition stressante vers la version 6.0 en conditions réelles. Et puis, les attentes non comblées concernant l’intégration du langage R à l’époque m’ont, dans l’ensemble, déçu. Aujourd’hui, bien sûr, avec le recul, cela semble insignifiant comparé à l’évolution qu’ont connue la communauté, le terminal et le langage.
Au vu des premières réactions et des questions concernant les IA mises en place, on a une impression étrange. Les possibilités proposées ont largement devancé les besoins actuels.
Bonne chance