Справочник MQL4

EventSetMillisecondTimer

Указывает клиентскому терминалу, что для данного эксперта или индикатора необходимо генерировать события таймера с периодичностью менее одной секунды.

bool  EventSetMillisecondTimer(
   int  milliseconds      // количество миллисекунд
   );

Параметры

milliseconds

[in]  Количество миллисекунд, определяющее периодичность возникновения событий от таймера.

Возвращаемое значение

В случае успешного выполнения возвращает true, иначе - false. Для получения кода ошибки нужно вызвать функцию GetLastError().

Примечание

Эта функция предназначена для тех случаев, когда требуется таймер высокого разрешения и нужно получать события таймера чаще, чем один раз в секунду. Если вам достаточно обычного таймера с периодом в несколько секунд, то используйте EventSetTimer().

Обычно эта функция должна вызываться из функции OnInit() или в конструкторе класса. Для того чтобы обрабатывать события, приходящие от таймера, эксперт или индикатор должен иметь функцию OnTimer().

Каждый эксперт и каждый индикатор работает со своим таймером и получает события только от него. При завершении работы mql4-программы таймер уничтожается принудительно, если он был создан, но не был отключен функцией EventKillTimer().

Для каждой программы может быть запущено не более одного таймера. Каждая mql4-программа и каждый график имеют свою собственную очередь событий, куда складываются все вновь поступающие события. Если в очереди уже есть событие Timer либо это событие находится в состоянии обработки, то новое событие Timer в очередь mql4-программы не ставится.