Codez votre avantage : Créez votre premier EA MT5

Ne laissez plus les émotions et les opportunités manquées éroder vos profits. Apprenez à créer votre premier Expert Advisor MT5 avec notre guide MQL5 pas à pas. Transformez votre stratégie manuelle en une machine automatisée qui trade pour vous 24h/24, 5j/7.

Raj Krishnamurthy

Raj Krishnamurthy

Directeur de Recherche

Traduit par
Yannick MbekiYannick Mbeki
March 12, 2026
20 min de lecture
A sleek, modern image showing lines of code overlaid on a glowing forex chart. The code should be slightly blurred to focus on the concept of 'coding an edge'.
FXNX Podcast
0:00-0:00

Imaginez un système de trading qui ne dort jamais, ne devient jamais émotif et exécute les transactions avec une discipline parfaite, 24h/24, 5j/7. Pour les traders intermédiaires, le passage d'une stratégie manuelle à une exécution automatisée peut sembler intimidant, mais c'est la clé pour débloquer une constance et une efficacité inégalées.

Le trading manuel, bien que précieux, est souvent victime d'erreurs humaines, d'opportunités manquées ou de décisions émotionnelles qui érodent les profits. Et si vous pouviez permettre à vos stratégies de s'exécuter sans faille, en respectant vos règles sans exception ? Ce guide ne vise pas seulement à vous apprendre à coder ; il s'agit de transformer votre approche du trading. Nous vous guiderons à travers les bases de MQL5, vous permettant de construire votre tout premier Expert Advisor fonctionnel pour MetaTrader 5, transformant vos idées stratégiques en puissances automatisées.

Débloquez l'efficacité du trading : Pourquoi MQL5 & les EAs sont importants

Vous avez donc une stratégie de trading qui fonctionne. Vous avez identifié vos règles d'entrée, de sortie et de gestion des risques. Le problème ? Vous êtes humain. Vous avez besoin de dormir, vous êtes distrait, et parfois, soyons honnêtes, vous hésitez ou vous vous précipitez. C'est là que l'automatisation devient votre plus grand allié.

Qu'est-ce que MQL5 et pourquoi automatiser ?

MQL5 signifie MetaQuotes Language 5. Considérez-le comme le langage natif de la plateforme MetaTrader 5 (MT5). C'est un langage de programmation de haut niveau qui vous permet de créer vos propres robots de trading, indicateurs techniques et scripts. Ces robots de trading sont ce que nous appelons des Expert Advisors (EAs).

Un EA est simplement un programme qui s'exécute sur votre graphique MT5, analysant les données du marché et exécutant des transactions sur la base d'un ensemble de règles prédéfinies — vos règles. Cela vous fait passer du statut d'exécuteur manuel de transactions à celui de gestionnaire de stratégie, ce qui représente un bond énorme en termes de sophistication de trading. Bien que les concepts soient similaires à ceux du trading via API Forex, MQL5 est spécifiquement intégré à l'écosystème MT5, ce qui le rend incroyablement accessible.

Les avantages principaux des Expert Advisors

Pourquoi se donner la peine de coder ? Les avantages changent la donne :

  • Éliminer l'émotion : Les EAs sont de la pure logique. Ils ne ressentent ni la peur, ni la cupidité, ni l'espoir. Ils exécutent votre plan avec une discipline de fer, à chaque fois.
  • Exécution 24/5 : Le marché du forex ne dort jamais, mais vous, si. Un EA peut surveiller plusieurs paires 24h/24, vous assurant de ne jamais manquer une opportunité simplement parce qu'elle s'est présentée à 3 heures du matin.
  • Vitesse & Précision : Un EA peut réagir aux conditions du marché et exécuter un ordre en quelques millisecondes — bien plus rapidement que n'importe quel humain ne peut cliquer sur une souris.
  • Backtesting puissant : Avant de risquer un seul dollar, vous pouvez tester votre stratégie sur des années de données historiques pour voir comment elle se serait comportée. C'est crucial pour affiner les règles et renforcer la confiance.

Votre première étape : Configurer MetaEditor

Prêt à commencer ? Votre environnement de codage est déjà intégré à MT5. Il s'appelle MetaEditor.

  1. Ouvrez votre terminal MT5.
  2. Cliquez sur l'icône IDE dans la barre d'outils (elle ressemble à un petit livre ou document avec un 'F' dessus), ou appuyez simplement sur la touche F4.
  3. MetaEditor s'ouvrira. Dans la fenêtre 'Navigateur' à gauche, faites un clic droit sur 'Experts' et sélectionnez 'Créer'.
  4. L'assistant 'MQL5 Wizard' apparaîtra. Sélectionnez 'Expert Advisor (modèle)' et cliquez sur 'Suivant'.
A simple infographic flowchart: 'Manual Strategy' (with an icon of a person thinking) -> 'MQL5 Code' (with a code bracket icon) -> 'Expert Advisor' (with a robot icon) -> 'Automated Trades' (with a chart and arrows).
To visually explain the process of turning a trading idea into an automated system, making the concept less intimidating for beginners.
  1. Donnez un nom à votre EA (par ex., MyFirstEA), ajoutez votre nom dans le champ 'Auteur', et cliquez sur 'Terminer'.

C'est tout ! Vous venez de créer votre premier fichier de projet EA. Une nouvelle fenêtre s'ouvrira avec un modèle de code de base, prêt pour que vous commenciez à construire.

Maîtrisez les bases de MQL5 : Structure du code & syntaxe de base

À première vue, le modèle d'EA par défaut peut sembler intimidant, mais il est construit autour de trois fonctions principales qui gèrent l'ensemble du cycle de vie de votre EA. Décortiquons-les.

Comprendre la structure du fichier EA par défaut

Le cerveau de votre EA est organisé en quelques gestionnaires d'événements clés. Pour un EA de base, vous n'avez besoin de vous concentrer que sur ces trois-là :

  • OnInit(): Cette fonction s'exécute une seule fois lorsque l'EA est attaché pour la première fois à un graphique ou lorsque le terminal démarre. Elle est parfaite pour les tâches de configuration, comme afficher un message de bienvenue ou initialiser des variables.
  • OnDeinit(): L'opposé de OnInit(). Elle s'exécute une seule fois lorsque vous retirez l'EA du graphique ou que vous fermez le terminal. Utilisez-la pour les tâches de nettoyage.
  • OnTick(): C'est le cœur de votre EA. Cette fonction s'exécute chaque fois qu'un nouveau tick de prix arrive pour le symbole auquel votre EA est attaché. Toute votre logique de trading principale — vérifier les conditions d'entrée, gérer les transactions ouvertes, etc. — se trouvera ici.

Variables & types de données essentiels en MQL5

Les variables sont des conteneurs pour stocker des informations. En MQL5, chaque variable doit avoir un type de données spécifique. Voici les essentiels :

  • int: Pour les nombres entiers (par ex., int magicNumber = 12345;)
  • double: Pour les nombres avec des décimales, comme les prix ou les tailles de lot (par ex., double entryPrice = 1.0850;)
  • string: Pour le texte (par ex., string tradeComment = "Mon premier trade EA";)
  • bool: Pour les valeurs vrai/faux (par ex., bool isTradeAllowed = true;)

Construire la logique : Opérateurs, conditions & boucles

Pour prendre des décisions, votre EA a besoin de logique. Celle-ci est construite avec des opérateurs et des instructions conditionnelles.

  • Opérateurs de comparaison : == (est égal à), != (n'est pas égal à), > (supérieur à), < (inférieur à).
  • Instructions conditionnelles : La structure if-else est votre principal outil de prise de décision. Elle vérifie si une condition est vraie et exécute le code en conséquence.

Exemple : Imaginez que vous ne voulez trader que si le spread est inférieur à 10 points.

Cette structure simple est le fondement de toutes les règles de trading. En combinant des données avec des instructions if, vous pouvez dire à votre EA exactement quelles conditions doivent être remplies avant qu'il n'entreprenne une action.

Collectez des données, placez des ordres : Infos de marché & exécution d'ordres

Un EA est inutile sans deux choses : l'accès aux données du marché et la capacité d'exécuter des transactions. MQL5 rend ces deux aspects étonnamment simples.

Récupérer les données de marché en temps réel

Avant de pouvoir prendre une décision, vous avez besoin d'informations. MQL5 fournit une suite de fonctions intégrées pour récupérer n'importe quelle donnée de marché dont vous avez besoin.

A screenshot of the MetaEditor interface with the `OnTick()`, `OnInit()`, and `OnDeinit()` functions highlighted with colored boxes and simple labels explaining what each one does.
To demystify the coding environment and help readers visually identify the key parts of the EA template discussed in the text.
  • Obtenir les prix Bid/Ask : Utilisez SymbolInfoDouble() pour obtenir les prix actuels.
  • Accéder aux données de barres historiques : Besoin du plus haut de la dernière bougie ? Ou de la clôture de la bougie d'il y a 3 jours ? Les fonctions i...() sont votre outil.

Conseil de pro : En MQL5, la barre 0 est la barre actuelle, en cours de formation. La barre 1 est la barre la plus récemment terminée. C'est un point de confusion courant pour les nouveaux codeurs MQL5 !

Exécuter des ordres au marché avec OrderSend

Une fois que votre logique confirme une condition d'entrée, il est temps de placer un ordre. La fonction principale pour cela est OrderSend(). Bien qu'elle semble complexe avec de nombreux paramètres, vous vous habituerez rapidement à la structure. Vous devez d'abord remplir une structure spéciale MqlTradeRequest.

Voici une décomposition simplifiée pour un ordre d'achat au marché :

// 1. Inclure la bibliothèque Trade
#include <Trade\Trade.mqh>

// 2. Créer un objet trade
CTrade trade;

// À l'intérieur de votre fonction OnTick()...

// 3. Configurer les paramètres de l'ordre
double lots = 0.01;
double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); // Achat au prix Ask
double stopLoss = price - 500 * _Point; // SL de 500 points
double takeProfit = price + 1000 * _Point; // TP de 1000 points

// 4. Exécuter l'ordre
trade.Buy(lots, _Symbol, price, stopLoss, takeProfit, "Mon achat EA");

Les paramètres clés à comprendre sont :

  • Volume : La taille de lot de votre transaction.
  • Symbol : La paire de devises ou l'actif à trader.
  • Price : Le prix auquel exécuter.
  • Stop Loss & Take Profit : Vos niveaux de gestion des risques.
  • Magic Number : Un identifiant unique pour les transactions de votre EA, crucial pour gérer plusieurs EAs.

Pour une analyse approfondie de toutes ses capacités, la documentation officielle MQL5 pour les méthodes CTrade est une excellente ressource.

Implémenter une vérification d'erreur de base pour les transactions

Que se passe-t-il si la transaction échoue ? Votre connexion pourrait être interrompue, ou vous pourriez avoir des fonds insuffisants. Il est crucial de vérifier si l'ordre a été passé avec succès.

Après avoir appelé une fonction de trading comme trade.Buy(), vous pouvez vérifier le résultat :

if(trade.ResultCode() == TRADE_RETCODE_DONE)
{
  Print("Ordre d'achat placé avec succès !");
}
else
{
  Print("OrderSend a échoué. Code d'erreur : ", trade.ResultCode());
}

Cette simple vérification empêche votre EA de supposer qu'un ordre a été placé alors que ce n'est pas le cas, ce qui est une partie essentielle des systèmes automatisés robustes.

Codez votre premier EA : Construire une logique de trading simple

La théorie, c'est bien, mais mettons-la en pratique. Nous allons construire un Expert Advisor complet et fonctionnel avec une stratégie très simple. Cela rassemblera tout ce que nous avons appris jusqu'à présent.

Concevoir une stratégie automatisée simple

Notre stratégie sera simple pour démontrer les concepts de base :

  • Instrument : N'importe quelle paire de forex (par ex., EUR/USD).
  • Condition d'entrée : Si le prix Ask actuel passe au-dessus du High de la bougie précédente clôturée, nous placerons un ordre BUY.
A diagram showing the logic of the example EA. A price chart with a candle, its high marked with a line. An arrow shows the current price crossing above this line, leading to a 'BUY' icon.
To provide a clear, visual representation of the simple trading strategy being coded, making the logic easy to understand before they see the full code.
  • Gestion de position : L'EA n'ouvrira qu'une seule transaction à la fois. Il ne placera pas de nouvelle transaction si une est déjà ouverte.
  • Gestion des risques : Chaque transaction aura un Stop Loss fixe de 50 pips et un Take Profit de 100 pips.

Cette logique est simple, mais c'est une base parfaite. La même structure peut être utilisée pour des stratégies plus complexes, comme celles utilisées dans le trading du US30 ou même pour des actifs volatils.

Implémenter la logique dans OnTick()

Rappelez-vous, la fonction OnTick() est l'endroit où toute l'action se déroule. Chaque fois qu'un nouveau tick de prix arrive, notre EA passera par cette liste de contrôle :

  1. Y a-t-il des positions ouvertes ? Si oui, ne rien faire et attendre.
  2. Sinon, obtenir le High de la barre précédente (barre #1).
  3. Obtenir le prix Ask actuel.
  4. Le prix Ask actuel est-il supérieur au High de la barre précédente ?
  5. Si oui, exécuter un ordre BUY avec nos SL et TP prédéfinis.

Mettre le tout ensemble : Un exemple de code pratique

Voici le code complet et commenté de notre EA simple. Vous pouvez le copier et le coller directement dans MetaEditor.

// Inclure la bibliothèque Trade pour une exécution facile des ordres
#include <Trade\Trade.mqh>

// Créer une instance de la classe CTrade
CTrade trade;

//--- Fonction d'initialisation de l'expert
int OnInit()
{
   // Afficher un message dans l'onglet Experts pour confirmer que l'EA a démarré
   Print("MyFirstEA a été initialisé.");
   return(INIT_SUCCEEDED);
}

//--- Fonction de tick de l'expert (s'exécute à chaque nouveau tick de prix)
void OnTick()
{
   // --- ÉTAPE 1 : Vérifier si une position est déjà ouverte ---
   if(PositionsTotal() > 0)
   {
      return; // Si oui, quitter la fonction OnTick. Nous ne voulons qu'un seul trade à la fois.
   }

   // --- ÉTAPE 2 : Obtenir les données du marché ---
   // Obtenir le plus haut de la barre la plus récemment terminée (index 1)
   double prevHigh = iHigh(_Symbol, _Period, 1);
   // Obtenir le prix ask actuel
   double currentAsk = SymbolInfoDouble(_Symbol, SYMBOL_ASK);

   // --- ÉTAPE 3 : Vérifier notre condition d'entrée ---
   if(currentAsk > prevHigh)
   {
      // --- ÉTAPE 4 : Si la condition est remplie, configurer et exécuter l'ordre ---
      double lotSize = 0.01;
      double stopLoss = currentAsk - 500 * _Point;   // SL de 50 pips (500 points)
      double takeProfit = currentAsk + 1000 * _Point; // TP de 100 pips (1000 points)

      // Exécuter l'ordre d'achat
      trade.Buy(lotSize, _Symbol, currentAsk, stopLoss, takeProfit, "MyFirstEA Buy");
   }
}

//--- Fonction de désinitialisation de l'expert
void OnDeinit(const int reason)
{
   Print("MyFirstEA a été retiré.");
}

Une fois que vous avez collé ce code, cliquez sur le bouton 'Compiler' dans MetaEditor. S'il n'y a pas d'erreurs, votre EA est prêt à être testé !

Validez & protégez : Backtesting, débogage & gestion des risques

Écrire le code n'est que la moitié de la bataille. Un automatiseur professionnel passe la plupart de son temps à tester, déboguer et affiner. Les outils intégrés de MT5 rendent ce processus incroyablement puissant.

Backtester votre EA avec le Testeur de Stratégies

Avant même de penser à exécuter votre EA sur un compte réel, vous devez le backtester. Le Testeur de Stratégies simule la performance de votre EA sur des données de prix historiques.

  1. Dans votre terminal MT5, allez dans Affichage > Testeur de Stratégies ou appuyez sur Ctrl+R.
  2. Dans l'onglet 'Paramètres', sélectionnez votre EA nouvellement compilé.
  3. Choisissez le symbole (par ex., EURUSD), l'unité de temps (par ex., H1), et la plage de dates que vous voulez tester.
  4. Définissez votre dépôt initial et votre effet de levier.
  5. Cliquez sur le bouton vert 'Démarrer'.

Une fois terminé, cliquez sur l'onglet 'Backtest' pour voir les résultats. Vous verrez un graphique de votre courbe de capitaux propres et des métriques clés comme :

  • Profit Net Total : Le profit ou la perte final.
A screenshot of the MT5 Strategy Tester results page, with key metrics like 'Profit Factor', 'Maximal Drawdown', and the equity curve graph circled or highlighted.
To show the reader the tangible output of backtesting and familiarize them with the interface they will use to validate their EA.
  • Facteur de Profit : Profit brut divisé par perte brute. Une valeur > 1 est rentable.
  • Drawdown Maximal : La plus grande baisse de votre capital depuis un pic. Comprendre le drawdown est crucial pour l'évaluation des risques.
  • Nombre Total de Transactions : Le nombre de transactions exécutées.

Le backtesting vous permet de voir rapidement si votre logique de base a du mérite avant d'y investir plus de temps.

Techniques de débogage dans MetaEditor

Que se passe-t-il lorsque votre EA ne se comporte pas comme prévu ? Il est temps de déboguer.

  • Utiliser Print() : C'est la forme la plus simple de débogage. Comme nous l'avons fait dans notre exemple, vous pouvez utiliser la fonction Print() pour afficher la valeur des variables ou des messages dans l'onglet 'Experts' du terminal MT5. Cela vous aide à voir ce que votre EA 'pense' en temps réel.
  • Définir des points d'arrêt : Pour des problèmes plus complexes, vous pouvez définir un point d'arrêt en cliquant dans la marge grise à côté d'une ligne de code dans MetaEditor. Lorsque vous exécutez l'EA en mode débogage, il s'arrêtera sur cette ligne, vous permettant d'inspecter les valeurs de toutes les variables à ce moment précis.

Gestion des risques essentielle pour le trading automatisé

N'oubliez jamais qu'un EA est un outil, et il ne sera aussi bon que les paramètres de risque que vous lui donnez. L'automatisation sans gestion des risques est la recette du désastre.

  • Stop-Loss et Take-Profit : Comme nous l'avons fait dans notre EA, définissez toujours vos niveaux de SL et TP lorsque vous placez un ordre. C'est votre principal filet de sécurité.
  • Taille de lot : Notre exemple utilisait une taille de lot fixe (0.01). Une approche plus avancée consiste à calculer la taille du lot en fonction d'un pourcentage du solde de votre compte, vous assurant de risquer le même pourcentage sur chaque transaction.
  • Méfiez-vous de la sur-optimisation : Il est tentant de peaufiner les paramètres de votre EA jusqu'à ce qu'il montre des résultats de backtest parfaits. C'est ce qu'on appelle le 'curve fitting' et cela conduit souvent à de mauvaises performances en direct car vous avez adapté la stratégie trop parfaitement aux données passées. Testez toujours sur des données hors échantillon pour valider vos résultats.

En combinant un backtesting robuste avec des principes de risque solides, vous pouvez construire des EAs qui non seulement performent bien, mais protègent également votre capital. Ces principes sont universels, que vous automatisiez une stratégie pour le S&P 500 ou une simple paire de forex.

Vous venez de franchir une étape importante dans votre parcours de trading, passant de l'exécution manuelle au monde puissant des stratégies automatisées. Nous avons couvert les fondamentaux de MQL5, de la configuration de votre environnement de développement et la compréhension de la syntaxe de base à l'accès aux données de marché, au placement d'ordres, et même à la construction de votre premier Expert Advisor de base. Vous comprenez maintenant les immenses avantages des EAs – supprimer l'émotion, assurer une exécution 24/5, et tirer parti d'un backtesting robuste. Le pouvoir d'automatiser votre trading, de transformer vos idées en actions disciplinées et constantes, est maintenant entre vos mains. Ce n'est que le début de ce que vous pouvez accomplir avec MQL5. Continuez à expérimenter, affiner et construire sur cette base.

Commencez à coder votre premier Expert Advisor MT5 dès aujourd'hui ! Téléchargez MetaTrader 5, ouvrez MetaEditor, et commencez à expérimenter avec les concepts appris dans ce guide. Ne vous arrêtez pas aux bases – modifiez l'exemple, testez de nouvelles idées, et explorez le vaste potentiel de MQL5. Partagez vos progrès et vos questions avec la communauté FXNX pour accélérer votre apprentissage !

Foire aux questions

Quelle est la principale différence entre MQL4 et MQL5 ?

MQL5 est un langage de programmation orienté objet plus avancé que MQL4. Il offre des performances supérieures dans le Testeur de Stratégies, permet de tester sur plusieurs devises simultanément, et a une approche plus structurée de l'exécution des ordres, ce qui le rend plus robuste pour la construction d'EAs complexes.

Dois-je être un programmeur expert pour construire un Expert Advisor MT5 ?

Non, vous n'avez pas besoin d'être un développeur de logiciels professionnel. MQL5 est spécifiquement conçu pour le trading. Avec une compréhension de la logique de programmation de base comme les variables, les instructions 'if', et les fonctions, comme montré dans ce guide, vous pouvez commencer à construire des Expert Advisors fonctionnels et efficaces.

Puis-je faire fonctionner mon Expert Advisor 24/7 sans laisser mon PC allumé ?

Oui, cela se fait généralement en utilisant un Serveur Privé Virtuel (VPS). Un VPS est un ordinateur distant qui est toujours allumé et connecté à internet. Vous pouvez installer MT5 sur un VPS et laisser votre EA fonctionner sans interruption, vous assurant qu'il ne manque jamais une transaction, quel que soit l'état de votre PC local ou de votre connexion internet.

Est-il possible de perdre plus que mon dépôt avec un EA ?

Bien que les EAs automatisent le trading, votre risque est toujours géré par les politiques de votre courtier et les paramètres que vous définissez. Avec des courtiers réputés, vous bénéficiez généralement d'une protection contre le solde négatif. Cependant, il est crucial d'implémenter une gestion des risques appropriée dans votre EA, comme l'utilisation de stop-loss et de tailles de lot appropriées, pour éviter des pertes importantes.

Prêt à trader ?

Rejoignez des milliers de traders sur NX One. Spreads 0.0, 500+ instruments.

Share

À propos de l'auteur

Raj Krishnamurthy

Raj Krishnamurthy

Directeur de Recherche

Raj Krishnamurthy serves as Head of Market Research at FXNX, bringing over 12 years of trading floor experience across Mumbai and Singapore. He has worked at some of Asia's most prestigious investment banks and specializes in Asian currency markets, carry trade strategies, and central bank policy analysis. Raj holds a degree in Economics from the Indian Institute of Technology (IIT) Delhi and a CFA charter. His articles are valued for their deep institutional insight and forward-looking market analysis.

Yannick Mbeki

Traduit par

Yannick MbekiTraducteur

Yannick Mbeki est Traducteur Junior en Finance chez FXNX. Originaire de Douala au Cameroun, Yannick poursuit actuellement ses études en Finance à l'Université Paris-Dauphine. En tant que stagiaire chez FXNX, il apporte une perspective franco-africaine à la traduction de contenus financiers, veillant à ce que l'éducation forex atteigne les audiences francophones en Europe et en Afrique avec un langage financier précis et culturellement adapté.

Sujets:
  • MT5 Expert Advisor
  • Guide MQL5
  • Trading automatisé
  • Créer EA MT5