Примеры: Типичные ошибки в программах на MQL4 и методы их устранения - страница 2

 
znn1950:

В‌ыдается сообщение, как его исправить?

possible use of uninitialized variable 'Li_16' BreakdownLevelDay.mq4 80 15


С декомпилами не работаем
 

Здравствуйте! Помогите найти и исправить ошибку. Хочу использовать вершины и впадины Зигзага младшего таймфрейма, а мне выдает ошибку "array out of range in ..." (выход за пределы массива). Причем если в iCustom период 0, то все работает, а если меньший тайм- ошибка. Вот пример кода 

//==================================================================+
//                           Индикаторы                             |
//==================================================================+    
                
  double _ZZ = iCustom(NULL,PERIOD_M5,"ZigZag",ZZ,5,3,0,1);

  
//==================================================================+
//              Определение направления ZZ                          |
//==================================================================+

   if(_ZZ == High[1])
   lu = 1;                    // Концец луча - Направление вверх.

   if(_ZZ == Low[1])
   lu = 0;  
   
 
     
//==================================================================+
//            Последовательность Вершин и Впадин ZZ                 |
//==================================================================+
 
  int a;                            // Задается номер простого бара.
  for(a = 1; a <= Bars; a++)        // Включаем пресчет простых баров.
  {
   double Pa1 = NormalizeDouble(iCustom(NULL,PERIOD_M5,"ZigZag",ZZ,5,3,0, a ),Digits);

   
   if(Pa1 == High[a])           // Выявлние не истинной вершины.
   {
    plus_top = plus_top + 1;    // Счетчик вершин.       
    Plus_Top[plus_top] = Pa1;   // Заносим истинную величину вершины в массив.
    if (plus_top>= 4)          // Если счетчик достиг предела,
    {
     plus_top = 0;              // то обнуляем счетчик, и 
     break;                     // выходим из цикла.
    }
   }
  }
 
Kofa:

Здравствуйте! Помогите найти и исправить ошибку. Хочу использовать вершины и впадины Зигзага младшего таймфрейма, а мне выдает ошибку "array out of range in ..." (выход за пределы массива). Причем если в iCustom период 0, то все работает, а если меньший тайм- ошибка. Вот пример кода 

Потому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.

 
Vitaly Muzichenko:

Потому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.


Большое спасибо, Виталий!

Все равно не понял как это исправить. Прописал вместо Bars - "iBars(NULL,PERIOD_M5)" Не помогло

Не понимаю почему на младшем тайме баров меньше? Наоборот ведь больше?! В 1 баре м15 три по м5. Как сделать, чтоб работало, подскажите. Не могу врубиться. С циклами пока проблемы
 
Vitaly Muzichenko:

Потому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.


Оказалась не в этом ошибка

 
Kofa:

Оказалась не в этом ошибка

Если ошибку нашли, то может стоит сообщить остальным где она была? Кто-то может так же столкнуться с ней, а тут уже ответ есть вместо простой констатации факта.
 
Artyom Trishkin:
Если ошибку нашли, то может стоит сообщить остальным где она была? Кто-то может так же столкнуться с ней, а тут уже ответ есть вместо простой констатации факта.

Вы правы. Обращение к High[]Low[] и Bars возвращает значения с текущего таймфрейма. А нужно запрашивать с желаемого: 


iHigh
 
Возвращает значение максимальной цены бара (указанного параметром shift) соответствующего графика. 





double  iHigh( 
   string           symbol,          // символ 
   int              timeframe,       // период 
   int              shift            // сдвиг 
   );
 


 

Читаните 

С более полным исходным кодом разобрались в сервисдеске.

Вот ссылка, объясняющая проблему https://support.microsoft.com/ru-ru/help/172190/windows-nt-contains-file-system-tunneling-capabilities


При удалении файла в виндовс и создании такого же с тем же именем средсвами мкл, дата создания будет выдаваться первого файла.

Винда кеширует файлы 

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