Zero divide

 

Привет всем !

Вот использовал функцию -  https://forum.mql4.com/ru/3012 (отсюда) : 

extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
 
 
//в функции
int n;
int Zbar[4]; //номер бара с перегибом
double Zval[4]; //значение зигзага в точке перегиба Zval[1] - в точке 1 и тд. 
 
for(int i=0;i<Bars;i++){
    double zz=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
      if(zz!=0 && zz!=EMPTY_VALUE){
         Zbar[n]=i;
         Zval[n]=zz;
         n++;
            if(n>=4)break;
      }
}

но при етом значение zz возращает с ошибкой :

и когда я хочу какието операции сделать с етим zz (отнять или умножить ), то выдает zero divide хотя на ноль некто не делит....Подскажите в чем проблема ? как сделать чтоб оно выдавало значение zz без ошибки? 

 
Invest777:

Привет всем !

Вот использовал функцию - https://forum.mql4.com/ru/3012 (отсюда) :

но при етом значение zz возращает с ошибкой :

и когда я хочу какието операции сделать с етим zz (отнять или умножить ), то выдает zero divide хотя на ноль некто не делит....Подскажите в чем проблема ? как сделать чтоб оно выдавало значение zz без ошибки?


А типы переменных с которыми производите операции одинаковые?
 
Limon:

А типы переменных с которыми производите операции одинаковые?


Да, я по инструменту *10000, чтоб было целое число (для себя ), и потом работаю только с переменными типа "int". ( но проблема вообщем в получении данных так как выдается изначально ошибка,он неполучает значение zz ....и потому далее уже нечего несчитает.....)
 
историю подгрузите или кнопкой Home по нажимайте на разных ТФ инструмента
 

А зачем заморочка с счетчиком n++, вместо этого в операторе for можно вместо i<Bars поставить i<3

Примерно так.

extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;


//в функции
int Zbar[4]; //номер бара с перегибом
double Zval[4]; //значение зигзага в точке перегиба Zval[1] - в точке 1 и тд. 

for(int i=0;i<3;i++){
    double zz=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
      if(zz!=0 && zz!=EMPTY_VALUE){
         Zbar[i]=i;
         Zval[i]=zz;
              }
}
 
IgorM:
историю подгрузите или кнопкой Home по нажимайте на разных ТФ инструмента


скрин не с тестреа, а с текущего графика......
 
Limon:

А зачем заморочка с счетчиком n++, вместо этого в операторе for можно вместо i<Bars поставить i<3

Примерно так.



незнаю, я ету функцию скопирывал только, но не создатель.........а ваш вариант неработает выдает вообще значение просто 0 и также Zero divide.
 
Invest777:


скрин не с тестреа, а с текущего графика......
Проверьте нативный ЗЗ на том же чарте с теми же параметрами. Будет ли ошибка? Подумалось: может что-то не так с параметрами для iCustom?
 
Invest777:

Привет всем !

Вот использовал функцию - https://forum.mql4.com/ru/3012 (отсюда) :

но при етом значение zz возращает с ошибкой :

и когда я хочу какието операции сделать с етим zz (отнять или умножить ), то выдает zero divide хотя на ноль некто не делит....Подскажите в чем проблема ? как сделать чтоб оно выдавало значение zz без ошибки?

Этот код к зеро девайд не имеет отношения, ошибка внутри индикатора.

 
Invest777:

Привет всем !

Вот использовал функцию - https://forum.mql4.com/ru/3012 (отсюда) :

но при етом значение zz возращает с ошибкой :

и когда я хочу какието операции сделать с етим zz (отнять или умножить ), то выдает zero divide хотя на ноль некто не делит....Подскажите в чем проблема ? как сделать чтоб оно выдавало значение zz без ошибки?

я вернулси :-)


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


Если используется стандарт индикато р

ZigZag 

то проблема не в нем, а во всем эксперте, ишите ошибку в эксперте.


И вообще не понятно что за функция, она какого типа?