zigzag 在非高低点的其他位置得到的指标值就是0,所以返回0是正常的。
如果是要取得最近的高低两个点,可以用一个 loop 来扫得到两个非0值就跳出 loop,然后对比那两个非0的值的大小,一个就是最近的高点一个是最近的低点,要扫更多的 zigzag 高低点就是把这个 loop 的跳出条件来修改即可。
zigzag 在非高低点的其他位置得到的指标值就是0,所以返回0是正常的。
如果是要取得最近的高低两个点,可以用一个 loop 来扫得到两个非0值就跳出 loop,然后对比那两个非0的值的大小,一个就是最近的高点一个是最近的低点,要扫更多的 zigzag 高低点就是把这个 loop 的跳出条件来修改即可。
类文件
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