以上代码做为指标使用没有问题,可以正常显示,但是如果将以下代码写入EA中,有问题: print 显示出来的全部是0,请问为什么?在EA中用iCustom()调用返回数值,有什么特别之处吗?
for(int shift=99;shift>=0;shift--) { int ExtDepth=12; int ExtDeviation=5; int ExtBackstep=3; int ZigzagBuffer=0; int HighMapBuffer=1; int LowMapBuffer=2; Bottoms[shift]=iCustom( Symbol(),0,"ZigZag", ExtDepth, ExtDeviation, ExtBackstep, LowMapBuffer, shift ); Toppers[shift]=iCustom( Symbol(),0,"ZigZag", ExtDepth, ExtDeviation, ExtBackstep, HighMapBuffer, shift ); if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift]; if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift]; } shift=0; while(shift<100) { Print("Bottoms,Toppers:",Bottoms[shift]," , ",Toppers[shift]); shift++; }
ZigZag 有些特殊, 它是 只有部分点有值的稀疏数组,大部分内容是空的。只有那些折点处有值。 查论坛,好象有有关资料
https://www.mql4.com/cn/search#!keyword=Zigzag
知道有这么多零,所以才遍历100个点,100个点,不可能都是空的
呵呵,
这个很好猜到原因,请问
你是如何声明Bottoms和Toppers的?
你再想一想,呵呵。
代码如下:
请问最后两行代码有何意义?if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift]; if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift];