缺口理论(Gap Trading):开盘价的套利机会
作者:FXEA Prime | 阅读时间:约 12 分钟
周一开盘,黄金直接跳空高开 10 美金,你会怎么做?是立刻追多,还是反手做空博回调?缺口(Gap)是市场情绪最剧烈的释放,也是机构留下的最明显的“不平衡”。本文将深度解析四大缺口形态,教你分辨“回补型缺口”与“逃逸型缺口”,并提供 EA 自动捕捉开盘跳空的量化思路。
一、引言:真空中的利润
在 K 线图中,如果今天的最低价高于昨天的最高价,或者今天的最高价低于昨天的最低价,图表上就会出现一块空白区域。这就是缺口(Gap)。
缺口代表了“价格的断层”。它意味着在某段时间内(通常是周末或休市期间),发生了重大的基本面变化(如战争、加息、财报),导致没有任何交易在这一价格区间成交。
对于交易者来说,缺口要么是“必须填补的坑”(回补机会),要么是“火箭发射的推力”(突破机会)。分清这两者,是盈利的关键。
二、四大形态:普通、突破、逃逸、衰竭
不是所有的缺口都一样。根据缺口出现的位置,我们可以将其分为四类。交易它们的逻辑完全相反!

图解:A-普通缺口,B-突破缺口,C-逃逸缺口,D-衰竭缺口。
📐 缺口分类速查:
- 普通缺口 (Common Gap): 出现在震荡区间内。
策略:忽略它,或者做回补(Fade)。它通常很快被填补。 - 突破缺口 (Breakout Gap): 伴随着巨大的成交量,跳空突破了重要的阻力/支撑位。
策略:顺势追单! 千万别做空,这往往是大行情的起点。 - 逃逸缺口 (Runaway / Measuring Gap): 出现在趋势的中继阶段,代表趋势加速。
策略:加仓。这也是一种测量型缺口,预示着行情还没走完。 - 衰竭缺口 (Exhaustion Gap): 出现在趋势的末端,通常伴随着巨大的成交量但随后滞涨。
策略:准备反转做单。这是多头最后的疯狂。
三、机构视角:为什么缺口会“回补”?
华尔街有句谚语:“Gaps always get filled.”(缺口总会被填补)。虽然不绝对,但有其深刻的逻辑。
从机构订单流(Order Flow)的角度看,缺口代表了流动性的缺失(Liquidity Void)。在缺口区域,只有买单没有卖单(或反之)。
为了维持市场的公平价值(Fair Value),做市商(Market Makers)往往有动力将价格推回缺口区域,以便让那些在跳空期间没能成交的挂单重新成交。这就是“回补”的本质。
四、策略一:Fade the Gap(回补套利)
这是最经典的短线策略,特别适用于周一开盘的外汇/黄金市场。
执行步骤:
- 识别: 周一开盘,出现了一个明显的普通缺口(Common Gap)。
- 确认: 价格并没有快速延续跳空方向,而是开始停顿或出现反向 K 线(如 Pinbar)。
- 入场: 反向开仓,目标直指缺口的起点(上周五的收盘价)。
- 止损: 设在当天开盘后的最高点/最低点之外。
如果缺口是由于重磅突发新闻(如战争爆发)导致的,绝对不要做回补! 那是突破缺口,价格可能一去不回头。
五、策略二:Gap and Go(顺势爆发)
这种策略专门针对突破缺口,常见于股票财报发布或重大数据公布后。

图解:价格跳空高开,并在开盘后的几分钟内突破了开盘区的高点(Opening Range High)。
执行步骤:
- 识别: 跳空突破了关键阻力位,且伴随巨量。
- 等待: 不要开盘马上买。等待前 15 分钟或 30 分钟的震荡(Opening Range)。
- 入场: 当价格突破前 30 分钟的最高价时,顺势买入。
- 逻辑: 这说明市场消化了获利盘后,多头依然强势。
六、量化视角:EA 如何监测开盘跳空
在 EA 开发中,捕捉缺口非常简单。我们通常比较 Open[0](当前K线开盘价)和 Close[1](上一根K线收盘价)。
// 定义最小缺口点数 (例如 50点)
double GapThreshold = 50 * Point;
// 获取当前开盘价和上周五收盘价
double currentOpen = iOpen(Symbol(), PERIOD_D1, 0);
double lastClose = iClose(Symbol(), PERIOD_D1, 1);
// 计算缺口大小
double gapSize = currentOpen – lastClose;
// 1. 跳空高开 (Gap Up) -> 尝试做空回补
if (gapSize > GapThreshold) {
// 过滤器:RSI 超买才做空
if (iRSI(…) > 70) {
double tp = lastClose; // 止盈设在缺口起点
OpenSellOrder(…, tp);
}
}
// 2. 跳空低开 (Gap Down) -> 尝试做多回补
if (gapSize < -GapThreshold) {
// 过滤器:RSI 超卖才做多
if (iRSI(...) < 30) {
double tp = lastClose;
OpenBuyOrder(..., tp);
}
}
👨💻 程序员笔记:
在编写 Gap EA 时,一定要加入“时间过滤器”。比如只在周一开盘的前 4 小时内检测缺口。如果缺口在 4 小时内没有回补迹象,说明趋势极强,EA 应该停止逆势操作,甚至转为顺势策略。
七、常见问题 (FAQ)
我们深耕 MQL4 程序开发,提供 定制化指标开发、EA 开发服务,可根据交易策略与习惯打造专属工具,降低操作成本,提升执行效率。





