Fonctionnement du Backtest avec Metatrader

 

Introduction

De nombreux programmes d’analyse technique permettent de tester des stratégies sur des données historiques (backtest). Dans la plupart des cas, le backtest est réalisé sur des données déjà établies, sans qu’il soit tenté de modéliser la tendance des cours à l’intérieure d’une bougie. Le backtest peut alors être réalisé rapidement mais sans grande précision.

Il est important de choisir une bonne manière de modéliser les prix d’une bougie pour avoir une meilleur qualité de test d’une stratégie de trading. La solution idéale est de posséder un historique complet dont la précision est le tick. Mais il est malheureusement très difficile pour un trader avec des moyens classiques de posséder de tels historiques sur des grandes périodes de temps.

Pour résoudre ce problème, les données des périodes les plus précises peuvent être utilisés comme des points de référence permettant de modéliser l’évolution des prix à l’intérieure d’une bougie.

Manières de Modéliser les Prix des Bougies

Il y a trois manières de modéliser le développement des bougies dans Metatrader 4.

 

  • Tous les ticks (la méthode la plus précise basée sur l’intervalle de temps le plus petit disponible)
  • Points de Contrôle (une méthode grossière basée sur l’intervalle de temps inférieur)
  • Prix d’ouverture (une méthode rapide sur les bougies complètes, à utiliser seulement par les Expert Advisor qui utilisent explicitement l’ouverture des bougies)

Les prix intermédiaires sont générés avant de commencer le backtest, et les résultats sont sauvegardés dans un fichier (par exemple:  /tester/history/eurusd_1440_1.fxt). A chaque fois que le bouton “Start” est cliqué, le module de backtest génère à nouveau le fichier contenant la séquence des ticks à tester. Les fichiers “.fxt” sont faciles à ouvrir hors connexion dans le terminale par File -> Open offline. 

Ce principe permets de réaliser les backtests avec ses propres données. Il suffit de sauvegarder les données dans le format “.fxt” et de les placer dans le répertoire /tester/history/. Ensuite il faut ouvrir le fichier dans un graphique hors connexion.. 

 
 

Exemples de Modélisation

Commençons avec la méthode la plus simple de modélisation basée sur un graphe de granularité une heure. Étudions la bougie d’une heure entourée du cercle rouge.

Prix d’Ouverture

Certain traders ne souhaitent pas dépendre des particularités de la modélisation “intrabougie”. Ils créent donc des Experts Advisors qui tradent sur des bougies déjà complétées. Le fait est que l’on peut savoir qu’une bougie est finie une fois seulement que la suivante apparait. Ce sont pour ces Expert Advisor que la modélisation du “Prix d’Ouverture” est réalisée.

Dans ce mode, à l’ouverture de la bougie on a Ouverture = Haut = Bas = Fermeture et Volume =1 (Open = High = Low = Close, Volume=1). C’est cette caractéristique qui permet à l’Expert Advisor d’identifier la fin de la bougie précédente. C’est sur cette bougie naissante que l’Expert Advisor est lancé. A la prochaine étape, la bougie courante est formée, mais aucun calcul y est effectué.

Points de Contrôle

La méthode de modélisation des points de contrôle est réalisée pour une estimation grossière  destination des Experts Advisor qui tradent à l’intérieur des bougies. Pour utiliser cette méthode, des données historiques de l’échelle de temps infèrieure la plus proche doivent être utilisées. Dans certain cas, les données disponibles de l’échelle de temps inférieur ne couvre pas totalement la période de test. Dans ce cas là, les bougies  sont générées à base d’un template de vague, comme c’était le cas pour la version 3 de Metatrader. 

Dès que les données historiques de l’échelle de temps inférieure apparaissent, ce sont ces données qui sont interpolées. Cependant, les prix OHLC (Open High Low Close) réels existant apparaissent comme des points de contrôle. Dans la plupart des cas, les résultats de backtests d’Expert Advisor réalisés avec cette méthode ne peuvent être considérés que comme des estimations, et donc comme des résultats intermédiaires.   La figure ci dessous montre la bougie de la  précédente figure développée avec la méthode des points de contrôle. 


Tous les ticks

Ce mode permet de modéliser les mouvements des prix à l’intérieure d’une bougie de la manière la plus précise. A la différence des “points de contrôle”, cette méthode se base pas seulement sur l’utilisation des données de l’échelle de temps inférieure, mais aussi sur celles d’échelle de temps les plus petites. Pour chaque période est utilisée l’échelle de temps la plus petite disponible. Pour générer les mouvements de prix entre les points de contrôle , l’interpolation basée sur les templates prédéfinis est aussi utilisée. Il est donc conseillé de disposer des données de l’échelle de temps une minute sur tout l’étendue de la période du backtest. Il peut arriver que plusieurs ticks identiques soient générés les uns après les autres. Dans ce cas, les cotations dupliquées sont filtrées et le volume de la dernière est mis à jour.

Une grosse quantité de données générées doit être considérée. Ceci peut influencer la consommation des ressources du système et la vitesse du backtest.

{xtypo_warning}Attention: Il n’y a aucun intérêt de lancer la méthode de backtest “tous les ticks” si il n’y a pas de données d’une échelle de temps plus petite couvrant la période du backtest. {/xtypo_warning}

Utilisation de la plage de dates lors de la Modélisation

La plage de dates (fin et début du backtest) peut être utilisée à la fois pour le backtest d’Expert Advisor et la génération des séquences de bougies pour le backtest. Il n’y a souvent pas besoin de générer des données sur l’historique complet, en particulier pour la modélisation “tous les ticks”, où la quantité de données inutilisées peut être très importante. Donc, si lors de la génération des séquences de backtest il y a la possibilité d’utiliser la plage des dates, les bougies excédant les dates ne seront pas générées mais plutôt écrasées dans la séquence de sortie. Les données ne sont pas exclues de la séquence afin d’être capable de calculer correctement les indicateurs sur toute la période du backtest (par exemple une moyenne mobile nécessite des bougies précédant le début du backtest). Il doit être aussi souligné que les 100 premières bougies ne sont pas non plus générées, mais cette limitation ne dépend de l’établissement de la plage de dates.

Référence à l’échelle M1

Pour vérifier la précision de la modélisation intrabougie, le graphique minute du 5 septembre 2007 entre 10 et 11h sera utilisé.

Dans le mode “tous les ticks”, la séquence suivante a été générée:

 

 

 

Puisque le volume moyen de chaque bougie à l’intérieure de la plage n’excède pas 5, la séquence a été générée avec le minimum d’interpolation. En pratique tous les prix sont de véritables prix OHLC existant.

 

 

 

En superposant le graphique une minute sur celui basé une heure (les prix de clôture du graphique une heure sont indiqués en vert), on se rend compte qu’ils sont presque identiques.

 

 

Conclusions

La précision du backtest et la véracité de la simulation sont maximales s’il y a des données auxiliaires qui couvrent la totalité de l’échelle de temps sous laquelle se déroule le backtest. La problème de la précision du backtest revient donc à celui de la recherche d’historiques les plus détaillés possibles…

{xtypo_info}Note de Trading Automatique: Un tutoriel en cours de réalisation va vous expliquer étapes après étapes comment obtenir un environnement de backtest le plus précis possible avec Metatrader.{/xtypo_info}

 

Traduction: Nicolas Vitale
Source: http://articles.mql4.com/70
“MQL4 is a trade mark of MetaQuotes Software Corp. and all related materials are reserved for MetaQuotes”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>