Vous devez exécuter les deux EA pour comparer les résultats.
Mais je sais déjà que ce sera la même chose, MAIS...
seulement si c'est OnTick(), il y aura un retard dans les résultats,
c'est-à-dire pas en temps réel.
Il n'y aura pas de retard. Au contraire, si vous vous abonnez à de nombreux instruments pour mettre à jour la pile, OnTick peut fonctionner plus rapidement. N'ayez pas la flemme de comparer.
Il n'y aura pas de retard. Au contraire, si vous vous abonnez aux mises à jour des actions sur de nombreux instruments, OnTick peut fonctionner plus rapidement. Ne soyez pas trop paresseux pour comparer.
Et pourquoi ne pas souscrire à tous les enjeux possibles ?
Vous pourriez trouver autre chose.
Sur un seul outil avec un abonnement à un seul tick, OnBookEvent() est déclenché plus souvent que OnTick().
2020.01.23 16:56:53.226 Ticks_test (GOLD-3.20,M1) OnTick Tick is done!
2020.01.23 16:56:53.226 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done!
2020.01.23 16:56:53.712 Ticks_test (GOLD-3.20,M1) OnTick Tick is done!
2020.01.23 16:56:53.712 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done!
2020.01.23 16:56:53.930 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done!
2020.01.23 16:56:53.996 Ticks_test (GOLD-3.20,M1) OnTick Tick is done!
2020.01.23 16:56:53.996 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done!
2020.01.23 16:56:54.016 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done!
2020.01.23 16:56:54.280 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done!
2020.01.23 16:56:54.392 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done!
Un nouveau paquet de ticks arrive - OnBookEvent() est déclenché.
Si vous n'aimez pas ma version, écrivez la vôtre.
D'ailleurs, le résultat est supérieur, avec 84 tumblers signés sur le réel!
Главным преимуществом торговых терминалов MetaTrader является возможность создания автоматических торговых систем, способных совершать торговые операции без вмешательства трейдера, что позволяет исключить влияние психологии на результаты торговли. Для этого нужно сформулировать торговую стратегию и реализовать ее в виде программы на языке MQL...
Pourquoi ne pas s'inscrire pour toutes les culbutes possibles ?
Tu pourrais penser à autre chose.
Sur un outil avec un seul abonnement au verre, OnBookEvent() est déclenché plus souvent que OnTick().
Quelle différence cela fait-il de savoir combien d'événements OnBookEvent arrivent ? Vous avez déclaré que lorsqu'il reçoit des ticks, cela se produit avant OnTick. Et j'ai proposé de vérifier cela, de sortir le temps de réception d'un tick ici et là (mais pas dans le même EA).
prostotrader:
Et finissons-en là !
Vous n'avez que des fantasmes et des suppositions, et
Et j'ai 7 ans d'expérience dans l'écriture de robots et le trading réussi sur FORTS +.
J'ai un code spécifique qui fonctionne.
Vous avez l'aplomb qui se répercute dans tous vos messages. Pourquoi avez-vous décidé que les FORTS ne peuvent fonctionner qu'à partir de OnBookEvent - vous seul le savez.
Mais respect du code. Quand je trouverai le temps, je posterai le mien. Il ne s'agit pas d'une tâche prioritaire.
Quelle différence cela fait-il de savoir combien d'événements OnBookEvent arrivent ? Vous avez déclaré que lorsqu'un tick est reçu dans ce système, il se produit plus tôt que dans OnTick. Et je vous ai suggéré de le vérifier, de sortir le timing de réception d'un tick ici et là (mais pas dans la même EA).
Vous avez un aplomb qui se répercute dans chaque message. Pourquoi avez-vous décidé que FORTS ne peut fonctionner qu'à partir de OnBookEvent - vous seul le savez.
Mais respect du code. Quand je trouverai le temps, je posterai le mien. Il ne s'agit pas d'une tâche prioritaire.
Vous pouvez travailler sur ce que vous voulez !
J'ai posté ma solution, basée sur mon expérience de travail sur FORTS.
Je serais d'accord avec vous si je disais que j'étais tropconfiant dans mon comportement, dans mon discours.
Je serais d'accord avec vous si je n'avais pas d'expérience.
2020.01.3019:31:11.112 Test_freeze (BR-3.20,M1) OnTick Tick is done!
2020.01.3019:31:11.113 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.132 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.192 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.199 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.219 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.249 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.261 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.309 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.323 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.414 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.433 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.539 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.667 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.703 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.789 Test_freeze (BR-3.20,M1) OnBookEvent Tick is done!
2020.01.3019:31:11.802 Test_freeze (BR-3.20,M1) OnTick Tick is done!
Heure du premier OnTick()2020.01.3019:31:11.112
Heure de la seconde OnTick()2020.01.3019:31:11.802
C'est-à-dire que 690 ms se sont écoulées, pendant ce temps, entre le OnTick() de ces 690 ms
OnBookEvent() a été déclenché 15 fois
Pensez-vous que ces déclencheurs n'ont rien à voir avec les tiques?
Eh bien, lisez l'aide pour OnBookEvent()
События BookEvent никогда не пропускаются и всегда ставятся в очередь, даже если в данный момент еще не закончена обработка предыдущего события BookEvent.
При этом необходимо иметь в виду, что события BookEvent доставляются сами по себе и не несут с собой состояния стакана заявок.
Это означает, что вызов MarketBookGet() из обработчика OnBookEvent() позволяет получить текущее актуальное состояние стакана на момент вызова,
а не то состояние стакана, которое вызвало отправку события BookEvent.
Для гарантированного получения всех уникальных состояний стакана функция OnBookEvent() должна быть максимально быстрой.
Un nouveau lot de ticks arrive - le déclenchement de OnBookEvent() est garanti - cela permet d'obtenir les ticks en temps réel avec CopyTicks().
Alors qu'avec OnTick() vous pouvez obtenir seulement les ticks de l'historique.
Vous les recevez tous et rien ne manque, mais pas en temps réel.
Il est très étrange que je doive expliquer tout cela de manière aussi détaillée à quelqu'un qui a beaucoup d'expérience.
Encore une fois, chacun est libre de choisir la programmation et les méthodes de trading qui lui conviennent !
Ajouté
Il y a un autre point important que beaucoup de gens oublient.
Il s'agit de la vitesse à laquelle l'EA prend une décision en analysant les données d'entrée.
En utilisant OnBookEvent() au lieu de OnTick(), mon EA sera plus rapide que le vôtre.
Heure de la seconde OnTick()2020.01.3019:31:11.802
C'est à dire que 690 ms se sont écoulées, pendant ce temps, entre le OnTick() de ces 690 ms
OnBookEvent() a été déclenché 15 fois
Pensez-vous que ces déclencheurs n'ont rien à voir avec les tiques?
Veuillez également imprimer les valeurs des ticks. Le journal ci-dessus ne montre pas que OnBookEvent a détecté un changement dans la structure MqlTick.
Le fait de placer SellLimit à l'extérieur du spread créera un événement OnBookEvent, mais ne générera pas de transaction ni de modification de BestBid/BestAsk/BestVolume. C'est-à-dire que les bandes INFO et LAST tick (historique CopyTicks) ne seront pas mises à jour.
Imprimez également les valeurs de coche, s'il vous plaît. Le journal ci-dessus ne montre pas que OnBookEvent a détecté le changement de structure de MqlTick.
Si SellLimit est défini en dehors du spread, cela créera l'événement OnBookEvent, mais ne générera pas de transaction ou de changement de BestBid/BestAsk/BestVolume. C'est-à-dire que les bandes INFO et LAST tick (historique CopyTicks) ne seront pas mises à jour.
Pourquoi l'imprimer ?
La première ligne de la description de la fonction OnBookEvent() dit ceci
Вызывается в индикаторах и экспертах при наступлении события BookEvent.
Функция предназначена для обработки изменений стакана цен (Depth of Market).
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Remplacez OnBookEvent dans votre code par OnTick, et comparez le résultat.
On ne peut pas comparer les résultats :)
Vous devez exécuter les deux EA en même temps pour comparer les résultats.
Mais je sais déjà que ce sera la même chose, MAIS...
mais si je lance OnTick(), il y aura parfois un retard dans les résultats,
c'est-à-dire pas en temps réel.
On ne peut pas comparer les résultats :)
Vous devez exécuter les deux EA pour comparer les résultats.
Mais je sais déjà que ce sera la même chose, MAIS...
seulement si c'est OnTick(), il y aura un retard dans les résultats,
c'est-à-dire pas en temps réel.
Il n'y aura pas de retard. Au contraire, si vous vous abonnez à de nombreux instruments pour mettre à jour la pile, OnTick peut fonctionner plus rapidement. N'ayez pas la flemme de comparer.
Il n'y aura pas de retard. Au contraire, si vous vous abonnez aux mises à jour des actions sur de nombreux instruments, OnTick peut fonctionner plus rapidement. Ne soyez pas trop paresseux pour comparer.
Et pourquoi ne pas souscrire à tous les enjeux possibles ?
Vous pourriez trouver autre chose.
Sur un seul outil avec un abonnement à un seul tick, OnBookEvent() est déclenché plus souvent que OnTick().
Un nouveau paquet de ticks arrive - OnBookEvent() est déclenché.
Si vous n'aimez pas ma version, écrivez la vôtre.
D'ailleurs, le résultat est supérieur, avec 84 tumblers signés sur le réel!
Ajouté
En voici plus
Ajouté
Et c'est parti !
Vous n'avez que des fantasmes et des suppositions, et
J'ai 7 ans d'expérience dans l'écriture de robots et le trading réussi sur FORTS +.
J'ai un code concret qui fonctionne.
Il y avait une erreur dans le code.
Publié avec des corrections à la page 5
https://www.mql5.com/ru/forum/331060/page5#comment_14783678
Pourquoi ne pas s'inscrire pour toutes les culbutes possibles ?
Tu pourrais penser à autre chose.
Sur un outil avec un seul abonnement au verre, OnBookEvent() est déclenché plus souvent que OnTick().
Quelle différence cela fait-il de savoir combien d'événements OnBookEvent arrivent ? Vous avez déclaré que lorsqu'il reçoit des ticks, cela se produit avant OnTick. Et j'ai proposé de vérifier cela, de sortir le temps de réception d'un tick ici et là (mais pas dans le même EA).
Et finissons-en là !
Vous n'avez que des fantasmes et des suppositions, et
Et j'ai 7 ans d'expérience dans l'écriture de robots et le trading réussi sur FORTS +.
J'ai un code spécifique qui fonctionne.
Vous avez l'aplomb qui se répercute dans tous vos messages. Pourquoi avez-vous décidé que les FORTS ne peuvent fonctionner qu'à partir de OnBookEvent - vous seul le savez.
Mais respect du code. Quand je trouverai le temps, je posterai le mien. Il ne s'agit pas d'une tâche prioritaire.
Quelle différence cela fait-il de savoir combien d'événements OnBookEvent arrivent ? Vous avez déclaré que lorsqu'un tick est reçu dans ce système, il se produit plus tôt que dans OnTick. Et je vous ai suggéré de le vérifier, de sortir le timing de réception d'un tick ici et là (mais pas dans la même EA).
Vous avez un aplomb qui se répercute dans chaque message. Pourquoi avez-vous décidé que FORTS ne peut fonctionner qu'à partir de OnBookEvent - vous seul le savez.
Mais respect du code. Quand je trouverai le temps, je posterai le mien. Il ne s'agit pas d'une tâche prioritaire.
Vous pouvez travailler sur ce que vous voulez !
J'ai posté ma solution, basée sur mon expérience de travail sur FORTS.
Je serais d'accord avec vous si je disais que j'étais tropconfiant dans mon comportement, dans mon discours.
Je serais d'accord avec vous si je n'avais pas d'expérience.
Heure du premier OnTick()2020.01.30 19:31:11.112
Heure de la seconde OnTick()2020.01.30 19:31:11.802
C'est-à-dire que 690 ms se sont écoulées, pendant ce temps, entre le OnTick() de ces 690 ms
OnBookEvent() a été déclenché 15 fois
Pensez-vous que ces déclencheurs n'ont rien à voir avec les tiques?
Eh bien, lisez l'aide pour OnBookEvent()
Un nouveau lot de ticks arrive - le déclenchement de OnBookEvent() est garanti - cela permet d'obtenir les ticks en temps réel avec CopyTicks().
Alors qu'avec OnTick() vous pouvez obtenir seulement les ticks de l'historique.
Vous les recevez tous et rien ne manque, mais pas en temps réel.
Il est très étrange que je doive expliquer tout cela de manière aussi détaillée à quelqu'un qui a beaucoup d'expérience.
Encore une fois, chacun est libre de choisir la programmation et les méthodes de trading qui lui conviennent !
Ajouté
Il y a un autre point important que beaucoup de gens oublient.
Il s'agit de la vitesse à laquelle l'EA prend une décision en analysant les données d'entrée.
En utilisant OnBookEvent() au lieu de OnTick(), mon EA sera plus rapide que le vôtre.
Heure du premier OnTick()2020.01.30 19:31:11.112
Heure de la seconde OnTick()2020.01.30 19:31:11.802
C'est à dire que 690 ms se sont écoulées, pendant ce temps, entre le OnTick() de ces 690 ms
OnBookEvent() a été déclenché 15 fois
Pensez-vous que ces déclencheurs n'ont rien à voir avec les tiques?
Veuillez également imprimer les valeurs des ticks. Le journal ci-dessus ne montre pas que OnBookEvent a détecté un changement dans la structure MqlTick.
Le fait de placer SellLimit à l'extérieur du spread créera un événement OnBookEvent, mais ne générera pas de transaction ni de modification de BestBid/BestAsk/BestVolume. C'est-à-dire que les bandes INFO et LAST tick (historique CopyTicks) ne seront pas mises à jour.
Imprimez également les valeurs de coche, s'il vous plaît. Le journal ci-dessus ne montre pas que OnBookEvent a détecté le changement de structure de MqlTick.
Si SellLimit est défini en dehors du spread, cela créera l'événement OnBookEvent, mais ne générera pas de transaction ou de changement de BestBid/BestAsk/BestVolume. C'est-à-dire que les bandes INFO et LAST tick (historique CopyTicks) ne seront pas mises à jour.
Pourquoi l'imprimer ?
La première ligne de la description de la fonction OnBookEvent() dit ceci
Pourquoi l'imprimer ?
La première ligne de la description de OnBookEvent() indique que
Si vous mesurez le nombre d'événements BookEvent par heure et le nombre d'enregistrements dans CopyTicks, vous pouvez tirer une conclusion.
Si vous mesurez combien d'événements BookEvent se produisent par heure et combien d'entrées dans CopyTicks, vous pouvez en déduire.
Il y a le code ci-dessus, vérifiez-le par vous-même.
Il y a un code qui fonctionne.
Je crois qu'il fonctionne en temps réel et certainement plus rapidement,
que OnTick().
Quel est le problème ? Fais ceci, fais cela...
Vous devez poster votre code de travail pour prouver ou réfuter quelque chose !