- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnTimer
La funzione è chiamata nell' EA durante l'evento generato Timer dal terminale a intervalli di tempo fissi.
void OnTimer(void); |
Valore di ritorno
Nessun valore di ritorno
Nota
L'evento Timer viene periodicamente generato dal terminale client per un EA, che attiva il timer utilizzando la funzione EventSetTimer(). Di solito, questa funzione è chiamata nella funzione OnInit(). Quando l'EA smette di funzionare, il timer dovrebbe essere eliminato usando EventKillTimer(), che di solito è chiamato nella funzione OnDeinit().
Ogni Expert Advisor e ciascun indicatore funzionano con il proprio timer che riceve eventi esclusivamente da questo timer. Durante l'arresto dell'applicazione mql5, il timer viene eliminato forzatamente nel caso in cui sia stato creato ma non sia stato disattivato dalla funzione EventKillTimer().
Se è necessario ricevere eventi timer più frequentemente di una volta al secondo, utilizzare EventSetMillisecondTimer() per creare un timer ad alta risoluzione.
In generale, quando il periodo del timer viene ridotto, il tempo di test viene aumentato, in quanto il gestore di eventi timer viene chiamato più spesso. Quando si lavora in modalità tempo reale, gli eventi timer vengono generati non più di 1 volta in 10-16 millisecondi a causa di limitazioni hardware.
È possibile avviare un solo timer per ciascun programma. Ogni applicazione e chart mql5 ha una propria coda di eventi in cui vengono posizionati tutti gli eventi appena arrivati. Se la coda contiene già l'evento Timer o questo evento è in fase di elaborazione, allora il nuovo evento Timer non viene aggiunto alla coda dell'applicazione mql5.
Esempio EA con il gestore OnTimer()
//+------------------------------------------------------------------+
|
Guarda anche
EventSetTimer, EventSetMillisecondTimer, EventKillTimer, GetTickCount, GetMicrosecondCount, Eventi del terminale client