
Mis à jour le 18 juillet 2026 par Ludovic
Une fonction clé des plateformes MetaTrader 4 et MetaTrader 5 est l'optimiseur du testeur de stratégies : il exécute votre robot de trading des centaines ou des milliers de fois sur l'historique, en faisant varier ses paramètres d'entrée, pour identifier les réglages qui auraient été les plus performants.
Bien utilisé, c'est un outil de calibrage redoutable. Mal utilisé, il produit des courbes de capital magnifiques… qui s'effondrent dès le passage en réel.
Ce tutoriel couvre l'optimisation sur les deux plateformes : l'interface historique de MT4, toujours très répandue, et le testeur bien plus complet de MT5, devenu la référence depuis que MetaQuotes a cessé de délivrer de nouvelles licences serveur MT4 et concentre son développement sur la version 5.
Un Expert Advisor possède des paramètres d'entrée : périodes d'indicateurs, distance de stop loss, taille de position, plages horaires, nombre maximum de positions simultanées… L'optimisation consiste à faire varier automatiquement ces valeurs à l'intérieur de plages définies, à exécuter une passe de test pour chaque combinaison, puis à classer les résultats selon un critère de performance.
La différence avec le backtest classique est essentielle : le backtest répond à la question « comment ce jeu de paramètres se serait-il comporté ? », l'optimisation répond à « quel jeu de paramètres aurait été le meilleur ? ». La seconde question est bien plus dangereuse, car elle contient une invitation permanente à s'ajuster au passé.
À garder en tête : sur un historique donné, il existe toujours un jeu de paramètres qui produit une belle courbe. Cela ne prouve rien. Ce qui compte, c'est la stabilité des performances autour de ce jeu de paramètres et sa tenue sur des données que l'optimiseur n'a jamais vues.
Dans le testeur de stratégies (menu Affichage / Cadre stratégies, ou Ctrl+R), cliquez sur « Propriétés de l'expert », puis sur l'onglet « Test ». La première partie de cette fenêtre concerne le backtest : le dépôt initial, la devise du compte et une restriction de direction des trades (cette option est rarement utile).

La deuxième partie concerne l'optimiseur. Les critères disponibles pour classer les passes sont :
La dernière ligne active l'algorithme génétique, qui rend le processus beaucoup plus intelligent. Plutôt que de balayer mécaniquement toutes les combinaisons, il conserve les jeux de paramètres les plus performants et les croise entre eux, génération après génération. Lorsque le logiciel identifie des zones de paramètres manifestement perdantes, il cesse de les explorer. Cette option réduit spectaculairement une optimisation qui peut sinon durer des jours.

Cette fenêtre affiche tous les paramètres modifiables de l'EA. Cochez la case des paramètres que vous souhaitez optimiser : ce sont les seuls qui varieront pendant les passes.
Trois colonnes définissent le balayage : la valeur initiale représente la valeur minimum du paramètre à tester, le stop la valeur maximum, et le pas l'incrément de variation pour aller de l'une à l'autre. La colonne valeur sera utilisée telle quelle pour tous les paramètres non cochés.
Dans l'exemple ci-dessus, nous testons le nombre maximum de positions acheteuses ou vendeuses simultanées. L'optimiseur va tester 10 positions, puis 11, 12… jusqu'à 15.
Astuce de calcul : le nombre total de passes est le produit du nombre de valeurs de chaque paramètre. Trois paramètres à 10 valeurs chacun font déjà 1 000 passes ; ajoutez-en un quatrième et vous passez à 10 000. C'est la raison pour laquelle il faut rester sobre sur le nombre de variables et sur la finesse du pas.

L'onglet « Optimisation » permet de définir des seuils d'exclusion : les passes qui les franchissent ne seront pas comptabilisées dans les résultats. Il est par exemple possible d'écarter automatiquement toutes les passes dont la chute maximale (drawdown) dépasse un pourcentage donné, ou dont le solde tombe sous un plancher. C'est un filtre précieux pour ne pas noyer les résultats intéressants sous des configurations inexploitables.
Après avoir réglé les trois onglets, cliquez sur « OK ».
Dans la fenêtre du testeur de stratégies, cochez la case « Optimisation » puis cliquez sur le bouton de démarrage pour lancer le processus. La barre de progression affiche le nombre de passes réalisées sur le total prévu.

Les résultats apparaissent dans l'onglet « Résultats d'optimisation ».

La liste n'affiche que les passes positives. Elles peuvent être triées en cliquant sur les en-têtes de colonnes et exportées via un clic droit sur le tableau. Le graphique d'optimisation, dans l'onglet voisin, est au moins aussi utile que la liste : il permet de repérer les zones de paramètres où la performance reste stable plutôt qu'un pic isolé.
Vous pouvez ensuite reporter les paramètres retenus dans « Propriétés de l'Expert », onglet Paramètres, colonne « Valeur », et relancer un backtest de l'expert advisor pour analyser le détail des trades, le rapport complet et la courbe de capital.
Le testeur de MetaTrader 5 est une refonte complète : multi-thread, multi-devises, distribué, avec une validation hors échantillon intégrée. Là où MT4 utilise une fenêtre à onglets, MT5 regroupe l'essentiel dans un panneau « Paramètres » unique, complété par un onglet « Paramètres d'entrée » de même logique que sur MT4 (valeur de départ, pas, stop).
Le réalisme de l'optimisation dépend d'abord de la qualité des ticks simulés. MT5 propose quatre modes :
| Mode | Principe | Usage recommandé |
|---|---|---|
| Chaque tick basé sur des ticks réels | Utilise les ticks réellement enregistrés par le broker, sans aucune simulation | Validation finale, EA sensibles au spread et au scalping |
| Chaque tick | Ticks générés par interpolation à partir des barres M1 | Compromis intermédiaire |
| 1 minute OHLC | Seuls les 4 prix (open, high, low, close) de chaque minute sont émulés | Phase exploratoire, balayage rapide de larges plages |
| Prix d'ouverture uniquement | Seul le prix d'ouverture de la barre est utilisé | EA qui n'agissent qu'à l'ouverture de bougie |
Un cinquième mode, « Calculs mathématiques », ne télécharge ni historique ni informations de symbole et n'appelle que les fonctions OnInit(), OnTester() et OnDeinit() : il sert à optimiser des fonctions mathématiques, pas des stratégies de trading.
Méthode efficace : balayez large en 1 minute OHLC pour dégrossir les plages, puis relancez une optimisation restreinte autour de la zone retenue en ticks réels. Vous gagnez des heures sans sacrifier la fiabilité de la validation.
MT5 propose l'algorithme lent complet, qui teste toutes les combinaisons possibles, et l'algorithme rapide génétique, qui sélectionne les jeux de paramètres les plus adaptés puis les croise, avec mutations aléatoires, jusqu'à ce que les résultats cessent de s'améliorer. Selon la documentation MetaQuotes, une optimisation exhaustive qui demanderait plusieurs années peut ainsi être ramenée à quelques heures.
Au-delà de 100 millions de combinaisons sur un système 64 bits, MT5 bascule automatiquement en mode génétique. Le cache des générations calculées est conservé : une optimisation interrompue, même par une coupure de courant, reprend là où elle s'était arrêtée.
Un troisième mode, « Tous les symboles sélectionnés dans le Market Watch », ne fait pas varier les paramètres mais l'instrument : il rejoue le même réglage sur chaque symbole affiché dans la fenêtre Market Watch. C'est le test de robustesse le plus simple et le plus révélateur qui soit, un EA qui ne fonctionne que sur une seule paire est rarement un EA robuste. Attention, ce mode n'est pas pris en charge par le MQL5 Cloud Network.
MT5 offre une palette bien plus riche que MT4 : Balance max, Facteur de profit max, Gain attendu max, Drawdown min, Facteur de récupération max, Ratio de Sharpe max, Max personnalisé (la valeur retournée par votre propre fonction OnTester(), qui permet de construire n'importe quelle mesure de qualité) et surtout Critère complexe max.
Ce dernier est une mesure intégrale qui combine le nombre de transactions, le drawdown, le facteur de récupération, le gain attendu et le ratio de Sharpe. Il classe progressivement les passes selon ces différents axes plutôt que sur un seul indicateur, ce qui écarte naturellement les passes spectaculaires reposant sur une poignée de trades chanceux.
C'est la fonction la plus précieuse du testeur MT5, et elle n'a aucun équivalent natif sur MT4. En activant l'option « Avancé », la période de test est découpée en deux : un demi, un tiers, un quart, ou une date de coupure personnalisée.
L'optimisation s'effectue sur la première portion, puis 10 % des meilleures passes (en recherche complète) ou 25 % (en algorithme génétique) sont automatiquement rejouées sur la période avancée, restée vierge. Les onglets « Résultats d'optimisation » et « Résultats avancés » permettent de comparer les deux. Plus les classements et les performances coïncident, plus les paramètres ont des chances de tenir en trading réel. À l'inverse, un jeu de paramètres champion en optimisation et catastrophique en forward est un cas d'école de surapprentissage.
Les calculs sont confiés à des agents de test installés comme services. MT5 en crée un par cœur de processeur, mais vous pouvez aussi connecter un nombre illimité d'agents distants, sur d'autres machines du réseau local ou sur Internet. Le testeur peut enfin accéder au MQL5 Cloud Network, qui agrège des milliers d'agents dans le monde : des optimisations qui prendraient des jours sur un poste unique se bouclent alors en quelques minutes, contre une facturation à la puissance de calcul consommée.
MT5 permet d'afficher la corrélation entre le résultat final et deux paramètres sous forme de graphique 2D, ou de suivre l'ensemble de l'espace de recherche en 3D. Cette lecture visuelle est le meilleur détecteur de surapprentissage disponible : cherchez un plateau large et régulier, où de petites variations de paramètres ne changent guère la performance. Un pic étroit entouré de vallées signifie que votre réglage optimal est une anomalie statistique.
| Fonctionnalité | MetaTrader 4 | MetaTrader 5 |
|---|---|---|
| Ticks réels du broker | Non (ticks interpolés) | Oui, mode dédié |
| Algorithme génétique | Oui | Oui, avec cache des générations |
| Forward test intégré | Non | Oui (1/2, 1/3, 1/4 ou date personnalisée) |
| Critères d'optimisation | 4 | 8, dont critère complexe et max personnalisé |
| Optimisation multi-devises | Non | Oui, y compris balayage du Market Watch |
| Multi-cœurs / agents distants | Non | Oui, nombre illimité d'agents |
| Calcul dans le cloud | Non | Oui (MQL5 Cloud Network) |
| Visualisation 2D / 3D | Graphique simple | 2D et 3D, plus visualisations personnalisées |
| Développement de la plateforme | Maintenance uniquement | Plateforme stratégique de MetaQuotes |
Sur le plan de l'optimisation, l'écart n'est pas marginal : MT4 permet de calibrer un EA, MT5 permet de le valider. Si votre broker propose les deux et que votre robot existe en version MQL5, la migration se justifie pleinement pour le travail de recherche, quitte à conserver MT4 pour l'exécution si votre écosystème d'outils y est installé.
Le choix du critère détermine ce que l'optimiseur considère comme « le meilleur ». C'est probablement la décision la plus lourde de conséquences de tout le processus.
| Critère | Ce qu'il maximise | Risque associé |
|---|---|---|
| Balance max | Le solde final du compte | Favorise le levier excessif et les drawdowns extrêmes |
| Facteur de profit max | Le rapport gains bruts / pertes brutes | Peut retenir des passes avec très peu de trades |
| Gain attendu max | L'espérance de gain par transaction | Ignore complètement le risque et le drawdown |
| Drawdown min | La plus faible chute relative du solde | Peut sélectionner un EA qui ne trade presque pas |
| Facteur de récupération max | Le profit net rapporté au drawdown maximal | Bon équilibre rendement / risque, à surveiller sur peu de trades |
| Ratio de Sharpe max | Le rendement ajusté de la volatilité | Pénalise à tort certaines stratégies asymétriques |
| Critère complexe max (MT5) | Une combinaison de plusieurs métriques | Le plus équilibré par défaut |
| Max personnalisé (MT5) | Toute valeur retournée par OnTester() | Demande de savoir programmer en MQL5 |
En pratique, croiser deux critères est souvent plus instructif que d'en optimiser un seul : lancez l'optimisation sur le facteur de récupération, puis filtrez manuellement les résultats sur un nombre minimal de transactions, par exemple 200 sur la période, afin d'écarter les passes statistiquement insignifiantes.
Une erreur mérite une mention particulière : le biais de sélection multiple. Si vous relancez vingt optimisations en changeant à chaque fois quelque chose, vous finirez par trouver une combinaison remarquable. Ce n'est pas une découverte, c'est une conséquence arithmétique du nombre d'essais. Le seul antidote reste la validation sur des données jamais utilisées, et un protocole défini avant de commencer.
Le test du bon sens : si vous ne pouvez pas expliquer pourquoi tel paramètre fonctionne mieux qu'un autre en termes de comportement de marché, il y a de fortes chances que l'optimiseur ait simplement mémorisé le bruit de votre historique.
L'optimiseur de MetaTrader est un outil puissant, mais c'est aussi le moyen le plus rapide de se convaincre qu'une stratégie médiocre est excellente. Sur MT4, l'exercice reste artisanal : quatre critères, aucune validation hors échantillon, un seul cœur de processeur. Sur MT5, l'écosystème est bien plus complet, ticks réels, forward test intégré, critère complexe, balayage multi-symboles, calcul distribué, et permet de passer du calibrage à une véritable démarche de validation.
La règle qui résume tout tient en une phrase : cherchez la stabilité, pas le maximum. Un jeu de paramètres légèrement moins performant mais situé au centre d'un large plateau de résultats corrects a bien plus de chances de tenir en trading réel qu'un pic isolé au sommet du classement. Une fois vos réglages validés en forward et en démo, la véritable optimisation commence : celle du suivi, du contrôle du risque et de la remise en question régulière de la stratégie.