Обновление рыночных данных в начале дня

 

Доброго всем времени суток!

Советник работает через ночь и в начале нового дня нужно получить iOpen этого дня, но пока не перезапустишь робот или терминал, получается цена открытия прошлого дня.

Можно ли решить эту проблему и как?

 
iOpen(NULL,PERIOD_D,0);
 
sergejasv:
так и есть (DayOpenPrice=iOpen(NULL,PERIOD_D1,0);), но приходит цена открытия дня, когда был запущен советник, а не нового дня...
Видимо в ините это написано, потому и не обновляет.
 
Если указать параметр 0, те будет цена открытия текущего дня.....
 
Думаю что с такой проблемой просто никто ранее не сталкивался потому и молчат, попробуйте перед получем данных вызывать функцию

bool  RefreshRates();

 
PozitiF:
Думаю что с такой проблемой просто никто ранее не сталкивался потому и молчат, попробуйте перед получем данных вызывать функцию

bool  RefreshRates();

Надо код смотреть. Или советник зацикленный или/и обращение цене открытия дня происходит в функции init().
 
sergejasv:
не то и не другое. Refresh тоже пробовал. попробуйте сами сегодня до полуночи запустить робот с iOpen и в 00:01 посмотрите
Чисто как предположение, возможно вы время открытия по своему времени смотрите и не учитываете что закрытие дня происходит например по времени GMT,  новый бар появляется дневной при этом ?
 
Ну да, нужно код смотреть. Потому как с параметром 0 должен выводить опен текущего дня...
 
nikelodeon:
Ну да, нужно код смотреть. Потому как с параметром 0 должен выводить опен текущего дня...


extern double  DayOpenPrice=0;

if (DayOpenPrice==0)    
         DayOpenPrice=iOpen(NULL,PERIOD_D1,0);

Print(DayOpenPrice);

 

Ну так после первого получения цены открытия у вас значение уже не равно 0 потому условие и не выполняется при появлении нового бара.

попробуйте так.

extern double  DayOpenPrice=0;

if (DayOpenPrice!=iOpen(NULL, PERIOD_D1, 0))    
         DayOpenPrice=iOpen(NULL,PERIOD_D1,0);

Print(DayOpenPrice);


 
sergejasv:
написано в тике

Без кода к экстрасенсам. Или Вам нравятся гадания.

Все в чем-то первые, особенно когда в своем коде допустили ошибку. 

Причина обращения: