Помогите вытащить значение

 

Нужно вытащить значения линии зигзага из индикатора ZigAndZagScalpel, таким образом не вытаскивается:

double z1 = iCustom(NULL, 0, "ZigAndZagScalpel",KeelOver,Slalom,0,1);
double z2 = iCustom(NULL, 0, "ZigAndZagScalpel",KeelOver,Slalom,0,2);
double z3 = iCustom(NULL, 0, "ZigAndZagScalpel",KeelOver,Slalom,0,3);

Возвращает нули на любом буфере..

Файлы:
 
fortrader.ru >>:

Нужно вытащить значения линии зигзага из индикатора ZigAndZagScalpel, таким образом не вытаскивается:


Может значение вершин надо ?

 
Нет, нужно именно текущее значение линии зигзага - это для советника.
 

Поставьте индикатор на график, затем нажмите Ctrl+D

теперь перемещая мышку по графику в окне данных можно смотреть

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

 
Ну в общем то показания есть только в переломных точках,
satop >>:

Поставьте индикатор на график, затем нажмите Ctrl+D

теперь перемещая мышку по графику в окне данных можно смотреть

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


Это не помогает.
 
А надо где ?
 
fortrader.ru писал(а) >>
Ну в общем то показания есть только в переломных точках,

Все правильно, значения в других точках нужно как-то рассчитать...

 

Ай,ай,ай коллега - это же элементарно Ватсон ! Есть готовая функция Игоря Кима для стандартного ЗЗ, и этот ничем от него не отличается- уберите все лишнее увидите, так что же вам надо - значения экстремумов, или направление последнего колена? вот вам функция :

//------------------------------------------------------------------------------+
//  Возвращает направление последнего колена индикатора ZigAndZagScalpel        +
//  значения колен находятся в переменных ZZ и prewZZ                           +
//------------------------------------------------------------------------------+
int GetZigAndZagScalpelDir(int count){int i,x,y;double ZZ,prewZZ;
  for(i=0;i<1000;i++){
    if(iCustom(Symbol(),0,"ZigAndZagScalpel",0,i)!=0){
      ZZ=iCustom(Symbol(),0,"ZigAndZagScalpel",0,i);
      y=i;
      break;
    }
  }
  for(i=y+1;i<1000;i++){
    if(iCustom(Symbol(),0,"ZigAndZagScalpel",0,i)!=0){
      prewZZ=iCustom(Symbol(),0,"ZigAndZagScalpel",0,i);
      break;
    }
  }  
if(ZZ>prewZZ){return( 1);}  
if(ZZ<prewZZ){return(-1);}
return(0); 
}
 
Спасибо! Дело в том что я хотел получить предыдущие и текущие значения индикатора но в каналах видимо это невозможно. Для определения перелома, но можно и по направлению действительно.
 
Не вижу ничего невозможного, из любого пользовательского индикатора можно вытащить нужную вам информацию - надо только знать что именно надо...
Причина обращения: