Die Anmeldung bei OnBookEvent fällt manchmal aus - gibt es so etwas?

 

Nachdem ich angefangen habe, mit dem Tumbler zu arbeiten und einige Indikatoren hinzugefügt habe, die mit OnBookEvent signiert sind, habe ich festgestellt, dass einige von ihnen stillschweigend abfallen, insbesondere 1 Experte und 1 Indikator auf verschiedenen Symbolen. Keine Fehler in den Protokollen. Die Zitate gingen weiter. Andere Symbole sind weiterhin in Betrieb. Nach dem manuellen Neustart der inaktiven MQL-Programme haben die Ereignisse der Markttiefe wieder angefangen zu funktionieren.

Hat jemand etwas Ähnliches beobachtet? Wie kann ich mich schützen? Für jetzt, die Idee, das Timeout zwischen dem letzten Ereignis der Tasse und neue Ticks zu beobachten. Aber was ist zu tun, wenn die Zeitüberschreitung überschritten wird? Reicht es aus,MarketBookAdd erneut aufzurufen?

 

Früher hieß es "Zombie", vielleicht findet eine Suche noch alte Themen.

Dies geschieht, wenn die Experten/Indikatoren sich öfter von Tumblr abmelden als sie sich anmelden.

Zum Beispiel gab es 2 Experten, die sich jeweils einmal angemeldet haben. Dann wurde einer geschlossen und zweimal abbestellt. Der zweite Experte, der weiter beschäftigt wurde, erhält keine Aktualisierungen mehr.

Ich habe es schon mehrmals gesehen.

Nach der Einstellung der Experten verschwand das Problem und ist seit mehr als einem Jahr nicht mehr aufgetreten.

 
Ilya Baranov:

Früher hieß sie "Zombie", vielleicht findet eine Suche noch alte Themen.

Das passiert, wenn Experten/Indikatoren sich öfter von einem Tumblr abmelden als sie sich anmelden.

Streng genommen passt es nicht. Ich habe einmal eine Anmeldung in inite und eine Abmeldung in deinite vorgenommen. Obwohl ich die Möglichkeit nicht ausschließen kann, dass DeInit irgendwie öfter aufgerufen wird als OnInit.

 
Stanislav Korotky:

Streng genommen passt es nicht. Ich habe das Abonnement einmal in Init und die Abmeldung in DeInit durchgeführt. Obwohl ich die Möglichkeit nicht ausschließen kann, dass DeInit irgendwie öfter aufgerufen wird als OnInit.

Wenn es um Indikatoren geht, sehen Sie sich diesen Thread an.

Последовательность выполнение Init() и DeInit()
Последовательность выполнение Init() и DeInit()
  • 2017.04.07
  • www.mql5.com
Всем привет ! Столкнулся с такой проблемой Написан индикатор или советник...
 
Sergey Savinkin:

Wenn es um die Indikatoren geht, sehen Sie sich diesen Thread an.

Ja, es gab ein solches Thema, ich habe mich sogar daran beteiligt, aber das Problem bleibt offenbar bestehen. Aber im aktuellen Fall hat auch ein Expert Advisor sein Abonnement verloren.

Okay, wir tanzen den Tamburintanz.

 
Stanislav Korotky:

Nachdem ich angefangen habe, mit dem Tumbler zu arbeiten und einige Indikatoren hinzugefügt habe, die mit OnBookEvent signiert sind, habe ich entdeckt, dass einige von ihnen stillschweigend abfallen, insbesondere 1 Experte und 1 Indikator auf verschiedenen Symbolen. Keine Fehler in den Protokollen. Die Zitate gingen weiter. Andere Symbole sind weiterhin in Betrieb. Nach dem manuellen Neustart der inaktiven MQL-Programme haben die Ereignisse der Markttiefe wieder angefangen zu funktionieren.

Hat jemand etwas Ähnliches beobachtet? Wie kann ich mich schützen? Für jetzt, die Idee, das Timeout zwischen dem letzten Ereignis der Tasse und neue Ticks zu beobachten. Aber was ist zu tun, wenn die Zeitüberschreitung überschritten wird? Reicht es aus, MarketBookAdd erneut aufzurufen?

Es gibt zwei Arten von Schaltern: einen Knopf und einen Schalter. Der erste sendet einen Impuls und beendet den Vorgang, der zweite führt zu einem Wechsel der Betriebsart. Ein Beispiel für den ersten Fall ist eine Türklingel, die das ideale Ereignis darstellt. Ein Beispiel für den zweiten Fall ist ein Lichtschalter - man drückt ihn und er leuchtet auf. Es handelt sich nämlich nicht wirklich um ein Ereignis, sondern um etwas anderes.

 
Алексей Тарабанов:

Es gibt zwei Arten von Schaltern: Drucktasten und Schalter. Der erste sendet einen Impuls und beendet den Betrieb, der zweite führt zu einem Wechsel der Betriebsart. Ein Beispiel für den ersten Fall ist die Türklingel, die das ideale Ereignis darstellt. Ein Beispiel für den zweiten Fall ist ein Lichtschalter - man drückt ihn und er leuchtet auf. Sie sehen, es ist nicht wirklich ein Ereignis, es ist etwas mehr.

Nein, das tue ich nicht. Nach der Dokumentation zu urteilen, erhöht das Abonnieren den internen Zähler, während das Abbestellen ihn um 1 verringert. Sobald der Wert 0 erreicht ist, werden keine Ereignisse mehr gesendet.

Ich habe die Abdrücke eingefügt. Das Problem wurde reproduziert, wenn sowohl EA als auch Indikator auf demselben Diagramm sitzen. Jeder von ihnen führt MarketBookAdd in OnInit und MarketBookRelease in OnDeinit aus. Nachdem ich also den Expert Advisor aus dem Diagramm entfernt habe (ein Aufruf von MarketBookRelease), erhält der Indikator die Tasse nicht mehr (obwohl sein eigener Aufruf von MarketBookAdd noch nicht abgebrochen ist). Im Gegenteil, wenn wir den Indikator löschen, geht das Abonnement im Expert Advisor verloren. Natürlich stelle ich das fest und melde mich wieder an, aber so sollte es nicht funktionieren, finde ich.

 
Stanislav Korotky:

Nein, das tue ich nicht. Laut Dokumentation erhöht das Abonnieren den internen Zähler und das Abbestellen verringert ihn um 1. Wenn der Wert 0 erreicht, werden keine Ereignisse gesendet.

Ich habe die Drucker in Betrieb genommen. Das Problem wurde reproduziert, wenn sowohl EA als auch Indikator auf demselben Chart liegen. Jeder von ihnen führt MarketBookAdd in OnInit und MarketBookRelease in OnDeinit aus. Nachdem ich also den Expert Advisor aus dem Diagramm entfernt habe (ein Aufruf von MarketBookRelease), erhält der Indikator nicht mehr die Tasse. Im Gegenteil, wenn ich den Indikator entferne, geht das Abonnement im Expert Advisor verloren. Natürlich stelle ich das fest und melde mich wieder an, aber so sollte es nicht funktionieren, finde ich.

Ich habe bereits alles gesagt. Ich werde kein einziges Wort sagen.

 
Stanislav Korotky:

Nein, das tue ich nicht. Laut Dokumentation erhöht das Abonnieren den internen Zähler und das Abbestellen vermindert ihn um 1. Wenn der Wert 0 erreicht, werden keine Ereignisse gesendet.

Ich habe die Drucker in Betrieb genommen. Das Problem wurde reproduziert, wenn sowohl EA als auch Indikator auf demselben Chart liegen. Jeder von ihnen führt MarketBookAdd in OnInit und MarketBookRelease in OnDeinit aus. Nachdem ich also den Expert Advisor aus dem Diagramm entfernt habe (ein Aufruf von MarketBookRelease), erhält der Indikator die Tasse nicht mehr (obwohl sein eigener Aufruf von MarketBookAdd noch nicht abgebrochen ist). Im Gegenteil, wenn wir den Indikator löschen, geht das Abonnement im Expert Advisor verloren. Natürlich entdecke ich es bereits und melde mich wieder an, aber so sollte es nicht funktionieren, imho.

Das Ereignis BookEvent wird übertragen. Lesen Sie die Beschreibung von OnBookEvent hier sorgfältig durch.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Stanislav Korotky:

Nachdem ich angefangen habe, mit dem Tumbler zu arbeiten und einige Indikatoren hinzugefügt habe, die mit OnBookEvent signiert sind, habe ich festgestellt, dass einige von ihnen stillschweigend abfallen, insbesondere 1 Experte und 1 Indikator auf verschiedenen Symbolen. Keine Fehler in den Protokollen. Die Zitate gingen weiter. Andere Symbole sind weiterhin in Betrieb. Nach dem manuellen Neustart der inaktiven MQL-Programme haben die Ereignisse der Markttiefe wieder angefangen zu funktionieren.

Hat jemand etwas Ähnliches beobachtet? Wie kann ich mich schützen? Für jetzt, die Idee, das Timeout zwischen dem letzten Ereignis der Tasse und neue Ticks zu beobachten. Aber was ist zu tun, wenn die Zeitüberschreitung überschritten wird? Reicht es aus, MarketBookAdd erneut aufzurufen?

Dies lesen

https://www.mql5.com/ru/forum/95131

invalid book transaction
invalid book transaction
  • 2016.09.06
  • www.mql5.com
Раньше не было, появилось сегодня (реал). Что это...
 

Danke ;-). Natürlich habe ich die Dokumentation und das Forum gelesen. Wenn es eine Antwort auf meine Frage gibt, wäre es sehr freundlich, sie hier zu formulieren oder hervorzuheben.

In der Dokumentation findet sich insbesondere ein faszinierender Satz:

В отличие от других событий, событие BookEvent является широковещательным. Это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd, все остальные эксперты, имеющие обработчик OnBookEvent(), будут получать это событие.

Abgesehen davon, dass man sich fragen muss, ob man die Analogie fortsetzen soll, die besagt, dass, wenn sich ein Experte vom Empfang eines Ereignisses abmeldet, alle anderen Experten es ebenfalls nicht mehr erhalten"? Ich glaube nicht, dass es so etwas geben kann, es wäre (oder ist) ein Fehler.