- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnTimer
Die Funktion wird von Indikatoren und EAs während des periodisches Ereignis Timer aufgerufen, das vom Terminal in festen Zeitintervallen erzeugt wird.
void OnTimer(void); |
Rückgabewert
Kein Rückgabewert
Hinweis
Das Ereignis Timer wird periodisch vom Client-Terminal für einen EA erzeugt, der den Timer mit der Funktion EventSetTimer() aktiviert hat. Normalerweise wird diese Funktion in der Funktion OnInit() aufgerufen. Wenn der EA aufhört zu arbeiten, sollte der Timer mit EventKillTimer(), der normalerweise in der Funktion OnDeinit() aufgerufen wird, eliminiert werden.
Jeder Expert Advisor und jeder Indikator arbeitet mit einem eigenen Timer, der nur Ereignisse von diesem Timer empfängt. Während des Herunterfahrens der mql5-Anwendung wird der Timer zwangsweise entfernt, falls er erstellt wurde, aber nicht mit der Funktion EventKillTimer() gelöscht wurde.
Wenn Sie Timerereignisse häufiger als einmal pro Sekunde empfangen müssen, verwenden Sie EventSetMillisecondTimer() zum Erstellen eines hochauflösenden Timers.
Im Allgemeinen wird bei einer Verkürzung der Zeitspanne des Timers die Testzeit erhöht, da der Handler von Timer-Ereignissen häufiger aufgerufen wird. Im Echtzeitbetrieb werden Timer-Ereignisse aufgrund von Hardware-Beschränkungen nicht mehr als 1 mal in 10-16 Millisekunden generiert.
Für jedes Programm kann nur ein Timer gestartet werden. Jede mql5-Anwendung und jedes Chart haben ihre eigene Warteschlange von Ereignissen, in der alle neu eingetroffenen Ereignisse eingetragen werden. Wenn die Warteschlange (queue) bereits das Ereignis des Timers enthält oder sich dieses Ereignis in der Verarbeitungsphase befindet, wird das neue Timer-Ereignis nicht zur Warteschlange der mql5-Anwendung hinzugefügt.
Beispiel-EA, der die Funktion OnTimer() verwendet
//+------------------------------------------------------------------+
|
Siehe auch
EventSetTimer, EventSetMillisecondTimer, EventKillTimer, GetTickCount, GetMicrosecondCount, Ereignisse des Client-Terminals