Добрый день!
К сожалению, у меня не получается отредактировать своё сообщение.
(не появляется правка, только ответить)
К сожалению, у меня не получается отредактировать своё сообщение.
(не появляется правка, только ответить)

- 2010.02.23
- MetaQuotes Software Corp.
- www.mql5.com
Я пользуюсь IE9
Вы не там и не так используете функцию EventSetTimer(). Там же сказано:
Примечание
Обычно, эта функция должна вызываться из функции OnInit() или в конструкторе класса. Для того, чтобы обрабатывать события, приходящие от таймера, эксперт или индикатор должен иметь функцию OnTimer().
Каждый эксперт и каждый индикатор работает со своим таймером, и получает события только от него. При завершении работы mql5-программы таймер уничтожается принудительно, если он был создан, но не был отключен функцией EventKillTimer().
Для каждой программы может быть запущено не более одного таймера.
Спасибо, всё это написано в файле помощи.
Обычно, это не значит обязательно.
Я же не использую два таймера, только ОДИН, но устанавливаю его на разное время.
В фунции EventSetTimer( CheckTime( current_tick.time ) );
передаю секунды, ( время) на которое нужно установить таймер,
чтобы начался новый таймфрейм 00:00:00, 02:00:00, 04:00:00 и т.д
передаю секунды, ( время) на которое нужно установить таймер,
чтобы начался новый таймфрейм 00:00:00, 02:00:00, 04:00:00 и т.д
Лучше секунды, которые передаются таймеру
Print(" Remain seconds = ", value_time );
См. картинку.
Таймфрейм 3 часа =10800 сек
08:53:30 - не должно быть! (равно как и 19:10:30) Таймер срабатывает самопроизвольно... (Remain seconds = НЕТ!) почему-то.
Мне нужно ТОЧНО "вставать" на начало Тамфрейма(не по тику, который может прийти или нет)
Для этого и нужен таймер . Не правильная работа таймера рушит всю мою стратегию....
Уважаемые разработчики MT5!
Кто-нибудь ответит на мой вопрос?
(Фунция Check time изменена на)
uint CheckTime( const datetime aTime ) { //--- Variables MqlDateTime struct_time; uint curr_time, delta_time, value_time; uint trade_time; uint i, factor; uint DAY_TIME = 86400; //--- Take time frame in seconds trade_time = ( PeriodSeconds( PERIOD_CURRENT ) ); TimeToStruct( aTime, struct_time ); curr_time = struct_time.hour * 3600 + struct_time.min * 60 + struct_time.sec; //--- Calc factor factor = DAY_TIME / trade_time; //--- Set timer for next candle for ( i = 0; i < factor; i++ ) { if ( ( curr_time >= trade_time * i ) && ( curr_time <= trade_time * ( i + 1 ) - 1 ) ) { delta_time = i + 1; break; } } value_time = trade_time * delta_time - ( DAY_TIME - ( DAY_TIME - curr_time ) ); if ( value_time <= 0 ) value_time = 1; return( value_time ); }
С уважением, Михаил

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Мне в эксперте необходимо использовать таймер,
но тестер стратегий не правильно работает с таймером или
я ошибаюсь?