Python回测与MT5实盘出现92-98%偏差的经历
目录
- 策略规格 — 亚洲区间 → 纽约时段突破
- Python Walk-Forward 结果 — 亮眼的数值
- 然而 —— MT5实盘14年回测(USDJPY_NY_BREAKOUT_EA.mq5 v2.0)的结果
- 为何偏差如此之大 —— 5点推论
- 1. 未考虑点差/滑点
- 2. 数据质量差异
- 3. 成交模型差异
- 4. ATR两段式止盈的实盘脆弱性
- 5. CASCADE 半复利在实盘中的负面影响
- 行业层面的教训
- 1. Python 回测/Walk-Forward **无法作为 MT5实盘的参考**
- 2. 「具备经济合理性的假设」同样需要实盘验证
- 3. 进一步强化了 CLAUDE.md「实盘验证绝对必须原则」的依据
- FXEA365 的判断
- 致 Python 回测使用者的行业建议
- 相关链接
Python回测与MT5实盘出现92-98%偏差的经历
我是 FXEA365 的运营者。
本文将完整公开 2026-05-29 对 NY Session Breakout 策略进行 Python Walk-Forward 与 MT5实盘14年回测对比验证后,确认 PF 出现 92-98% 偏差的全过程。
这是一份能在行业层面再次证明 「即使 Python 回测出现亮眼数字,也不代表在 MT5 实盘中同样有效」 的重要数据。
策略规格 — 亚洲区间 → 纽约时段突破
| 项目 | 设置 |
|---|---|
| 时间周期 | H1 |
| 亚洲区间 | 0-4h UTC(亚洲时段区间形成) |
| 交易时段 | 15-20h UTC(纽约时段内) |
| 入场 | 突破亚洲时段 High/Low |
| 出场 | SL = ATR × 0.5 / TP1 = ATR × 0.5(平仓50%)/ TP2 = ATR × 7.0 |
| 手数 | 风险 2%(CASCADE 半复利) |
理论上具备优势的策略:
- 纽约时段(UTC 15-20点 = 日本时间凌晨0-5点)是机构投资者活跃时段,流动性集中
- 亚洲区间是天然的参考值,其上下轨突破是方向性较强的信号
- 两段式止盈(TP1=ATR×0.5/TP2=ATR×7)既能防范假突破,又能捕捉趋势
Python Walk-Forward 结果 — 亮眼的数值
2026-05-27 至 28 日期间,使用 scripts/gen_h1_ny_walkforward.py 对 **9个货币对执行了 WF(Train 60% / Test 40%)**验证:
| Pair | train PF | test PF | test DD | test WR | 一致性 | OOS存活率 |
|---|---|---|---|---|---|---|
| EURUSD | 7.42 | 9.03 | 5.47% | 79.6% | 0.82 | 500/500 |
| GBPUSD | 11.78 | 13.00 | 31.85% | 84.2% | 0.91 | 500/500 |
| XAUUSD | 7.76 | 11.96 | 13.18% | 80.9% | 0.65 | (此前验证) |
| EURJPY | 9.41 | 7.93 | 7.46% | 79.2% | 0.84 | 500/500 |
| GBPJPY | 9.74 | 8.24 | 12.30% | 79.3% | 0.85 | 500/500 |
| USDJPY | 6.12 | 11.62 | 36.24% | 80.7% | 0.53 | (此前验证) |
| CADJPY | 7.59 | 5.76 | 32.81% | 75.9% | 0.76 | 499/500 |
| AUDJPY | 8.49 | 6.32 | 27.33% | 74.4% | 0.74 | 351/500 |
| NZDJPY | 9.22 | 6.51 | 15.05% | 70.6% | 0.71 | 500/500 |
9个货币对全部达到 PF≥5 × 胜率≥70% × OOS存活率500/500。
按照行业惯例,这样的结果理应对外宣称 「发现了堪称梦幻的通用优势!」「全货币对路线图扩充产品阵容!」 并直接在网站上公开。
然而 —— MT5实盘14年回测(USDJPY_NY_BREAKOUT_EA.mq5 v2.0)的结果
依照 CLAUDE.md「实盘验证绝对必须原则」,对 Python WF 中表现最强的4个货币对进行了 MT5实盘14年回测再验证:
| Pair | Python WF(test) | MT5实盘14年回测 | 偏差率 | 账户结果 |
|---|---|---|---|---|
| USDJPY | PF 11.62 / DD 36% | PF 0.77 / DD 99.72% | −93% | -$9,966(几乎全损) |
| EURUSD | PF 9.03 / DD 5.47% | PF 0.73 / DD 99.84% | −92% | -$9,984(几乎全损) |
| GBPUSD | PF 13.00 / DD 31.85% | PF 0.21 / DD 101.12% | −98% | -$10,112(账户爆仓) |
| EURJPY | PF 7.93 / DD 7.46% | PF 0.49 / DD 100.01% | −94% | -$10,001(账户爆仓) |
4个货币对全部失败,与 Python WF 的 PF 偏差达 92-98%。
为何偏差如此之大 —— 5点推论
1. 未考虑点差/滑点
Python 回测基于 close-to-close 计算。实盘中每笔成交都会受到 点差(0.5-2 pips)+ 滑点的影响而劣化。每笔交易 1-3 pips 的损耗不断累积。
2. 数据质量差异
Python 使用的是 Dukascopy M5 → H1 聚合数据。MT5实盘使用的是 经纪商 tick 数据(价格走势更为精细)。即便是同一根「H1 K线」,内部的价格波动也不相同。
3. 成交模型差异
Python 假设的是理想成交(始终以期望价格成交)。MT5实盘则受 成交量/点差约束,期望价格与实际成交价格存在差异。尤其在高波动时段(如纽约开盘后不久)差异更明显。
4. ATR两段式止盈的实盘脆弱性
理论上设计精妙,但 TP2=ATR×7 在实盘中难以达成。
- Python 回测:以「事后诸葛亮」的方式对历史数据计算最优 SL/TP
- 实盘:SL=ATR×0.5 频繁触发,趋势往往撑不到 TP2=ATR×7,止损接连不断
5. CASCADE 半复利在实盘中的负面影响
根据账户余额动态调整手数的设计,反而在亏损阶段加速了损失:
- 余额 $10K → 风险 2% → 手数 0.2
- 连亏后余额 $8K → 风险 2% → 手数 0.16(略减)
- 连亏后余额 $5K → 风险 2% → 手数 0.10(无法有效抑制损失)
理论上的「复利魔法」在实盘中反而起到了反作用。
行业层面的教训
1. Python 回测/Walk-Forward 无法作为 MT5实盘的参考
- 即便是「PF≥5 × WR≥70% × OOS存活率 500/500」,在实盘中也毫无意义
- WF 判定的「robust(稳健)」「OOS稳健」,评估的只是 Python 数据内部的稳健性,并不能代表实盘表现
2. 「具备经济合理性的假设」同样需要实盘验证
- 「机构投资者在纽约时段活跃」「亚洲区间上下轨突破是方向性信号」在 理论上是正确的
- 但 MT5实盘14年测试却全军覆没,说明理论与实盘之间存在巨大偏差
3. 进一步强化了 CLAUDE.md「实盘验证绝对必须原则」的依据
- 25个EA + NY Session 4个 = 累计29个策略的验证结果表明 Python 回测不可信,这一结论已完全确立
- 这也是支撑 FXEA365 品牌理念(「不追求亮眼数字,只发布经实盘验证的真实策略」)的行业级依据数据
FXEA365 的判断
NY Session 策略的9个货币对由于 MT5实盘验证全部失败,故不予在网站公开。
维持现有公开阵容:仅保留 EURJPY ASIA / GBPJPY ASIA / BLAZE GOLD / AUDCAD PEACE-CLONE 这4大主力策略。
合计年化 +35.5%(风险5%)虽然算不上亮眼,但却是 经14年实盘回测真实验证过的确凿数字。
致 Python 回测使用者的行业建议
我们并不否定 Python 回测的价值,但建议按以下方式区分使用场景:
| Python 回测的正确用途 | 推荐程度 |
|---|---|
| 策略构思的初期验证(判断该方向是否有潜力) | ✅ 推荐 |
| 参数范围的筛选(确定需要精细验证的区间) | ✅ 推荐 |
| WF稳健性确认(通过Train/Test分离检查过拟合) | ✅ 推荐 |
| 作为网站发布数值的依据 | ❌ 禁止(与实盘存在偏差) |
| 将「OOS存活率」用作销售卖点 | ❌ 禁止(无法代表实盘表现) |
| EA是否公开的判定依据 | ❌ 禁止(必须经过 MT5实盘验证) |
Python 回测的数值终究只是「初步筛选指标」。正式公开前必须经过 MT5实盘验证。
相关链接
- 主力EA(已完成实盘验证):
- ★1 EURJPY ASIA BREAKOUT(14年实盘PF=1.18)
- ★2 GBPJPY ASIA BREAKOUT(14年实盘PF=1.38)
- ★3 BLAZE GOLD v2.30(7年实盘PF=1.61)
- ★4 AUDCAD PEACE-CLONE(10年实盘PF=1.36)
- 相关博文:
FXEA365 —— 我们不追求华丽的公称数字,只免费公开经过 MT5实盘14年回测真实验证过的策略。
📧 涨价预告 + 免费5天邮件课程
所有EA目前均为首发价,并将随销量阶梯式上调。在每次涨价前收到通知,另有每日一封邮件:自动交易本质、正确解读回测、券商选择技巧。
※ 严格保护隐私。可随时取消订阅。