mobidik
-----
Привет, коллеги, привет всем кого знаю и не знаю! *hi*
Прошу помочь с таким кодом. Цель: сделать обновление советника каждое энное время, независимо от поступления тиков:
PHP:[SIZE="2"] //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { Comment(TimeCurrent()); } //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ void OnInit() { //--- create timer EventSetTimer(1); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); Comment(""); } [/SIZE]
Посмотреть вложение 253786
В комментарий выводится кол-во секунд неравномерно. Идут задержки зависимые от поступления тиков. Нужно, чтобы отсчет велся равномерно, без пропусков.
Жду помощи от тех, кто смог решить однажды такую задачку! lease:
Все верно у тебя работает. TimeCurrent() - это последнее известное время брокера, которое терминал получает с приходом новых данных. Если в "Обзоре рынка" находится только один инструмент - данные TimeCurrent будут обновляться по тиково данного инструмента. Если в "Обзоре рынка" находится, скажем 3 инструмента, то обновление времени будет синхронизироваться уже по 3 инструментам, максимум точности можно получить, если "Обзоре рынка" показать все инструменты - выше этой точности уже не получить. Т.е., если случится так, что по всем инструментам наступит пауза, не будут идти тики, то и время TimeCurrent не обновится. TimeCurrent - это последнее известное время брокера. Это относится только при работе с ф-цией OnTimer() . Как вариант, для теста, замени TimeCurrent() на TimeLocal(), и посмотри как будет происходить обновление данных времени, но это уже будет время компа.
PS.
Для более частого обновления данных, можешь воспользоваться ф-цией EventSetMillisecondTimer(), тогда обновления будет чаще 1 сек, но не исключает наличия пауз.
Последнее редактирование: