Referência MQL5Trabalhando com EventosEventSetMillisecondTimer 

EventSetMillisecondTimer

A função indica ao terminal de cliente que eventos de timer devem ser gerados em intervalos inferiores a um segundo, para este Expert Advisor ou aquele indicador.

bool  EventSetMillisecondTimer(
   int  milliseconds      // número de milissegundos
   );

Parâmetros

milliseconds

[in]  Número de milissegundos que definem a freqüência de eventos de timer.

Valor de retorno

No caso de sucesso na execução, retorna true, do contrário - false. Para receber um código de erro, a função GetLastError() deverá ser utilizada.

Observação

Este recurso é projetado para os casos em que é necessário timer de alta resolução. Em outras palavras, eventos de timer devem ser recebidos com mais freqüência do que uma vez por segundo. Se um timer convencional, com o período de mais de um segundo é o suficiente para você, use o evento EventSetTimer().

O intervalo mínimo de 1000 milissegundos é usado no dispositivo para testar estratégia. Em geral, quando o período do timer é reduzido, o tempo de teste é maior, então o manipulador de eventos de timer é utilizado mais frequentemente. Ao trabalhar em modo de tempo real, os eventos de timer são gerados não mais do que uma vez em 10-16 milissegundos, devido a limitações de hardware.

Normalmente, esta função será chamada pela função OnInit() ou no construtor de classe. Para manipular eventos provenientes do timer, um Expert Advisor ou um indicador deve usar a função OnTimer().

Cada Expert Advisor e cada indicador trabalha com o seu próprio timer, recebendo eventos exclusivamente deste timer. Durante fechamento do aplicativo MQL5, o cronômetro é forçosamente encerrado caso tenha sido criado, mas não foi desativado pela função EventKillTimer().

Apenas um timer pode ser utilizado para cada programa. Cada aplicativo MQL5 e gráfico tem sua própria lista de eventos, onde todos os novos eventos são colocados. Se a lista já contém eventos de Timer ou este evento está em fase de processamento, então o novo evento de Timer não é adicionado a fila do aplicativo MQL5.