MQL5 : le langage du trading algorithmique expliqué

Cristina BalanPar

MQL5 est le langage de programmation de la plateforme MetaTrader 5. Ce nom désigne aussi, par extension, tout un écosystème : documentation, éditeur, testeur de stratégies, place de marché pour robots et service de copie de signaux. Pour beaucoup de traders, « MQL5 » évoque autant la communauté d’algorithmiciens que le langage lui-même.

Cette page explique ce qu’est MQL5, ce qu’on peut programmer avec, comment fonctionne l’environnement de développement, et surtout quelles sont les limites réelles du trading algorithmique. Parce qu’un langage, aussi puissant soit-il, ne transforme pas une idée floue en stratégie rentable : la rigueur, les coûts et la gestion du risque restent décisifs.

Qu’est-ce que MQL5, exactement ?

MQL5 signifie MetaQuotes Language 5. Il s’agit d’un langage de programmation créé par MetaQuotes pour sa plateforme MetaTrader 5, destiné à écrire des programmes de trading : conseillers experts, indicateurs personnalisés, scripts et bibliothèques de fonctions. Sa syntaxe est volontairement proche de celle du C++, avec des types, des classes, l’héritage et la programmation orientée objet.

Le langage gère les spécificités du trading : fonctions d’accès aux cotations et au compte, passage et modification d’ordres, gestion des événements du terminal. Un programme MQL5 réagit à des événements définis, comme l’arrivée d’une nouvelle cotation ou l’ouverture du marché, en exécutant le code que vous avez écrit.

Précision utile : MQL5 n’est pas la mise à jour automatique de MQL4, le langage de MetaTrader 4. Les deux langages ont coexisté, et MQL4 a été entièrement révisé en 2013 et 2014, au point de rejoindre le niveau de MQL5 et de partager le même éditeur, appelé MetaEditor, à partir de la build 600. Les programmes restent cependant spécifiques à chaque plateforme.

Pourquoi les traders programment-ils leurs outils ?

Le trading algorithmique répond à trois besoins concrets. Le premier est la discipline : un programme applique des règles définies à l’avance, sans hésitation ni interprétation émotionnelle au moment de passer l’ordre. Le deuxième est la répétabilité : les mêmes conditions de marché déclenchent les mêmes décisions, ce qui permet de mesurer une stratégie plutôt que des intuitions.

Le troisième est le backtest : rejouer une stratégie sur des années d’historique pour compter ses transactions, ses gains, ses pertes et sa pire série perdante avant de risquer le moindre euro. Cette étape, impossible à faire à la main sérieusement, est le cœur de toute démarche algorithmique honnête.

Attention au raisonnement inversé : automatiser une mauvaise idée ne la rend pas bonne. Le programme ne fait qu’exécuter plus vite et plus régulièrement ce que vous avez défini. Si la logique de départ est incohérente ou si les coûts de transaction avalent les gains, l’automatisation accélère simplement la perte. Notre page sur les experts advisors détaille ces principes.

Ce que l’on peut écrire en MQL5

Le langage permet de créer plusieurs familles de programmes. Les conseillers experts, souvent appelés robots, analysent les cours et passent des ordres automatiquement selon leurs règles. Les indicateurs personnalisés calculent et affichent des valeurs sur les graphiques, comme une moyenne mobile ou un oscillateur adapté à votre méthode, sans passer d’ordres.

Les scripts exécutent une action unique et ponctuelle : fermer toutes les positions, placer une famille d’ordres, exporter des données. Les bibliothèques regroupent des fonctions réutilisables entre programmes. Enfin, des composants plus avancés permettent de créer des interfaces graphiques ou des services fonctionnant en arrière-plan du terminal.

Un exemple classique de robot MQL5 : un conseiller expert qui achète lorsque la moyenne mobile courte croise la moyenne longue au-dessus d’un seuil de tendance, avec un ordre stop de protection et une taille de position calculée selon la perte maximale acceptée. La valeur de l’exemple n’est pas dans la règle, mais dans la structure : condition d’entrée, condition de sortie, contrôle du risque, définition de la taille.

Tableau originalDiversifiez votre patrimoineInvestissez dans l’artDes tableaux originaux, pièces uniques signées par l’artiste. Un actif tangible, loin des écrans et des cotations.Voir les tableaux →

Quelques notions de base du langage

Un programme MQL5 s’articule autour de fonctions événementielles : OnInit, exécutée au chargement du programme, OnTick, appelée à chaque nouvelle cotation de l’instrument, OnTimer, déclenchée à intervalles réguliers, et OnDeinit, appelée au déchargement. Cette structure impose d’emblée une bonne habitude : initialiser ses données, réagir aux événements, nettoyer à la sortie.

Le langage fournit les types classiques du C++ — entiers, réels, booléens, chaînes, tableaux, structures et classes — avec une bibliothèque de fonctions orientée trading : accès à l’historique des cotations, informations sur le compte et les positions, envoi et suivi des ordres. La gestion des erreurs fait partie du métier : chaque appel sensible retourne un code de retour, et un programme sérieux teste ces codes plutôt que de supposer que tout réussit.

Un conseil de bon sens avant d’écrire la moindre ligne : écrivez d’abord vos règles sur papier, avec leurs conditions d’entrée, de sortie et de dimensionnement. Traduire en MQL5 une spécification claire est un exercice de programmation ; découvrir sa stratégie en la codant est la meilleure façon de mélanger improvisation et erreurs.

MetaEditor, l’environnement de développement

MQL5 se développe dans MetaEditor, l’éditeur intégré au terminal MetaTrader 5. Il regroupe l’édition du code avec coloration syntaxique, la compilation en fichiers exécutables, un débogueur pour exécuter le programme pas à pas et repérer les erreurs, ainsi que des outils de mesure des performances du code.

La documentation officielle de référence est publiée sur le site mql5.com, avec la description de chaque fonction, des exemples et un guide du langage. La communauté s’est construite autour de ce même site : forum, articles pédagogiques, base de code partagée où l’on peut lire des programmes complets et apprendre en exemple.

Cet écosystème documentaire est l’un des grands atouts de MQL5 face à des solutions propriétaires fermées : un débutant motivé trouve une réponse documentée à la quasi-totalité des questions de base. En revanche, rien ne remplace les fondamentaux de la programmation : types, structures, portée des variables et gestion des erreurs s’apprennent avant d’écrire un robot qui gère de l’argent réel.

Le testeur de stratégies de MetaTrader 5

Le testeur intégré à MetaTrader 5 est l’un des plus aboutis du marché du trading de détail. Il rejoue une stratégie sur l’historique d’un instrument avec plusieurs niveaux de précision, de la simulation rapide à cotation par cotation jusqu’à la reproduction des ticks réels enregistrés.

Le testeur permet l’optimisation : le programme essaie des milliers de combinaisons de paramètres et mesure les résultats de chacune. Le réseau de calcul partagé MQL5 Cloud Network permet de distribuer ces calculs sur des machines louées à la communauté pour réduire des optimisations qui prendraient des jours en local.

Deux avertissements honnêtes. D’abord, l’optimisation excessive produit des stratégies surajustées à l’historique, excellentes sur le passé et muettes sur le futur : c’est le piège numéro un du backtest. Ensuite, la qualité du résultat dépend des données et de la modélisation des coûts : spreads, commissions, slippage et swaps doivent être intégrés, faute de quoi le test surestime systématiquement la performance. Une pratique saine consiste à réserver une partie des données, jamais utilisées lors du développement, pour vérifier la stratégie sur une période totalement inconnue du programme.

Le MetaTrader Market, les signaux et les services

L’écosystème MQL5 va au-delà du langage. Le MetaTrader Market est une place de marché intégrée au terminal où des développeurs vendent robots et indicateurs, avec essais et commentaires. Le service Signals permet de copier automatiquement les transactions d’autres traders sur son propre compte, avec des paramètres de gestion du risque.

La plateforme Freelance met en relation ceux qui ont une idée de programme et les développeurs qui la codent. Ces services fonctionnent, mais appellent la même prudence que tout produit financier : un robot vendu avec des captures de gains spectaculaires ne doit rien prouver, un vendeur de signaux peut avoir un compte chanceux plutôt qu’une méthode, et la copie de transactions reste du trading, avec pertes réelles possibles.

Avant d’acheter ou de copier quoi que ce soit, exigez des statistiques longues et vérifiables, comprenez la logique de la stratégie, et vérifiez le cadre réglementaire du courtier concerné. Notre guide de choix d’un courtier rappelle les vérifications de base, en commençant par l’agrément.

MQL5, Python ou autres langages ?

MQL5 n’est pas seul. MetaTrader 5 expose une API officielle pour Python, le langage populaire de la data : les traders récupèrent les cotations et passent les ordres depuis des scripts Python, en gardant le terminal comme passerelle vers le courtier. Cette approche séduit ceux qui veulent combiner trading et bibliothèques d’analyse de données.

À l’extérieur de MetaTrader, chaque écosystème a son outil : Pine Script sur TradingView pour coder des indicateurs et stratégies dans le navigateur, bibliothèques dédiées aux courtiers directs pour l’exécution algorithmique institutionnelle, ou plateformes open source à héberger soi-même. Le choix dépend de votre courtier, de vos compétences et de la fréquence de vos opérations.

Une chose reste constante : le langage compte moins que la méthode. Un indicateur comme le RSI se calcule aussi bien en MQL5 qu’en Python ; ce qui différencie les résultats, c’est la définition des règles, la gestion de la taille des positions et le coût total des transactions.

Tableau originalDiversifiez votre patrimoineInvestissez dans l’artDes tableaux originaux, pièces uniques signées par l’artiste. Un actif tangible, loin des écrans et des cotations.Voir les tableaux →

Apprendre MQL5 : par où commencer

Le parcours classique commence par la documentation officielle : le guide du langage, la référence des fonctions et les exemples fournis avec le terminal. Lire du code existant, le modifier et observer son effet est le meilleur apprentissage : la base de code partagée de la communauté fournit des milliers de programmes commentés.

Ensuite, construisez petit : un script qui affiche une valeur, un indicateur simple, puis un robot minimal avec une règle d’entrée, une sortie et un stop de protection. Testez-le sur données historiques, puis sur un compte de démonstration, pendant une période suffisamment longue pour observer différentes conditions de marché.

Enfin, tenez un journal : datez vos versions, notez ce que chaque version change et pourquoi, et conservez les résultats de test. Cette discipline de développeur est aussi une discipline de trader : elle vous protégera de l’illusion que chaque modification est une amélioration.

Les limites du trading algorithmique avec MQL5

Première limite : le passé ne garantit pas le futur. Un backtest, même soigné, reste une simulation sur des données historiques. Les régimes de marché changent, les périodes de volatilité se succèdent, et une stratégie robuste sur dix ans peut devenir obsolète en quelques mois si son hypothèse de départ disparaît.

Deuxième limite : l’exécution réelle diffère du test. Latence, slippage, rejets d’ordres, spreads variables lors des annonces : le compte réel réserve des surprises que le testeur ne reproduit qu’imparfaitement. La prudence impose de démarrer avec des tailles réduites et de surveiller chaque divergence entre attendu et constaté.

Troisième limite : la technique ne remplace pas la décision. Quand arrêter une stratégie qui perd ? Quel montant allouer ? Ces questions n’ont pas de réponse algorithmique universelle. Elles se traitent avec des règles écrites avant de commencer, et avec une honnêteté constante sur ses propres résultats.

Quatrième limite, plus prosaïque : un robot tourne quelque part. Sur un ordinateur personnel, une coupure de connexion, une mise à jour Windows ou un redémarrage interrompent la stratégie au milieu d’une position ouverte. Beaucoup d’algorithmiciens hébergent donc leurs programmes sur un serveur privé virtuel, avec ses propres coûts et ses propres obligations de sécurité : accès protégé, mises à jour, surveillance. Quel que soit l’hébergement, la règle reste la même : un programme non surveillé finit toujours par rencontrer la situation que son auteur n’avait pas prévue, et la manière dont vous l’avez préparée à cette rencontre détermine l’ampleur des dégâts.

FAQ sur MQL5

MQL5 est-il gratuit ?

Le langage, l’éditeur MetaEditor et la documentation sont fournis gratuitement avec MetaTrader 5. Les coûts éventuels concernent les programmes achetés sur le Market, les services de signaux ou le réseau de calcul, ainsi que bien sûr vos coûts de trading chez le courtier.

Quelle est la différence entre MQL4 et MQL5 ?

Ce sont deux langages distincts, chacun lié à sa plateforme. MQL4 a été révisé en 2013-2014 pour rejoindre le niveau de MQL5 et partager le même éditeur, mais un programme reste spécifique à MT4 ou à MT5 : il doit être adapté pour changer de plateforme.

Faut-il savoir programmer pour utiliser MQL5 ?

Pour écrire soi-même ses programmes, oui : les bases de la programmation sont indispensables. Pour utiliser des programmes existants, non : installer un conseiller expert acheté ou copié ne demande pas de coder, mais demande de comprendre ce qu’il fait, ses paramètres et son cadre d’utilisation avant de l’activer sur un compte réel.

Peut-on vendre un robot écrit en MQL5 ?

Oui, via le MetaTrader Market, qui gère la distribution et la protection des licences directement depuis le terminal. La vente n’efface pas vos obligations d’honnêteté sur les performances affichées : des promesses de gains garantis ruineraient autant votre réputation que votre responsabilité juridique.

Qu’est-ce que le MQL5 Cloud Network ?

C’est un réseau de calcul partagé qui distribue les optimisations du testeur de stratégies sur des machines mises à disposition par la communauté, moyennant rémunération. Il sert à accélérer les calculs, pas à améliorer la qualité d’une stratégie.

Mieux vaut-il MQL5 ou Python pour débuter ?

MQL5 s’impose si vous restez dans l’écosystème MetaTrader, car tout est intégré au terminal. Python est préférable si vous visez l’analyse de données ou des infrastructures personnalisées. Dans les deux cas, la méthode de trading compte davantage que le langage.