Catégorie
Plateforme
Niveau
Débutant
Utilisé pour
Exploitation de MT5Évaluation d'EAConception de stratégie

Expert Advisor

Programme de trading automatisé écrit en MQL5 qui s'exécute dans MetaTrader 5 et passe, modifie et clôture des ordres selon des règles programmées, sans intervention manuelle.

aussi : EA, robot de trading, bot de trading, trader algorithmique

Mis à jour

En termes simples

Un programme qui trade à votre place dans MetaTrader. Il n'a ni jugement ni mémoire au-delà de ce que vous lui avez donné : il s'éveille quand la plateforme l'appelle, regarde les quelques éléments qu'on l'a écrit pour regarder, et agit.

Pourquoi c'est important

Les backtests, les chiffres de drawdown, les magic numbers, la disponibilité d'un VPS — tout cela existe parce que c'est un programme, et non une personne, qui passe les ordres. Savoir ce que la plateforme transmet à un EA, et ce qu'elle lui refuse, fait la différence entre lire correctement un résultat et se faire surprendre par lui.

  • Il exécute sans hésiter, et c'est là toute sa valeur comme tout son risque. Le jeu de règles qui ne saute jamais un signal valide ne remarque jamais non plus qu'aujourd'hui est différent.
  • Il voit une tranche étroite : les prix de son symbole, les valeurs d'indicateurs qu'il demande, les positions et le solde du compte. L'actualité, les cotations des autres courtiers et vos autres comptes restent hors de cette fenêtre tant que le code ne va pas les chercher.
  • Il est distribué compilé. Un fichier .ex5 s'exécute mais ne se lit pas, si bien que la confiance d'un acheteur doit venir de preuves de tests publiées et non du code source.
  • Il ne tourne que tant que le terminal tourne. Un EA sur un portable en veille est un EA qui ne trade pas — c'est tout l'argument en faveur d'un VPS.

Dans MetaTrader 5

Où cela apparaît dans MT5

  • Navigateur → Expert Advisors — les EA compilés que le terminal peut voir
  • Fichier → Ouvrir le dossier de données → MQL5/Experts — c'est là que le fichier .ex5 doit se trouver pour apparaître
  • Barre d'outils → Algo Trading — l'interrupteur principal ; un EA affichant un visage triste sur le graphique est un EA que ce bouton bloque
  • Graphique → Propriétés de l'EA (F7) → Paramètres / Général — paramètres et autorisations par EA
  • Affichage → Testeur de stratégie (Ctrl+R) — le même EA exécuté sur des données historiques

Comment les EA s'en servent

  • Le terminal appelle OnInit() une fois à l'attachement, OnTick() à chaque cotation entrante pour le symbole du graphique, et OnDeinit() au retrait.
  • Le travail se fait le plus souvent sur barres clôturées et non à chaque tick : l'EA compare l'heure d'ouverture de la barre courante avec celle qu'il a mémorisée et ressort immédiatement si rien de neuf ne s'est formé.
  • Les ordres partent sous forme de MqlTradeRequest renseignée, ou via l'enveloppe CTrade qui en remplit l'essentiel à votre place.
  • Chaque instance marque ses ordres d'un magic number afin de ne gérer que ses propres positions — sans lui, deux EA se disputent les mêmes tickets.

Réglages courants

Réglage Valeur courante Remarque
Algo Trading (terminal) activé Désactivé après l'installation. Rien ne trade tant qu'il n'est pas activé.
Autoriser l'Algo Trading (par EA, F7 → Général) activé Une autorisation distincte de l'interrupteur général du terminal.
Autoriser WebRequest pour l'URL indiquée désactivé sauf si l'EA en a besoin Seuls les EA qui récupèrent des données externes en ont besoin ; accordez-la par URL, jamais en bloc.
Unité de temps du graphique l'unité de temps pour laquelle l'EA a été conçu Une stratégie M15 sur un graphique H1 est une autre stratégie — OnTick se déclenche à chaque tick, mais la logique de barre lit la période du graphique.
MagicNumber unique par instance en cours Pas par produit : deux graphiques faisant tourner le même EA demandent deux valeurs.

Problèmes d'exploitation fréquents

  • Le terminal est fermé, en veille ou en cours de redémarrage pour une mise à jour — l'EA ne tourne tout simplement pas, et aucune erreur n'est enregistrée.
  • Un nom de symbole différent entre le courtier et les réglages (EURUSD contre EURUSD.m) laisse l'EA attaché et silencieux.
  • Marge libre insuffisante : OrderSend échoue à chaque tentative et l'EA continue d'essayer, si bien que le journal se remplit pendant que le compte ne fait rien.
  • Un contexte de trading occupé lorsque plusieurs EA envoient en même temps — des échecs intermittents et difficiles à reproduire.
  • L'EA a été testé chez un courtier au modèle d'exécution ou à la taille de contrat différents, et se comporte autrement en réel sans aucune modification du code.

Fonctions MT5 associées

OnInit() / OnDeinit()
Appelées une fois à l'attachement et une fois au retrait — c'est là que les paramètres sont validés et les handles créés.
OnTick()
Appelée à chaque cotation entrante pour le symbole du graphique ; le point d'entrée principal.
OnTimer()
Appelée à intervalle fixe défini par EventSetTimer(), pour le travail qui ne doit pas dépendre de l'arrivée des ticks.
OrderSend(request, result)
L'unique appel qui envoie toute opération de trading ; la structure de requête décide de sa nature.
CTrade (Trade/Trade.mqh)
L'enveloppe de la bibliothèque standard que la plupart des EA utilisent au lieu de remplir MqlTradeRequest à la main.

Exemple

Presque tout EA, réduit à l'ordre dans lequel la plateforme l'appelle. Rien de tout cela n'est de la stratégie — c'est le cadre dans lequel une stratégie prend place.

1. OnInit()
une fois, à l'attachement
Valider les paramètres, créer les handles d'indicateurs, définir le magic number.
2. OnTick()
à chaque cotation
Ressortir immédiatement tant qu'aucune barre nouvelle ne s'est formée, puis évaluer les règles.
3. OrderSend()
quand une règle se déclenche
Une MqlTradeRequest renseignée par opération — ouvrir, modifier ou clôturer.
4. OnDeinit()
une fois, au retrait
Libérer les handles. Les positions ouvertes ne sont pas clôturées par cette étape — elles restent.

Retirer un EA d'un graphique ne clôture pas ce qu'il a ouvert. Les positions demeurent, et plus rien ne les gère.

Calcul if (iTime(_Symbol, PERIOD_CURRENT, 0) == lastBarTime) return;

Résultat Un EA en clôture de barre qui ignore les milliers de ticks séparant deux décisions

Comment on l'utilise

Juger un EA que l'on n'a pas écrit soi-même est affaire de preuves : le fichier compilé ne vous dit rien. Voici ce qu'il faut demander.

  • Demandez quelles données le backtest a utilisées et comment il a été modélisé. Des ticks réels et un chiffre de qualité de modélisation veulent dire quelque chose ; une courbe de capital sans légende, non.
  • Demandez le nombre d'opérations et la fenêtre. L'EA médian publié ici a clôturé 362 opérations sur plusieurs années ; quarante opérations sur quatre mois sont une anecdote.
  • Vérifiez si la stratégie laisse courir les perdantes. La moyenne à la baisse et la récupération en grille produisent de belles courbes jusqu'au panier qui ne se rétablit pas, et aucun ratio issu des opérations clôturées ne vous en avertit.
  • Faites-le tourner en démo chez votre propre courtier avant de l'alimenter. Modèle d'exécution, spread, taille de contrat et nommage des symboles diffèrent tous, et modifient tous les résultats.
  • Donnez à chaque instance son propre magic number, et notez laquelle est laquelle avant d'en faire tourner plus de deux.

Chaque EA listé ici publie sa fenêtre de test, sa source de données, sa qualité de modélisation et le registre complet de ses opérations, si bien que ces preuves peuvent être vérifiées au lieu d'être réclamées.

Erreurs fréquentes

Traiter un EA comme un trader doté de jugement

C'est un jeu de règles que la plateforme appelle à chaque tick. Il ne peut pas remarquer que le marché a changé, qu'une banque centrale s'exprime dans dix minutes ou que ses propres résultats se sont dégradés — sauf si quelqu'un a écrit une règle exactement pour cela.

Supposer qu'un résultat de backtest se transpose à votre compte

Le spread, la commission, le modèle d'exécution, la taille du contrat et le jeu de symboles font partie du résultat. Un test chez un courtier est une preuve à propos de ce courtier ; une exécution en démo chez le vôtre est le moyen le moins cher de voir ce qui se transpose.

Retirer l'EA pour l'arrêter, en pensant que les opérations se sont arrêtées aussi

Détacher un EA laisse ses positions ouvertes là où elles sont. Plus rien ne les suit ni ne les clôture ensuite ; elles restent jusqu'à toucher un stop, un objectif ou un stop out.

Faire tourner plusieurs EA sur un compte sans les séparer

Sans magic numbers distincts, chaque EA considère toute position comme la sienne à gérer, et ils se clôturent mutuellement les opérations. La défaillance est silencieuse — aucune erreur, juste des résultats qui ne correspondent à aucune stratégie prise isolément.

En détail

À quoi ressemble un vrai historique d’EA

Une définition décrit le mécanisme ; un historique décrit l’expérience. Les quatorze EA publiés ici livrent la liste complète de leurs opérations clôturées — 9 702 opérations depuis 2019.

Sur les 14 EA publiésValeur
Opérations clôturées9 702
Opérations par EA (médiane)362, de 108 à 4 725
Facteur de profit (médiane)1,39, de 1,27 à 1,52
Pire série de pertes (médiane)6 opérations, la pire 14
Plus longue période sans nouveau sommet de capital (médiane)423 jours, la pire 775
Exécutions en réel vérifiées0

Les expert advisors sont-ils rentables parcourt cet historique EA par EA, et EA contre trading manuel rejoue les mêmes opérations selon les règles d’arrêt qu’une personne applique réellement.

Questions fréquentes

Qu'est-ce qu'un Expert Advisor dans MetaTrader 5 ?
Un programme écrit en MQL5 et compilé en fichier .ex5 qui s'exécute dans le terminal et trade selon ses règles. La plateforme l'appelle à chaque cotation entrante du graphique auquel il est attaché, et il ouvre, modifie et clôture des ordres sans personne au clavier.
Dois-je laisser mon ordinateur allumé pour qu'un EA fonctionne ?
Oui — un EA s'exécute à l'intérieur du terminal, il ne trade donc que tant que le terminal tourne et reste connecté. C'est pourquoi les EA laissés sans surveillance vivent généralement sur un VPS plutôt que sur un ordinateur qui se met en veille ou redémarre.
Puis-je lire la stratégie d'un EA que j'ai acheté ?
Pas depuis le fichier .ex5. Les EA compilés s'exécutent sans exposer leur logique, et c'est précisément pour cela que les vendeurs les livrent ainsi. La stratégie doit être décrite honnêtement dans la fiche et étayée par des preuves de tests publiées.
Puis-je faire tourner plusieurs EA sur le même compte ?
Oui, et c'est courant. Chaque instance a besoin de son propre magic number pour ne gérer que les positions qu'elle a ouvertes, et le compte a besoin de marge libre pour toutes à la fois — les stratégies ne se connaissent pas entre elles.