OHLC 1 minute vs chaque tick - résultats opposés - page 2

 
laplacianlab:

Je suis absolument d'accord avec ugo58. Les grandes barres peuvent déclencher l'événement OnTick de nombreuses fois, alors que les petites barres le déclencheront beaucoup moins.

Cela peut avoir un impact sur votre stratégie de trading automatisé, donc nous, les développeurs, devons chercher des solutions qui atténuent le fait que votre événement OnTick peut être exécuté plusieurs fois par barre.

Je pense que ce que j'ai envoyé précédemment n'est qu'une solution. ugo50 a proposé une autre solution : exécuter votre logique OnTick dans la barre passée la plus récente. Quoi qu'il en soit, si vous voulez exécuter votre logique OnTick sur la barre actuelle, vous pouvez peut-être utiliser quelque chose de similaire à ce que j'ai envoyé précédemment.

Nous essayons d'implémenter quelque chose comme un événement OnBar.

Que pensez-vous de cette solution ?

laplacianlab:
Peut-être que ce lien est également utile,https://www.mql5.com/en/articles/159

Le code que vous avez posté est fondamentalement le même que celui de l'article. Ce n'est pas quelque chose de nouveau et c'est la meilleure approche pour un EA qui trade sur des barres fermées.

Bien que n'étant pas directement lié à ce sujet, cet article serait probablement intéressant pour vous.

 
michelino:

J'obtiens des résultats complètement opposés lorsque je teste sur chaque tick ou 1min OHLC. L'EA et les paramètres d'entrée sont exactement les mêmes mais dans le cas de 1min ohlc j'obtiens 50000 profit alors que dans chaque tick j'obtiens -7000 pertes.

Cela se produit sur de nombreuses paires testées sur une période de 2 ans 0811-0813.

quelqu'un a eu le même problème ? Je ne comprends pas quel est le problème et que dois-je faire pour trader en argent réel.

les deux graphiques ci-dessous

1minute OHLC

chaque tick

Bonjour, le nombre de transactions doit être très différent aussi, n'est-ce pas ? Si vous sélectionnez chaque tick, cela signifie que votre fonction onTick est exécutée quelque chose comme toutes les x secondes. Même chose pour moi, mauvais résultats.

2013.08.21 08:54:04    Core 1    EURUSD.e,M3: 72488 ticks (6230 bars) 



 
Florew:

Bonjour, le nombre de transactions doit être très différent aussi, n'est-ce pas ? Si vous sélectionnez chaque tick, cela signifie que votre fonction onTick est exécutée quelque chose comme toutes les x secondes. Même chose pour moi, mauvais résultats.



J'essaie d'expliquer ma façon de faire.

Le mouvement des prix est comme un sismographe. Observé à sa plus petite échelle, il est à mi-chemin entre le chaos et l'imprévisibilité, mais à mesure que nous augmentons l'échelle de nos observations, le prix devient de plus en plus déterministe. Quoi qu'il en soit, nous devons toujours garder à l'esprit que les barres de prix ne sont que des discrétisations arbitraires du mouvement des prix.

Telle serait l'explication théorique. Qu'en pensez-vous ? Vous pouvez réfuter si vous le souhaitez.

 
michelino:

Quelqu'un a eu le même problème ? Je ne comprends pas quel est le problème ici et que dois-je faire lorsque je négocie de l'argent réel.


Excusez mon insistance sur la participation de ce fil, j'essaie simplement d'aider. Il s'avère que maintenant je suis impliqué dans une stratégie où cette question est très importante.

En bref, si le chemin que le mouvement du prix définit à travers les barres est très important pour votre stratégie, alors le mode OnTick de MQL5 est essentiel. D'autre part, si votre stratégie de trading évolue à plus grande échelle, pour ainsi dire, le mode OnTick peut ne pas être nécessaire. Dans ce cas, vous n'avez pas besoin de gaspiller les ressources de votre ordinateur pour tester votre stratégie. Vous devriez lire ce sitehttps://www.mql5.com/en/docs/runtime/testing

Cela dit, il serait intéressant d'analyser votre stratégie de trading pour découvrir ce qui se passe. Qu'est-ce qui construit votre système ? Sur quelle idée est-il basé ? Comment l'avez-vous construit ?

Il semble que les parties fondamentales de votre système soient fortement basées sur le court terme (cadres temporels très courts, barres de minutes), dans une échelle pour laquelle une minute fait une grande différence. Vous devriez analyser ces parties.

Salutations !

Documentation on MQL5: MQL5 programs / Testing Trading Strategies
Documentation on MQL5: MQL5 programs / Testing Trading Strategies
  • www.mql5.com
MQL5 programs / Testing Trading Strategies - Documentation on MQL5
 
laplacianlab:

J'essaie d'expliquer ma façon de faire.

Le mouvement des prix est comme un sismographe. Observé à sa plus petite échelle, il est à mi-chemin entre le chaos et l'imprévisibilité, mais à mesure que nous augmentons l'échelle de nos observations, le prix devient de plus en plus déterministe. Quoi qu'il en soit, nous devons toujours garder à l'esprit que les barres de prix ne sont que des discrétisations arbitraires du mouvement des prix.

Telle serait l'explication théorique. Qu'en pensez-vous ? Vous pouvez réfuter si vous le souhaitez.


Je ne suis pas expert en formation de bougies, mais votre explication me semble correcte.

Ma compréhension est que la simulation de l'EA avec l'option chaque tick (pas 1min OHLC) se comporte plus ou moins comme dans les conditions réelles du marché. Bien, sauf si l'EA a un code disant d'attendre la formation complète de la bougie 1 min. OHLC 1 min, comme j'ai compris que vous l'avez mentionné ici. Je ne suis pas sûr que ce soit la signification du code, ai-je raison ? )


*** EDIT ***


Pour vous, quelles précautions doivent être prises pour qu'un EA en condition réelle de marché (démo ou vrai) se comporte comme avec l'option de simulation 1min. OLHC (la plus rentable) ?

 
Florew:


Pour vous, quelles précautions doivent être prises pour qu'un EA en condition réelle de marché (démo ou vrai) se comporte comme avec l'option de simulation 1min. OLHC (la plus rentable) ?

Peut-être devriez-vous vous demander quelle simulation est la bonne ? et pourquoi ? et ensuite pouvez-vous reproduire ces données simulées dans un trading réel ?
 
RaptorUK:
Peut-être devriez-vous vous demander quelle simulation est la bonne ? et pourquoi ? et ensuite, pouvez-vous reproduire ces données simulées dans un trading réel ?


Je suis d'accord avec vous. J'ai obtenu la réponse à la première et à la deuxième question mais pas à la dernière.

Dans cet article, il n'y a pas d'erreur sur le nombre de points de support pour ce premier exemple ? Je ne vois qu'un seul point de support pour l'ombre d'ouverture et l'ombre de fermeture. Il est dit trois :/


Si l'ombre est générée à l'aide de trois points de support et que les valeurs entières 3 / 4 la taille de l'ombre et 1 / 2 la taille de l'ombre sont égales (cela se produit lorsque la différence entre Open et Low ou Open et High n'est pas supérieure à 2 points), alors la génération de l'ombre change de la façon suivante :


Si l'ombre est générée par deux points de support, alors les points de contrôle sont disposés de la façon suivante :

 
Florew:

Bonjour, le nombre de transactions doit être très différent aussi, n'est-ce pas ? Si vous sélectionnez chaque tick, cela signifie que votre fonction onTick est exécutée quelque chose comme toutes les x secondes. Même chose pour moi, mauvais résultats.



pas vraiment le nombre de trades diffère légèrement de 5-10%. mais j'ai compris pourquoi cela se produit puisque l'EA entre sur le marché en position longue quand le prix est en dessous de la moyenne mobile d'un certain nombre de points (l'opposé pour une position courte) quand on trade ohlc il achète exactement sur le bas alors qu'à chaque tick il achète entre le bas et la clôture donc il prend beaucoup de profit qui normalement n'aurait pas été pris.

Il n'y a donc aucun moyen de reproduire cette performance malheureusement.

 
Florew:


Dans cet article, n'y a-t-il pas une erreur sur le nombre de points d'appui pour ce premier exemple ? Je ne vois qu'un seul point d'appui pour l'ombre d'ouverture et l'ombre de fermeture. Il est dit trois :/


Je pense qu'il y a un décalage entre les concepts et la terminologie. Où voyez-vous le seul point d'appui dans les figures que vous envoyez ?

Quoi qu'il en soit, je pense également que les détails de cet algorithme sont trop importants pour nous dans le sens où la façon dont la séquence de ticks historiques est construite n'a pas d'importance. C'est très bien et intéressant d'accéder à cette information mais je veux dire que nous ne faisons rien avec cela ! Nous ne pouvons qu'être conscients des pièges des ordinateurs lorsqu'ils manipulent des choses discrètes. Il y a toujours un point où l'on perd en précision, c'est la même chose pour les valeurs à virgule flottante. La différence ici est que nous avons également affaire au comportement humain à une très petite échelle...

À propos, nous avons également discuté du fait que les données historiques des courtiers ne sont pas les mêmes, et que cette différence s'accentue à court terme.

Que pensez-vous de tout cela ? Est-ce correct ? Pensez-vous qu'il vaut la peine de se concentrer sur des stratégies qui devraient bien fonctionner à petite échelle ?

 

michelino:

Il n'y a donc aucun moyen de reproduire cette performance, malheureusement.


Je ne suis pas sûr de comprendre votre point de vue. A mon avis, il doit être possible de reproduire la simulation en mode OHLC 1 minute.

La documentation dit :

Dans le mode "1 minute OHLC", la séquence de tick est construite uniquement par les prix OHLC des barres minutes, le nombre de points de contrôle générés est considérablement réduit - donc, le temps de test aussi. Le lancement de la fonction OnTick () est effectué sur tous les points de contrôle, qui sont construits par les prix des barres minutes OHLC.

Ensuite :

Pour tester la stratégie de trading, nous avons besoin d'une séquence de ticks, sur laquelle le travail de l'Expert Advisor sera simulé. Ainsi, pour chaque barre minute, nous connaissons les 4 points de contrôle, où le prix a définitivement été. Si une barre n'a que 4 ticks, alors cette information est suffisante pour effectuer un test, mais généralement le volume des ticks est supérieur à 4.

La question est : combien de points de contrôle dans les barres minutes OHLC et comment modifier la fonction onTick() pour travailler sur chacun d'eux ?

D'après le texte dans les deux citations, je comprends que la réponse à la première question est toujours 4, parce que si une barre a plus de 4 ticks, elle est "significativement" réduite pour accélérer le temps de test. Pour la question suivante, la chose est d'identifier les 4 points de contrôle des barres OHLC 1 minute en condition réelle de marché, puis de demander à onTick() de travailler sur eux.

Raison: