请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
指标

CME Gap Tracker for Gold and Bitcoin: Open Gaps, Fill Rate and a Fade-Trade Test - MetaTrader 5脚本

Ali Akbar
Ali Akbar
  • MQL5 Developer & Algorithmic Trading Specialist 在  Freelance
  • 巴基斯坦
  • 1713
Hi, I'm Ali. 24 years old, trading for around 5 years, and developing MQL5/MQL4 tools. I mainly work on automating manual strategies, fixing broken EA logic, and building clean indicators. I care more about clean architecture and proper risk management than over-complicated code. Always down to talk
| Chinese English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
显示:
31
等级:
(1)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

CME黄金和比特币缺口追踪器:开盘缺口、填补率及反向交易测试

该工具可在黄金及24/7比特币图表上识别周末CME跳空缺口,将每个未填补的缺口保留在图表上直至价格回补,并展示缺口填补的频率、速度、价格最初的运行幅度,以及若进行反向交易可能获得的收益。采用不重绘机制,并为专家顾问(EA)预留缓冲区。

设计理念

“CME缺口总会回补”这一说法在各个比特币聊天群以及许多黄金频道中随处可见。CME期货于周五芝加哥时间16:00暂停交易,并于周日17:00恢复交易。 在此期间市场无论如何波动,都会在期货图表上形成缺口,而普遍认为价格最终会回调填补该缺口。

在相信这一点之前,我想要两个答案:缺口实际上被填补的频率有多高?如果确实被填补,你能否通过顺势交易获利,还是价格会先朝相反方向运行并导致你被止损?这个指标能在你的图表上直接解答这两个问题。

功能说明

  • 将CME周五收盘价和周日开盘价转换为您的经纪商服务器时间,同时考虑芝加哥的美国夏令时规则以及您服务器时钟的规则。
  • 提取您图表在上述两个时间点的价格。两者之差即为缺口。小于 InpMinGapPct(默认值为 0.30%)的缺口将被忽略。
  • 将每个跳空以方框形式绘制,并标注其大小。未填补的跳空将保留在图表上并向右延伸,直到有已收盘的K线回填至周五收盘价。此时方框变为灰色,标签显示填补所耗费的小时数。
  • 在 CME 开盘价所在的K线处添加箭头:跳空下跌时向上,跳空上涨时向下,箭头方向与缺口填补方向一致。
  • 显示过去 InpWeeksBack 周(默认 104 周)的评分卡面板。

在整个周末均保持交易状态的比特币图表上,周五最后一根K线与周一第一根K线之间没有可见的缺口,因此普通的周末缺口工具无法检测到任何缺口。只有当观察CME两个时间点的价格时,CME缺口才会显现,而这正是该指标的功能。 在黄金市场中,现货市场周末同样休市,因此 CME 缺口与经纪商的周末缺口几乎是同一回事。

需要明确的一点是:该指标使用的是其运行所在图表的价格,而非期货价格。在现货或差价合约(CFD)图表上,您看到的是CME周末期间的现货价格变动。而真实期货图表上的缺口可能会略有不同,因为期货交易通常相对于现货存在溢价或折价。

面板显示的内容

  • 缺口的数量(按上涨和下跌分类),以及有多少个周末的缺口幅度低于最小阈值。
  • 已填补的缺口数量,以及其中在24小时内和7天内填补的比例。
  • 填补所需时间的中位数,以及填补速度最慢的10%缺口所需的时间。
  • 填补前的价格波动幅度:价格在回调至填补水平前偏离该水平的距离,以缺口大小的倍数表示。例如,对于1%的缺口,2.0倍的波动幅度意味着价格首先向相反方向又波动了2%。
  • 反向交易测试:在CME开盘时建仓,目标价位设为周五收盘价附近;止损位设为缺口大小的InpStopGapMult倍(反向方向);若未触及任一目标价位,则在InpMaxHoldDays天后平仓。建仓K线的价差计入成本。当止损位和目标价位均位于同一K线内时,则计入止损。
  • 在计分窗口内未填补缺口的数量,以及当前价格上方和下方最近的未填补成交价(这两项会检查加载历史数据中的每个缺口)。

在黄金市场中的发现

XAUUSD H1,MetaQuotes-Demo数据,除特别说明外均采用默认参数。两个窗口在2025年12月底有几天重叠。

2026年,距9月18日还有38周 2026年,距9月18日还有38周 2025年,截至12月31日的52周 2025年,截至12月31日的52周
最小间隔 0.30% 0.10% 0.30% 0.10%
价差(上涨/下跌) 24(10/14) 33(13/20) 6(2/4) 19(9/10)
已填补 23 (96%) 32 (97%) 5 (83%) 18 (95%)
24小时内完成 58% 67% 50% 68%
7天内完成 83% 85% 50% 74%
职位填补的中位时间 7 小时 3 小时 3 小时 3 小时
填充前加热时间中位数 2.18倍间隙 2.31倍间隙 2.16倍间隙 1.70倍缺口
反向交易,止损设在1倍缺口处 24 33 6 19
反向交易胜率 29.2% 27.3% 16.7% 26.3%
反向交易盈利系数 0.41 0.37 0.20 0.35
反向交易总收益 -10.1R -15.1R -4.0R -9.1R

因此,这句俗语在黄金市场中基本成立:83%至97%的跳空缺口最终被填补。但交易策略却在此处失效。在那些被填补的跳空缺口中,中位数缺口最初往往会朝相反方向运行约两个缺口幅度的距离,因此,大多数止损位设为一个缺口幅度的逆势交易都以亏损告终。

我尝试过设置更宽的止损,最低为0.30%。止损幅度越大,获胜概率越高,但每次亏损也更大,且这两年的总收益仍为负值:

止损 2026年胜率 2026年总收益 2026年盈亏比 2025年胜率 2025年总数 2025年PF
1倍差距 29.2% -10.1R 0.41 16.7% -4.0R 0.20
2倍间隙 45.8% -7.0R 0.44 33.3% -3.0R 0.25
3倍间隙 66.7% -2.0R 0.72 50.0% -2.0R 0.33

2025年仅有6个0.30%或以上的缺口,因此请将该列视为小样本。我从中得出的结论很简单:对于黄金而言,缺口是价格可能触及的理想位置,但在开盘时以固定止损位反向交易该缺口,在这两年中均未获利。

有些缺口很长时间都无法填补。截至2026年9月18日,2025年形成的某个黄金缺口仍未填补,其填补价位为3201.00,远低于当前价格。

图1. XAUUSD 1小时图,2026年1月下旬:一个+0.43%的缺口在106小时内填补,一个-2.47%的缺口在32小时内填补

图2. 表格中四次模拟运行的评分卡面板

关于比特币

我无法在比特币上进行测试。我使用的测试经纪商 MetaQuotes-Demo 没有 24/7 交易的 BTCUSD 合约,只有在纳斯达克交易时段内交易的比特币 ETF。针对 24/7 图表的代码路径与黄金的运行逻辑相同:即周五收盘价和周日开盘价。 在将该方法应用于BTC之前,请先对照CME期货图表核对前几个缺口,并为您的经纪商设置服务器偏移量参数。

输入参数

输入 默认值 功能说明
InpGMTWinter 2 冬季服务器与格林尼治标准时间的偏移量(小时)
InpGMTSummer 3 夏季服务器与格林尼治标准时间的时差(小时)
InpServerDST 欧洲 服务器时钟的夏令时规则(固定、欧洲或美国)
InpMinGapPct 0.30 最小价差,占价格的百分比
InpWeeksBack 104 记分卡中包含的历史周数
平局周数 26 已填补缺口的周数(未填补的缺口始终会被绘制)
InpStopGapMult 1.0 渐隐测试:在缺口的倍数处停止
InpMaxHoldDays 5 回撤测试:经过此天数后平仓
InpShowPanel true 显示记分卡面板
InpPanelCorner 左上角 面板角
InpOpenGapColor 浅橙色 未填充间隙的颜色
InpFilledGapColor 盖恩斯伯勒 已填充缺口的颜色
InpAlertNewGap true 当出现新缺口时发出警报
InpAlertFill true 当未填补的缺口被填补时发出警报
InpAlertPush false 同时发送推送通知

默认设置(冬季为GMT+2,夏季为GMT+3,遵循欧洲规则)与MetaQuotes-Demo以及许多其他MetaTrader经纪商一致。如果您的经纪商服务器全年运行在UTC时区,请将两个偏移量均设为0,并将规则设为“固定”。请使用H1或更低的时间周期。 在H4及以上时间周期上,CME时间会落在单根K线内,价格数据会不够精确。

在专家顾问中使用

缺口数据会写入CME开盘的K线中,且在该K线开盘的瞬间即被写入,因此专家顾问(EA)在偏移量为0时即可读取该数据。该指标仅使用周五收盘价和该K线的开盘价,因此此后数据不会再发生变化。 我通过一个测试EA验证了这一点:该EA会记录出现的每个跳空,并在运行结束时将列表与指标的缓冲区进行比对:2026年黄金市场的24个跳空中有24个完全匹配。

缓冲区 内容
0 跳空下跌(顺势买入),值为入场价格,否则为EMPTY_VALUE
1 跳空高开(逆势卖出),格式同上
2 跳空K线上的成交价(周五收盘价)
3 在跳空K线设置反向测试止损
4、5 每个收盘K线上方和下方最近的开盘成交价
6 至 9 最后一根收盘K线的评分卡:已平仓的逆势交易、盈利交易、总风险(R)、亏损风险之和
int      handle;
datetime lastBar = 0;

int OnInit()
  {
   handle = iCustom(_Symbol, PERIOD_H1, "CMEGapTracker");
   return(handle == INVALID_HANDLE ? INIT_FAILED : INIT_SUCCEEDED);
  }

void OnTick()
  {
   //--- 一旦该K线开盘,CME开盘K线上就会显示一个跳空
   datetime bar = iTime(_Symbol, PERIOD_H1, 0);
   if(bar == lastBar)
      return;
   lastBar = bar;

   double up[1], down[1], target[1], stop[1];
   if(CopyBuffer(handle, 1, 0, 1, up) < 1 || CopyBuffer(handle, 0, 0, 1, down) < 1 ||
      CopyBuffer(handle, 2, 0, 1, target) < 1 || CopyBuffer(handle, 3, 0, 1, stop) < 1)
      return;

   if(up[0] != EMPTY_VALUE)
      Print("Gap up, fill level ", target[0], ", fade stop ", stop[0]);
   if(down[0] != EMPTY_VALUE)
      Print("Gap down, fill level ", target[0], ", fade stop ", stop[0]);
  }

缓冲区4和5对于另一类EA非常有用,这类EA会将开盘缺口作为交易目标,但其建仓原因可能另有他因。该指标特意未设置输入组,因为MQL5会将每个“输入组”视为iCustom()的参数,且其后的每个值都会相应向后偏移一位。

限制

该指标基于K线数据运行,因此无法识别单根K线内部事件的顺序。它使用您图表在CME时间点的价格,而非期货价格。导致CME交易周缩短的美国节假日不会被单独处理。 反向交易测试中,仅计入入场K线的点差,不计佣金和滑点,而周末开盘时正是滑点最严重的时候。上述所有数据均基于某家经纪商的过往跳空数据。

阿里·拉杰普特


由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/77686

Gold Breakout EA for XAUUSD H4 +90 Percent in a 2020 to 2026 Backtest Gold Breakout EA for XAUUSD H4 +90 Percent in a 2020 to 2026 Backtest

一款适用于黄金的“乌龟”式突破型EA。当H4K线在上升趋势中收盘价高于20根K线的高点时买入,止损设为2个ATR,目标价设为2R。 在XAUUSD上进行了2020年1月至2026年9月的回测:以10,000为本金、1%风险率,盈利9,029.72;盈利系数1.77;最大回撤11.38%;7年中6年盈利。

NeonDesk - Neon Manual Trading Panel with Multi-Timeframe Bias NeonDesk - Neon Manual Trading Panel with Multi-Timeframe Bias

可拖拽至图表上的手动交易面板,具备多时间周期偏好、ATR止损/止盈提示、追踪止损以及一键“买入/卖出/全部平仓”功能。

RSI超买反转 - 欧元兑美元 RSI超买反转 - 欧元兑美元

一款基于MetaTrader 5策略测试器的开源欧元/美元专家顾问,基于RSI耗尽信号、基于ATR的平仓策略以及经波动率调整的点差过滤机制。

EMA Cross Demo EA with ATR Stops EMA Cross Demo EA with ATR Stops

一个小型演示专家顾问:基于快速/慢速EMA交叉的入场策略(仅基于已收盘K线进行评估,无重绘现象),基于ATR的止损和止盈,点差过滤器,以及适用于对冲账户和净额结算账户的仓位管理。包含用于一致性测试的Python参考实现。 这是一个可交付的示例,并非交易建议——随附的权益曲线来自合成数据,仅用于展示方法,而非反映交易优势。