- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnTimer
É chamada em EAs quando o ocorre o evento Timer gerado pelo terminal com um intervalo predeterminado.
void OnTimer(void); |
Valor retornado
Sem valor retornado
Observação
O evento Timer é gerado periodicamente pelo terminal do cliente para o EA que ativa o temporizador usando a função EventSetTimer(). Geralmente, esta função é chamada na função OnInit(). Ao concluir o trabalho do EA, é necessário destruir o temporizador criado com a ajuda da EventKillTimer() que, normalmente é chamada na função OnDeinit().
Cada EA e cada indicador trabalha com seu temporizador e recebe eventos apenas dele. No final do trabalho do programa MQL5, o temporizador é forçosamente destruído, se foi criado, mas não foi desabilitado pela função EventKillTimer().
Se precisar receber eventos do temporizador mais de uma vez por segundo, use a EventSetMillisecondTimer() para criar um temporizador de alta resolução.
Em geral, à medida que o período do temporizador diminui, o tempo de teste aumenta, uma vez que o número de chamadas do manipulador de eventos do tempo total aumenta. Ao trabalhar em tempo real, os eventos do temporizador são gerados no máximo 1 vez a cada 10-16 milissegundos, o que é devido a limitações de hardware.
Para cada programa, não pode ser iniciado mais do que um temporizador. Cada programa MQL5 e cada gráfico têm sua própria fila de eventos, à qual são adicionados todos os eventos recém-chegados. Se na fila já houver um evento Timer ou este evento estiver no estado de processamento, o novo evento Timer não será colocado na fila do programa MQL5.
Exemplo de EA com manipulador OnTimer()
//+------------------------------------------------------------------+
|
Veja também
EventSetTimer, EventSetMillisecondTimer, EventKillTimer, GetTickCount, GetMicrosecondCount, Eventos do terminal do cliente