Постоянная работа советника

 

Приветствую.

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

Пользуюсь функцией start (). Есть условие, что если время сервера == 12:35, то выполняем открытия ордера.
Но, например, акция #GOOG может по несколько минут просто стоять, без поступления новых тиков. Следовательно, условие (время = 12:35) проскакивает и ордер не открывается.

Как мне "сказать" советнику, чтобы он обновлялся каждый миг (секунду или меньше), не зависимо от того, пришла новая котировка или нет? Если такое возможно? :)
Какие варианты есть? 

 

lelectrohardl:

Какие варианты есть? 

- бесконечный цикл

- отправка события тика на winapi своему чарту эксперта

 
lelectrohardl:

Приветствую.

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

Пользуюсь функцией start (). Есть условие, что если время сервера == 12:35, то выполняем открытия ордера.
Но, например, акция #GOOG может по несколько минут просто стоять, без поступления новых тиков. Следовательно, условие (время = 12:35) проскакивает и ордер не открывается.

Как мне "сказать" советнику, чтобы он обновлялся каждый миг (секунду или меньше), не зависимо от того, пришла новая котировка или нет? Если такое возможно? :)
Какие варианты есть? 


Вот эту функцию посмотрите: EventSetTimer(). В описании всё сказано.
 

EventSetTimer() - в инит

EventKillTimer() - в деинит

в теле функции OnTimer() прописывать действия, которые надо повторять с заданной периодичностью, проверку времени, например. Время лучше брать своё, а не серверное, которое без прихода тика не обновляется.

Можно просто условие поменять, 12:34<время<12:36.

 
evillive:

EventSetTimer() - в инит

EventKillTimer() - в деинит

в теле функции OnTimer() прописывать действия, которые надо повторять с заданной периодичностью, проверку времени, например. Время лучше брать своё, а не серверное, которое без прихода тика не обновляется. Но если тика не будет, как ордер откроется-то?

Можно просто условие поменять, 12:35<время<12:36.

Свое время это TimeCurrent() ?

P.S. TimeLocal(), нашел 

 
Сейчас попробую, спасибо.
 
Супер супер! Все работает как часы! Мануал помог, отозвавшимся спасибо! :)
 

А как заставить функцию OnTimer() в тестере работать?

МТ4 Билд 646. 

 
lelectrohardl:

А как заставить функцию OnTimer() в тестере работать?

МТ4 Билд 646. 


В тестере никак
 
evillive:

EventKillTimer() - в деинит



Зачем?

 
eevviill:


Зачем?

согласно справке, чтоб было )
Причина обращения: