Ошибка валидации советника из-за функции таймера

 

Для снижения нагрузки на процессор добавил в советник таймер, который запускает часть кода не на каждом тике а каждые 30 секунд. Получил ошибку валидации. Убрал функцию, ошибка исчезла. В терминале все работает корректно. Подскажите что это за дичь?

Тестирование

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
 
Mikhail Nazarenko:

Для снижения нагрузки на процессор добавил в советник таймер, который запускает часть кода не на каждом тике а каждые 30 секунд. Получил ошибку валидации. Убрал функцию, ошибка исчезла. В терминале все работает корректно. Подскажите что это за дичь?


В тестере МТ4 таймер не работает.

 
Andrey Barinov:

В тестере МТ4 таймер не работает.

Я написал свой таймер, и с ним все работает, но не проходит валидацию при выкладке на сайт MQL5. Вопрос почему с этой функцией выдает ошибку валидации? 

 
Mikhail Nazarenko:

Я написал свой таймер, и с ним все работает, но не проходит валидацию при выкладке на сайт MQL5. Вопрос почему с этой функцией выдает ошибку валидации? 

Ответ в вашей функции.

 
Andrey Khatimlianskii:

Ответ в вашей функции.

Спасибо за лаконичность, я это понял. Вопрос, какие правила mql5 нарушает моя функция? Разве таймер криминал?

 
Mikhail Nazarenko:

Спасибо за лаконичность, я это понял. Вопрос, какие правила mql5 нарушает моя функция? Разве таймер криминал?

Если тестер, то таймер обрабатывать в OnTick()
 
Mikhail Nazarenko:

Спасибо за лаконичность, я это понял. Вопрос, какие правила mql5 нарушает моя функция? Разве таймер криминал?

OnTimer в тестере не работает. А что в вашей функции (которую вы называете таймер) — никто кроме вас не знает.

 
Andrey Khatimlianskii:

OnTimer в тестере не работает. А что в вашей функции (которую вы называете таймер) — никто кроме вас не знает.

Функция стоит в OnTick и ретурнит, если от последнего срабатывания функции до текущего тика прошло меньше 30 сек. Две строчки кода, и ошибка валидации.

 
Mikhail Nazarenko:

Функция стоит в OnTick и ретурнит, если от последнего срабатывания функции до текущего тика прошло меньше 30 сек. Две строчки кода, и ошибка валидации.

Значит всегда ретурнит
 
Evgeniy Zhdan:
Значит всегда ретурнит

Все работает и в тестере и в реале. Выдает ошибку валидации только при выкладывании советника на сайт. Я определил что проблема началась с добавлением этого таймера. Теперь пытаюсь разобраться, почему работающий советник не принимает сайт MQL5? Есть предположение, что валидатор считает таймер как ограничитель времени действия советника, что запрещено правилами. Кто знает так ли это?

 
Mikhail Nazarenko:

Функция стоит в OnTick и ретурнит, если от последнего срабатывания функции до текущего тика прошло меньше 30 сек. Две строчки кода, и ошибка валидации.

А первое срабатывание функции При каком условии  происходит?