Documentation

Applications

Dernière mise à jour le 29. 4. 2019 par Mark Fric

Backtesting fiable dans MetaTrader

Fiabilité du backtesting en général

Tout d'abord, il faut savoir que le backtesting consiste à tester la stratégie sur des données historiques. Le flux exact de ticks ne se répétera jamais dans le futur, donc même si vous utilisez des données de ticks réels, cela ne signifie pas que votre stratégie se comportera de la même manière dans le futur que dans le passé.

Deuxièmement, il faut savoir que les backtests ne peuvent pas être 100% exacts. Au mieux, le backtesting offre une approximation de la façon dont les transactions seraient exécutées en temps réel. Il y a des choses comme les spreads élargis, les requêtes, le slippage, les délais, les déconnexions de réseau, les pannes de VPS, etc. qui affectent le trading en temps réel.

 

La propriété la plus importante de notre stratégie devrait être sa robustesse. 

Nous devons nous assurer que nous n'avons pas simplement ajusté la courbe de notre stratégie aux données existantes afin qu'elle fonctionne parfaitement dans nos backtests ; qu'elle reste rentable malgré les changements dans les données, dans les paramètres, lorsqu'elle manque quelques transactions, etc.

StrategyQuant propose de nombreux outils (Cross checks) pour tester la robustesse de la stratégie. Vous pouvez la tester sur différents marchés, avec une variation des paramètres, ou avec une variation des changements aléatoires dans les données historiques en utilisant les tests de Monte Carlo.

 

Backtesting fiable entre SQ et MT4/5

Un backtesting fiable dans ce sens signifie que la stratégie aura des résultats de backtesting identiques ou très similaires dans StrategyQuant et MetaTrader.

Si votre stratégie donne des résultats totalement différents dans SQ et dans MT, il y a quelque chose qui ne va pas dans votre configuration et vous devez le résoudre avant d'aller de l'avant.

Le moteur de backtesting de SQ a été conçu pour correspondre au moteur de trading de MetaTrader, donc si vous voyez des différences, c'est très probablement parce que les données ou la configuration sont différentes entre les deux programmes.

Vous trouverez ci-dessous une liste de quelques points à surveiller.

 

1. Assurez-vous que tous les indicateurs personnalisés ont été importés.

Il s'agit d'une des étapes postérieures à l'installation : https://strategyquant.com/doc/strategyquant/installation/#steps-after-installation
SQ utilise des indicateurs personnalisés et vous devez les importer dans MetaTrader pour que cela fonctionne.

 

2. Importez les données de votre MetaTrader, ou assurez-vous que les données Dukascopy téléchargées sont similaires à celles de votre courtier.

SQ offre un téléchargement pratique de données de haute qualité sur les ticks et les M1 fournies gratuitement par Dukascopy.
Les données elles-mêmes sont fiables, mais assurez-vous d'utiliser le même fuseau horaire que votre courtier, en particulier si vous prévoyez d'utiliser des fonctionnalités telles que la sortie en fin de journée / vendredi.

Le moyen le plus simple de vérifier que votre configuration est correcte est d'utiliser les mêmes données dans SQ et MT, ce qui signifie exporter vos données de MT et les importer dans SQ. Ensuite, vérifiez si le backtest de la stratégie correspond à ces données - il devrait le faire. Si ce n'est pas le cas, vérifiez le point 3.

Il faut également tenir compte du fait que votre courtier aura des données légèrement différentes de celles de Dukascopy et s'assurer que votre stratégie est robuste et qu'elle peut y résister. Tester votre stratégie dans SQ puis sur des données différentes dans votre MetaTrader est une autre forme de test de robustesse.
Assurez-vous simplement que les différences importantes dans les données ne sont pas dues à votre configuration, mais à un échec réel de la stratégie.

 

3. Veillez à utiliser le bon moteur et le bon type de barre dans les données importées.

Le choix du moteur est évident - vérifiez que vous utilisez bien le moteur MetaTrader 4 ou 5 dans SQ, car il offre un choix de moteurs.

Lorsque vous importez des données à partir d'un fichier, assurez-vous d'utiliser "L'horodatage est le début de l'heure de la barreType de données de la barre ". Il s'agit du type de données utilisé par MetaTrader, et il influence la manière dont les échéances supérieures sont calculées.

 

4. Configurez correctement votre testeur de stratégie MetaTrader

Veillez à utiliser l'option même réglage de l'écart, même plage de dates, etc.. L'objectif est d'avoir la même configuration entre SQ et MT.

Vous devriez également envisager de déconnecter MetaTrader du réseau, car sinon il utilisera (par défaut) le spread actuel en direct dans le backtest, ce qui signifie que votre backtest peut être légèrement différent à chaque fois que vous l'exécutez.

Comment déconnecter MetaTrader4
Tout d'abord, MetaTrader doit être en ligne et connecté au moins pendant un certain temps, afin de charger les spreads actuels. Vous pouvez ensuite le déconnecter en fixant le proxy à une valeur fictive.

Allez dans Outils → Options, onglet Serveur et cochez la case Activer le serveur proxy.

Cliquez ensuite sur le bouton Proxy ... pour configurer le proxy.

Mettez localhost comme Serveur, et un texte fictif comme Login et Mot de passe. Fermez la boîte de dialogue en cliquant sur OK et fermez la boîte de dialogue Options en cliquant à nouveau sur le bouton OK, ce qui sauvegardera vos paramètres.

Vous devez maintenant redémarrer MetaTrader et la prochaine fois que vous le démarrerez, vous serez déconnecté du courtier.

Vous devriez voir "No connection status" dans le coin inférieur droit de MetaTrader.

À partir de maintenant, tous vos tests seront exécutés avec les mêmes écarts, et les résultats seront les mêmes chaque fois que vous exécutez le test.

 

5. Redémarrez SQ et effacez les fichiers temporaires lorsque vous rencontrez des problèmes.

SQ met en cache les données de backtest dans la mémoire et les fichiers sur le disque, et il peut arriver que les données en cache soient des versions plus anciennes (erronées) et qu'elles n'aient pas été mises à jour lorsque vous en avez importé de nouvelles ou que vous avez modifié quelque chose.

Si vous constatez des différences dans les backtests, essayez d'abord de quitter SQ, de supprimer tous les fichiers du dossier /internal/testfiles et de redémarrer SQ.

Cet article a-t-il été utile ? L'article était utile L'article n'était pas utile

S'abonner
Notification pour
1 Commentaire
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Blade Runner
Blade Runner
21. 11. 2019 3:42 pm

Les paramètres d'horodatage et d'heure d'été des données téléchargées sont également très importants par rapport au courtier que vous envisagez d'utiliser en mode démo ou en mode réel, en particulier pour les échéances plus élevées telles que H4.