ZigZag 之字转向指标是什么?它画的高低点为什么会重绘
「ZigZag 标出来的高低点好准,照着它低买高卖就好了吧?」
ZigZag 的图看起来很准,是因为它会改。它画的最后一段永远还没确定:价格再创新高,上一个「高点」就会被擦掉,搬到新的地方。我们把 MT5 的 ZigZag 在 9 个品种的日线上每天重算一次统计:每留下 1 个转折点,就有将近 5 个曾经被画出来、后来被擦掉。这一篇先用一张表看它怎么改,再用一张标了 1~4 的真实行情图(以太坊 2025 年)看一次。
这是 MASQuant 迈思量化「交易学院 · 技术指标大全」的一篇。所有指标的分类整理在〈技术指标大全〉。
一句话看懂
ZigZag=把「够大」的高点和低点连成折线,小波动不管。
它回答的问题是:「这段行情的主要转折在哪里?」——但它是在事后回答。
ZigZag 像写回忆录:把人生的高峰和低谷连起来,故事很清楚。但写的时候人还活着,今天以为的「人生高峰」,明年可能被更高的峰取代。最后一章永远还在改,只有前面的章节不会再动。
先算一次:高点怎么被搬走
下面是一个简化的例子,看每天收盘后 ZigZag 的「最后一个点」画在哪里(以下是举例用的整数,不是行情数据):
| 第几天 | 当天最高 | 当天最低 | ZigZag 的最后一个点 |
|---|---|---|---|
| 第 3 天 | 105 | 101 | 第 3 天的 105(新高) |
| 第 4 天 | 103 | 100 | 还是第 3 天的 105 |
| 第 5 天 | 108 | 104 | 搬到第 5 天的 108,第 3 天的点被擦掉 |
| 第 6 天 | 106 | 101 | 还是第 5 天的 108 |
| 第 7 天 | 101 | 95 | 画出新的低点 95,第 5 天的 108 这才确定 |
第 4 天看图,你会以为 105 就是高点;第 5 天它就不见了。一个高点,要等下一个反方向的点画出来之后才算数,而那时价格已经从高点跌了一段。
正式公式
MT5 自带的 ZigZag 有三个参数,默认是 12、5、3:
1 Depth(深度)= 12:一个点要是最近 12 根里的最高(最低),才有资格当转折点
2 Deviation(偏差)= 5:价格差距的门槛,单位是报价的最小跳动点
3 Backstep(回退)= 3:两个同方向的转折点至少隔几根,太近的只留比较极端的那个
高点和低点轮流出现;出现更高的高点(更低的低点)时,最后一个点就搬过去
ZigZag 没有公认的发明人,各平台的算法也不太一样:有的用固定百分比(例如涨跌超过 5% 才算),MT5 的示例指标则用上面三个参数。不管哪一种,最后一段都会变,差别只在变的频率。
MT5 的 ZigZag 在安装时附带的示例指标(Examples 文件夹)里,指标列表里没有直接内置。
统计:转折点多常被擦掉、要等多久才确定?
我们把 MT5 的 ZigZag(12, 5, 3) 照源代码重写,在 9 个品种(黄金、白银、标普 500、德国 40、欧元兑美元、英镑兑美元、美元兑日元、比特币、以太坊) 2015 年以来的日线上,每天收盘后重算一次,记下每一天画出来的样子:
| 项目 | 结果 |
|---|---|
| 最后留下的转折点 | 1,487 个 |
| 曾经被画成转折点、后来被擦掉的位置 | 7,327 个(每留下 1 个,约有 4.93 个被擦掉) |
| 一个转折点要等几根才确定(中位数) | 6 根(一半落在 4 到 9 根之间) |
| 要等 10 根以上才确定 | 22.2% |
| 要等 20 根以上才确定 | 2.2% |
| 确定的时候,价格离转折点已经走了(中位数) | 2.69 倍的 ATR(14) |
「确定」的意思是:之后每天重算都还在,而且后面已经画出下一个反方向的点。九个品种各自算,中位数都在 5 到 7 根之间。换句话说,ZigZag 告诉你「那里是高点」的时候,价格通常已经从高点走了将近 3 个 ATR。
看图:以太坊 2025 年,照着 1~4 看
下面这张图是以太坊(ETHUSD)2025 年 2 月下旬到 6 月下旬的日线,取自 MT5 的历史报价。橘色实线是用整段数据算出来的 ZigZag(也就是「事后」的样子);紫色虚线是只用到 5 月 7 日为止的数据算出来的 ZigZag(也就是 5 月 7 日当天你在图上看到的样子)。

当时的「最后一个高点」:2025 年 5 月 1 日,1,871.46。
在 5 月 7 日看图(收 1,796.69)。这天的 ZigZag 把 6 天前的 1 画成最近的高点,之后的价格一路比 1 低。看起来像是一个高点已经形成、价格正在往下。
真正的高点:5 月 29 日,2,786.02。隔天(5 月 8 日)以太坊就大涨,一路涨到比 1 高 48.9% 的地方。1 那个点被擦掉,事后的 ZigZag(橘线)从 4 月的低点直接连到这里,好像 1 从来不存在。
3 这个高点到 6 月 5 日才确定,晚了 7 根。这天收在 2,396.74,已经比高点低了 14.0%。在 3 当天和之后几天,你都还不知道它就是高点。
这是一段真实的历史行情,用来说明ZigZag的性格,不是通则。换品种、换周期、换一段行情,数字都会变。
看到什么、代表什么
| 你看到 | 通常代表 | 但要小心 |
|---|---|---|
| ZigZag 的最后一段 | 目前最新的高点或低点 | 还没确定,随时可能被搬走(图上 1) |
| 倒数第二个点以前的折线 | 已经确定的高低点 | 确定的时候,价格通常已经走了将近 3 个 ATR |
| 折线很漂亮地连起每个高低点 | 事后的样子 | 每留下 1 个点,约有 5 个曾经画出来又被擦掉 |
| 高点一个比一个高、低点一个比一个高 | 上升的结构 | 只能用已经确定的点判断 |
| 参数改大(例如 Depth 20) | 只留下更大的转折 | 确定得更慢 |
实际怎么用:三个例子
例一:整理过去的高低点,而不是预测下一个
ZigZag 最好用的地方,是把一堆 K 线整理成几个主要的高低点,方便画斐波那契回撤、找前高前低(斐波那契的例子见〈斐波那契回撤是什么?〉)。用的时候,只用已经确定的点。
例二:只用「确定的点」判断结构
规则可以写成:「最近两个已确定的低点,后面的比前面的高,才算上升结构。」最后那个还没确定的点不算进去。
例三:把 ZigZag 的想法改写成「当下就知道」的条件
如果你的想法是「突破前一个高点就做多」,回测时可以写成「收盘突破最近 20 根的最高价」——这个条件当天就能算出来,不会事后改。
三个例子都要记得:ZigZag 是事后整理的工具。它画的点越漂亮,越要问:这个点是哪一天才确定的?
常见误用
一、照着 ZigZag 的高低点回测
用事后的 ZigZag 点当买卖点,回测会非常漂亮——因为每一个点都是在价格走完之后才画的。真实交易时,你在 1 那种地方买,等不到 3。
二、把最后一段当成已经转向
图上 2 那天,ZigZag 把 6 天前的 1 画成高点,看起来在往下。之后价格比 1 高了 48.9%,那个点被擦掉。
三、以为参数调大就不会重绘
Depth 调大,转折点变少,但最后一段一样会变,而且要等更久才确定。重绘是 ZigZag 的算法本身,不是参数的问题。
常见问题
ZigZag 指标是什么?
ZigZag(之字转向)把超过一定幅度的高点和低点连成折线,过滤掉小波动,用来看出行情的主要转折。MT5 的示例指标默认参数是 Depth 12、Deviation 5、Backstep 3。
ZigZag 为什么会重绘?
因为最后一个转折点还没确定:价格再创新高(新低),最后一个点就会搬到新的位置。要等下一个反方向的点画出来,前一个点才不会再变。
ZigZag 可以拿来交易吗?
可以用来整理已经确定的高低点、看结构,但不适合直接当买卖信号。我们的统计里,一个点要等到确定,中位数是 6 根,确定时价格通常已经离转折点约 2.7 个 ATR。
MT5 有 ZigZag 吗?
有,在 MT5 安装时附带的示例指标(Examples 文件夹)里,默认参数 12、5、3;指标列表里没有直接内置。
结语
ZigZag 画出来的图,是行情的「事后版本」:很清楚,也很诱人。它的价值在整理过去,不在预测下一个转折。
所以真正该问的是:你的策略如果用了 ZigZag 的高低点,回测里用的是「确定之后」的点,还是事后才画出来的点? 这个问题,一段历史行情回答不了,要拿规则在很多段行情上回测。
还没有自己的规则、不想从指标一个一个拼起?MASQuant 迈思量化的策略精灵只要你先选一种投资风格,AI 会分析市况、挑选品种,一次给你三组候选策略,每组都先用历史数据回测过,收益和本金最大回撤摊开来看,再由你决定要不要部署到 MT5。
已经有自己的想法,就把条件写成一句话,例如「收盘突破最近 20 根的最高价就做多,跌破最近 10 根的最低价就出场」,丢进 AI 策略助理,按下去就开始回测,回测环境纳入点差、滑点、市场流动性变化与交易执行延迟这些真实市场摩擦(操作方式见〈策略助理使用教学〉)。这种当天就能算出来的条件,回测结果才会跟真实交易一致。回测告诉你的是「这条规则在过去的行情里表现如何」,不是未来的保证。
想法,经过验证,才叫策略。
文中走势图取自 MT5 平台的历史报价(日线;不同平台的报价与日线切法略有差异,数值可能不完全相同)。ZigZag 依 MT5 自带的示例指标源代码重写,统计使用同一平台 9 个品种(黄金、白银、标普 500、德国 40、欧元兑美元、英镑兑美元、美元兑日元、比特币、以太坊)2015 年 1 月以后的日线,每天收盘后重算一次;MT5 图表上实时更新的方式略有不同,数字可能有出入。举例用的整数不是行情数据。历史行情只用来说明指标的性格,不代表未来走势。
风险揭露:CFD 属于高风险金融产品,可能导致快速资金损失。过往业绩不代表未来结果,所有策略与回测仅供参考,不构成投资建议。交易前请充分了解本公司风险揭露条款。



