暮色拾荒
楼主
2026-8-11 15:42:20
浏览 634
回复 12
阅读 1 分钟
Lv.1 新手汇友 等级 Lv.1 主题 3
帖数 16
积分 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?我看了半天代码也没找出毛病,有点怀疑人生了😅 希望有经验的前辈指点一下,谢谢了!
ChartReadere
#2· 2026-8-11 16:01:18
2楼
回测用1分钟OHLC模拟止损频率本来就偏低,真实tick才能还原盘中插针扫损。我遇到类似情况是把tick数据换成自建报价流才改善的,建议先检查VPS时间同步是否影响bar收盘。
自动化交易阿凯
#3· 2026-8-11 16:03:03
3楼
回测和实盘差距大,多半不是tick模式的问题,而是你EA里用了iBarShift。这函数在回测里取的是历史bar收盘价,实盘里却是实时变动,止损判断时机完全不一样。我之前写网格EA也栽在这,后来改成用收盘价触发而非实时价才勉强对上。
山间浮云
#4· 2026-8-11 16:03:35
4楼
补充一下,你调大滑点其实没用,回测默认按收盘价成交,模拟盘是实时价。先检查ea里止损价是否用了ask/bid差值,另外iBarShift在历史数据缺失时会返回错值,建议加个数据完整性校验。
GentleWaves
#5· 2026-8-11 21:48:06
5楼
我之前也是用1分钟OHLC回测,止损频率差好几倍,换真实tick后接近多了。你说的VPS时间跳变,会不会影响iBarShift取到的bar编号偏移啊?
BlueOceani
#6· 2026-8-12 09:09:16
6楼
哎,我也是搞均线EA的,跟你一样被止损频率整懵过。你说VPS时间跳变,我怀疑会不会是MT5的tick数据在非交易时段也计入iBarShift了?我碰到过凌晨bar索引乱跳,后来强制过滤非交易时段才好点。你试试?
QuietHarbor
#7· 2026-8-12 09:29:31
7楼
看了下你贴的日志,VPS时间跳变这点我挺好奇的。你用的是哪个时区的VPS?我这边之前用亚洲VPS跑伦敦时区模拟盘,bar收盘判断偶尔错位,后来发现是MT5的服务器时间没跟VPS系统时间同步。想问下你用的什么VPS服务商?时区设置是手动改的还是自动同步的?
MeadowMist
#8· 2026-8-12 10:10:44
8楼
"基于真实tick"和"1分钟OHLC"的差距真的很大,我试过同一套均线EA,OHLC模式止损触发少一半都不止。不过我觉得你VPS时间戳跳变才是关键,iBarShift依赖服务器时间对齐,跳变时bar编号会偏移,止损判断直接错位。我之前用亚洲VPS跑伦敦时区也遇到类似,后来强制同步NTP并锁定MT5服务器时间才好点。
橘子汽水
#9· 2026-8-20 10:09:20
9楼
我之前用真实tick回测黄金EA也遇到类似情况,止损频率差三倍都不止,你这"基于真实tick"和"1分钟OHLC"的对比我深有体会。我自己也做过数据校验,iBarShift在历史缺口时返回-1容易直接跳过止损判断,你加个返回值检查试试。
轻舟渡
#10· 2026-8-23 10:02:09
10楼
“基于真实tick”和“1分钟OHLC”对止损频率影响确实大,但你说的VPS时间戳跳变更值得查。我自己也遇到过类似,后来发现是EA里iBarShift没处理返回-1的情况,导致bar编号错位。建议你在日志里打印每次止损触发的bar时间戳对比下。
咸鱼翻身
#11· 2026-8-25 22:02:28
11楼
我之前回测也遇到过,OHLC模式止损频率低得离谱,后来换真实tick才接近实盘。我自己也发现iBarShift在数据缺口时会返回-1,你日志对比下时间戳,八成是这儿的问题。😄
wendy18
#12· 2026-9-6 15:42:09
12楼
“基于真实tick”和“1分钟OHLC”对止损频率影响确实大到离谱,我测黄金M15时也这样。我自己也踩过坑,iBarShift在周末数据缺口时返回-1,止损直接跳过。你build 4000+的话,试试在OnTick里加个返回码校验,顺便把历史数据缓存删了重建一次。
老孙头
#13· 2026-9-20 16:28:04
13楼
你说的“每笔交易最大偏差”调大我有点疑问,这个参数不是只影响成交价偏离吗?为啥你会觉得它能拉近OHLC和真实tick的止损频率?我VPS也是亚洲时区,日志时间戳偶尔跳一下,但没见EA错位,想确认下你观察到的跳变是几秒级的?