自定义 "Z "字形 - 页 4

 

大家好。

我一直在寻找一个答案,如何从ZigZag指标 中获得那些高低值。由于我没有找到解决方案,我自己编了一个程序,我把它分享出来,这样其他发现相同问题的人就有了解决方案。

第一个问题是ZigZag指标是重绘的,所以,要获得最后的高点或低点,需要一点技巧。

为了获得其他数值,我们应该在你的EA中加入这段代码。

请注意,周期从i=2开始,10000是你需要的高点或低点的数量,10.000只是一个例子。

这些值将被保存在Array temp中,其中

位置0保存图表中最后画出的高点或低点,位置1保存之前的高点或低点,以此类推......

for(int i=2;i<10000;i++)

{

zo=iCustom(Symbol(),PERIOD_M15, "ZigZag",0,i)。

if(zo!=0) //当Zigzag没有得到一个更高的高点,或者离差、偏差等条件尚未满足时,ZigZag指标等于零,所以我们需要过滤这个空值。

{

temp[k]=zo; // 高点和低点被保存在数组temp[] 中。

k++;

}

现在,为了获得最后的波动值,你只需使用当前的价格,将其与保存在0号位置的值进行比较。

如果(Ask>temp[0])意味着最后一个值是一个低点,所以要得到距离,你只需要做last_wave=Ask-temp[0]

否则意味着最后一个值是一个高值,为了获得距离,做last_wave=temp[0]-Ask

如果你不需要知道它是低点还是高点,而你只想知道距离,那么你只需做last_wave=MathAbs(Ask-temp[0])(距离总是正的,对吗?;) )

就这些了,希望对你有帮助。

祝你在编程中好运!

 
Sigur:

大家好。

我一直在寻找一个答案,如何从ZigZag指标中获得那些高低值。由于我没有找到解决方案,我自己编了一个程序,我把它分享出来,这样其他发现同样问题的人就有了解决方案。

第一个问题是ZigZag指标是重绘的,所以,要获得最后的高点或低点,需要一点技巧。

为了获得其他数值,我们应该在你的EA中加入这段代码。

请注意,周期从i=2开始,10000是你需要的高点或低点的数量,10.000只是一个例子。

这些值将被保存在Array temp中,其中

位置0保存图表中最后画出的高点或低点,位置1保存之前的高点或低点,以此类推...

<代码已删除>。

在发帖前阅读一些其他帖子 ..

编辑 您的帖子......请使用SRC 按钮来发布代码:如何使用SRC按钮

 
RaptorUK:

在发帖前阅读一些其他的帖子 . ..

编辑 您的帖子......请使用SRC 按钮来发布代码:如何使用SRC按钮



亲爱的Raptor,

我确实读了其他的帖子,虽然它提供了一个解决方案,但对我来说只是最好的,因为我们正在创建对象和删除它们,在我看来,并且有分享的代码显示,没有必要。

但如果你觉得我的帖子没有用,你可以随时删除它,你是一个版主,对吗?)

 
Sigur:


亲爱的Raptor。

我确实读了其他的帖子,虽然它提供了一个解决方案,但它对我来说只是最好的,因为我们正在创建对象和删除它们,在我看来,并有共享的代码显示,没有必要。

你读了其他的帖子,但你还是用纯文本发布了代码,为什么? 你有没有关注我发布的链接?如何使用SRC按钮。你明白为什么我要求你编辑你的帖子吗?
 
Sigur:


亲爱的Raptor。

我确实读了其他的帖子,虽然它提供了一个解决方案,但对我来说只是最好的,因为我们正在创建对象并删除它们,在我看来,并有分享的代码显示,没有必要。

但如果你觉得我的帖子没有用,你可以随时删除它,你是一个版主,对吗?)


见https://www.mql5.com/en/code/10920

与ZigZag相同

第一个缓冲区是正常的ZigZag

最后两个缓冲区,你有高点和低点。

 
谢谢你,猛禽,确实错过了那个帖子,它甚至使它更容易。
 
Sigur:
谢谢你,猛禽,确实错过了那个帖子,它甚至使它更容易!
然而,你仍然没有编辑你的帖子 . .
 
你好,我正试图使用你的 "之 "字形指标。在我使用这个指标之前,我是否必须以某种方式定义它?它已经在mql4中像rsi和其他一样了吗?
 
qjol:

嗨,gjol。


请教我如何从人字形价格p0,p1,p2,p3,p4,p5得到随机值?


int n, i, 
   double p0, p1, p2, p3, p4, p5;
   i=0;
      while(n<5)
      {
      if(p0>0) {p5=p4; p4=p3; p3=p2; p2=p1; p1=p0; }
      p0=iCustom(Symbol(),0,"zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
      if(p0>0) {n+=1; }
      i++;
      }
 
Abdelrahman Abdelgaied Mahmoud:

如果我想知道最后三个值呢?

那么请继续阅读后面两个数值。

原因: