在新标签页中打开
跳至正文
寻找适合我的经纪商

ZigZag 指标:设置、重绘与波动结构

理解 ZigZag 的 Depth、Deviation 和 Backstep,观察最后一段如何在真实外汇 K 线上重绘,并下载基于百分比的 MQL5 指标。

ZigZag 连接选定的价格高点和低点,将它们之间较小的波动排除在线条之外。它使波动结构更便于观察,但随着价格继续延伸,最新的端点可能移动。整齐的历史折线并不能准确显示每个转折点何时才可被识别。

ZigZag 指标显示什么

这条线是对价格走势的回顾性过滤。BrokerCheck 先前的指南介绍了其在波段交易、趋势通道、艾略特波浪分析、支撑与阻力、斐波那契锚点,以及头肩形态、三角形、双顶或双底等形态中的用途。这些用途涉及对所选波动的解读;线条本身并不计算未来价格。

指南强调灵敏度与噪声之间的取舍,并讨论明确趋势、横盘市场、资产波动率、基本面背景和历史测试。其交易应用是对分析方法的描述。这里的示例衡量线条及其修订,不测试入场或离场策略。

请将最后一段视为暂定线段。 后续极值可能替换最新绘制的端点,使其原先的位置从图表上消失。在所提供的计算中,只有在符合条件的相反端点被接受时,端点才会确认。尚未形成完毕的 K 线上的确认,在该 K 线收盘前仍为暂定。

Depth、Deviation 和 Backstep 设置

先前的指南将 Depth 定义为未出现新高或新低的最少 K 线数量,将 Deviation 定义为改变方向所需的百分比变动,将 Backstep 定义为高点与低点之间的最小 K 线间隔。指南给出以下示意范围:

设置 较短期范围 较长期范围
Depth 5–10 根 K 线 12–20 根 K 线
Deviation 1–3% 5–10%
Backstep 1–3 根 K 线 3–5 根 K 线

区分 K 线数量与百分比过滤条件

指南还用“Depth”表示最小价格变动过滤条件,起始范围为 5%–10%,高波动率时为 >10%,低波动率时为 <5%。其关于 Deviation 的讨论将 <5% 描述为较低、5–10% 为适中、>10% 为较高。风险管理示例对比了 5% 和 15% 的过滤条件。此处保留这些百分比描述,将其作为百分比阈值,不换算为 K 线数量。

下载文件明确了单位:Depth 是以 K 线计的回溯窗口;DeviationPercent 是从待确认端点价格计算的反转百分比;Backstep 是到相反端点的最小 K 线距离。这正是下文采用的约定。它不是以点数为单位的偏差设置,也不假定与其他平台的 ZigZag 一致。

Backstep 与重绘

指南的 Backstep 表将 1 根 K 线称为高度灵敏、2–3 根 K 线称为均衡、4–5 根 K 线称为较不灵敏。它还称 Backstep“防止重绘”,而前面的讨论警告 ZigZag 可能重新绘制。此处的计算仅将 Backstep 用作间距规则。待确认端点仍会移动,连续历史截点示例展示了这一点。

最后绘制的转折点在首次出现时只是候选点,并不是已经定论的历史事实。

此下载版本的精确计算方法

示意默认值为 Depth 12 根 K 线、DeviationPercent 1% 和 Backstep 3 根 K 线。这些值组合了指南中讨论的数值,并未优化,也不作为最佳设置推荐。

  1. 按时间顺序读取 K 线。等待完整的 Depth 窗口,然后以窗口内最早出现的最低低点作为初始暂定端点。从下一根 K 线继续处理。
  2. 候选高点必须等于或高于回溯 Depth 窗口内的每个高点,包括当前 K 线。候选低点必须等于或低于该窗口内的每个低点。
  3. 同类候选点若严格更加极端,就替换待确认端点。价格相等时保留较早端点的时间。
  4. 否则,仅当相反候选点距待确认端点至少 Backstep 根 K 线,且价格反转达到下述百分比阈值时,才接受该候选点。
  5. 在接受候选点的 K 线收盘时确认旧端点,并将新接受的相反端点保留为暂定状态。仅在不改变已收盘历史数据的情况下追加数据时,绝不移动先前已确认的端点。
阈值 = 待确认端点价格的绝对值 × DeviationPercent ÷ 一百
高点之后:待确认高点 − 候选低点必须达到阈值
低点之后:候选高点 − 待确认低点必须达到阈值

外包 K 线、实时 K 线与历史数据变化

一根外包 K 线可能同时提供延伸和反转。延伸优先,每根 K 线最多发生一次变更,因为最高价和最低价无法揭示 K 线内部的先后顺序。在同一根延伸 K 线上不会接受相反枢轴点。原生指标每次调用都会重新计算所有可用 K 线。最新 K 线仍可能变化;下方历史示例仅包含已收盘 K 线。

Depth 和 Backstep 必须为正整数 K 线数量;反转百分比必须为正且有限。最高价和最低价必须为正且有限,最高价不得低于最低价。历史数据不足时不生成线条。旧 K 线、可用历史数据或设置发生变化会产生新结果;稳定性说明仅适用于在先前数据及设置完全相同的情况下追加已收盘 K 线。

真实 EURUSD 示例

历史样本包含 5000 根已收盘小时 K 线,时间从 2025-12-04 15:00 到 2026-09-24 22:00。时间为终端的 K 线开盘时间,采集时测得时区偏移为 UTC+3;未调整历史夏令时变化。交易时段之间的空档在图中被压缩并标注。这些观察值不是实时报价。

已确认波动与未完成的线段

ZigZag:已确认波动与暂定端点
最近 1038 根 K 线覆盖 2026-07-27 17:00 至 2026-09-24 22:00。窗口包括最新已确认线段和暂定线段。实线连接已确认端点;末尾虚线线段终止于暂定点。打开完整尺寸图表。

相同 K 线上的不同百分比阈值

相同历史 K 线上的百分比阈值
在完整样本中,1% 得到 26 个已确认枢轴点,5% 得到 0 个已确认枢轴点,15% 得到 0 个已确认枢轴点。Depth 和 Backstep 保持示意默认值。虚线线段仍为暂定。若阈值未接受任何反转,则仅保留一个暂定端点,它可能从初始位置移动;不会虚构缺失的波动。数量描述的是此样本,而非交易质量。打开完整尺寸图表。

观察待确认端点重绘

随着新 K 线收盘,暂定端点发生移动
在连续历史截点上重新启动同一计算。已经确认的 26 个枢轴点保持完全一致。彩色虚线显示末段的变化;阴影区域标出新增 K 线。最早的已确认点可能位于此窗口之外。打开完整尺寸图表。
数据可用至该 K 线 待确认端点所在 K 线 端点价格,USD/EUR
2026-09-23 18:00 2026-09-23 17:00 1.13830
2026-09-23 19:00 2026-09-23 19:00 1.13752
2026-09-23 20:00 2026-09-23 20:00 1.13696
2026-09-23 21:00 2026-09-23 20:00 1.13696

每行仅使用截至该截点、在 K 线收盘时已可用的 K 线。端点移动时,原先绘制的点消失。连接线段重新绘制到新极值。该示例是符合所述条件的最新一组连续截点:待确认端点反复变化,而已确认点集合不变。它不是按后续收益选出的。

用 ZigZag 分析波动结构

更高的高点是将已确认高点与前一个已确认高点比较;更高的低点是将已确认低点与前一个已确认低点比较。更低的高点和更低的低点采用相反的严格比较。价格相等意味着波动点相等,而不是更高或更低。不会跳过中间任何同类枢轴点。

在这些示例中,上升结构要求最新高点和最新低点都超过各自的同类前点。下降结构要求两者都更低。其他组合为混合结构。只有在最后一个参与比较的枢轴点确认后,才可获得此分类,即在标记 K 线收盘时,而非此前出现极值时。

更高的高点与更高的低点

更高的高点与更高的低点:确认发生在之后
高点从 1.14820 升至 1.17108;低点从 1.13239 升至 1.13528,单位为 USD/EUR。该结构在 2026-08-28 19:00 K 线收盘时才可识别。这是样本中最近一个符合条件的已确认结构,并展示了周围的价格背景。打开完整尺寸图表。

更低的高点与更低的低点

更低的高点与更低的低点:确认发生在之后
高点从 1.16215 降至 1.14820;低点从 1.14992 降至 1.13239,单位为 USD/EUR。该结构在 2026-07-23 17:00 K 线收盘时才可识别。这是样本中最近一个符合条件的已确认结构,并展示了周围的价格背景。打开完整尺寸图表。

其他指标、时间周期与市场背景

先前的指南将 ZigZag 与移动平均线结合用于趋势方向和交叉,与 MACD 结合用于动量和背离,与 RSI 结合用于背离及高于 70/低于 30 的读数,并与斐波那契回撤结合用于价格水平比较。它还讨论了成交量增加、基本面分析,以及不同类型信息的结合。此下载版本不包含这些辅助计算,此处也未衡量组合信号或概率。

调整设置而不将其称为最优

指南讨论了在波动较大的条件下增加 Depth 和 Deviation,在波动较低或交易周期较短时降低它们;若短暂反转被省略,指南建议降低 Backstep。其时间周期表对比了 1–15 分钟外汇或加密货币图表与股票日线、周线图。它还将外汇 24 小时周期、股票交易时段和商品周期列为背景。所有演算示例始终采用 EURUSD 小时数据。

要观察一项变更,请保持数据和其他设置不变,比较哪些枢轴点保留下来,并检查连续截点。线段更少的图表仅能说明历史数据经过了不同的过滤。指南建议历史测试和模拟试验;本指南提供描述性计算,不提供最优参数或策略表现的证据。

止损、目标与回顾性波动的局限

指南讨论了将止损设在波动低点下方或反转点之外,将目标设在近期高点或投射点附近,以及随新枢轴点形成而调整订单。它还强调决策纪律和接受亏损时的心理困难。这些是它提出的波动水平用途;此处未实现订单设置、仓位规模或目标投射算法。

待确认低点以后可能继续下移。历史枢轴点的时间戳也早于其确认时间戳。任何独立交易测试都必须使用当时可用的信息,而不能将最终历史线条当作立即可用的信号。

穿过旧价格极值的整齐线条并不能确定入场价、离场价或未来结果。

风险提示: 交易存在风险,您可能损失资金。仅凭 ZigZag 无法制定完整的交易或风险管理计划。

下载指标与历史示例

MQL5 指标将百分比 ZigZag 叠加到价格上。它不含订单、提醒或辅助指标。虽然原生线条采用单一绘制样式,最后一段仍为暂定;单独的历史图表用虚线区分该线段。尚未测试在原生图表上的挂载与绘制。

原生计算在 330433 个非空缓冲区值上与参考实现一致,最大绝对差为 0.0。这检验的是算术运算和枢轴点位置,而非交易表现。

指标源代码

可编辑的 MQL5 百分比 ZigZag。

下载源代码

已编译指标

用于自定义指标文件夹的已编译文件。

下载指标

历史示例数据

小时价格、枢轴价格、类型与确认索引。

下载 CSV

阅读计算与设置说明。

  1. 将已编译文件放入平台的自定义指标文件夹,或用平台编辑器编译源代码。
  2. 通过自定义指标控件挂载,并选择所需的图表时间周期。
  3. 为 Depth 和 Backstep 输入正的 K 线数量,为 DeviationPercent 输入正值。与其他 ZigZag 比较前先检查单位。
  4. 随着 K 线到来,观察待确认端点,并区分其时间戳和确认时间。

示例能够说明什么

  • 最后一个端点为暂定。
  • 确认归属于接受该点的 K 线收盘时,而非更早的极值时刻。
  • 设置与历史数据决定所选波动。

图表在固定历史数据源上展示了一条特定的百分比规则。下载的 CSV 包含完整历史的最终结果,不是对每个更早图表所显示内容的重放。截点表提供了范围更窄的重放示例。未衡量交易成本、入场、离场、收益、胜率或预测准确度。不同规则、数据源、历史起点和设置可能产生不同的波动。

常见问题

ZigZag 会重绘吗?

待确认端点可能移至更晚的极值,并移除原先的点。在此计算中,扩展未改变的已收盘历史数据时,先前已确认的端点保持固定。

枢轴点何时确认?

当符合条件的相反端点被接受时,在接受它的 K 线收盘时确认。极值的时间戳早于其确认变得可用的时间。

Deviation 以点数衡量吗?

此下载版本使用待确认端点价格的百分比。按点数计算的 ZigZag 使用不同单位,不假定两者一致。

这里的 Depth 是什么意思?

它是以 K 线计的回溯候选窗口,示意默认值为 12。指南还讨论了百分比过滤条件;这些百分比不是 K 线数量。

Backstep 能阻止所有重绘吗?

不能。在此计算中,它限制到相反端点的 K 线距离。待确认端点仍可能移动。

什么是更高的高点与更高的低点?

它们分别指连续已确认高点之间,以及连续已确认低点之间的严格上升。上升结构示例要求两项比较均成立。

这些是最佳设置吗?

尚未确定最优设置或交易表现。示例描述所选规则在历史数据上的情况,并不预测价格变动。

杠杆产品可能迅速造成亏损;中国大陆居民不得通过境外经纪商进行差价合约或外汇零售交易。

继续阅读

外汇经纪商监管机构排名:从 1 级监管到离岸监管

模拟交易:如何使用虚拟资金练习

交易术语表:外汇与CFD术语详解