Вопрос по таймерам в МТ4

 

Друзья, некогда проводить эксперименты, может, кто пробовал?

Есть советник, использует таймер. Таймер в сове может быть лишь один.

Та тот же график кидается скрипт, сейчас он сделан зацикленным, так как писался давно. Можно ли и в него поместить свой таймер, не будет ли это мешать советнику? 

 
Таймер в скриптах не работает, он не вызывается.
 

Справка не рулит разве?

OnTimer

Функция OnTimer() вызывается при наступлении события Timer, которое генерируется системным таймером только для экспертов и индикаторов – использовать ее в скриптах нельзя. Периодичность наступления этого события устанавливается при подписке на получение функцией EventSetTimer() уведомлений о событии Timer.

Отписывание от приема посылки событий таймера для конкретного эксперта производится функцией EventKillTimer(). Функция должна быть определена с типом void, параметров не имеет:

void OnTimer();

Рекомендуется вызывать функцию EventSetTimer() однократно в функции OnInit(), а функцию EventKillTimer() вызывать однократно в OnDeinit().

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

 
Справка не рулит. При создании скрипта, функция таймера не предлогается к созданию, в отличии от советника и индикатора.
 
Alexander Bereznyak:
Справка не рулит. При создании скрипта, функция таймера не предлогается к созданию, в отличии от советника и индикатора.

Ну и что. Это не является прямым указанием на то, что таймер нельзя использовать.

Для примера: при создании индикатора, OnDeinit() тоже не создаётся, и не предлагается. Однако всегда приходится её вписывать самому. И далее можно использовать. Так что сложно полагаться однозначно на "предложили при создании, или не предложили".

А в справке явно указано, что таймер в скриптах использовать нельзя.

В контексте данного вопроса всё же справка рулит ;)

 

Всем откликнувшимся большое спасибо! Оставил все по старому, на Sleep, не люблю недокументированные возможности. Мало ли что в следующей версии MQ изменят, прыгай потом с бубном :) 

Успехов! 

 
О каких не документированных возможностях идет речь?
 
Alexander Bereznyak:
О каких не документированных возможностях идет речь?
Я неточно написал, в скриптах таймер и правда запрещен

Функция OnTimer() вызывается при наступлении события Timer, которое генерируется системным таймером только для экспертов и индикаторов – использовать ее в скриптах нельзя. Периодичность наступления этого события устанавливается при подписке на получение функцией EventSetTimer() уведомлений о событии Timer.