MQL5 Tutoriel Français : Créer Votre Premier EA en 30 Minutes
Découvrez comment automatiser votre trading sur MetaTrader 5. Ce guide pas-à-pas vous apprend à coder un Expert Advisor fonctionnel, même sans expérience préalable en programmation.
Vous passez des heures devant vos graphiques à attendre le signal parfait ? Vous rêvez d’un assistant infatigable qui exécute votre stratégie 24h/24, sans émotion ni fatigue ? Le trading algorithmique est la solution, et contrairement aux idées reçues, il est accessible. MQL5, le langage de programmation intégré à MetaTrader 5, est l’outil qui permet de donner vie à vos idées de trading. Cet article est un tutoriel concret conçu pour les traders francophones motivés, qu’ils soient débutants en code ou simplement curieux. Nous allons démystifier le processus de création d’un EA (Expert Advisor) en vous guidant, étape par étape, pour construire votre premier robot de trading opérationnel en moins d’une demi-heure. Prêt à automatiser votre première stratégie ?
1. Préparer son environnement de développement MQL5
À lire aussi : notre tutoriel pour copier des signaux Telegram en MQL5
Avant de coder, il faut préparer son atelier. Tout se passe dans MetaTrader 5. Ouvrez votre terminal et localisez l’éditeur intégré, le MetaEditor. Vous pouvez l’ouvrir via le menu « Outils » ou en appuyant sur F4. C’est ici que vous écrirez, compilerez et déboguerez tout votre code MQL5. Pour démarrer un nouveau projet, allez dans « Fichier » > « Nouveau ». Dans l’assistant qui s’ouvre, sélectionnez « Expert Advisor (template) » et cochez la case « OnNext Generation ». Donnez un nom significatif à votre EA, par exemple « MonPremierEA ». L’assistant génère alors automatiquement un squelette de code avec toutes les fonctions de base. Cette structure est votre point de départ. Prenez un moment pour explorer l’interface du MetaEditor : la zone de code centrale, l’onglet « Toolbox » pour voir les erreurs de compilation, et l’onglet « Navigator » pour parcourir vos fichiers. La compilation (F7) transforme votre code en un fichier exécutable (.ex5) que MetaTrader peut comprendre.
2. Comprendre la structure de base d’un EA
Un EA MQL5 suit un cycle de vie précis, orchestré par des fonctions prédéfinies. La fonction OnInit() est exécutée une seule fois au chargement de l’EA sur un graphique. C’est l’endroit idéal pour initialiser des variables, vérifier les paramètres ou afficher des commentaires. La fonction OnDeinit() est son opposé ; elle nettoie tout à la suppression de l’EA. Le cœur battant de votre robot est la fonction OnTick(). Elle est appelée à chaque nouvelle cotation (tick) reçue par le terminal. C’est ici que vous placerez la logique de votre stratégie : analyser les prix, vérifier les conditions et passer des ordres. Le code généré par l’assistant inclut aussi une fonction OnTimer() pour les actions périodiques, mais nous ne l’utiliserons pas ici. Comprendre ce flux – Initialisation > Boucle sur chaque Tick > Désinitialisation – est fondamental pour structurer un EA robuste.
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Vérification des paramètres, initialisation
Print("EA ", __FILE__, " chargé avec succès !");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//--- La logique de trading sera placée ici
}
3. Coder la logique de trading : conditions et exécution
Passons à l’action. Imaginons une stratégie simple : acheter (BUY) si le prix de clôture de la bougie précédente est supérieur à une moyenne mobile à 20 périodes, et vendre (SELL) dans le cas inverse. Il faut d’abord récupérer les données nécessaires. Utilisez les fonctions iClose() et iMA() pour obtenir les valeurs. Ensuite, implémentez une condition if pour vérifier votre règle. Si la condition d’achat est vraie, nous devons passer un ordre. Pour cela, MQL5 utilise la structure MqlTradeRequest et la fonction OrderSend(). Il est crucial de vérifier au préalable que nous n’avons pas déjà une position ouverte sur ce symbole pour éviter le sur-trading. Cette vérification se fait avec PositionSelect(). Le code ci-dessous illustre cette logique. Notez l’utilisation de Symbol() pour cibler le symbole du graphique courant.
void OnTick()
{
//--- Récupérer les données
double lastClose = iClose(_Symbol, PERIOD_CURRENT, 1); // Clôture bougie précédente
double maHandle = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_SMA, PRICE_CLOSE);
double maValue[];
CopyBuffer(maHandle, 0, 1, 1, maValue);
//--- Vérifier si une position est déjà ouverte
bool hasPosition = PositionSelect(_Symbol);
//--- Logique d'achat
if(!hasPosition && lastClose > maValue[0])
{
MqlTradeRequest request = {};
request.action = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.volume = 0.1;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.deviation = 10;
request.magic = 12345; // Identifiant unique pour l'EA
OrderSend(request);
}
//--- Logique de vente (à compléter de façon similaire)
}
4. Tester et optimiser votre EA sur l’historique
Avant de risquer un centime, vous devez valider votre EA grâce au testeur de stratégie intégré à MetaTrader 5. Fermez l’éditeur et retournez sur le terminal. Cherchez l’icône « View » > « Strategy Tester » ou appuyez sur Ctrl+R. Dans la fenêtre qui s’ouvre, sélectionnez votre EA « MonPremierEA », choisissez une paire de devises (ex : EURUSD), une période historique et un mode de test (« Every tick » est le plus précis). Cliquez sur « Start ». Le testeur va simuler l’exécution de votre EA sur les données passées et générer un rapport détaillé : profit/pertes, drawdown, ratio de gains, etc. Analysez ces résultats avec un œil critique. Est-ce que l’EA se comporte comme prévu ? Le nombre de trades est-il cohérent ? Si les résultats sont encourageants mais perfectibles, utilisez l’onglet « Optimization ». Vous pouvez y tester automatiquement différentes valeurs pour vos paramètres (comme la période de la moyenne mobile) pour trouver la combinaison la plus robuste. C’est une étape indispensable pour valider la viabilité de votre stratégie automatisée.
5. Déployer et surveiller votre EA en compte réel
Une fois satisfait des tests, vous pouvez passer au compte réel (ou démo pour un premier essai). Glissez-déposez simplement votre EA depuis l’onglet « Navigateur » du terminal sur le graphique de la paire souhaitée. Une fenêtre de paramètres s’ouvre : vous pouvez y activer le « Trading Automatique » et ajuster les inputs (volume, magic number…). Cliquez sur OK. Vérifiez que le smiley vert apparaît en haut à droite du graphique, indiquant que l’EA est actif. La surveillance initiale est cruciale. Ouvrez l’onglet « Experts » dans le « Toolbox » pour voir les logs en temps réel. Surveillez les premières opérations pour vous assurer qu’elles correspondent à votre logique et que les ordres sont bien exécutés. N’oubliez pas que les conditions du marché en temps réel (spreads variables, slippage, liquidité) peuvent différer des tests historiques. Commencez toujours avec un volume minimal et une exposition au risque très contrôlée. Votre EA est un outil puissant, mais il nécessite une supervision, surtout dans ses premières heures d’exécution.
💼 Besoin d’un EA sur-mesure ? Demander un devis gratuit →
Questions fréquentes
Faut-il être un expert en programmation pour utiliser MQL5 ?
Pas du tout. MQL5 est conçu pour être accessible aux traders. Une logique de trading claire et une compréhension des bases de la programmation (comme les conditions et les variables) suffisent pour débuter. Les nombreux templates, la documentation et les communautés francophones sont là pour vous aider à progresser.
Mon EA fonctionne en test mais pas en réel, pourquoi ?
Plusieurs raisons sont possibles : des différences de qualité des données (ticks vs bougies), des spreads plus larges en temps réel qui empêchent le déclenchement des ordres, des restrictions de votre broker (interdiction du scalping, hedging), ou un manque de gestion des erreurs de connexion dans votre code. Vérifiez les logs de l’onglet “Experts” pour des messages d’erreur précis.
Puis-je vendre ou acheter un EA codé en MQL5 ?
Oui, le marché MQL5 propose une plateforme (Market) où les développeurs vendent leurs indicateurs et EAs. Si vous souhaitez développer un EA pour une firme de trading comme FTMO ou d’autres prop firms, assurez-vous de bien comprendre leurs règles spécifiques (périodes de trading interdites, drawdown maximum) et de les intégrer dans la logique de votre robot.
Quelle est la différence entre MQL4 et MQL5 ?
MQL5 est le langage plus récent et puissant pour MetaTrader 5. Il offre un meilleur backtesting, plus de fonctions intégrées, une gestion des événements plus fine (comme OnTradeTransaction) et un accès direct au marché (Book d’ordres). MQL4 est pour MT4. Pour du nouveau développement, il est recommandé de se tourner vers MQL5 et MT5, plateformes plus modernes et maintenues.
📚 Articles connexes :