- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnTimer
Вызывается в экспертах при наступлении события Timer, генерируемого терминалом с заданным интервалом.
void OnTimer(void); |
Возвращаемое значение
Нет возвращаемого значения
Примечание
Событие Timer периодически генерируется клиентским терминалом для эксперта, который активизировал таймер при помощи функции EventSetTimer(). Обычно эта функция вызывается в функции OnInit(). При завершении работы эксперта необходимо уничтожить созданный таймер при помощи EventKillTimer(), которую обычно вызывают в функции OnDeinit().
Каждый эксперт и каждый индикатор работают со своим таймером и получают события только от него. При завершении работы MQL5-программы таймер уничтожается принудительно, если он был создан, но не был отключен функцией EventKillTimer().
Если необходимо получать события таймера чаще, чем один раз в секунду, используйте EventSetMillisecondTimer() для создания таймера высокого разрешения.
В общем случае при уменьшении периода таймера увеличивается время тестирования, так как возрастает количество вызовов обработчика событий таймера. При работе в режиме реального времени события таймера генерируются не чаще 1 раза в 10-16 миллисекунд, что связано с аппаратными ограничениями.
Для каждой программы может быть запущено не более одного таймера. Каждая MQL5-программа и каждый график имеют свою собственную очередь событий, куда складываются все вновь поступающие события. Если в очереди уже есть событие Timer либо это событие находится в состоянии обработки, то новое событие Timer в очередь mql5-программы не ставится.
Пример эксперта c обработчиком OnTimer()
//+------------------------------------------------------------------+
|
Смотри также
EventSetTimer, EventSetMillisecondTimer, EventKillTimer, GetTickCount, GetMicrosecondCount, События клиентского терминала