Зачем из MQL убрали стандартные функции? - страница 5

 
Lizar:

Никакой ручной инициализации не нужно. Ренат Вам уже дважды в этой ветке писал как нужно поступать.

 Если история полностью синхронизирована с сервером, то данные получите на первом же тике. Если нет, то на первом тике будет инициализирована подкачка истории. На одном из последующих тиков синхронизация исторических данных с сервером произойдет и получите нужные данные. Попробуйте это в понедельник, когда будут тики, и сами убедитесь.

Я бы в данном случае поступил так:

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//--- получаем данные
   double Arr[1];
   if(CopyClose(symbol,timeframe,index,1, Arr)<1) return(prev_calculated);
   ... остальной код ...
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Иначе если это не старт а дисконект то будут сброшены уже расcчитанные данные так как на следующем выхове в prev_calculated будет то что вернул return

 
Urain:

Я бы в данном случае поступил так:

Иначе если это не старт а дисконект то будут сброшены уже расcчитанные данные так как на следующем выхове в prev_calculated будет то что вернул return

Разумно.
 
Lizar:
Разумно.
Ато!!!, мы на ней собаку съели если повар нам не врёт :о)
 
Urain:
Ато!!!, мы на ней собаку съели если повар нам не врёт :о)
Сделал как советовали, но данные приходят позже успешного выполнения. Задержку уже подсчитали)
 
Silent:

Накатал такой скриптик

От CopyTime 0 не дождался, дергает историю без всяких дополнительных синхронизаций.

Но. Если на текущем ТФ время редко до 2 сек доходит (первый запуск, потом на раз выдергивает), то на другом символе (любой символ вместо AUDNZD вписываем и смотрим) время достигало 14 сек. Загадывать такой запас слипом, чтобы дожидаться искусственной синхронизации... ну хз.

Все символы не проверял, и насколько будет быстрее, если открыть/закрыть чарт, тоже.

Однако, Urain прав - надо делать приблуду подготовки терминала.

Upd только если все символы дёрнуть по всем тф, боюсь, оперативки то и не хватит )

На неизвестных символах до 20 секунд ждем.

 
zfs:

На неизвестных символах до 20 секунд ждем.

А что это за неизвестные символы такие? В смысле те, которые были открыты в первый раз, данных ещё не было на диске и их пришлось закачивать с сервера? Время ожидания тогда в этом случае зависит от того, сколько данных было запрошено.
 
tol64:
А что это за неизвестные символы такие? В смысле те, которые были открыты в первый раз, данных ещё не было на диске и их пришлось закачивать с сервера? Время ожидания тогда в этом случае зависит от того, сколько данных было запрошено.
Да только открытые, на стандартных скриптик работает фактически в нулях, но у меня в индикаторе так не происходит, несмотря на то, что после успешного выполнения проходит цикл расчетов больше 0 секунд точно, поэтому после успешного выполнения нужно опять проверять данные и в случае неудачи опять прекращать выполнение программы).
Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Программы MQL5 / Выполнение программ - Документация по MQL5
 

Да вроде в мануале все подробно расписано https://www.mql5.com/ru/docs/series/timeseries_access

Правда одной строчкой не обойтись. 

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Доступ к таймсериям и индикаторам / Организация доступа к данным - Документация по MQL5
 
По сравнению с mql4 реально сложнее стало, но возможности на порядок выше.
 
Да тут уже шаблоны надо готовить или с классами мутить).
Причина обращения: