Documentation

Applications

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

Backtesting fiable dans Tradestation / MultiCharts

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 TS / MC

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 Tradestation/ MultiCharts.

Si votre stratégie donne des résultats totalement différents dans SQ et dans TS/MC, 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 aux moteurs de trading de TS/MC, donc si vous voyez des différences, c'est très probablement 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 Tradestation / MultiCharts pour que cela fonctionne.

 

2. Utiliser les bons réglages et les bonnes données

Les différences entre les backtests sont principalement dues à des problèmes dans ce domaine.

Il y a deux façons d'utiliser les données de votre TS / MC dans SQ :

Option 1 - Importer les données exactes du graphique

La méthode la plus fiable consiste à exporter les données directement à partir de votre graphique dans TS / MC et à les importer dans SQ.

Dans Multicharts - utiliser Fichier -> Exporter les données
Dans Tradestation - ouvrez la fenêtre de données et utilisez la fonctionnalité Enregistrer.

De cette façon, vous pouvez être sûr que vous le testez sur les mêmes données que vos sessions réelles et autres configurations.

Ainsi, par exemple, lorsque vous testez votre stratégie dans TS/MC sur un graphique de 15 minutes avec une certaine session, exportez les données exactes du graphique de 15 minutes avec la session appliquée depuis la plateforme de trading et importez-les dans SQ.

Important - Si vous utilisez cette méthode, vous DEVEZ définir Session = Pas de session dans les options de trading.. C'est parce que les données comprennent déjà la session, sinon SQ essaiera d'appliquer la session à nouveau et le résultat sera des données incorrectes !


Option 2 - Importer des données par minute et laisser SQ calculer des échéances plus lointaines

Il est plus pratique d'importer des données en minutes à partir de TS, et de laisser SQ calculer des échéances plus élevées pour tout backtest que vous réalisez.

Important - Dans ce cas, assurez-vous d'utiliser la bonne session dans SQ, elle doit être exactement la même que dans Tradestation / Multicharts.. Les barres dans TS / MC sont calculées sur la base de cette session et si vous vous trompez, les barres seront mal calculées !

Si vous constatez des différences dans le backtest, revenez à l'option précédente et testez-la sur les données exportées du graphique.

Il existe un nouvel article décrivant la manière d'effectuer correctement les tâches suivantes exporter les données de Tradestation.

 

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 Tradestation ou MultiCharts 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 l'heure de fin 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. Utiliser des options de sortie correctes basées sur le temps

Cela s'applique si l'une des options d'échange basées sur le temps est activée - par exemple Sortie en fin de journéeou Sortie le vendredi.

Lorsque vous utilisez l'une de ces deux options, vous devez soit définir leur heure de sortie à 00:00 - SQ fermera alors les transactions à la fin de la session de la journée - ou, si vous spécifiez l'heure exacte, vous devez vous assurer qu'il s'agit de l'heure d'une barre existante AVANT la toute dernière barre de la journée.

Une mauvaise configuration à ce niveau pourrait amener SQ à clôturer les transactions à la fin de la journée à une heure différente de celle de la plateforme TS / MC.

Si vous constatez des différences de stratégies, comparez les heures de clôture des transactions effectuées en fin de journée entre SQ et TS/MC si elles se comportent de la même manière.

 

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.

 

6. La prise en charge des sous-graphes est encore en cours de développement

Nous nous sommes concentrés sur les stratégies à graphique unique dans la mise en œuvre du moteur de test Tradestation / MultiCharts.
Les stratégies qui utilisent plusieurs graphiques (Data2, Data3 etc. dans EasyLanguage) n'ont pas encore été testées dans StrategyQuant for match - elles peuvent fonctionner ou non.
Nous nous concentrerons sur ce point dans les prochaines versions.

 

7. L'amélioration de la précision des tests est encore en cours de développement

Actuellement, il est possible d'utiliser le moteur de test Tradestation / MultiCharts avec la précision de test 'Selected Timeframe'. Cette précision est suffisante pour tous les types d'ordres - marché, stop, limite. Tradestation / MultiCharts fonctionne de manière fiable avec ce type de précision de test, et il peut être utilisé dans le trading en direct.

Nous travaillons à l'ajout de modes de précision plus performants, qui seront ajoutés dans l'une des prochaines versions.

 

8. Il existe peu d'indicateurs qui n'ont pas fait l'objet de tests approfondis au sein de TS/MC.

Quelques indicateurs n'ont pas été testés dans toutes leurs configurations possibles et peuvent entraîner des différences dans les transactions. Il s'agit des indicateurs suivants
- Pivots
- Fibo

 

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
Jordanie
2. 12. 2023 1:57 am

J'attends avec impatience un moteur de test Multicharts de plus grande précision. J'attends cela depuis plusieurs années. C'est vraiment important pour améliorer la crédibilité des résultats des tests.