Проблема с индикатором ZeroLag MACD Colored, где-то есть деление на ноль.

 
В тексте индикатора нет операции деления, но в некоторые моменты график портится резким ростом значений.
Файлы:
 
Так в журнале нет записи про деление на ноль? А чего тогда сабж такой...
 
Я журнал смотреть не умею, вижу что деления нигде нет, а значения иногда растут в десятки тысяч раз, может функция какая нибудь не верно используется не пойму, вроде индикатор распространенный.
 
Svinozavr >>:

Так в журнале нет записи про деление на ноль? А чего тогда сабж такой...

Svinozavr >>:
Так в журнале нет записи про деление на ноль? А чего тогда сабж такой...


Svinozavr >>:
Так в журнале нет записи про деление на ноль? А чего тогда сабж такой...


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

Похоже на банальный выход за границы массива. Возможно, здесь :

До этого массивы расчитываются ДО значения limit. То есть, последний расчитанный элемент limit-1.

for(int i = 0; i < limit; i++)
....................................
for(i=limit-1; i>=0; i--)
     {
      current=MACDBuffer[i];
      prev=MACDBuffer[i+1];
 
VladislavVG >>:

Похоже на банальный выход за границы массива. Возможно, здесь :

До этого массивы расчитываются ДО значения limit. То есть, последний расчитанный элемент limit-1.

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

 
VladislavVG >>:

Похоже на банальный выход за границы массива. Возможно, здесь :

До этого массивы расчитываются ДО значения limit. То есть, последний расчитанный элемент limit-1.

Все таки не в этом причина, на минутках каждые 256 минут приходиться заходить в свойства индикатора, он пересчитывается и работает следующие 256 минут. а там Limit-1 потому, что используем i+1 и это оправдано. Что то там с допустимой размерностью массивов, может типы где-то не правильно заданы?