Réaliser un Backtest sur MetaTrader

MetaTrader 4 permet de réaliser des backtests via sa fenêtre «testeur» qui par défaut se situe en bas de la plateforme.

Si cette fenêtre n'est pas visible, il faut l'activer en sélectionnant dans les menus Affichage > >Cadre Stratégies.

Backtest simple

La réalisation du backtest est simple.

  • Sélectionner l'EA dans la liste déroulante
  • Sélectionner la paire dans la liste déroulante
  • Pour le modèle choisir «Chaque tick» car les autres types de modèles sont trop approximatifs pour donner des résultats un tant soit peu fiables
  • Sélectionner la case à cocher «Utiliser date» et choisir la période de test en accord avec les données historiques que vous avez préalablement chargées.
  • Cliquer sur «Propriété de l'Expert» et éventuellement modifier les valeurs des paramètres si vous voulez tester avec des valeurs différentes de celles par défaut.
  • Cliquer sur «Valeur initiale» et le backtest démarre.

Voir notre avis sur le test du broker AvaTrade qui propose la plateforme MT4

Une fois le backtest lancé de nouveaux onglets apparaissent dans la fenêtre.

  • L'onglet «Résultats» fournit la liste détaillée des opérations effectuées
  • L'onglet «Graphique» est une représentation graphique de l'évolution du solde du compte ordre par ordre (la taille des ordres est aussi représentée si celle-ci varie mais ne l'est pas si la taille est fixe)
  • L'onglet «Rapport» fourni le résumé des résultats du backtest avec en particulier la chute maximale, le facteur de profit et le profit total.
  • L'onglet «Journal» qui est un équivalent du fichier de log et qui permet de voir les éventuelles erreurs s'étant produites en cours d'exécution.

Optimisation de l'EA

MetaTrader 4 permet d'optimiser les paramètres d'un Expert Advisor. Cela est à la fois pratique pour déterminer les conditions dans lesquelles l'EA fonctionne bien mais aussi dangereux à cause de la sur-optimisation possible des paramètres de l'EA.

Le risque de sur-optimisation correspond à un ajustement précis des paramètres sur les données passées afin d'obtenir le résultat optimum. Cet ajustement est si précisément lié aux données étudiées qu'il n'est pas du tout robuste aux variations du marché et donc n'aura pas de bons résultats dans le futur.

Pour limiter ce risque un minimum de mesures sont à prendre:

  • Limiter au minimum les paramètres soumis à optimisation. Chaque paramètre supplémentaire amène un degré de liberté supplémentaire pour un ajustement précis et donc le risque de sur-optimisation croit avec le nombre de paramètres optimisés
  • Séparer les données de tests en 2 groupes et optimiser les paramètres sur un seul groupe de données, le second groupe servant juste à vérifier que les résultats obtenus sont du même ordre de grandeur. Pour cela les deux groupes de données doivent tous les deux contenir des conditions de marchés suffisamment variées (si un groupe contient principalement une tendance haussière et le second une tendance baissière cela ne fonctionnera pas). Si les deux groupes contiennent des données variées mais les résultats de l'EA sont très différents sur chaque groupe, la sur-optimisation est certainement la raison la plus probable.
  • Selon le type de stratégie il est aussi intéressant de tester sur d'autres paires ou d'autres unités de temps pour vérifier que le comportement est robuste. Ceci n'est pas toujours aisé car les différentes paires ont différentes volatilité et valeurs de pips, il faut donc que l'EA soit flexible à ce niveau pour par exemple s'adapter à différentes volatilités.

Afin de réaliser une optimisation il faut ouvrir la pop-up «Propriété de l'Expert».

Dans le premier onglet il y a un cadre optimisation qui vous permet de choisir le paramètre optimisé et l'utilisation d'un algorithme génétique ou non (l'utilisation de l'algorithme génétique permet une optimisation beaucoup plus rapide, donc cochez la case)

Dans le deuxième onglet «Paramètres d'entrée» choisissez

  • les paramètres à optimiser (case à cocher),
  • la valeur minimale pour ce paramètre (Valeur initiale)
  • la valeur maximale pour ce paramètre (Stop)
  • l'incrément pour aller de la valeur minimale à la valeur maximale (Pas)

Le troisième onglet «Optimisation» propose une série de limitations pouvant être activées pour ne pas prendre en compte les résultats ne satisfaisant pas aux conditions limites mais pour un premier niveau d'optimisation cet onglet peut être ignoré.

Une fois les paramètres rentrés, cliquez sur OK.

Cochez la case «Optimisation» dans le testeur et cliquez sur «Valeur initiale»

Durant l'optimisation, le testeur affiche le nombre de passes effectuées par rapport au nombre de passes totales (à gauche) ainsi que le temps écoulé et le temps restant (à droite).

Les passes sont exécutées en faisant d'abord une boucle sur les valeurs du premier paramètre à optimiser, puis sur le deuxième et ainsi de suite en générant toutes les combinaisons si le nombre de combinaison est faible sinon l'algorithme génétique fera un tri des combinaisons à exécuter.

Deux nouveaux onglets apparaissent avec l'optimisation.

L'onglet «Optimisation des résultats» qui montre le résultat de chaque passe si la passe a été en profit (les passes ayant des pertes ne sont pas affichées). En cours d'exécution les résultats sont affichés dans l'ordre d'exécution puis à la fin de l'optimisation les résultats sont triés en mettant les meilleurs en début de liste. Cette liste peut facilement être triée selon différents critères en cliquant sur les titres des colonnes, ce qui permet facilement de retrouver par exemple les conditions offrant des chutes maximales faibles ou des bons facteurs de profit.

L'onglet «Optimisation graphique» affiche le paramètre optimisé pour les différentes passes par ordre d'exécution. Ceci permet d'avoir une représentation visuelle des variations de ce paramètre pour voir si les résultats sont stables ou non.

Choix des valeurs pour les paramètres à optimiser

La fonction de backtest a certaines limitations au niveau du nombre de passes pouvant être effectuées. Si trop de paramètres sont soumis à optimisation avec pour chacun d'eux un grand nombre de valeurs pouvant être prise, le nombre de combinaisons possible devient trop important et dans ce cas le système de backtest n'exécutera qu'un certain nombre de passes parmi l'ensemble des combinaisons. Le choix parmi les combinaisons des valeurs des paramètres testés est fait par l'algorithme génétique.

Si le nombre de combinaisons est inférieur à 200, toutes les combinaisons seront effectuées.

Au dessus de 200, l'algorithme génétique commencera à trier les combinaisons.

Le maximum de combinaisons pouvant être effectuées par le testeur est de 1280.

Il est donc conseillé d'optimiser un nombre limité de paramètres et de donner un pas relativement grossier pour les incréments d'optimisation. Ces conseils sont aussi utiles pour éviter la sur-optimisation. Tester toutes les valeurs de StopLoss n'a pas vraiment de sens si on veut une stratégie robuste. L'ordre de grandeur peut être important (par exemple 50 au lieu de 100 pips) mais utiliser 51 ou 52 au lieu de 50 n'a pas de signification.

Plus d'information sur le même thème

Photo of Arnaud Jeulin

Arnaud Jeulin Responsable de la publication, Trader

Après un diplôme d'ingénieur, Arnaud a commencé une carrière de développeur. Il a travaillé avec des traders et des services de back office pour mettre en place des prototypes et des outils de trading. Il a ensuite créé sa propre entreprise en 2003.

Il a été responsable du webmarketing pour la Banque en ligne Suisse Synthesis, depuis rachetée par Saxo Bank. Il a aussi fait des audits pour différents brokers et participé à plusieurs salons professionnels pour les courtiers à Londres, Paris et Chypre.

Depuis 21 ans Arnaud a approfondi sa connaissance des brokers et des marchés, il utilise son expérience pour améliorer Mataf afin d'éviter d'orienter les visiteurs vers des brokers malhonnêtes ou des stratégies de trading dangeureuses.

Vous pouvez le joindre via les réseaux sociaux suivants ou par email :

.
  Se connecter