用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个点,止损被打掉后价格又回去了。
现在怀疑几个方向:
有没有遇到过类似情况的朋友?你们是怎么校准回测和实盘偏差的,尤其是滑点这块怎么处理?
补充一句,我后来发现那几单进场时正好卡在数据公布前后,流动性差得离谱,回测里压根没模拟这种瞬间的点差暴跳。现在打算把滑点按时间段分段加上再跑一遍看看。
最近在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的订单执行模式和回测假设不一致
有没有遇到过类似情况的朋友?你们是怎么校准回测和实盘偏差的,尤其是滑点这块怎么处理?
补充一句,我后来发现那几单进场时正好卡在数据公布前后,流动性差得离谱,回测里压根没模拟这种瞬间的点差暴跳。现在打算把滑点按时间段分段加上再跑一遍看看。
