之字形指标对于确定价格趋势、支撑和阻力区域以及头肩、双底和双顶等经典图表形态非常有用。之字形 "指标在计算中同时使用摆动高点和摆动低点:
- 摆动高点:当一个价格(通常是收盘价)同时高于它之前和之后的价格时。
- 波动低点:当价格既低于前一个价格,又低于后一个价格时。
之字形指标在构建时可以使用百分比或点。要构建 "之 "字形指标,摆动高点和摆动低点之间必须有一定的百分比或点数,才能画出一条线。下图是 E-mini Nasdaq 100 期货合约的图表,直观地说明了 3%的价格回撤之字形和 5%的价格回撤之字形之间的区别:

请注意,在上图中,回撤百分比为 3%的 "之 "字形线比回撤百分比为 5%的 "之 "字形线更明显。使用回撤百分比较大的之字形指标的目的是帮助消除对交易者的分析没有意义的价格噪音。
之字形指标在揭示股票周期方面极为有效,同时还能剔除短期价格噪音。
之字形指标在过滤短期噪音、识别市场价格的重要趋势和重大变化方面极为有效。
下图是 E-mini S&P 500 期货合约的图表,说明了 Zig-Zag 指标在寻找支撑和阻力区域以及价格突破方面的有效性:

上图中的 E-mini 使用的是 5%的 Zig-Zag 回撤值;因此,只显示 5%或更大的价格变化,这有助于长期交易者或投资者确定重要的支撑、阻力和价格突破区域。
在图表左侧,标准普尔 500 指数正在形成三角形整理形态。当价格突破阻力位时,就会产生长期买盘。在图表中部,Zig-Zag 指标有效地说明了标准普尔 500 指数处于价格上涨通道中。事实证明,在价格触及下方支撑趋势线时买入,在价格触及上方阻力线时卖出,都会带来极大的利润。
在短期交易中使用 Zig-Zag 指标也能证明是有利可图的。英特尔(INTC)的下图显示了一个经典的头肩顶形态,Zig-Zag 指标(回撤 1 美元)很容易就能看出来:

当右肩的价格突破向上倾斜的趋势线时,这个容易识别的头肩形态发出了卖出信号。
之字形指标是识别经典图表形态的绝佳技术分析工具。之字形指标还能有效减少噪音,帮助技术交易者看清真正的市场方向。
在这段代码中,具体到下面的代码块,是否需要使用 "res "变量?
//--- 最终拒绝 for(shift=limit;shift<rates_total && !IsStopped();shift++) { res=0.0; switch(whatlookfor) { case 0: // 搜索山峰或草坪 if(lastlow==0 && lasthigh==0) { if(HighMapBuffer[shift]!=0) { lasthigh=high[shift]; lasthighpos=shift; whatlookfor=Sill; ZigzagBuffer[shift]=lasthigh; res=1; } if(LowMapBuffer[shift]!=0) { lastlow=low[shift]; lastlowpos=shift; whatlookfor=Pike; ZigzagBuffer[shift]=lastlow; res=1; } } break; case Pike: // 搜索峰值 if(LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0) { ZigzagBuffer[lastlowpos]=0.0; lastlowpos=shift; lastlow=LowMapBuffer[shift]; ZigzagBuffer[shift]=lastlow; res=1; } if(HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0) { lasthigh=HighMapBuffer[shift]; lasthighpos=shift; ZigzagBuffer[shift]=lasthigh; whatlookfor=Sill; res=1; } break; case Sill: // 搜索草坪 if(HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0) { ZigzagBuffer[lasthighpos]=0.0; lasthighpos=shift; lasthigh=HighMapBuffer[shift]; ZigzagBuffer[shift]=lasthigh; } if(LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0) { lastlow=LowMapBuffer[shift]; lastlowpos=shift; ZigzagBuffer[shift]=lastlow; whatlookfor=Pike; } break; default: return(rates_total); } }
真的需要吗?
Aleksandr Shirin 画一条线,但同时在最大值和最小值之间,蜡烛数却少于 12,这是怎么回事?
这还取决于价格所经过的点数(ExtDeviation 参数)。
ZigZag:
Zigzag指标是在价格点连接重要波峰和波谷的一系列线段。
作者: MetaQuotes Software Corp.