Convertir un EA MT4 en MT5 : guide complet MQL4 vers MQL5

⏱ 7 min de lecture
Mis à jour le 7 mai 2026

Convertir un EA MT4 en MT5 : Guide Complet MQL4 vers MQL5

Votre Expert Advisor MT4 est-il obsolète ? Découvrez la méthode structurée pour le migrer vers MT5. Ce guide vous explique les différences clés et les étapes de conversion pour préserver votre logique de trading.

La migration de la plateforme MetaTrader 4 vers MetaTrader 5 est une étape inévitable pour de nombreux traders algorithmiques. Si votre EA MQL4 a fait ses preuves, l’abandonner n’est pas une option. Cependant, la conversion n’est pas un simple copier-coller : MQL5 est un langage plus moderne, plus puissant, mais aussi différent dans son architecture. Cet article est votre feuille de route pour transformer votre code MQL4 en un EA MQL5 fonctionnel, performant et compatible avec les nouveaux marchés et brokers. Nous aborderons les différences fondamentales, les pièges à éviter et les bonnes pratiques pour une transition réussie, en préservant le cœur de votre stratégie de trading.

1. Comprendre les Différences Fondamentales entre MQL4 et MQL5

Avant de toucher à une ligne de code, il est crucial de saisir les distinctions architecturales entre les deux plateformes. MT4 et MT5 ne sont pas compatibles, et leurs langages reflètent des philosophies différentes. MQL4 est souvent perçu comme plus simple et direct, tandis que MQL5 introduit des concepts de programmation orientée objet et une gestion des événements plus rigoureuse. La différence la plus impactante concerne l’accès aux données des prix et des historiques. En MQL4, on utilisait des fonctions comme iHigh(), iLow() dans la boucle de l’EA. En MQL5, le modèle est basé sur le copying des données dans des arrays via des séries temporelles (SeriesInfoInteger(), CopyBuffer()). De plus, la structure de l’EA change : la fonction start() disparaît au profit de gestionnaires d’événements prédéfinis comme OnTick() ou OnTimer(). Comprendre ces paradigmes est la première étape pour une conversion raisonnée et non pas une simple traduction mot à mot qui mènera à des erreurs.

2. Préparer et Analyser le Code Source MQL4

La préparation est la clé d’une migration efficace. Commencez par auditer minutieusement votre code MQL4 existant. Identifiez les fonctions obsolètes qui n’ont aucun équivalent direct en MQL5, comme OrderSend(), OrderClose(), ou les fonctions de gestion des indicateurs. Séparez la logique métier (votre stratégie) du code d’exécution (ouvrir/fermer des ordres, gestion des erreurs). Cette étape vous permet de voir ce qui doit être absolument préservé et ce qui doit être entièrement réécrit. Documentez les variables globales, les paramètres externes (inputs) et la logique des signaux. Cette analyse vous donnera une carte mentale claire du travail à accomplir et évitera de vous perdre dans les détails techniques pendant la réécriture. Pensez également à vérifier la logique de calcul des tailles de position, car les conventions de tick value et de margin calculation peuvent différer.

3. Réécrire la Gestion des Ordres et des Positions

C’est le cœur technique de la conversion. MT5 a unifié le concept d’ordre et de position, ce qui simplifie la gestion mais nécessite une réécriture complète. En MQL4, vous traitiez avec des ordres en attente et des trades ouverts via la même série de fonctions. En MQL5, vous devez utiliser l’API Trade (CTrade class) ou les fonctions Position et Order de manière distincte. Voici un exemple basique de passage d’un ordre au marché :

// Ancienne approche MQL4 (simplifiée)
int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "Mon EA", 12345, 0, clrGreen);

// Nouvelle approche MQL5 avec la classe CTrade
#include <Trade\Trade.mqh>
CTrade trade;

void OnTick()
{
   double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
   trade.Buy(0.1, _Symbol, ask, 0, 0, "Mon EA MQL5");
}

La gestion des stops et des take profits, la modification et la fermeture des positions suivent la même logique. Il faut également adapter la sélection et la lecture des positions ouvertes en utilisant PositionGetTicket() et PositionSelectByTicket().

4. Adapter l’Accès aux Données et aux Indicateurs Techniques

L’accès aux données historiques et aux indicateurs est radicalement différent. En MQL4, les indicateurs étaient souvent attachés à un chart et leurs valeurs récupérées dynamiquement. En MQL5, vous devez créer un handle d’indicateur, puis copier ses données dans un tableau. Cette méthode est plus puissante et plus rapide, mais moins intuitive au début. Par exemple, pour obtenir la valeur de deux bougies de l’EMA 20 :

// MQL5 : Création du handle et copie des données
int ema_handle = iMA(_Symbol, _Period, 20, 0, MODE_EMA, PRICE_CLOSE);
double ema_values[];
ArraySetAsSeries(ema_values, true); // Inverse l'array pour avoir l'index 0 = bougie actuelle
int copied = CopyBuffer(ema_handle, 0, 0, 2, ema_values);

if(copied > 0)
{
   double ema_current = ema_values[0];
   double ema_previous = ema_values[1];
   // Votre logique de trading ici...
}

Il en va de même pour les prix High[], Low[] : utilisez CopyHigh(), CopyTime() ou les structures MqlRates. Cette approche est plus explicite et permet un meilleur contrôle des erreurs.

5. Tester, Débugger et Optimiser le Nouvel EA MQL5

Une fois le code converti, la phase de test est primordiale. N’utilisez pas votre compte réel ! Le testeur de stratégie de MT5 (Strategy Tester) est bien plus avancé que celui de MT4, avec des modes de tick plus réalistes (Tick-by-Tick, Réal ticks). Commencez par des tests visuels pour vérifier que l’EA s’exécute sans erreur dans le Journal (Ctrl+T). Ensuite, lancez des backtests sur une période significative. Comparez les résultats avec les performances historiques de l’EA MT4 (quand c’est possible) pour détecter des divergences logiques. Vérifiez particulièrement la gestion de la marge, le calcul des profits, et l’exécution des ordres aux bons prix. L’optimisation des paramètres peut être relancée, profitant de la puissance accrue du testeur MT5 et de son réseau d’agents. Cette étape valide non seulement la conversion technique, mais aussi la fidélité de la stratégie migrée.

Conseil Pro : Ne convertissez pas tout d’un coup. Adoptez une approche modulaire. Commencez par créer un squelette d’EA MQL5 avec la gestion des événements (OnTick). Ensuite, convertissez et testez indépendamment chaque sous-système : d’abord la logique des signaux (calculs d’indicateurs), puis la gestion des positions, et enfin la gestion monétaire et le reporting. Cette méthode réduit considérablement la complexité du débogage.

💼 La conversion vous semble complexe ou vous manque-t-il du temps ? Confiez-la à des experts. Demandez un devis gratuit pour votre projet de développement sur mesure →

Questions Fréquentes sur la Conversion MT4 vers MT5

La conversion est-elle automatique avec un convertisseur ?

Non, les convertisseurs automatiques existent mais produisent généralement un code non fonctionnel ou de très mauvaise qualité. Ils ne comprennent pas la logique de trading. Ils peuvent aider à traduire certaines syntaxes basiques, mais une réécriture manuelle et experte est indispensable pour obtenir un EA robuste et fiable en MQL5.

Mon EA MQL4 utilisait beaucoup de variables globales. Est-ce un problème ?

Pas nécessairement, mais c’est l’occasion de restructurer votre code. MQL5 encourage une meilleure organisation. Vous pouvez conserver les variables globales, mais envisagez de les regrouper dans des structures ou des classes pour plus de clarté. Les variables déclarées au niveau du scope de l’EA se comportent de manière similaire.

Puis-je faire fonctionner le même EA sur MT4 et MT5 après conversion ?

Non, vous aurez deux codes sources distincts : un fichier .mq4 et un fichier .mq5. Ils ne sont pas compatibles entre les plateformes. Vous devrez maintenir deux versions si vous devez exécuter l’EA sur les deux terminaux. La conversion est un aller simple vers MT5, motivé par l’accès à plus de marchés (actions, futures) et une technologie plus récente.

Les indicateurs personnalisés (Custom Indicators) doivent-ils aussi être convertis ?

Oui, absolument. Si votre EA MQL4 appelle des indicateurs personnalisés (.ex4), vous devez d’abord convertir leur code source (.mq4) en MQL5 (.mq5), les compiler en .ex5, et ensuite adapter les appels dans votre EA comme expliqué dans la section sur les indicateurs. Sans cela, votre EA ne pourra pas accéder aux données de l’indicateur.

Recevez nos meilleurs conseils

1 email par semaine, désinscription en 1 clic. Pas de spam, jamais.