iClose то подгружает данные, то нет

 

при вызове iClose для инструмента, графики которого не были открыты (нет истории), первый раз возвращается 0

через некоторе время значение для 1000 бара, к примеру появляется, т.е. история сама подгружается...

а для 2000, например, уже не подгружается... хотя он есть (если открыть график и руками подгрузить)

так как же должно быть? должна она подгружать или нет?

где-то в другой теме данные подгружаются эмуляцией открытия графика и нажатия кнопки хом, значит нет?

почему тогда иногда итак грузит простым вызовом iClose и ожиданием?

 
majestic:

при вызове iClose для инструмента, графики которого не были открыты (нет истории), первый раз возвращается 0

через некоторе время значение для 1000 бара, к примеру появляется, т.е. история сама подгружается...

а для 2000, например, уже не подгружается... хотя он есть (если открыть график и руками подгрузить)

так как же должно быть? должна она подгружать или нет?

где-то в другой теме данные подгружаются эмуляцией открытия графика и нажатия кнопки хом, значит нет?

почему тогда иногда итак грузит простым вызовом iClose и ожиданием?


История загружается (если конечно инструмент есть в обзоре рынка). Но при загрузке формируется ошибка, которую можно отследить
 
Vinin:

История загружается (если конечно инструмент есть в обзоре рынка). Но при загрузке формируется ошибка, которую можно отследить

GetLastError у меня при первом вызове iClose возвращает 0, как отследить?
 
majestic:

GetLastError у меня при первом вызове iClose возвращает 0, как отследить?

Код еще раз предоставьте
 
   string s = "EURUSD";
   int p = PERIOD_H1;
   int i = 10;
   while(iClose(s, p, i)==0) 
   {
      RefreshRates(); 
   }
   Alert(iClose(s, p, i), " ", iBars(s, p));


возвращает при трех запусках:

  • 1.4532 512
  • 1.4532 2048
  • 1.4532 2048

т.е. грузит первые 2048 баров независимо от заданного и все, если сделать i = 3000 - зависнет.

открываю график и прокручиваю в начало, баров более 6000.

 

не знаю, насколько актуален сейчас ответ Renat'a, но похоже победить только эмуляцией ручной загрузки

вообще удивляюсь, как люди пишут мульти-советники с такими заморочками )

 
majestic:

через некоторе время значение для 1000 бара, к примеру появляется, т.е. история сама подгружается...

а для 2000, например, уже не подгружается... хотя он есть (если открыть график и руками подгрузить)

так как же должно быть?

https://www.mql5.com/ru/forum/132490/page33
hrenfx:
Получается, что для абсолютной надежности советников "все в одном" надо делать в самом начале функции старт вызов ПУСТОГО индикатора и RefreshRates(). Это и будет гарантировать подкачку истории (после обрыва) и исполнение советника на первом тике, соответствующем уже закачанной истории.
 
Самый надёжный способ подкачки здесь и здесь. Другого ещё не придумали.
Причина обращения: