Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1939

 
Всем здравствуйте. Подскажите пожалуйста, как работает вызов индикаторов в mql4. В цикле меняю период для CCI,но если количество итераций становится больше чем 205, то CCI начинает отрисовывать нули, причем уже в другом буфере. Если num=204 то период может быть хоть 500, но если num=205 то период максимально может быть 207, а дальше рисуются нули. На графике несколько тысяч баров. Если период не изменять в цикле, то конечно же все нормально. В чем может быть причина? Постоянно сталкиваюсь с проблемами при многократном вызове индикаторов. Посоветуйте как с этим разобраться, может статьи какие то почитать? 
   if(rates_total>prev_calculated)
   {
      int num=205;
      period =2;   

         for(int i=0; i<=num; i++)
         {
            cci[i] = iCCI(NULL,0,period,PRICE_CLOSE,i);   
            period++;
         }
      ////////////
      period=208;

      for(int i=0; i<100; i++)
      {
         CCI[i] = iCCI(NULL,0,period,PRICE_CLOSE,i);
      }
    
   }
Если num=300 то период максимально равен 66
Файлы:
iCCI.mq4  10 kb
 
Периодически пытаюсь запускать индикатор, и он то работает, то наоборот терминал виснет. 
 
Хотя бы подскажите в какую сторону копать как говорится?
 
Aleksandr Kononov #:
Хотя бы подскажите в какую сторону копать как говорится?

 а для чего вы проводите такое исследование? Есть ли практический смысл? Или просто ради интереса? 

 
Aleksandr Kononov #:
Хотя бы подскажите в какую сторону копать как говорится?

.

 
Это не исследование а практическая задача. Просто в данном примере убран весь смысл, осталось самое главное. Я постоянно сталкиваюсь с этой проблемой и уже надоело решать ее методом тыка. Хочу чтобы кто то обьяснил уже наконец, почему то память заканчивается, то вот такая проблема при многократном использовании функций вызова индикаторов. Если вызывать не меняя периода, то все норм. А если менять то начинаются проблемы
 
Aleksandr Kononov #:
Это не исследование а практическая задача. Просто в данном примере убран весь смысл, осталось самое главное. Я постоянно сталкиваюсь с этой проблемой и уже надоело решать ее методом тыка. Хочу чтобы кто то обьяснил уже наконец, почему то память заканчивается, то вот такая проблема при многократном использовании функций вызова индикаторов. Если вызывать не меняя периода, то все норм. А если менять то начинаются проблемы

 одно дело рассчитать 200 баров одного индикатора. Другие дело рассчитать по одному бару у 200 индикаторов.. Непонятно где можно столкнуться с необходимостью загружать 200 индикаторов.. возможно что есть предел таких "опытов" вот и кончается память.. 

 
По поводу "где применить" это дело фантазии. Много где
 
Ну а память как то проверить можно? Как она расходуется или еще что то?
 
Aleksandr Kononov #:
По поводу Где применить это дело фантазии. Много где

зависший код нигде не применить.. Задачи нужно ставить выполнимые.. А запороть код можно и проще.. Индикаторы должны работать быстро там нет времени для супер долгих вычислений. 

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