Répondre

Tous les Backtester Engine ne sont pas identiques

2 réponses

hannahis

Abonné, bbp_participant, communauté, 21 réponses.

Visiter le profil

Il y a 7 ans #116341

Tous les moteurs Backtester ne sont pas identiques.

 

La façon dont un backtester "organise" ses données historiques aura un impact considérable sur la fiabilité et la validité du logiciel.

 

Dans toute expérience scientifique, nous devons évaluer la validité du test avant d'évaluer la fiabilité des résultats.

 

Il n'est pas valable d'utiliser une machine à peser pour mesurer sa taille et, par conséquent, les "résultats" ne sont pas pertinents, ils ne peuvent pas être comparés.

 

En outre, si à chaque fois que vous montez sur la machine à peser (dans un intervalle de 2 minutes) et en supposant que toutes les autres variables restent identiques, vous obtenez toujours des résultats différents, alors cette machine à peser est un instrument valable mais très peu fiable.

 

De même, si un logiciel de change n'utilise pas "correctement" les données historiques pour simuler aussi fidèlement que possible le comportement d'un marché réel (comme sur votre compte réel), alors quelles que soient les caractéristiques fantaisistes du logiciel de change, il est INVALIDE.

 

Nous faisons tellement confiance à tous ces tests statistiques, mais souvent nous n'examinons pas ou n'évaluons pas en premier lieu le fonctionnement du moteur de backtester du logiciel. Nous n'évaluons pas si l'utilisation des "valeurs des barres précédentes" dans une stratégie multi-cadres est correcte.

 

Je comprends que SQ est en train d'ajouter des fonctionnalités Multi time frame à SQ4 (et j'attends de le tester pour voir s'il est meilleur que d'autres logiciels) et je veux donc écrire pour sensibiliser au "problème commun" auquel j'ai été confronté avec d'autres logiciels forex qui utilisent une méthodologie défectueuse dans leur logique multi time frame, afin d'espérer que SQ évite ces pièges.

 

L'utilisation courante de la "Valeur de la barre précédente (VBP) de l'horizon temporel supérieur" dans une fonction multihoraire est fondamentalement erronée à mon avis.

 

En voici un exemple.

 

J'utilise un graphique de 1 minute et j'ajoute des indicateurs/règles M30, H1, H4 à ma stratégie.

 

Lorsque nous utilisons la barre de fermeture de la PBV du cadre temporel supérieur dans le cadre du calcul de mon EA, vrai/faux et de l'exécution ou non de la transaction, nous rencontrons ce problème...

 

à 11h57, l'EA devra rassembler les valeurs de clôture des différentes barres de temps pour déterminer si les règles de l'EA sont vraies ou fausses.

 

Pour les règles 1min, il prendra la valeur du prix de clôture de la barre 1min à 11:57.

 

Pour les règles M30, il prendra la clôture de la barre précédente de M30 à 11:30 (qui a un écart temporel/différence de 27 minutes par rapport à la clôture de ma barre actuelle).

 

Pour les règles H1, il prendra la clôture de la barre précédente de H1 à 11:00 (qui a un écart de 57 minutes par rapport à la clôture de ma barre actuelle).

 

Pour les règles H4, il prendra la clôture de la barre H4 précédente à 8:00 (parce que l'intervalle H4 est à 00:00, 04:00, 08:00 et 12:00, etc.), ce qui représente un écart de 3 heures et 57 minutes par rapport à la clôture de ma barre actuelle).

 

 

Prenons un autre exemple : Imaginons que votre EA utilise à différents intervalles 4 valeurs de prix différentes (au lieu d'utiliser uniquement le niveau de prix de clôture de la barre de 1min) pour calculer ses règles d'ouverture/fermeture afin de déterminer si une transaction doit être exécutée ou non.

 

À 15 h 46

 

Les règles 1min prendront/utiliseront la valeur du prix de clôture de la barre à 3:46 valeur actuelle du prix de clôture de la barre dans son calcul.

 

Les règles M30 prendront/utiliseront la valeur du prix de clôture de la barre à 3:30 (écart de temps =16min) (l'exemple précédent a un écart de temps de 27min).

 

Les règles H1 prendront/utiliseront la valeur du prix de clôture de la barre à 3:00 (écart de temps = 46min) (l'exemple précédent a un écart de temps de 57min).

 

Les règles H4 prendront/utiliseront la valeur du prix de clôture de la barre à 00:00 (écart de temps = 3hrs 46min) (l'exemple précédent a un écart de temps de 3hrs et 57).

 

 

Quelles sont donc les implications d'une telle utilisation "abusive" de la barre précédente de la période supérieure et quelles difficultés cela pose-t-il aux utilisateurs ?

 

 

1. Pour qu'un objectif d'EE donne des résultats cohérents, il faut une formule cohérente.  

 

La formule de votre EA est-elle cohérente ? (c'est-à-dire quelle méthode utilise-t-il pour calculer les prix du marché/les données historiques afin de déterminer s'il faut exécuter un trade ou non, si les règles sont vraies/fausses).

 

Si nous utilisons un seul niveau de prix et que nous l'appliquons à tous les différents cadres temporels, par exemple en utilisant uniquement la valeur de la barre de fermeture/ouverture/prix actuel du graphique temporel et en l'appliquant à tous les autres cadres temporels, nous "produisons" une formule cohérente.

 

Cependant, si nous utilisons les valeurs de plusieurs barres précédentes prises à partir de la valeur de la barre précédente de plusieurs cadres temporels, nous avons créé une formule "variable". Une formule qui change tout le temps parce que vous utilisez différentes valeurs de prix prises à différents intervalles/intervalles de temps.

 

C'est une question de bon sens : une formule variable/changeante produira des résultats variables/changeants (résultats incohérents) et une formule fixe produira des résultats fixes, cohérents avec son application. Elle reste fidèle à l'intention et à l'exécution de l'utilisateur.

 

Par conséquent, je ne m'attends pas à des résultats cohérents de la part d'un EA généré par un logiciel qui utilise une "valeur de la barre précédente" différente lorsque j'utilise des règles multi-horaires dans mon EA. En fait, je ne perdrai pas mon temps/argent avec de tels logiciels.

 

2. Imaginez comment vous allez établir vos règles de trading si vous utilisez les valeurs des barres précédentes de H4 (ou d'autres cadres temporels plus élevés).  

 

Imaginez que vous vouliez que votre EA entre à la clôture de la barre actuelle lorsque le MA de H4 se croise. Comment allez-vous définir cette règle si le logiciel utilise la valeur de la barre précédente de H4 ?  

 

Vous devez penser "en arrière", c'est-à-dire comment la condition se présente avant le croisement H4, en d'autres termes, comment pensez-vous que vos indicateurs H4 doivent être 4 heures avant qu'un breakout ne se produise (parce que le logiciel utilise la barre précédente de H4, qui était il y a 4 heures).  

 

Parfois, l'indicateur H4 reste le même pendant de nombreuses barres avant qu'il ne se croise vraiment, comment allez-vous fixer de telles règles pour les "barres précédentes". Ne serait-il pas plus facile de fixer les règles telles quelles, à la clôture de la barre actuelle ?

 

Si le logiciel utilise la clôture de la barre de 1min pour calculer l'indicateur H4, je peux alors simplement mettre mes règles comme : exécuter un trade quand la MA 100 de H4 croise la MA 200, à chaque fois à la clôture de la barre de 1min. C'est beaucoup plus facile que d'entrer la condition de clôture de la barre précédente de H4, c'est à dire il y a 4 heures.

 

 

Le problème réside dans la méthodologie du développeur du logiciel en ce qui concerne l'utilisation des données historiques. Par conséquent, tous les backtester ne sont pas (conçus) de la même manière.  

 

L'utilisation des valeurs des barres précédentes d'autres cadres temporels multiples comme point de décision/exécution produit des performances irréalistes et inexactes (EA).

 

Backtesting réalisteMême si aucune approximation ne peut être 100% parfaite, nous avons tout fait pour recréer avec précision les conditions passées du marché et l'exécution des ordres pour la stratégie de trading. Les moteurs de backtesting classiques comportent de nombreuses hypothèses et raccourcis, ce qui se traduit par des tests irréalistes et des résultats peu fiables. MultiCharts est une plateforme de trading de niveau institutionnel qui minimise les hypothèses et prend en compte de nombreux facteurs.

 

 

Je ne suis pas ici pour promouvoir MC, mais pour souligner et mettre l'accent sur l'importance d'utiliser correctement les données historiques pour recréer les conditions passées du marché afin de produire des résultats de backtesting fiables/valides pour vous permettre de choisir quel EA écarter ou conserver.

 

 

 

L'utilisation des données historiques a deux fonctions différentes/primaires

 

1) Suivre l'évolution des prix sur une certaine période (jusqu'où remontent vos données historiques). 

 

     Ces données sont donc regroupées dans des barres temporelles OHLC. Ainsi, vous pouvez voir sur le graphique MT4, les mouvements de prix sur des mois ou des années.

 

2) Pour que le logiciel utilise les valeurs de prix pour calculer si les règles de votre EA sont vraies/fausses. Pour l'exécution ou l'ouverture/fermeture d'une transaction dans un environnement de backtesting simulé.

 

 Bien que j'utilise l'indicateur H4, je ne dois pas dépendre des valeurs de prix OHLC de H4 pour décider si, au niveau de prix actuel/à la clôture de la barre, il y a un croisement dans le MA de H4 ? C'est l'erreur commune dans laquelle tombent beaucoup de logiciels. Ce n'est pas parce que j'utilise des indicateurs H4 dans la formule de mon EA que les valeurs de barres OHLC de H4 ne peuvent être utilisées.  

 

L'utilisation des données historiques à ce stade est destinée à l'exécution, et non au suivi des prix. Étant donné que H4 est composé de plusieurs valeurs de barres d'une minute, il est donc plus précis d'utiliser la valeur actuelle de la barre ou la clôture de la barre d'une minute et d'appliquer cette valeur à tous les indicateurs pour le calcul et ainsi déterminer s'il convient d'exécuter la transaction en temps opportun plutôt que d'utiliser la valeur de la barre précédente de H4 "en dehors des données". Compte tenu de la volatilité du marché, ce qui s'est passé il y a 4 heures, le marché, la tendance et la différence de prix auraient changé radicalement.

 

 

La précision est la clé

    

En fait, si plusieurs cadres de temps sont disponibles dans SQ, idéalement, nous devrions utiliser un graphique de 1min pour entrer toutes nos règles de trading. Le graphique que vous utilisez détermine la vitesse et la fréquence à laquelle vous voulez que votre EA scrute le marché à la recherche d'opportunités de trading. Cela n'a rien à voir avec les stratégies que vous utilisez. Vous pouvez saisir les indicateurs H4, H1 ou tout autre indicateur de temps dans le graphique de 1min. Le problème est une question de vitesse. A quelle vitesse voulez-vous que votre EA réagisse aux changements du marché. Un EA lent n'est pas susceptible d'avoir des exécutions d'entrée/sortie précises.  

 

Dans les conditions actuelles de volatilité du marché, il est essentiel que notre EA soit rapide et précis. S'il y a un tel décalage dans le temps, il est très difficile d'obtenir un EA très précis et rentable. La plupart de mes EA peuvent gagner entre $3000 - $5000 par semaine (compte tenu de la volatilité actuelle du marché). Je ne serai pas en mesure d'atteindre de tels résultats si j'utilise un cadre de temps supérieur à 1min.

 

A quelle vitesse voulez-vous que votre EA analyse le marché et continue à rechercher les bonnes opportunités ? Toutes les minutes, toutes les heures ou toutes les 4 heures ? A quelle vitesse voulez-vous que votre EA réagisse aux changements du marché, toutes les minutes ou toutes les heures ?  

 

L'utilisation d'un graphique en 1 minute me permet de développer un EA qui a des règles d'entrée/sortie élevées. Avec l'utilisation de plusieurs cadres de temps et l'évitement de l'utilisation "erronée" de plusieurs valeurs de barres précédentes (au lieu d'une valeur de barre actuelle), nous avons un meilleur espoir de faire de bons profits de chaque mouvement du marché (bien sûr, le reste dépend de la solidité de votre plan/stratégie de trading).

 

 

 

Pourquoi pensez-vous que Multi Chart a cette fonction ci-dessous ?

 

Simulation tic-tac

La loupe à barres est essentielle pour augmenter précision pendant le backtesting. MultiCharts peut construire des barres plus grandes à partir d'éléments plus petits " - des barres de secondes et de minutes à partir de ticks, des barres d'heures et de jours à partir de minutes. Vous pouvez recréer les mouvements de prix exacts à l'intérieur de chaque barre en utilisant la loupe de barre. Par exemple, Bar Magnifier peut charger de manière invisible les minutes qui composent l'heureet la stratégie sera testée à la minute près

 

Par conséquent, en utilisant le graphique de 1 minute pour votre EA, vous effectuez un backtesting minute par minute (à condition que le développeur utilise la clôture de la barre de 1 minute comme point de calcul pour toutes les autres entrées/règles multi-cadres temporelles).

 

Ps : Je ne suis pas ici pour promouvoir MC, car je pense que MC et SQ sont deux logiciels très différents. SQ est plus destiné aux non programmeurs. Mais nous pouvons apprendre de l'expertise des autres.

 

 

Conclusion

Puisque SQ4 incorpore des fonctionnalités Mult time frame, veuillez ne pas utiliser la barre précédente du time frame le plus élevé comme méthodologie de backtesting. Je n'achèterai jamais un logiciel avec de telles méthodes de backtesting. Parce que quel que soit l'EA que j'ai développé en utilisant la valeur de la barre précédente, ces EA (avec une formule variable/un écart de temps) ne produiront jamais de résultats cohérents et fiables qui me permettraient de mettre mon EA sur un compte réel. 

Je suis impressionné par l'équipe de développement de SQ et je veux donc que SQ réussisse à trouver des moyens de fournir des outils efficaces et puissants à ses utilisateurs dévoués, qui sont tous si solidaires et reconnaissants envers les membres de l'équipe de SQ. Le succès de SQ se traduira par le succès des utilisateurs (dans leur recherche d'un EA rentable). 

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 7 ans #141579

Merci pour ce long article, je comprends ce que vous voulez dire. En général, vous dites que ce n'est pas une bonne idée d'utiliser la valeur de la barre précédente dans les stratégies multi-TF.

 

Je ne vois pas les choses de manière aussi stricte, cela dépend, et parfois il est avantageux d'utiliser les valeurs des barres précédentes. Mais le nouveau SQ4 ne vous limitera pas dans votre choix, il a la possibilité d'utiliser la valeur de la barre actuelle (par exemple la barre H4 qui est actuellement en cours de développement), vous n'êtes pas limité à la valeur de la barre précédente.

 

Vous avez mentionné MultiCharts, c'est sans aucun doute un bon logiciel, mais SQ dispose d'un moteur de backtesting comparable, voire meilleur, utilisant la précision des ticks réels d'une manière propre et compréhensible.

J'ai toujours trouvé déroutant le choix de Tradestation/MultiCharts d'utiliser la simulation de barre intérieure.

Marque
StratégieArchitecte de Quantités

0

hannahis

Abonné, bbp_participant, communauté, 21 réponses.

Visiter le profil

Il y a 7 ans #141580

Super !!!

 

Marquer,

 

Il est rassurant de savoir que SQ4 n'a pas de telles restrictions et offre beaucoup plus de flexibilité que je ne peux l'imaginer.

 

Maintenant ça vaut la peine d'attendre car je me demandais comment le moteur de backtest de SQ4 était organisé et s'il allait répéter les mêmes erreurs.  

 

Je suis très heureux d'apprendre que SQ4 est beaucoup plus "avancé" que je ne le souhaiterais. Bon travail.  

 

Les bonnes choses valent la peine d'être attendues....J'attends avec impatience.

0

Affichage de 2 réponses de 1 à 2 (sur un total de 2)