- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnBookEvent
Die Funktion wird von Indikatoren und EAs aufgerufen, wenn das Ereignis BookEvent eintritt. Sie dient zur Bearbeitung der Änderungen der Markttiefe.
void OnBookEvent(
|
Parameter
symbol
[in] Name des Symbols für das ein BookEvent eingetreten ist
Rückgabewert
Kein Rückgabewert
Hinweis
Um die Ereignisse BookEvent für ein beliebiges Symbol zu erhalten, abonnieren Sie es einfach mit der Funktion MarketBookAdd(). Um das Abonnement für den Empfang des BookEvent für ein bestimmtes Symbol zu kündigen, rufen Sie die Funktion MarketBookRelease() auf.
Das BookEvent sendet im gesamten Chart. Das bedeutet, dass wen eine Anwendung auf einem Chart BookEvent mit der Funktion MarketBookAdd abboniert hat, alle anderen Indikatoren und EAs, die auf dem gleichen Chart gestartet wurden, auch den Handler von OnBookEvent() haben und diese Ereignisse erhalten. Daher ist es notwendig, einen Symbolnamen zu analysieren, der den Handler OnBookEvent() durch den Parameter symbol übergeben wird.
Separate BookEvent-Zähler, sortiert nach Symbolen, stehen für alle Anwendungen zur Verfügung, die auf dem gleichen Chart laufen. Dies bedeutet, dass jedes Chart mehrere Abonnements für verschiedene Symbole haben kann, und für jedes Symbol wird ein Zähler bereitgestellt. Das An- und Abmelden von BookEvent ändert den Abonnementzähler für bestimmte Symbole nur innerhalb eines Charts. Mit anderen Worten, es können zwei benachbarte Charts zum BookEvent für das gleiche Symbol, aber unterschiedliche Abonnementzählerwerte vorhanden sein.
Der anfängliche Zählerstand des Abonnements ist Null. Bei jedem Aufruf von MarketBookAdd() wird der Abonnementzähler für ein bestimmtes Symbol auf dem Chart um eins erhöht (Chartsymbol und Symbol in MarketBookAdd() müssen nicht übereinstimmen). Beim Aufruf von MarketBookRelease() wird der Zähler der Abonnements für ein bestimmtes Symbol im Chart um eins verringert. Die Ereignisse von BookEvent für ein beliebiges Symbol werden innerhalb des Charts gesendet, bis der Zähler gleich Null ist. Daher ist es wichtig, dass jedes MQL5-Programm, das MarketBookAdd()Aufrufe enthält, sich am Ende seiner Arbeit korrekt vom Erhalten von Ereignissen für jedes Symbol mit MarketBookRelease() abmeldet. Um dies zu erreichen, sollte die Anzahl der MarketBookAdd() und MarketBookRelease()-Aufrufe für jeden Aufruf während der gesamten MQL5-Programmlaufzeit gleich sein. Die Verwendung von Flags oder benutzerdefinierten Subskriptionszählern innerhalb des Programms ermöglicht es Ihnen, sicher mit BookEvent-Ereignissen zu arbeiten und verhindert das Deaktivieren von Subskriptionen, um dieses Ereignis in Drittanbieterprogrammen innerhalb derselben Tabelle zu erhalten.
BookEvent Ereignisse werden nie übersprungen und immer in eine Warteschlange gestellt, auch wenn die Behandlung des vorherigen BookEvents noch nicht beendet ist. .
Beispiel
//+------------------------------------------------------------------+
|
Siehe auch
MarketBookAdd, MarketBookRelease, MarketBookGet, OnTrade, OnTradeTransaction, OnTick, Ereignisbearbeiter, Durchführung der Programme, Ereignisse des Client-Terminals