Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Mikalas
Сформулируйте свою цель. Что Вам требуется?
Добрый день!
Требуется установить таймер на определённое время.
При установке таймера, иногда, происходит сбой.
Настройка тестера стратегий:
И сходный код:
Не правильный результат отмечен красным цветом (таймер установливается на 2 ч. 59 мин. 38 сек. - 10788 сек, а срабатывает менее чем через час! ):
Михаил
Обычное использование таймера - запуск его в OnInit с определённым интервалом. Смена интервала таймера в процессе работы эксперта - это уже экзотика.
Что происходит в тестере? События в тестере формируются часовыми порциями из разных источников (тики разных инструментов и таймер - регулярные источники; торговые события и пользовательские события - нерегулярные источники). Вот и получается, что при смене периода таймера в очереди событий уже есть "старые" события от таймера и никто их оттуда не вынимает.
Перевод же таймера из разряда регулярных источников в разряд нерегулярных (то есть непредсказуемых) источников сильно замедлит тестирование, а на это мы не пойдём.
Какое решение? При установке таймера установить время первого прихода события от этого таймера и раньше этого времени таймерные события не обрабатывать. Что-то типа этого
Добрый день!
Требуется установить таймер на определённое время.
При установке таймера, иногда, происходит сбой.
Настройка тестера стратегий:
И сходный код:
Не правильный результат отмечен красным цветом (таймер установливается на 2 ч. 59 мин. 38 сек. - 10788 сек, а срабатывает менее чем через час! ):
Михаил
Как-то так, если я правильно понял, что требуется...
Wangelys:
Может можно зайти с другой стороны - чуть проще? Что если сделать, как и предлагает stringo: "Обычное использование таймера - запуск его в OnInit с определённым интервалом...." , задать интервал, обеспечивающий необходимую точность отсчёта, а в коде, где до этого выставлялось значение таймера, поставить счётчики на необходимое время?
Как-то так, если я правильно понял, что требуется...
Обычное использование таймера - запуск его в OnInit с определённым интервалом. Смена интервала таймера в процессе работы эксперта - это уже экзотика.
Что происходит в тестере? События в тестере формируются часовыми порциями из разных источников (тики разных инструментов и таймер - регулярные источники; торговые события и пользовательские события - нерегулярные источники). Вот и получается, что при смене периода таймера в очереди событий уже есть "старые" события от таймера и никто их оттуда не вынимает.
Перевод же таймера из разряда регулярных источников в разряд нерегулярных (то есть непредсказуемых) источников сильно замедлит тестирование, а на это мы не пойдём.
Какое решение? При установке таймера установить время первого прихода события от этого таймера и раньше этого времени таймерные события не обрабатывать. Что-то типа этого
Добрый день!
Тогда зачем вообще нужен таймер, если его нельзя использовать?
Можно ли подключать СВОЮ DLL, а не dll загружаемую Windows?
Михаил
Нормальным решением бдет являться создание одного таймера с минимально допустимым временем. при этом создовать его нужно как и положено в блоке инициализации (OnInit).
Если нужно отслеживать несколько периодов то это следует сделать самостоятельно, с помощью обработки в OnTimer (возможно с использованием пользовательских событий).
Также можно использовать индикаторы отслеживающие использующие таймеры (но насколько я помню в них есть ограничения, связанные с тестером стратегий).