伦敦黄金突破EA
其设计理念
黄金具有一种司空见惯的行为模式:在亚洲交易时段,其波动范围往往收窄;一旦伦敦交易台开始运作,波动范围便会大幅扩大。 该EA并不预测这种波动——而是测量当日亚洲时段的波动区间,随后在区间上沿稍上方挂出买入止损 挂单,在区间下沿稍下方挂出卖出止损 挂单,因此无论市场实际向哪个方向突破,系统都会相应执行交易。 这两笔订单采用OCO(一单成交,另一单自动取消)机制:一旦其中一笔订单成交,EA会自动取消另一笔,因此您绝不会同时持有多空两头仓位。
与大多数EA相比,此处的交易品种和时间周期更为关键,因为整个策略的核心在于该交易品种必须具备这种交易时段压缩行为:本EA专为XAUUSD(黄金) 在M15图表 上编写并设计。 特别推荐使用M15周期,是因为用于锁定波动区间并开启交易窗口的小时边界检测,需要足够的分辨率才能清晰捕捉过渡时刻,而无需处理每一个价格 tick。
如何解读
- 亚洲交易区间—— 从InpAsianStartHour 到InpAsianEndHour(服务器时间)。该 EA 会监控该区间内的每一根K线,并在区间关闭的瞬间记录该交易时段的高点和低点。
- 区间过滤器—— 亚洲交易时段的波动 区间是与该交易品种自身的日ATR进行对比,而非基于固定的点数,因此该过滤器会根据该交易品种当前所处的任何价格水平和波动率状况自动校准,而无需在黄金(或任何交易品种)进入新的价格区间时每次都进行手动重新校准。 如果当日交易区间低于InpMinRangeATRFrac 或高于InpMaxRangeATRFrac(以日 ATR 为基准),EA 将当天不进行交易。区间过窄通常意味着该交易时段缺乏真正的突破机会;区间过宽则通常意味着该策略所依赖的价格压缩现象并未发生。
- 突破订单——在时间达到InpLondonStartHour 时下单,位于锁定区间外一个以 ATR 为基准的小幅缓冲区。止损和止盈点位基于下单时的 ATR 设定,而非区间宽度,因此无论当日波动区间宽窄如何,交易风险始终保持一致。
- 失效规则——若截至InpLondonEndHour 时两笔挂单均未触发,则全部取消。该策略仅在伦敦市场实际开盘期间寻求突破机会;若行情在数小时后才开始,则属于完全不同的交易场景。
外部变量(输入)
| 输入 | 默认值 | 用途 |
|---|---|---|
| InpAsianStartHour / InpAsianEndHour | 0 / 7 | 用于计算亚洲时段的时间窗口,以经纪商/服务器时间为准。 |
| InpDailyAtrPeriod | 14 | 日K线周期ATR的周期,仅用于调整波动范围过滤器的阈值——与下方止损所用的ATR无关。 |
| InpMinRangeATRFrac / InpMaxRangeATRFrac | 0.15 / 0.70 | 过滤掉亚洲时段波动幅度占日ATR比例过小(无实际压缩)或过大(压缩已失效)的交易日,该比例基于该交易品种自身的当前波动率而非固定的点数计算。 |
| InpLondonStartHour / InpLondonEndHour | 7 / 11 | 突破订单生效的时间窗口;若在结束时段仍未触发,订单将被取消。 |
| InpAtrPeriod | 14 | 用于入场缓冲区和止损距离的ATR周期。 |
| InpBreakoutBufferATR | 0.15 | 挂单位于价格区间外多远(以ATR为单位)——该距离足以避免因价格恰好位于区间边缘时的波动而触发。 |
| InpStopATRMult | 1.2 | 以ATR为单位的止损距离(相对于入场点)。该距离与波动区间宽度无关,因此每日风险保持一致。 |
| InpRewardMultiple | 1.8 | 止盈点位为止损距离(R)的倍数。 |
| InpRiskPercent | 1.0 | 每笔交易的风险占账户权益的百分比;仓位大小由该百分比和实际止损距离计算得出。 |
| InpMaxSpreadPoints | 350 | 若下单时点差超过此值,则跳过当日下单——黄金在开盘时段点差可能扩大。 |
| InpMagicNumber / InpDeviationPoints | 20260801 / 50 | 标准交易标识和滑点容忍度设置。 |
推荐用途
专为M15 时间周期的 XAUUSD 设计。虽然它可以在其他符号和时间周期上编译和运行,但其整个前提——亚洲时段收窄、伦敦时段扩大——是黄金特有的模式,因此不应期望在其他地方获得相同的结果。 在信任默认交易时段输入之前,请将您的经纪商服务器时间与伦敦的实际开盘时间进行核对;服务器时间偏移量因经纪商而异,并受双方夏令时变更的影响。
关于账户类型有一点需要如实说明:本程序是基于启用对冲功能的账户 编写的,在此情况下,EA自身的持仓状态是明确无误的。 在净额结算账户中,当突破订单成交时,如果同一交易品种上已存在其他头寸,MetaTrader 会将其与现有头寸进行抵消,而不是开立一个单独的头寸,这可能会影响 EA 自身的魔数追踪功能对实际持仓情况的准确反映。 如果您使用的是净额结算账户,请将此EA仅应用于当前没有其他交易活动的交易品种。

图1. 亚洲时段的区间锁定,随后在伦敦开盘时围绕该区间设置的OCO买入止损/卖出止损组合。根据代码库图像指南,以黑白两色呈现。
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/75586
EVT Crash Gauge
将极值理论(EVT)移植到MQL5中,用于评估市场中潜在的暴跌和剧烈波动。
RSI Histogram
这是一个名为“RSI 直方图”的 MetaTrader 5 MQL5 自定义指标。它会在单独的窗口中绘制标准的 RSI 线,同时还会根据动量变化,以颜色编码的形式显示基于相同 RSI 值的直方图:
Sessionvolatilityheatmap
以图表热力图的形式显示交易日每小时的平均价格区间,并在K线背后添加亚洲/伦敦/纽约交易时段的阴影——这样您就能清楚看到该交易品种何时真正出现波动,而不仅仅是凭空猜测。
离散
离散技术指标由价格和交易量的变化决定。