- Published on
ZigzagLite
- Authors

- Name
- CoresightQuant
NOTE
本文为公开交易策略的技战术复盘,聚焦方法逻辑、交易场景与风险边界。
策略解读
ZigzagLite 是一个被设计为“极简工具”的库。在技术分析中,Zigzag 是一种非常经典的价格过滤指标,它通过设定一个最小波动幅度,忽略市场中所有小于该幅度的波动,只保留那些足够显著的高点和低点。这样,我们就能在图表上看到一条折线,这条折线连接了所有关键转折点,从而帮助交易者清晰地观察价格结构。
原作者将完整的 Zigzag 库抽丝剥茧,去掉所有非必要的指标和模块划分,只保留了最核心的两个方法:一个用于获取枢轴点的价格,另一个用于获取枢轴点所在的 K 线编号。为什么要这样做?因为在真实的量化策略开发中,很多交易者并不需要复杂的 Zigzag 辅助指标,他们只是想在策略内部用 Zigzag 来定义“当前波段的高点”或“当前波段的低点”。ZigzagLite 正是为了满足这种精简需求而生。
更重要的是,这个库的标签是“均值回归”。均值回归是一种历史悠久的交易理念,它认为价格在短期内会偏离其内在价值或统计均值,但长期来看价格会回到均值附近。用 Zigzag 来识别均值回归,关键在于:当价格从某个枢轴点启动一波趋势后,一旦越过另一个枢轴点,往往会被视为“过度延伸”,此时价格回归到近期枢轴区域的可能性就会增加。ZigzagLite 提供的枢轴价格和对应 bar 数据,恰好可以用于计算这种偏离程度、设置回归目标位,以及定义止损参考。
从实战角度来说,该库表面上只是提供数据提取功能,但实际上为均值回归策略提供了“骨架”。交易者可以基于它,再结合移动平均、相对强弱指标或布林带等其他工具,构建出完整的入场和出场逻辑。
名词解释
- Zigzag 指标:一种连接价格摆动高点和低点的折线指标。它通过设定阈值(固定点数、百分比或 ATR 值)过滤掉微小波动,只保留超过阈值的转折点,从而帮助交易者识别趋势中的关键支撑和阻力位置。
- 枢轴点(Pivot):在一段趋势中,价格反转的那个关键价格位置。向上反转的枢轴称为摆动低点,向下反转的枢轴称为摆动高点。在 Zigzag 系统中,每个显著转折点都是一个枢轴。
- 均值回归(Mean Reversion):一种认为价格在偏离均值后终将回归的统计性交易理念。交易者通常会在价格远离历史平均或某条参考线时,逆势入场,期待价格回到常理区间。
- 摆动高低点(Swing High / Swing Low):摆动高点是指在一定周期内,其左右两侧的若干根 K 线价格均低于该点的价格位置;摆动低点则相反。它们构成 Zigzag 线的基本节点。
- 阈值(Threshold):Zigzag 指标中用于过滤无关波动的门槛值。只有价格从上一个枢轴点反向波动超过该阈值时,系统才会确认新的枢轴点。阈值可以是绝对值、百分比或基于 ATR 的动态值。
- 数组(Array):一组同类型数据的集合。在该库中,枢轴对象数组、价格数组和 bar 数组都是数组结构,方便程序循环遍历和处理。
策略思路讲解
基于 ZigzagLite 构建均值回归策略,本质上需要回答三个问题:如何识别“偏离”、如何确认“回归信号”、以及如何控制风险。
第一步:确定枢轴结构。 使用 Zigzag 识别出当前已完成的所有摆动高点和摆动低点。ZigzagLite 中的 getPrices 可以直接返回这些枢轴的价格数组,getBars 则返回对应的位置数组。这两组数据构成了我们判断价格结构的基础。比如,最近的下跌波段低点可能是一个枢轴,而上涨波段的高点可能是另一个枢轴。
第二步:测量当前价格与枢轴的偏离程度。 均值回归策略的核心是找到“超买”或“超卖”状态。我们可以计算当前价格距离最近一个枢轴点的幅度,并将该幅度与历史波动进行比较。例如,如果价格从最近的摆动低点快速拉升,而拉升的幅度已经超过前一个波动幅度的某个百分比(比如 80%),那么此时价格可能处于短期超买状态,均值回归的概率较大。
第三步:等待反向信号。 仅凭 Zigzag 本身无法产生入场信号,因为它只是价格结构的描述工具。我们可以结合其他指标:比如当价格到达枢轴极值区域后,出现看涨或看跌的 K 线形态;或者相对强弱指标进入超买/超卖区;或者价格跌破上升趋势线。这些信号都可以作为“价格即将回归”的确认。
第四步:设定入场、止损与止盈。 如果做均值回归的空头交易,入场点通常选择在价格接近前一个摆动高点附近,且出现反转信号时。止损可以设置在该摆动高点上方的一定距离处,这是最合理的风险防线。止盈目标则可以参考前一个摆动低点,或者使用固定盈亏比,如 1:1.5 或 1:2。ZigzagLite 提供的枢轴价格正好用来计算这些关键位。
第五步:回测与参数优化。 阈值的选取至关重要。如果阈值太小,Zigzag 会生成许多不必要的枢轴,导致交易频繁且被止损打脸;如果阈值太大,枢轴数量减少,信号又会变得非常稀缺。因此,实际应用中需要根据品种的波动率调整阈值,甚至使用动态阈值。
值得注意的是,ZigzagLite 本身不包含任何指标或交易逻辑,它提供给开发者的是“零件”。但正是这种轻量设计,避免了传统 Zigzag 库中冗余代码对运行速度和策略逻辑的干扰,让开发者可以完全掌控后续的交易规则。
优点
- 轻量高效:该库只保留了两大核心方法,没有多余指标和子模块,极大减少了计算遍历,提升了策略回测和实盘运行时的效率。
- 数据提取清晰:
getPrices和getBars的职责单一,返回的数据结构明确,开发者可以轻松将枢轴价格和 K 线编号映射到自己的策略中。 - 高度可定制:作为基础库,它不绑定任何交易信号,因此可以自由组合多种指标和过滤条件,特别适合量化交易者进行个性化开发。
- 与均值回归理念高度契合:枢轴点的天然支撑阻力属性,为均值回归交易提供了准确的参考坐标,有助于制定合理的入场和止盈规则。
- 降低代码耦合度:因为它没有“子组件划分”,调用时不会引入无关变量,逻辑更直接,也更容易排查潜在的问题。
缺点
- 滞后性:Zigzag 需要等价格形成一定幅度的反向波动后,才能确认上一个枢轴点。这意味着任何基于 Zigzag 的策略都天然带有滞后性,无法在反转的第一时间入场。
- 历史重绘:当新的价格数据出现时,Zigzag 可能会重新修正之前的枢轴位置,导致历史信号发生改变。这种“未来函数”特征在回测中需要特别警惕,否则可能得到过分乐观的结果。
- 阈值敏感:阈值设定对枢轴数量影响巨大。过于灵敏会让市场噪音大量混入,过于迟钝又会错过许多重要转折点,且不同品种、不同行情阶段需要不同的阈值。
- 缺乏完整交易信号:ZigzagLite 只是工具库,没有给出具体的买卖方向或仓位管理逻辑。交易者必须自行构建完整的策略,这增加了初学者的使用门槛。
- 无法独立应对震荡行情:在横盘市场中,Zigzag 可能频繁产生虚假枢轴,导致均值回归策略反复试错,产生连续亏损。
起源年份考证
针对策略类型进行考证,而不是针对 ZigzagLite 这个库本身。这里给出该类方法的行业公认发展时间线:
- 20 世纪 20 年代至 30 年代:道氏理论中的摆动点概念被广泛讨论。查尔斯·道及其后继者将价格趋势分为主要趋势、次要趋势和短期波动,其中次要趋势中的高低点实际上就是枢纽点的雏形。
- 20 世纪 70 年代至 80 年代:随着计算机图形技术进入证券分析领域,Zigzag 指标开始在技术分析软件中被正式实现。它的出现,让交易者能够通过自动化的方式,从历史价格中快速提取出符合阈值条件的摆动点。
- 20 世纪 80 年代至 90 年代:均值回归思想在量化交易领域得到系统化发展,尤其在统计套利和配对交易中广泛应用。此时,将 Zigzag 与均值回归结合的策略思路逐步形成。
- 21 世纪初至今:随着交易社区和个人量化平台的流行,许多开发者为了让代码复用效率更高,开始编写轻量级工具库。ZigzagLite 正是这种社区二次开发趋势的产物。这类轻量级库的诞生年份通常无法精确考证,因为它可能是作者在反复迭代中提炼出来的通用模块。
需要注意的是,Zigzag 指标本身的具体发明者目前没有公认且确切的考证资料,因此我们只能将其归为“技术分析领域长期演化”的成果。同理,ZigzagLite 这类库的确切创建时间也难以查证,我们只能推测它出现在社区平台高度开放之后。
改进建议
- 使用动态阈值:将固定的百分比阈值改为基于 ATR(平均真实波幅)的动态阈值。对于波动率较大的品种,使用较大的阈值;对于低波动品种,则使用较小的阈值。这样可以大幅减少震荡行情中的假枢轴。
- 增加趋势过滤:在大周期趋势明确的情况下,只做与趋势方向一致的均值回归。例如,日线级别处于上升趋势时,仅当价格回落到近期枢轴低点附近再买入,而不是盲目做逆势空单。
- 结合多时间框架确认:使用两套 Zigzag 阈值,比如在日线上识别主要枢轴,在小时线上识别次级枢轴。只有当两个周期的枢轴指向同一方向时,才发出信号,以提升胜率。
- 引入成交量或动量指标:在价格到达枢轴区域时,如果成交量萎缩或相对强弱指标出现背离,说明回归概率更高。反之,如果放量突破枢轴,则放弃该信号,防止假突破。
- 优化出场策略:除了固定止盈外,可以考虑移动止损。当价格从入场点向有利方向运行一定幅度后,将止损移至盈亏平衡点;当价格接近预定目标时,分批平仓。
- 定期重新优化阈值参数:市场存在周期性,长期不变的参数会逐渐失效。建议每隔一段时间基于滚动窗口重新评估最佳阈值,保证策略适应性。
- 严格处理历史重绘:在回测中,要允许策略在下一根 K 线开盘时,使用已经确认的枢轴数据,而不是用当根 K 线收盘后才知道的临时值,从而避免未来函数。
总结
ZigzagLite 是一个极简但非常实用的工具库,它专注于提供 Zigzag 枢轴的价格和位置信息,为均值回归策略的开发者节省了大量底层代码工作。在理解和应用这个库时,我们应该时刻记住 Zigzag 本身的优势与局限:它能够清晰勾勒市场结构,但也由于滞后和重绘问题,不能盲目依赖。
真正的策略价值在于交易者如何利用这些枢轴来定义入场、止损和止盈,以及如何通过动态参数和多重过滤去克服 Zigzag 的固有缺陷。均值回归并非简单的“跌多了就买,涨多了就卖”,而是需要在统计意义上确认价格偏离的程度,并且用严格的风险控制来保护资本。ZigzagLite 可以作为这一过程中的忠实伙伴,但最终决策的权重,依然落在交易者对市场的理解和对风险的管理上。
对于普通投资者来说,不需要过度关注库的底层实现,而是应当关注它背后的思想:用客观的枢轴结构来锚定交易逻辑,让每一次买卖都有依据。如果你正在构建一套简单的均值回归系统,那么 ZigzagLite 这样的轻量工具,绝对值得一试。但务必记住,它只是“探照灯”,而不是“方向盘”。