谐波形态:斐波那契数列中的“神秘密码”
作者:FXEA Prime | 阅读时间:约 14 分钟
在混乱的K线波动中,是否隐藏着某种几何秩序?答案是肯定的。本文将带你探索高阶交易技术——谐波形态(Harmonic Patterns)。你将学会识别加特利(Gartley)、蝙蝠(Bat)和蝴蝶(Butterfly)形态,利用斐波那契比率(0.618)精准定位反转区(PRZ),并从量化视角掌握这类形态的 EA 识别算法。
一、引言:上帝的指纹
如果你仔细观察向日葵的种子排列、鹦鹉螺的壳、甚至是银河系的旋臂,你会发现它们都遵循一个神秘的数学比例——0.618(黄金分割率)。
金融市场是由人类行为组成的,而人类行为是大自然的一部分。因此,价格的波动也惊人地遵循着这一规律。谐波交易(Harmonic Trading)就是利用这些特定的斐波那契比率,在图表上画出特定的几何形态,从而预测价格的“反转点”。
趋势跟随是赚“惯性”的钱,而谐波交易是赚“回归”的钱。
它的核心优势在于:极高的盈亏比(Risk/Reward)。我们通常在一个极窄的区域尝试反转,一旦成功,利润往往是止损的 5 倍以上。
二、基础结构:XABCD 五点模式
所有的谐波形态(除了简单的 AB=CD)都基于一个基础架构:X-A-B-C-D。
- X: 起点(Impulse leg 的开始)。
- A: 脉冲波的高点/低点。
- B: 第一轮回调点(关键识别点)。
- C: 第二轮顺势点。
- D: 最终反转点(入场点)。
我们交易的目标,永远是预测 D点 在哪里。而 D 点的位置,完全取决于 B 点回调了 XA 的多少比例。
三、四大金刚:加特利、蝙蝠、蝴蝶与螃蟹
虽然谐波形态有很多种,但你只需要记住最经典的四个。它们的区别主要在于 B点回撤位 和 D点延伸位 的不同。

图解:Gartley和Bat是内部回调模式,Butterfly和Crab是外部延伸模式。
📐 形态速查表(建议收藏):
- 加特利 (Gartley): 最经典的形态。
特征:B点回调 XA 的 0.618;D点回调 XA 的 0.786。 - 蝙蝠 (Bat): 回调更深。
特征:B点回调 XA 的 0.382-0.50;D点回调 XA 的 0.886。 - 蝴蝶 (Butterfly): 延伸形态(创新高/低)。
特征:B点回调 XA 的 0.786;D点延伸至 XA 的 1.27。 - 螃蟹 (Crab): 极端的延伸形态。
特征:B点回调 XA 的 0.382-0.618;D点延伸至 XA 的 1.618。
四、核心狙击点:PRZ(潜在反转区)
新手往往会在 D 点的精确数值挂单,然后被止损打掉。老手知道,D 点不是一个价格,而是一个区域。
这个区域被称为 PRZ (Potential Reversal Zone)。它是由以下三条线汇聚而成的:
- XA 的斐波那契回调/延伸位(如 0.786 或 0.886)。
- BC 的斐波那契延伸位(如 1.618 或 2.0)。
- AB = CD 的等距投射位。

图解:当三条斐波那契线汇聚在同一个狭窄区域时,反转概率最高。
操作心法: 当价格进入 PRZ 时,不要直接做单。等待一根 K 线信号(如 Pinbar 或 吞没)确认反转,再进场。
五、实战策略:如何交易这些“动物”?
谐波形态属于逆势交易(Counter-trend),所以风控必须极其严格。
1. 入场 (Entry)
价格触及 PRZ 区域,并出现 K 线反转信号。
2. 止损 (Stop Loss)
- Gartley / Bat: 止损设在 X 点下方(因为它们不应跌破起点)。
- Butterfly / Crab: 止损设在 1.414 或 2.0 延伸位下方(给予一定缓冲)。
3. 止盈 (Take Profit)
谐波的止盈目标非常明确:
- TP1: AD 波段的 0.382 回调位。
- TP2: AD 波段的 0.618 回调位(通常在这里平掉大部分仓位)。
六、量化视角:EA 如何用 ZigZag 识别形态
用肉眼看谐波很累,但用代码写谐波更难。核心难点在于“如何定义波段”。通常我们需要调用 ZigZag 指标来确定 X、A、B、C 四个顶点。
// 1. 获取 ZigZag 的最近5个顶点
double D = ZigZag(0); // 当前点
double C = ZigZag(1);
double B = ZigZag(2);
double A = ZigZag(3);
double X = ZigZag(4);
// 2. 计算各波段的斐波那契比率
double XB = MathAbs(X – A);
double AB_Retracement = MathAbs(A – B) / XB;
double XD_Retracement = MathAbs(X – D) / XB;
// 3. 判定 Gartley 形态逻辑
// B点需在 0.618 附近 (允许 5% 误差)
bool checkB = (AB_Retracement > 0.58 && AB_Retracement < 0.65);
// D点需在 0.786 附近
bool checkD = (XD_Retracement > 0.75 && XD_Retracement < 0.82);
if (checkB && checkD) {
DrawObject("Gartley Pattern Found");
// 结合 RSI 超买/超卖进行过滤
if (iRSI(...) < 30) OpenBuy();
}
👨💻 程序员笔记:
ZigZag 指标有“重绘”特性(Repainting)。在 D 点确认之前,ZigZag 的连线可能会变动。因此,实战 EA 必须加入“Pending Order(挂单)”逻辑,或者等待 D 点出现明确的反转分形(Fractal)后再进场,绝不能完全依赖 ZigZag 的当前值。
七、常见问题 (FAQ)
我们深耕 MQL4 程序开发,提供 定制化指标开发、EA 开发服务,可根据交易策略与习惯打造专属工具,降低操作成本,提升执行效率。





