用Python回测了两年数据,实盘却连亏三周,问题出在哪

较热56.2
登录发帖
XM 推荐平台

覆盖品种全,新手友好,支持多种入金方式

CySEC(塞浦路斯) / ASIC(澳洲) / IFSC(伯利兹) · 最低入金 $5
xuqiang718
xuqiang718 楼主 2026-9-16 20:22:07 浏览 502 回复 3 阅读 1 分钟
新汇友(注册会员) 等级 Lv.1 主题 1 帖数 6 积分 20 汇币 20
1楼
用Python回测了两年数据,实盘却连亏三周,问题出在哪
最近在MT5上跑一个自己用Python写的信号桥接方案,回测2022到2024的欧美H1数据,夏普1.8,最大回撤不到6%,胜率63%。结果实盘挂上VPS跑了三周,连续亏损11单,回撤直接干到14%。心态有点绷不住了。
环境是Win11 + Python 3.11 + MetaTrader5模块,信号通过socket转发到MT5的EA执行。回测用的是历史tick数据,点差按1.2算的,滑点没加。实盘用的是IC Markets的Raw账户,点差经常跳到1.8非农那会儿直接3.5。
我试过把回测点差改成1.5重新跑,曲线还是很好看。也检查了VPS延迟,从信号生成到MT5下单平均420ms,感觉不算离谱。但实盘就是不对劲,有几单明明该在1.0840进,实际成交在1.0846,滑点吃了6个点,止损被打掉后价格又回去了。
现在怀疑几个方向:
  • 回测没模拟真实滑点和点差波动

  • socket桥接在行情剧烈时丢包或乱序

  • MT5的订单执行模式和回测假设不一致

有没有遇到过类似情况的朋友?你们是怎么校准回测和实盘偏差的,尤其是滑点这块怎么处理?

补充一句,我后来发现那几单进场时正好卡在数据公布前后,流动性差得离谱,回测里压根没模拟这种瞬间的点差暴跳。现在打算把滑点按时间段分段加上再跑一遍看看。
0 回复 众裁0 复制
#1
半夏微凉
半夏微凉 #2· 2026-9-18 09:10:08
2楼
回测点差1.2固定,实盘非农跳3.5,这偏差太真实了。我自己也跑欧美的,滑点按小时分段加会好很多。
赞 回复 众裁0 复制
2026-9-18 09:10:08 #2
外汇讲师
外汇讲师 #3· 2026-9-18 11:04:04
3楼
你那句“止损被打掉后价格又回去了”我太有共鸣了,我自己也跑欧美H1,用MT5加Python桥接,后来发现是420ms延迟在数据市里放大了滑点,建议把成交价和信号价做逐单比对,别只改点差。
赞 回复 众裁0 复制
2026-9-18 11:04:04 #3
微凉
微凉 #4· 2026-9-19 09:20:11
4楼
你补充的“数据公布前后点差暴跳”才是关键,我去年跑欧美H1也这样,回测固定1.2,实盘非农滑点加跳点吃掉8个点。不过我觉得光按时间段分段加滑点还不够,得把420ms延迟也折算成跳价再回测才准。
赞 回复 众裁0 复制
2026-9-19 09:20:11 #4
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 交易五年才明白:基本面分析救不了手痒的人 下一帖 → 美元指数与黄金同涨的三个月,我重新理解了相关性交易的陷阱