- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnTimer
Se llama en los expertos al suceder el evento Timer generado por el terminal con el intervalo establecido.
void OnTimer(void); |
Valor retornado
No hay valor retornado
Observación
El evento Timer es generado periódicamente por el terminal de cliente para el experto que ha activado el temporizador con la ayuda de la función EventSetTimer(). Normalmente, esta función se llama en la función OnInit(). Al finalizar el funcionamiento del experto es necesario eliminar el temporizador creado usando EventKillTimer(), que normalmente se llama en la función OnDeinit().
Todos los expertos e indicadores trabajan con su propio temporizador y reciben los eventos solo del mismo. Al finalizar el funcionamiento de un programa MQL5, el temporizador es eliminado forzosamente, si este ha sido creado y no ha sido desactivado por la función EventKillTimer().
Si es necesario recibir los eventos del temporizador con mayor frecuencia que una vez por segundo, use EventSetMillisecondTimer() para crear un temporizador de alta resolución.
En general, al dismuinuir el periodo del temporizador, se incrementa el tiempo de simulación, ya que aumenta el número de llamadas del manejador de eventos del temporizador. Al trabajar en el modo de tiempo real, los eventos del temporizador no se generan con una frecuencia mayor a 1 vez cada 10-16 milisegundos: esto se relaciona con las limitaciones del hardware.
Para cada programa no se puede iniciar más de un temporizador. Todos los programas mql5 y todos los gráficos tienen su propia cola de eventos, donde se van colocando los eventos que suceden nuevamente. Si en la cola ya hay un evento Timer o bien este evento está siendo procesado, el nuevo evento Timer no se pondrá en la cola del programa mql5.
Ejemplo de un experto con el manejador OnTimer()
//+------------------------------------------------------------------+
|
Ver también
EventSetTimer, EventSetMillisecondTimer, EventKillTimer, GetTickCount, GetMicrosecondCount, Eventos del terminal de cliente