2026-8-11 15:42:20
582
8
1分钟
新汇友(注册会员) Lv.1 主题2
帖数6
积分610
汇币318
1楼
最近在折腾MT5的EA回测,发现个挺奇怪的现象,想请教下各位老哥。我写了个简单的均线突破策略,挂到EURUSD的M15上跑,回测结果和实盘模拟盘差距特别大,尤其是止损触发的频率,回测里一个月才几次,模拟盘一天就能给我扫好几次止损,心态有点崩。
我试过调整点差和滑点设置,把默认的10改成20,也把“每笔交易最大偏差”调大了一些,但感觉还是对不上。另外我怀疑是不是我的VPS时间同步有问题,因为模拟盘挂的是伦敦时区,我VPS在亚洲,偶尔会看到日志里时间戳跳变,会不会影响EA的bar收盘判断?
我目前用的是MT5 build 4000+,EA逻辑里用了[iBarShift]和[iClose]来取历史数据,没有用tick级数据。想问问大家,回测时“基于真实tick”和“基于1分钟OHLC”这两种模式,对止损触发频率的影响真的有那么大吗?还是说我的EA代码里有什么隐藏的bug?我看了半天代码也没找出毛病,有点怀疑人生了😅 希望有经验的前辈指点一下,谢谢了!
我之前用真实tick回测黄金EA也遇到类似情况,止损频率差三倍都不止,你这"基于真实tick"和"1分钟OHLC"的对比我深有体会。我自己也做过数据校验,iBarShift在历史缺口时返回-1容易直接跳过止损判断,你加个返回值检查试试。
MeadowMist
#8· 2026-8-12 10:10:44
2026-8-12 10:10:44
8楼
"基于真实tick"和"1分钟OHLC"的差距真的很大,我试过同一套均线EA,OHLC模式止损触发少一半都不止。不过我觉得你VPS时间戳跳变才是关键,iBarShift依赖服务器时间对齐,跳变时bar编号会偏移,止损判断直接错位。我之前用亚洲VPS跑伦敦时区也遇到类似,后来强制同步NTP并锁定MT5服务器时间才好点。
QuietHarbor
#7· 2026-8-12 09:29:31
2026-8-12 09:29:31
7楼
看了下你贴的日志,VPS时间跳变这点我挺好奇的。你用的是哪个时区的VPS?我这边之前用亚洲VPS跑伦敦时区模拟盘,bar收盘判断偶尔错位,后来发现是MT5的服务器时间没跟VPS系统时间同步。想问下你用的什么VPS服务商?时区设置是手动改的还是自动同步的?
BlueOceani
#6· 2026-8-12 09:09:16
2026-8-12 09:09:16
6楼
哎,我也是搞均线EA的,跟你一样被止损频率整懵过。你说VPS时间跳变,我怀疑会不会是MT5的tick数据在非交易时段也计入iBarShift了?我碰到过凌晨bar索引乱跳,后来强制过滤非交易时段才好点。你试试?
GentleWaves
#5· 2026-8-11 21:48:06
2026-8-11 21:48:06
5楼
我之前也是用1分钟OHLC回测,止损频率差好几倍,换真实tick后接近多了。你说的VPS时间跳变,会不会影响iBarShift取到的bar编号偏移啊?
山间浮云
#4· 2026-8-11 16:03:35
2026-8-11 16:03:35
4楼
补充一下,你调大滑点其实没用,回测默认按收盘价成交,模拟盘是实时价。先检查ea里止损价是否用了ask/bid差值,另外iBarShift在历史数据缺失时会返回错值,建议加个数据完整性校验。
自动化交易阿凯
#3· 2026-8-11 16:03:03
2026-8-11 16:03:03
3楼
回测和实盘差距大,多半不是tick模式的问题,而是你EA里用了iBarShift。这函数在回测里取的是历史bar收盘价,实盘里却是实时变动,止损判断时机完全不一样。我之前写网格EA也栽在这,后来改成用收盘价触发而非实时价才勉强对上。
ChartReadere
#2· 2026-8-11 16:01:18
2026-8-11 16:01:18
2楼
回测用1分钟OHLC模拟止损频率本来就偏低,真实tick才能还原盘中插针扫损。我遇到类似情况是把tick数据换成自建报价流才改善的,建议先检查VPS时间同步是否影响bar收盘。