GridMaster EA · XAUUSDm 回测报告
本金 $60,000 · 品种 XAUUSDm (Exness MT5) · 周期 M30 · 数据 2018-03-06 → 2026-09-02 (99,345 根真实 K 线, 8.49 年) · 生成于 2026-09-02
方法学与近似(务必先读)
本回测用 Python 忠实复刻 GridMaster.mq5 的 OnTick 决策逻辑(RSI 反转信号 / 逆势网格加仓 / ATR 逐单止损 / 整体止盈·止损·回撤保护)。
数据来自 Exness MT5 终端本机历史库 M30.hc 中 100% 真实的 High / Low(8.49 年连续)。
因该私有格式仅存储 High/Low 为明文,Open/Close 为重建值(Open=前收、Close=(H+L)/2);点差=0、无滑点、无隔夜利息;爆仓定义为权益≤0。
上述近似使结果偏向乐观,真实账户表现只会更弱。
核心结果对比
| 配置 | 终值 / 收益 | 最大回撤 | 轮次 | 胜/胜率 | 负轮 | 均赢 | 均亏 | 最大单轮亏 | 爆仓 | 触顶网格 | 订单数 |
| 原版复刻 |
$60,292 +0.5% |
23.9% |
212 |
155 (73%) |
57 |
$209 |
$-563 |
$-800 |
0 |
0 |
658 |
| 保守 |
$57,139 -4.8% |
15.7% |
175 |
126 (72%) |
49 |
$146 |
$-433 |
$-227 |
0 |
0 |
450 |
| 稳健 |
$57,007 -5.0% |
16.2% |
175 |
126 (72%) |
49 |
$144 |
$-433 |
$-227 |
0 |
0 |
450 |
| 进取 |
$58,263 -2.9% |
16.9% |
175 |
126 (72%) |
49 |
$154 |
$-433 |
$-227 |
0 |
0 |
450 |
“触顶网格”= 单轮持仓达到 MaxOrders 上限的次数,反映网格承受的最大压力。
权益曲线(四套叠加,归一化)
8.5 年内四套曲线均围绕 $60,000 窄幅波动,无明显趋势性增长——即“没爆仓但也几乎没赚”。原版(红)因间距更窄($25)、倍数更高(1.5)轮次更频(212 次),终值略高于优化三套。
稳健版 · 逐轮盈亏分布
约 72% 轮次盈利(集中在 +$50~+$250),但少数亏损轮拖后腿(最长尾至 −$2,599)。均亏($433) > 均赢($145) 是净值微亏的根本原因。
关键发现
- 安全四套参数在 $60k 上全部 0 爆仓。因为 EA 手数固定(首单 0.01、上限 0.40)且不随本金缩放,相对 $6 万本金极小——8.5 年内没有任何一轮把网格加满(触顶网格=0),也就无从触发爆仓。
- 收益近乎持平到微亏:原版 +0.5%,优化三套 −2.9% ~ −5.0%。这与早前蒙特卡洛给出的“9–11% 年化”相差巨大——早前的乐观估计错了,因为它假设固定 $800 止盈、且未计入逐单 ATR 止损的流血。
- 真退出代码里
RetraceStart=100 / RetraceDrawdown=10 的回撤保护才是实际主退出:浮盈峰值≥$100 后回落 $10 即全平。这使绝大多数轮次在 ~$90–210 止盈,$800 整体止盈基本触不到。
- 失血点ATR 逐单止损是最大拖累。止损距 = 开仓价 ±(ATR×20~25) ≈ ±$100–250,比网格间距($45)宽得多;逆势抖动时单子常在网格回补前被止损,形成“72% 胜率却净亏”的格局(均亏 $433 > 均赢 $145)。
- 对比原版(无整体止损、间距$25、倍数1.5)反而略优,因为更密更陡的网格回补更快、轮次更多;优化三套的
OverallSl=15000 在本测试中从未触发(最大单轮亏仅 −$2,599),对结果无贡献。
结论与建议
- 对 $60,000 而言,这套 EA 是“低风险、低回报”的 grind:不会爆仓,但 8.5 年净收益接近 0(扣费后实际为负)。它并非此前设想的“可控回撤的 9–11% 策略”。
- 若想让 $60k 产生像样收益,必须放大手数(提高 InitialLot / MaxLot),但这会同步放大回撤与爆仓概率——本测试的固定手数已无法体现,需另做“手数缩放”情景。
- 若要止血:关闭 ATR 逐单止损(
InpUseAtrSl=false),让网格靠加仓自然回补,而非被单子止损打断;代价是偶发深网格回撤变大。
- 建议下一步(任选):① 在 $5,000 / $10,000 小本金重测,看真实爆仓/回撤分布;② 做手数缩放情景(把首单提到 0.05–0.10);③ 关闭 ATR 止损后重测收益变化。
说明:回测引擎 backtest.py 与逐轮数据 backtest_results.json 已同目录生成,可复跑或调参。