С какой точностью эмулируется время в тестере в потиковом режиме? Поставил в коде по OnTick цикл до N (ставил 5) Sleep(5 секунд) и вывод времени в лог. В логе вывод происходит действительно каждые 5 секунд, но печать Print(TimeToString(TimeCurrent(), TIME_DATE | TIME_MINUTES | TIME_SECONDS) выдает время нерегулярно, если можно так выразиться. Выглядит так:
22:11:23 2010.04.05 02:00:05 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:10 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:15 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:20 2010.04.05 02:00:00
Видно, что время тестере идет, секунды прибавляются, а время TimeCurrent() заморожено на каком-то непонятном значении. Причем на других вызовах (тиках) отрабатывает более осмысленно:
22:11:23 2010.04.05 16:15:00 2010.04.05 16:15:00
22:11:23 2010.04.05 16:15:05 2010.04.05 16:15:04
22:11:23 2010.04.05 16:15:10 2010.04.05 16:15:09
Что за неравномерность? И как лечить?
С какой точностью эмулируется время в тестере в потиковом режиме? Поставил в коде по OnTick цикл до N (ставил 5) Sleep(5 секунд) и вывод времени в лог. В логе вывод происходит действительно каждые 5 секунд, но печать Print(TimeToString(TimeCurrent(), TIME_DATE | TIME_MINUTES | TIME_SECONDS) выдает время нерегулярно, если можно так выразиться. Выглядит так:
22:11:23 2010.04.05 02:00:05 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:10 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:15 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:20 2010.04.05 02:00:00
Видно, что время тестере идет, секунды прибавляются, а время TimeCurrent() заморожено на каком-то непонятном значении. Причем на других вызовах (тиках) отрабатывает более осмысленно:
22:11:23 2010.04.05 16:15:00 2010.04.05 16:15:00
22:11:23 2010.04.05 16:15:05 2010.04.05 16:15:04
22:11:23 2010.04.05 16:15:10 2010.04.05 16:15:09
Что за неравномерность? И как лечить?
документацию внимательно читали?
TimeCurrent
Возвращает последнее известное время сервера, время прихода последней котировки по одному из выбранных в "Обзоре рынка" символов. В обработчике OnTick() данная функция вернет время пришедшего обрабатываемого тика. В других случаях (например, вызов в обработчиках OnInit(), OnDeinit(), OnTimer() и так далее) это – время прихода последней котировки по любому символу, доступного в окне "Обзор рынка", то самое время, которое показано в заголовке этого окна. Значение времени формируется на торговом сервере и не зависит от настроек времени на компьютере пользователя. Существует 2 варианта функции.
документацию внимательно читали?
TimeCurrent
Возвращает последнее известное время сервера, время прихода последней котировки по одному из выбранных в "Обзоре рынка" символов. В обработчике OnTick() данная функция вернет время пришедшего обрабатываемого тика. В других случаях (например, вызов в обработчиках OnInit(), OnDeinit(), OnTimer() и так далее) это – время прихода последней котировки по любому символу, доступного в окне "Обзор рынка", то самое время, которое показано в заголовке этого окна. Значение времени формируется на торговом сервере и не зависит от настроек времени на компьютере пользователя. Существует 2 варианта функции.
Да ктож ее читает (хочется же думать, что баги преследуют нас нас на каждом шаге)? :)
Главное ведь в нашем нелегком деле общение...
Sleep() в тестере сроду не работал, с чего вы взяли что в мт5 будет работать?
В MT5 работает.
Sleep() в тестере сроду не работал, с чего вы взяли что в мт5 будет работать?
По приведенному логу отлично видно, что Sleep таки работает. Может он и в четверке не работал в плане задержки, но логическое время сдвигал? Сейчас нет времени проверять.
Про TimeCurrent - понятно. Читал, но упустил из виду. Учту в коде.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
С какой точностью эмулируется время в тестере в потиковом режиме? Поставил в коде по OnTick цикл до N (ставил 5) Sleep(5 секунд) и вывод времени в лог. В логе вывод происходит действительно каждые 5 секунд, но печать Print(TimeToString(TimeCurrent(), TIME_DATE | TIME_MINUTES | TIME_SECONDS) выдает время нерегулярно, если можно так выразиться. Выглядит так:
22:11:23 2010.04.05 02:00:05 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:10 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:15 2010.04.05 02:00:00
22:11:23 2010.04.05 02:00:20 2010.04.05 02:00:00
Видно, что время тестере идет, секунды прибавляются, а время TimeCurrent() заморожено на каком-то непонятном значении. Причем на других вызовах (тиках) отрабатывает более осмысленно:
22:11:23 2010.04.05 16:15:00 2010.04.05 16:15:00
22:11:23 2010.04.05 16:15:05 2010.04.05 16:15:04
22:11:23 2010.04.05 16:15:10 2010.04.05 16:15:09
Что за неравномерность? И как лечить?