调用自定义指标调不出数据。

 

类文件

int shuju::ZigZag(double &data0[],int count,string symbol,ENUM_TIMEFRAMES period,int ExtDepth,int ExtDeviation,int ExtBackstep)

{

   int h=iCustom(symbol,period,"Examples\\ZigZag",ExtDepth,ExtDeviation,ExtBackstep);

   ArraySetAsSeries(data0,true);

   int a;

   a=CopyBuffer(h,0,0,count,data0);

   //IndicatorRelease(h);

   return(a);

}


调用脚本

double zg[];

sj.ZigZag(zg,20,Symbol(),PERIOD_CURRENT,12,5,3);

Print(zg[1]);


请问为什么调用不到 ZigZag的 数据  都是返回0

 

zigzag 在非高低点的其他位置得到的指标值就是0,所以返回0是正常的。


如果是要取得最近的高低两个点,可以用一个 loop 来扫得到两个非0值就跳出 loop,然后对比那两个非0的值的大小,一个就是最近的高点一个是最近的低点,要扫更多的 zigzag 高低点就是把这个 loop 的跳出条件来修改即可。

 
ambercrystal #:

zigzag 在非高低点的其他位置得到的指标值就是0,所以返回0是正常的。


如果是要取得最近的高低两个点,可以用一个 loop 来扫得到两个非0值就跳出 loop,然后对比那两个非0的值的大小,一个就是最近的高点一个是最近的低点,要扫更多的 zigzag 高低点就是把这个 loop 的跳出条件来修改即可。

明白了 感谢

原因: