有朋友最近问我,说他用MT5跑EA回测的时候,数据总是对不上实盘,问我有没有遇到过类似情况。我这两天自己也在折腾这个,确实有点想不通,发出来大家帮我看看。
我用的策略其实不复杂,就是双均线交叉加ATR过滤,主要做欧美和镑美。回测用的都是MT5自带的数据,质量选的“90%以上”,周期从2020年1月到今年6月。跑出来的结果看着挺漂亮,年化大概18%,最大回撤也就7.8%。但一挂到模拟盘上,连续三天都是亏损,而且入场点位明显偏了,感觉像是滑点被放大了十倍似的。
我一开始以为是VPS网络延迟的问题,因为我是放在欧洲服务器上跑的,国内连过去ping值有点高。但后来换了亚洲节点,情况还是一样。接着我检查了EA里的订单执行模式,用的是市价单,应该没问题才对。最后我怀疑是回测时用的点差模型太理想了,MT5默认好像是固定点差,但实盘欧美有时候点差会突然拉大到2.5个点,这会不会是主要原因?
还有个细节,回测日志里偶尔会出现 “order rejected” 的提示,但次数很少,我一开始没在意。现在想想,是不是因为回测时没有模拟真实的流动性深度,导致某些极端行情下单失败?我在想是不是要换用tick数据重新跑一遍,或者用第三方数据源校准一下?
有懂这块的朋友吗?你们回测和实盘偏差大的时候,一般先从哪方面排查?是数据精度问题,还是订单执行逻辑的问题?我现在有点急,策略逻辑本身我确认过没问题,就怕方向搞错了白折腾。
我用的策略其实不复杂,就是双均线交叉加ATR过滤,主要做欧美和镑美。回测用的都是MT5自带的数据,质量选的“90%以上”,周期从2020年1月到今年6月。跑出来的结果看着挺漂亮,年化大概18%,最大回撤也就7.8%。但一挂到模拟盘上,连续三天都是亏损,而且入场点位明显偏了,感觉像是滑点被放大了十倍似的。
我一开始以为是VPS网络延迟的问题,因为我是放在欧洲服务器上跑的,国内连过去ping值有点高。但后来换了亚洲节点,情况还是一样。接着我检查了EA里的订单执行模式,用的是市价单,应该没问题才对。最后我怀疑是回测时用的点差模型太理想了,MT5默认好像是固定点差,但实盘欧美有时候点差会突然拉大到2.5个点,这会不会是主要原因?
还有个细节,回测日志里偶尔会出现 “order rejected” 的提示,但次数很少,我一开始没在意。现在想想,是不是因为回测时没有模拟真实的流动性深度,导致某些极端行情下单失败?我在想是不是要换用tick数据重新跑一遍,或者用第三方数据源校准一下?
有懂这块的朋友吗?你们回测和实盘偏差大的时候,一般先从哪方面排查?是数据精度问题,还是订单执行逻辑的问题?我现在有点急,策略逻辑本身我确认过没问题,就怕方向搞错了白折腾。
