Tester un EA MT5 sur compte démo : méthode complète avant live

⏱ 6 min de lecture
Mis à jour le 26 mai 2026

Tester un EA MT5 sur compte démo : méthode complète avant le passage en live

Découvrez le protocole rigoureux pour auditer votre Expert Advisor sur MetaTrader 5. Évitez les pièges du backtest et validez votre stratégie algorithmique en conditions réelles.

Vous avez développé ou acheté un Expert Advisor (EA) pour MetaTrader 5. Les courbes de backtest sont parfaites, le profit factor dépasse 3, et le drawdown semble maîtrisé. Pourtant, la réalité du trading live est impitoyable : slippage, latence du serveur, exécution des ordres, conditions de marché changeantes. Sans une phase de test sur compte démo rigoureuse, vous risquez de perdre votre capital en quelques jours. Cet article vous livre une méthode complète, étape par étape, pour tester un EA sur compte démo MT5, avec des extraits de code MQL5 pour automatiser votre validation. Suivez ce guide pour transformer un backtest prometteur en un EA robuste et prêt pour le live.

1. Préparer l’environnement de test : dupliquer les conditions réelles

La première erreur est d’installer l’EA sur un compte démo par défaut sans configuration spécifique. Pour un test fiable, vous devez recréer l’environnement de votre broker live. Ouvrez un compte démo chez le même broker que vous utiliserez en réel. Notez le type d’exécution (Market Execution ou Instant Execution) et le mode de remplissage (Fill or Kill, Immediate or Cancel, Return). Dans votre code MQL5, vérifiez que le mode de gestion des ordres correspond. Utilisez SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE) pour adapter votre logique :

// Exemple MQL5 : adapter le mode de remplissage
int fillingMode = SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE);
if (fillingMode == SYMBOL_FILLING_IOC) {
   // Utiliser ORDER_FILLING_IOC
} else if (fillingMode == SYMBOL_FILLING_FOK) {
   // Utiliser ORDER_FILLING_FOK
}

Configurez également le levier et la taille du compte démo pour correspondre à votre capital réel prévu. Si vous tradez 10 000 € en réel, ne testez pas avec 100 000 € sur la démo. Cela fausserait les ratios de risque et la psychologie du money management.

2. Phase de backtest avancée : valider la robustesse statistique

Avant de lancer le test démo, effectuez des backtests multi-périodes et multi-symboles. Utilisez le Strategy Tester de MT5 en mode “Tous les ticks” pour une simulation réaliste. Ne vous contentez pas d’un seul couple EURUSD sur une année. Testez sur 5 à 10 paires différentes (EURUSD, GBPUSD, USDJPY, AUDUSD, USDCAD, NZDUSD, EURJPY, GBPJPY, EURGBP, USDCHF) sur une période de 5 ans. Analysez les métriques clés : profit factor > 1.5, ratio de Sharpe > 1, drawdown relatif < 20%, nombre de trades > 200 par an. Si l’EA montre des résultats incohérents sur une paire, il est probablement surajusté (overfitting). Pour détecter cela, intégrez une validation croisée dans votre EA :

// Exemple MQL5 : calcul du ratio de Sharpe simplifié
double CalculateSharpeRatio() {
   double avgReturn = 0, variance = 0;
   int totalTrades = HistoryDealsTotal();
   if (totalTrades < 30) return 0;
   for (int i = 0; i < totalTrades; i++) {
      ulong ticket = HistoryDealGetTicket(i);
      double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT);
      avgReturn += profit;
   }
   avgReturn /= totalTrades;
   for (int i = 0; i < totalTrades; i++) {
      ulong ticket = HistoryDealGetTicket(i);
      double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT);
      variance += MathPow(profit - avgReturn, 2);
   }
   variance /= totalTrades;
   double stdDev = MathSqrt(variance);
   return (stdDev > 0) ? (avgReturn / stdDev) * MathSqrt(252) : 0; // annualisé
}

3. Lancer le test démo : durée et conditions de marché

Une fois le backtest validé, placez l’EA sur votre compte démo. La durée minimale recommandée est de 3 mois, mais 6 mois est un standard pour les stratégies de tendance. Pendant cette période, surveillez le comportement de l’EA dans différentes conditions : tendances fortes (bull run, bear market), périodes de range, annonces économiques (NFP, FOMC). Notez les décalages d’exécution : comparez le prix demandé par l’EA et le prix d’exécution réel via le journal des ordres. Un slippage supérieur à 2 pips sur des ordres market peut indiquer un problème de latence. Utilisez MQLInfoInteger(MQL5_DEBUG) pour activer un logging détaillé :

// Exemple MQL5 : logging du slippage
void OnTick() {
   MqlTick currentTick;
   SymbolInfoTick(_Symbol, currentTick);
   double bid = currentTick.bid;
   double ask = currentTick.ask;
   // Votre logique de trading
   double entryPrice = (orderType == ORDER_TYPE_BUY) ? ask : bid;
   double slippage = MathAbs(entryPrice - currentTick.bid); // simplifié
   if (slippage > 2 * _Point) {
      Print("Slippage élevé détecté : ", slippage);
   }
}

Documentez chaque anomalie dans un fichier CSV avec FileOpen pour analyse ultérieure.

4. Analyser les performances : métriques avancées et comparaison live/démo

Après 3 mois de test démo, exportez le rapport du Strategy Tester (onglet “Rapport”) et comparez-le avec les résultats du backtest. Calculez le “dérapage” entre les deux : si le profit factor chute de 2.5 à 1.2, l’EA n’est pas robuste. Analysez le drawdown en courbe de equity : un drawdown de 30% en démo deviendra 40-50% en live à cause du slippage. Utilisez le code suivant pour générer un rapport personnalisé :

// Exemple MQL5 : génération de rapport de test démo
void GenerateDemoReport() {
   int handle = FileOpen("DemoReport_" + _Symbol + ".csv", FILE_WRITE|FILE_CSV, ",");
   if (handle != INVALID_HANDLE) {
      FileWrite(handle, "Date", "Profit", "Balance", "Drawdown");
      for (int i = 0; i < PositionsTotal(); i++) {
         ulong ticket = PositionGetTicket(i);
         double profit = PositionGetDouble(POSITION_PROFIT);
         double balance = AccountInfoDouble(ACCOUNT_BALANCE);
         double drawdown = (balance - AccountInfoDouble(ACCOUNT_EQUITY)) / balance * 100;
         FileWrite(handle, TimeToString(TimeCurrent()), profit, balance, drawdown);
      }
      FileClose(handle);
   }
}

Vérifiez aussi le nombre de trades par jour : si l’EA trade 10 fois par jour en backtest mais seulement 2 en démo, le problème vient des conditions de liquidité ou du spread variable.

Conseil pro : Ne passez pas en live tant que l’EA n’a pas réalisé au moins 100 trades sur compte démo avec un profit factor supérieur à 1.3. Ajoutez un filtre anti-slippage dans votre code : n’exécutez un ordre que si le spread est inférieur à 2 fois le spread moyen. Utilisez SymbolInfoInteger(_Symbol, SYMBOL_SPREAD) pour cela.

5. Transition vers le live : checklist finale et ajustements

Avant de basculer, réduisez le risque de 50% sur le compte démo pendant 2 semaines. Simulez un drawdown maximum : si l’EA perd 20% en démo, il en perdra probablement 30% en live. Ajustez le money management en conséquence. Activez un trailing stop progressif (par exemple, déplacer le stop tous les 10 pips de profit) pour sécuriser les gains. Testez aussi la réaction de l’EA aux pannes de connexion : débranchez votre VPS pendant 30 minutes et vérifiez que l’EA reprend correctement après reconnexion. Utilisez OnDeinit() pour sauvegarder l’état de l’EA :

// Exemple MQL5 : sauvegarde d’état en cas de déconnexion
void OnDeinit(const int reason) {
   if (reason == REASON_RECONNECT) {
      int handle = FileOpen("EA_State.dat", FILE_WRITE|FILE_BIN);
      if (handle != INVALID_HANDLE) {
         FileWriteDouble(handle, currentLotSize);
         FileWriteInteger(handle, currentMagicNumber);
         FileClose(handle);
      }
   }
}

Enfin, exécutez un test de stress : lancez l’EA sur 5 paires simultanément sur le compte démo pendant 1 mois. Si le CPU et la mémoire du VPS restent sous 70%, vous êtes prêt.

Besoin d'un EA sur-mesure ? Demander un devis gratuit

Questions fréquentes

Combien de temps dois-je tester mon EA sur compte démo avant le live ?

Un minimum de 3 mois est recommandé, mais 6 mois est la norme pour les stratégies de tendance. Pour les scalpeurs, 2 mois suffisent si vous testez sur des périodes à forte volatilité (ex : NFP). L’important est d’avoir au moins 100 trades exécutés.

Mon EA fonctionne parfaitement en backtest mais échoue en démo. Pourquoi ?

C’est souvent dû à un overfitting (surajustement) ou à l’utilisation de données de ticks inexactes. Vérifiez le mode de remplissage des ordres et le slippage. Testez aussi sur un broker différent : certains brokers offrent des spreads plus larges en démo qu’en live.

Puis-je tester un EA MT5 sur un compte démo avec un broker différent de mon broker live ?

Oui, mais les résultats peuvent être faussés. Les différences de spread, de commission et de vitesse d’exécution entre brokers peuvent rendre l’EA inefficace en live. Préférez toujours le même broker pour la démo et le live.

Comment simuler un drawdown important sur compte démo ?

Augmentez temporairement le lot size (par exemple, multipliez par 2) pendant 2 semaines. Si l’EA survit à une perte de 30-40% sans dévier de sa stratégie, il est robuste. Revenez ensuite aux paramètres normaux.

Recevez nos meilleurs conseils

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

Site realise par Agence FluxDigital