Как работать в режиме OnTimer() ? - страница 2 12 Новый комментарий Evgeniy Zhdan 2017.08.20 09:57 #11 Отличное, разностороннее и полное решение проблемы! Спасибо всем! Alexey Volchanskiy 2017.08.20 10:49 #12 Evgeniy Serov: При EventSetTimer(60) функция OnTimer() будет запускаться один раз в минутуДля меня слишком большой период, я использую миллисекундный, вот сокращенный пример. Тут народ писал, что таймер может не стартовать, надо проверять#define MILLISEC_TIMER_INTERVAL 1000 int OnInit() { if(!EventSetMillisecondTimer(MILLISEC_TIMER_INTERVAL)) { Print("Не могу запустить таймер"); return INIT_FAILED; } }*** Alexey Volchanskiy 2017.08.20 10:51 #13 Sergey Kolemanov: ) Спасибо, не знал. И в справке об этом ни слова...Это в МТ4 таймер не работает в тестере, в МТ5 работает Evgeniy Zhdan 2017.08.20 10:55 #14 Alexey Volchanskiy: Для меня слишком большой период, я использую миллисекундный, вот сокращенный пример. Тут народ писал, что таймер может не стартовать, надо проверять***Прекрасно! Yury Kirillov 2017.08.20 11:08 #15 Taras Slobodyanik: для тестера, в онтик, добавляем:и всё работает)И то, как оно работает является ни разу не OnTime(), а вовсе совершенно OnTick(). То есть срабатывает не по таймеру, а по тикам.Годится только для проверки общей функциональности обработчика OnTimer() в ограниченном числе случаев. Обсуждение статьи "Библиотека для Ошибки, баги, вопросы Подскажите по MQL-Коду: Taras Slobodyanik 2017.08.20 19:45 #16 Yury Kirillov: И то, как оно работает является ни разу не OnTime(), а вовсе совершенно OnTick(). То есть срабатывает не по таймеру, а по тикам.Годится только для проверки общей функциональности обработчика OnTimer() в ограниченном числе случаев.конечно, если нужен конкретный период времени, то нужно добавить проверку времени (текущее время минус предыдущее)...И, как раз годится для всего что нужно. (возможно у меня все случаи ограниченные) Alexey Volchanskiy 2017.08.20 21:24 #17 Taras Slobodyanik: конечно, если нужен конкретный период времени, то нужно добавить проверку времени (текущее время минус предыдущее)...И, как раз годится для всего что нужно. (возможно у меня все случаи ограниченные)У меня для МТ4 вот так сделана имитация таймера в тестере. Не идеал, но для примерного тестирования потянетvoid OnTick() { if(IsRunOnTester()) { static datetime dt1 = 0, dt2 = 0; static bool tfirst = true; if(tfirst) { tfirst = false; dt1 = dt2 = TimeCurrent(); return; } dt2 = TimeCurrent(); for(datetime TimeTesterCurrent = dt1+1; TimeTesterCurrent <= dt2; TimeTesterCurrent++) { TimeToStruct(TimeTesterCurrent, TimeCurrStruct); OnTimer(); } dt1 = dt2; } } *** 12 Новый комментарий
Отличное, разностороннее и полное решение проблемы! Спасибо всем!
При EventSetTimer(60) функция OnTimer() будет запускаться один раз в минуту
Для меня слишком большой период, я использую миллисекундный, вот сокращенный пример. Тут народ писал, что таймер может не стартовать, надо проверять
***
) Спасибо, не знал. И в справке об этом ни слова...
Это в МТ4 таймер не работает в тестере, в МТ5 работает
Для меня слишком большой период, я использую миллисекундный, вот сокращенный пример. Тут народ писал, что таймер может не стартовать, надо проверять
***
Прекрасно!
для тестера, в онтик, добавляем:
и всё работает)
И то, как оно работает является ни разу не OnTime(), а вовсе совершенно OnTick().
То есть срабатывает не по таймеру, а по тикам.
Годится только для проверки общей функциональности обработчика OnTimer() в ограниченном числе случаев.
И то, как оно работает является ни разу не OnTime(), а вовсе совершенно OnTick().
То есть срабатывает не по таймеру, а по тикам.
Годится только для проверки общей функциональности обработчика OnTimer() в ограниченном числе случаев.
конечно, если нужен конкретный период времени, то нужно добавить проверку времени (текущее время минус предыдущее)...
И, как раз годится для всего что нужно. (возможно у меня все случаи ограниченные)
конечно, если нужен конкретный период времени, то нужно добавить проверку времени (текущее время минус предыдущее)...
И, как раз годится для всего что нужно. (возможно у меня все случаи ограниченные)
У меня для МТ4 вот так сделана имитация таймера в тестере. Не идеал, но для примерного тестирования потянет
***