Array out of range - страница 5

 
ivan.berezhnuy:

Там же условие, если i>0
А bufPrice3 не может быть нулевой размерности?
Вставте вывод в лог размеров этого массива - проверим.
 
ivan.berezhnuy:

Там же условие, если i>0

Приложите файл целиком. Не нашёл где задаётся размер массива bufPrice3.

===

Используйте отладчик и проверьте все значения.

Документация по MQL5: Операции с массивами / ArrayResize
Документация по MQL5: Операции с массивами / ArrayResize
  • www.mql5.com
Операции с массивами / ArrayResize - Документация по MQL5
 
mql5:
А bufPrice3 не может быть нулевой размерности?
Вставте вывод в лог размеров этого массива - проверим.

Не совсем понял, я только учусь. Вот смотрите, если убрать 4 последних инструмента, то индикатор рисует все нормально.

//--- Синхронизация исторических данных
   int limit;
   int j, k;
   if(prev_calculated==0)
      limit=0;
   else limit=prev_calculated-1;
   j=limit;
   k=limit;
   for(i=limit;i<rates_total && !IsStopped();i++){ //Движение от старой свечи к новой текущего графика
      if(j>=ArraySize(tmpSymbol1)) break;
      while(curTime[i]>tmpSymbol1[j].time && !IsStopped() && j<ArraySize(tmpSymbol1)-1){
         j++; //Дыра в истории текущего графика
      }
      if(k>=ArraySize(tmpSymbol2)) break;
      while(curTime[i]>tmpSymbol2[k].time && !IsStopped() && k<ArraySize(tmpSymbol2)-1){
         k++; //Дыра в истории текущего графика
      }
      if(curTime[i]<tmpSymbol1[j].time) {
         if(i>0) //Дыра в истории инструмента 1
            bufPrice1[i]=bufPrice1[i-1];
         else
            bufPrice1[i]=0;
      }else{
         bufPrice1[i]=CalcPrice(MA_Price, tmpSymbol1[j].open, tmpSymbol1[j].close, tmpSymbol1[j].high, tmpSymbol1[j].low);
      }
      if(curTime[i]<tmpSymbol2[k].time) {
         if(i>0) //Дыра в истории инструмента 2
            bufPrice2[i]=bufPrice2[i-1];
         else
            bufPrice2[i]=0;
      }else{
         bufPrice2[i]=CalcPrice(MA_Price, tmpSymbol2[k].open, tmpSymbol2[k].close, tmpSymbol2[k].high, tmpSymbol2[k].low);
      }
   }//Next i
Вот, если так то все работает. Как только добавляю 4 инструмента, появляется эта ошибка
 
DC2008:

Приложите файл целиком. Не нашёл где задаётся размер массива bufPrice3.

===

Используйте отладчик и проверьте все значения.

Отладчик выдает ошибку
 

Вот эти функции вообще не работают ))) По крайней мере ничего подобного, что заявлено в документации не происходит ))) Вместо копирования в указанном диапазоне дат происходит копирование от нулевого бара до самой поздней даты ))) 

int  CopyRates(
   string           symbol_name,       // имя символа
   ENUM_TIMEFRAMES  timeframe,         // период
   datetime         start_time,        // с какой даты
   datetime         stop_time,         // по какую дату
   MqlRates         rates_array[]      // массив, куда будут скопированы данные
   );

 

int  Bars(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период
   datetime         start_time,      // с какой даты
   datetime         stop_time        // по какую дату
   );
 
artikul:

Вот эти функции вообще не работают ))) По крайней мере ничего подобного, что заявлено в документации не происходит ))) Вместо копирования в указанном диапазоне дат происходит копирование от нулевого бара до самой поздней даты ))) 

CopyRates - работает, последнее время ей активно пользуюсь, странностей не замечал.

Эта функция перегружена и возможно вместо datetime вы подставляете типа  int? 

 
kPVT:

CopyRates - работает, последнее время ей активно пользуюсь, странностей не замечал.

Эта функция перегружена и возможно вместо datetime вы подставляете типа  int? 

Не работает вариант с диапазоном дат ))) Все подстановки аргументов корректные и многократно проверенно скриптом результаты работы этих функций )))
 
artikul:
Не работает вариант с диапазоном дат ))) Все подстановки аргументов корректные и многократно проверенно скриптом результаты работы этих функций )))

Именно с диапазоном дат работал буквально за 5 минут до прочтения вашего поста, все ок. И множество раз до этого, тоже все нормально. Давно с какими-то функциями из этой серии были проблемы, но давно все исправили. 

 
kPVT:

Именно с диапазоном дат работал буквально за 5 минут до прочтения вашего поста, все ок. И множество раз до этого, тоже все нормально. Давно с какими-то функциями из этой серии были проблемы, но давно все исправили. 

Не работает ))) Первые два варианта функции из документации работают корректно, а вызов с двумя датами в качестве аргументов - полный глюк )))
 
artikul:
Не работает ))) Первые два варианта функции из документации работают корректно, а вызов с двумя датами в качестве аргументов - полный глюк )))
доказательства где? Код представьте
Причина обращения: