Backtesting & vérification intermediate 12 min de lecture

Optimisation des paramètres MT5 : 116 combinaisons, 252 exécutions, 0 réglage retenu

Optimisation des paramètres MT5 : huit recherches sur nos modèles, aucun réglage retenu. L'utile, c'est comment chacune a échoué : le meilleur résultat en échantillon est tombé le plus bas, une conception a passé un seul contrôle hors échantillon avant de s'effondrer, deux n'ont jamais dépassé 1,0 sur leur période de calage. Voici la procédure et la lecture qui évite la première ligne.

Publié · Révisé

L’optimisation des paramètres dans MetaTrader 5 est une recherche : vous déclarez une plage pour chaque entrée, le Strategy Tester exécute toutes les combinaisons, et il vous rend un tableau trié selon la métrique que vous avez choisie. Le difficile n’est pas de la lancer. Le difficile, c’est que le tableau a toujours une première ligne, et que cette première ligne est presque toujours fausse.

Ce que vous retirez de cet article, c’est une procédure qui produit une décision plutôt qu’un chiffre : une recherche que vous pouvez défendre, une lecture de la grille de passes qui survit au contact d’une deuxième période, et une règle d’arrêt.

Conditions du test
Identifiant d’expérienceEXP-PARAM-SEARCH-OUTCOMES-001
Expérience parenteEXP-BUILDER-TEMPLATE-BASELINE-001
Sourceea-templates-manifest.jsbt.explored
Population8 recorded searches of the 53 measured templates
Symbole / unité de tempsUSDJPYm, M5 and H1
ModèleM1 OHLC (Model=1), Exness MT5, measured 2026-06-18
Paramètres variésstop loss and take profit only
Dernière vérification2026-08-25

Mise en place : la grille, le découpage et les données

Trois réglages décident si la recherche vaut la peine d’être lancée. Ratez-les et la grille de passes devient un générateur de nombres aléatoires très coûteux.

ChampQuoi réglerPourquoi
OptimisationOnglet SettingsSlow complete algorithm pour une petite grilleLe mode génétique échantillonne l’espace ; pour 12 à 32 combinaisons, vous pouvez vous offrir de tout voir
Start / Step / StopOnglet Inputs, par entréeDeux paramètres, pas grossiersChaque entrée que vous cochez multiplie la grille. La nôtre en a fait varier deux
ForwardOnglet Settings1/2, 1/3 ou 1/4Découpe l’intervalle pour que le testeur note séparément la seconde moitié — c’est le contrôle pour lequel vous lancez la recherche
Optimisation criterionOnglet SettingsDécidez-le avant de regarder la grilleC’est la métrique selon laquelle le testeur classe les passes, donc c’est elle qui décide quelle ligne est la première
ModellingOnglet SettingsUn mode grossier pour balayer, puis relancer le survivant sur ticks réelsLes modes de balayage servent à classer des candidats, jamais à produire un chiffre publié
PeriodOnglet SettingsAssez longue pour contenir plus d’un régimeUne recherche à l’intérieur d’une seule tendance trouve le réglage qui l’a chevauchée

Le critère mérite une décision plutôt qu’une valeur par défaut. Classer par profit net récompense la passe qui a pris le plus de risque, et classer selon une mesure fondée sur le drawdown récompense celle qui a le moins tradé — le facteur de récupération existe précisément parce que ces deux réponses divergent. Nos propres recherches n’ont pas du tout été jugées sur le classement du testeur : chaque survivant a été noté au facteur de profit sur trois fenêtres distinctes, et le classement à l’intérieur de l’une d’elles n’a jamais rien décidé.

La qualité des données passe avant tout : une recherche sur de mauvais ticks optimise les trous. En version courte, une qualité de modélisation inférieure à 90 % rend les grilles de passes intraday inutilisables, et une exécution construite à partir de données tick interpolées ne peut pas résoudre un stop qui se situe à l’intérieur d’une bougie.

  1. Lancez d’abord un backtest unique, aux valeurs par défaut, et gardez le rapport. Sans référence, la grille de passes n’a rien à battre — faire un backtest couvre cette passe de bout en bout.
  2. Dans l’onglet Settings, réglez Optimisation sur une passe complète pour une petite grille, et mettez Forward sur 1/3 pour que le testeur retienne le dernier tiers de l’intervalle.
  3. Dans l’onglet Inputs, ne cochez que les paramètres que vous testez réellement, et donnez à chacun un Start, un Step et un Stop. Deux entrées à pas grossiers valent mieux que quatre à pas fins.
  4. Appuyez sur Start et laissez la passe aller jusqu’au bout. Lisez l’onglet Optimisation Results comme un tableau, et l’Optimisation Graph comme une forme — un pic isolé est un avertissement, un plateau est un résultat.
  5. Prenez les survivants — pas le gagnant — et relancez chacun d’eux comme un backtest unique sur une période antérieure à la fenêtre d’optimisation. C’est l’étape qui a produit tous les verdicts négatifs de notre ensemble, et c’est celle que les gens sautent.

Lire les résultats : trois périodes, pas une

Voici l’intégralité de notre relevé, trié selon le meilleur facteur de profit en échantillon atteint par chaque recherche. IS est la période sur laquelle le réglage a été calé, OOS le jeu de validation, et prior une fenêtre antérieure que la recherche n’a jamais vue.

ModèleGrille exploréeMeilleur ISOOSPriorVerdict
ichimoku12 combinaisons × 3 fenêtres1,370,890,80no_robust_edge
ma_crossover20 + 12 combinaisons, deux unités de temps1,230,89–0,940,78no_robust_edge
cci_level12 combinaisons × 3 fenêtres1,071,050,92no_robust_edge
adx_trend12 combinaisons × 3 fenêtres1,040,910,80no_robust_edge
breakout12 combinaisons × 3 fenêtres1,040,79–0,890,64–0,84no_robust_edge
macd_signal12 combinaisons × 3 fenêtres1,14–1,150,74–0,77no_robust_edge
rsi_reversal12 combinaisons × 3 fenêtres0,91no_robust_edge
bb_bounce12 combinaisons × 3 fenêtres0,91no_robust_edge

Lisez la première colonne numérique de haut en bas, puis en travers. Le plus gros résultat en échantillon de l’ensemble a produit le plus gros effondrement : le 1,37 d’ichimoku est retombé à 0,89, puis à 0,80. Cet ordre n’est pas une coïncidence — le réglage qui épouse le mieux une fenêtre est par construction celui qui a absorbé le plus de bruit de cette fenêtre.

Lisez maintenant le réglage qui s’en est réellement le plus approché. Il ne figure pas dans le tableau ci-dessus, parce qu’il n’a jamais été la première ligne de quoi que ce soit : sur la même grille ichimoku, SL50/TP150 a obtenu 1,18 en échantillon, 0,99 hors échantillon et 1,00 sur la fenêtre antérieure. Trois périodes, toutes à peu près plates. Il a été consigné comme le candidat le plus proche et n’a malgré tout pas été retenu, parce qu’être à l’équilibre sur trois fenêtres n’est pas un avantage — c’est l’absence d’avantage, mesurée avec soin.

En face, les références que ces recherches cherchaient à battre se situent entre 0,92 et 1,03. Pas une seule recherche n’a déplacé un réglage par défaut publié.

Pièges à éviter

Le mode de défaillance qui sous-tend ces cinq points est le même. Le surapprentissage n’est pas une erreur que l’on commet à la fin d’une recherche — c’est le résultat par défaut du fait d’en lancer une, et la discipline des trois périodes existe pour le rendre visible avant que vous n’agissiez dessus.

L’améliorer et itérer : quoi changer, et quand s’arrêter

Changez une chose, relancez, comparez à la référence que vous avez gardée. L’ordre qui fait perdre le moins de temps :

  1. Élargissez la période avant d’élargir la grille. Plus de régimes vaut mieux que plus de combinaisons. Une recherche qui couvre une seule tendance trouvera le réglage qui l’a chevauchée, quelle que soit la résolution.
  2. Ensuite, grossissez les pas au lieu de les affiner. Si un résultat n’existe qu’à SL47, il n’existe pas.
  3. Ensuite seulement, ajoutez un paramètre. Les nôtres ne sont jamais allées jusque-là, parce que deux paramètres échouaient déjà à la barre des trois périodes.

Arrêtez-vous quand l’une de ces conditions est vraie, et notez laquelle :

  • Un survivant passe les trois périodes. Publiez-le, et consignez toute la grille que vous avez explorée — pas seulement la passe que vous avez gardée.
  • Le meilleur résultat en échantillon est inférieur à 1,0. Vous avez une vraie réponse : deux de nos huit recherches se sont arrêtées là, et s’arrêter là après 36 évaluations coûte peu.
  • Les survivants passent une fenêtre et en ratent une autre, encore et encore. La règle dépend du régime. Chercher davantage produit davantage de réglages dépendants du régime.
  • Vous avez commencé à expliquer pourquoi la fenêtre antérieure « ne compte pas ». C’est le moment où la recherche a cessé d’être un test.

Le relevé honnête d’une recherche, c’est la plage couverte et le verdict, ensemble. Chacune de nos huit est stockée ainsi, ce qui est la seule raison pour laquelle cet article a pu être écrit à partir d’elles — un gagnant stocké seul n’aurait rien prouvé.

Prochaines étapes : testez en avant, puis décidez

L’optimisation est la deuxième étape sur quatre. La séquence est backtest → optimisation → walk-forward → démo, et chacune retire une façon différente de se tromper.

  • Entraînez-vous à la boucle sur quelque chose que vous maîtrisez : construisez une stratégie dans le Builder et cherchez vous-même son stop et son objectif, parce qu’une grille que vous avez déclarée est bien plus facile à lire honnêtement qu’une grille dont vous avez hérité.
  • La version formelle du contrôle sur trois périodes est l’analyse walk-forward, qui fait rouler le découpage au lieu de le fixer à un seul endroit.
  • Quoi que la recherche vous rende, le rapport dans lequel elle vous le rend doit encore être lu : lire un rapport de backtest MT5 explique de quelle population chaque chiffre affiché est réellement une affirmation.
  • Pour voir à quoi ressemble un relevé terminé quand les chiffres ont bel et bien survécu, chaque fiche du catalogue d’EA publiés porte sa liste complète de trades clôturés et son manifeste d’exécution.
  • La façon dont nous testons, notons et consignons tout cela est exposée dans notre méthodologie de test.

Questions fréquentes

Combien de paramètres faut-il optimiser à la fois ?
Moins que ce que le testeur vous autorise. Chaque recherche de notre propre relevé a fait varier exactement deux paramètres — le stop loss et le take profit — sur 12 à 32 combinaisons, et pas une des huit n'a produit un réglage que nous étions prêts à publier. Ajouter un troisième puis un quatrième paramètre n'y change rien : cela multiplie la grille et rend bien plus facile la découverte d'une combinaison qui épouse le bruit de votre fenêtre de test. Si deux paramètres ne parviennent pas à produire un résultat qui survit à trois périodes, le problème est la règle, pas la résolution de la recherche.
Quel facteur de profit viser dans une passe d'optimisation ?
Regardez trois chiffres, pas un seul. Dans notre ensemble, le meilleur facteur de profit en échantillon a atteint 1,37 sur le modèle ichimoku — et le même réglage a obtenu 0,89 hors échantillon et 0,80 sur la fenêtre antérieure. Le réglage qui s'est le plus approché de l'utilisable était bien moins impressionnant en échantillon : 1,18, tenant 0,99 et 1,00 sur les deux autres périodes. Il n'a pas été retenu pour autant, parce qu'être à l'équilibre sur deux fenêtres sur trois n'est pas un avantage. Un chiffre élevé en échantillon est la donnée la moins informative de l'écran.
Un seul test hors échantillon suffit-il à valider un réglage optimisé ?
Non, et nous avons un cas qui montre pourquoi. Le modèle macd_signal a produit un réglage qui a atteint 1,14 à 1,15 hors échantillon — un franc succès sur un unique jeu de validation — puis a obtenu 0,74 à 0,77 sur la fenêtre précédant la période de test. Une deuxième conception, cci_level, est allée plus loin : 1,07 en échantillon, 1,05 hors échantillon, et 0,92 sur la fenêtre antérieure. Deux périodes n'ont pas suffi non plus. Les deux seraient parties en production sous la règle habituelle du jeu de validation unique.
Que signifie une optimisation qui ne trouve aucun réglage rentable ?
Cela signifie que vous avez votre réponse tôt et à bon compte, ce qui est le bon dénouement. Deux de nos huit recherches — rsi_reversal et bb_bounce — n'ont jamais produit de facteur de profit supérieur à 1,0, même sur la période sur laquelle elles avaient été calées ; leur meilleur résultat en échantillon était 0,91. Une règle que l'on ne parvient pas à faire fonctionner sur les données mêmes qui ont servi à la régler ne sera sauvée ni par une grille plus large ni par une exécution plus longue. Notez la plage explorée et le verdict, puis passez à l'idée suivante.