指标: ATR ZigZag

 

ATR ZigZag:

基于 ATR 实现的之字转向( ZigZag )。

ATR ZigZag

作者: Andre Enger

 

我想我明白了,参数 "方向改变前的最小柱形周期 "允许在此周期后改变方向。

例如,如果参数设置为 3,则波峰和波谷之间的最小距离必须是 3 根蜡烛(或更多)。但我看到的情况并非如此(见图)。那么我想知道这个参数有什么作用。

ATR 之字形


我也不明白 "方向变化前的最大条形周期 "参数有什么作用。

 
Petr Nosek:

我想我明白了,参数 "方向改变前的最小条形图周期 "允许在此周期后改变方向。

例如,如果参数设置为 3,则波峰和波谷之间的最小距离必须是 3 根蜡烛(或更多)。但我看到的情况并非如此(见图)。那么我想知道这个参数有什么影响。


我也不明白 "方向变化前的最大条周期 "参数有什么影响。

谢谢,这是个好问题!

正如说明中所说,时间触发器是 ATR 的次要触发器,应被视为 "软 "约束。该指标的一个主要目标也是确保波峰和波谷是真实的价格最小值和最大值,这作为一个 "硬 "约束是优先的。 因此,在你的图片中,关于中间的短线段,如果人字形将波谷放在下一个条形图上,那就不是该线段上的最小价格了,对吗?

我的意思是,尽管 ATR 触发器告诉指标 "应该 "改变,但最小周期告诉指标,如果线段持续时间小于此值,则 "不应该 "改变。而最大周期则告诉指标,如果发现新的顶部/底部后已经过了这么多条柱状线,它 "应该 "改变(无论 ATR 是否被触发)。每当趋势继续走高或走低时,该周期将重置为 0,但当它触发时,它将从最后一个高点/低点搜索其最小/最大价格 段,将其作为反方向的极值,并插入一个这样的段和趋势变化。

 
Andre Enger:

谢谢,这是个好问题!

正如说明中所说,时间触发器是 ATR 的次要触发器,应被视为 "软 "约束。该指标的一个主要目标也是确保波峰和波谷是真实的价格最小值和最大值,这优先于 "硬 "约束。 因此,在您的图片中,关于中间的短线段,如果 "之 "字形将波谷放置在下一个条形图中,那就不是该线段上的最小价格了,对吗?

我的意思是,尽管 ATR 触发器告诉指标 "应该 "改变,但最小周期告诉指标,如果线段持续时间小于此值,则 "不应该 "改变。而最大周期则告诉指标,如果发现新的顶部/底部后已经过了这么多条柱状线,它 "应该 "改变(无论 ATR 是否被触发)。每当趋势继续走高或走低时,该周期将重置为 0,但当它触发时,它将从最后一个高点/低点搜索其最小/最大价格 段,将其作为反方向的极值,并插入一个这样的段和趋势变化。

感谢您的解释。要理解您的 "不应该"、"应该"、"应当"、"必须 "等词语并不容易。我读了好几遍,但现在我希望我能理解。主要触发器是 ATR,但如果该触发器发生在 "最小周期 "内,则不会考虑(暂时),指标会等待新的极值。但是,如果新的极值没有在 "最大周期 "内出现(趋势平缓),那么指标会在最后一个确认的波段之后找到高/低点,这个高/低点就是一个新的波段。

 
Petr Nosek:

感谢您的解释。要理解您的 "不应该"、"应该"、"应当"、"必须 "等词语并不容易。我读了好几遍,但现在我希望我能理解。主要触发器是 ATR,但如果该触发器发生在 "最小周期 "内,则不会考虑(暂时),指标会等待新的极值。但如果新的极值没有出现在 "最大周期 "内(趋势平缓),那么指标就会在最后一个确认的波段之后找到高/低点,这个高/低点就是一个新的波段。

这是正确的,也是我认为在图片中发生的情况。我在代码中找到的术语还有

  • 不应更改: 自发现高点或低点以来的时间少于 "最小周期"。
  • 应改变: 反趋势移动的长度大于 ATR 临界值
  • 应更改: 自发现较高的高点或较低的低点以来,时间已超过 "最长周期"
  • 必须更改: 反趋势移动的长度大于趋势的起点

如果同时出现 "应该 "和 "不应该",则趋势发生改变。或者,如果 "应该或必须",则趋势发生改变,改变的方式可能会超越 ATR/时间限制。

可以改变 "并不那么重要,但可以确保只有在最近的条形图是反趋势移动的极值时,才会通过 ATR 触发器改变趋势,而不仅仅是因为 ATR 临界值随着时间的推移变小了。

此外,尽管我在评论中提到了 "趋势 "和 "反趋势",但这是指当前的之字形方向,而不是它所追踪的市场趋势。
 
数据在高低点都是显示 ZigZag 没有分开高低点!
 
亲爱的您好


如果我们想在 ATRZigZag 指标中只考虑 ATR 条件,我们是否可以考虑 MinPeriod=0 和 MaxPeriod=0


谢谢

 
你好,亲爱的

请同时准备 mq4 版本 谢谢

 
我一直在寻找一种基于 ATR的 "之 "字形指标,以人们能够感知的方式绘制 "之 "字形。当我根据时间框架更改设置时,这个指标非常不错。我刚刚添加了一项功能,当最后一个滞后点至少是前一个滞后点的 50%时,可以忽略最小柱状线设置。这样,即使滞后是在 1 个或多个条形图中形成的,它也会形成滞后。对我来说,这种方法更好一些://--- 计算滞后值 double previousLag = _lastDirection ?(ExtPeaksBuffer[_lastIndex] - low[_lastIndex2]) : (high[_lastIndex2] - ExtTroughsBuffer[_lastIndex]); double currentLag = _lastDirection ?(ExtPeaksBuffer[_lastIndex] - low[bar]) : (high[bar] - ExtTroughsBuffer[_lastIndex]); //--- Conditions bool shouldntChange = (bar - _lastIndex < MinPeriod) && (currentLag < 0.5 * previousLag);