之前一直觉得MT5自带的策略测试器就是个跑EA回测的工具,点一下开始等结果就行,直到有次我拿一套黄金M1的剥头皮策略去测,跑出来曲线漂亮得跟画的一样,实盘挂上去当天就被打脸。回头查了半天才发现,是测试器里几个默认设置跟实盘环境差了十万八千里。从那以后我才老老实实把每个参数都抠了一遍,今天就把我踩过的坑和现在的用法捋一捋,给已经在用测试器但还没吃透的朋友参考。
先说最容易被忽略的一步,就是建模模式的选择。很多人直接默认用“每一分钟OHLC”,觉得快、省时间。但如果你是做分钟级甚至秒级的短线策略,这个模式会把价格在每根K线内部的波动路径直接抹平,你的止盈止损触发逻辑全乱套。我那次黄金策略就是栽在这上面,明明实盘会被扫的止损,回测里因为K线内部路径被简化,硬是没碰到。解决办法很简单,做剥头皮或者挂单密集的策略,老老实实选“每笔订单”模式,虽然跑得慢,但结果可信。如果是做H1、持仓周期长的策略,用OHLC就够了,没必要跟自己电脑过不去。
第二个坑是点差和佣金的设置。测试器默认点差是“当前”,这个当前指的是你打开测试器那一刻经纪商给的点差,经常是凌晨那种低得离谱的数值。你拿这个去测欧美可能还行,测黄金或者镑日这种点差波动大的品种,结果会严重偏乐观。我现在的习惯是手动填一个固定点差,参考我自己账户在亚盘和欧盘的平均值,黄金一般填25到30个点,欧美填8到12个点。佣金也要手动加,很多ECN账户是收双边佣金的,测试器里如果不勾选,等于白送钱给策略。别小看这点,一个每天开十几单的剥头皮EA,佣金能把利润啃掉一大半。
第三个是复盘模型里的延迟设置。这个藏得比较深,在测试器的“延迟”选项卡里。默认是无延迟,也就是你的订单瞬间成交。实盘哪有这种好事?尤其是非农或者数据行情,滑点能滑到你怀疑人生。我一般会选“随机延迟”,然后根据自己VPS的响应速度填一个范围,比如50到200毫秒。这样跑出来的结果会难看一些,但更接近真实。如果你的策略在加了延迟之后直接崩了,那说明它过度依赖精确入场,实盘大概率活不长。
再说说具体操作流程,我现在的习惯是这么走的:
还有个细节,就是测试用的历史数据质量。MT5默认会从经纪商服务器下载数据,但有些小经纪商的数据缺斤少两,尤其是黄金的分钟数据,经常有空洞。我现在的做法是定期从可靠的数据源导入历史数据,或者在测试前右键图表,选“重新计算”让它重新拉一遍。如果发现回测时K线跳空特别离谱,基本就是数据问题,别怀疑策略。
最后提一句,测试器跑出来的结果再好,也只是个参考。我见过太多人拿着测试器里年化几百个点的曲线就敢上实盘,结果一周就爆仓。回测的意义是帮你排除明显有缺陷的策略,而不是证明它能赚钱。真正要上实盘,至少还得过模拟盘和极小仓位实盘这两关。
你们平时用测试器有没有遇到过什么奇葩问题?比如明明设置了固定点差,结果跑出来还是按浮动算的,或者数据下载到一半卡住的,在下面聊聊,我看看有没有我也没搞定的坑。
先说最容易被忽略的一步,就是建模模式的选择。很多人直接默认用“每一分钟OHLC”,觉得快、省时间。但如果你是做分钟级甚至秒级的短线策略,这个模式会把价格在每根K线内部的波动路径直接抹平,你的止盈止损触发逻辑全乱套。我那次黄金策略就是栽在这上面,明明实盘会被扫的止损,回测里因为K线内部路径被简化,硬是没碰到。解决办法很简单,做剥头皮或者挂单密集的策略,老老实实选“每笔订单”模式,虽然跑得慢,但结果可信。如果是做H1、持仓周期长的策略,用OHLC就够了,没必要跟自己电脑过不去。
第二个坑是点差和佣金的设置。测试器默认点差是“当前”,这个当前指的是你打开测试器那一刻经纪商给的点差,经常是凌晨那种低得离谱的数值。你拿这个去测欧美可能还行,测黄金或者镑日这种点差波动大的品种,结果会严重偏乐观。我现在的习惯是手动填一个固定点差,参考我自己账户在亚盘和欧盘的平均值,黄金一般填25到30个点,欧美填8到12个点。佣金也要手动加,很多ECN账户是收双边佣金的,测试器里如果不勾选,等于白送钱给策略。别小看这点,一个每天开十几单的剥头皮EA,佣金能把利润啃掉一大半。
第三个是复盘模型里的延迟设置。这个藏得比较深,在测试器的“延迟”选项卡里。默认是无延迟,也就是你的订单瞬间成交。实盘哪有这种好事?尤其是非农或者数据行情,滑点能滑到你怀疑人生。我一般会选“随机延迟”,然后根据自己VPS的响应速度填一个范围,比如50到200毫秒。这样跑出来的结果会难看一些,但更接近真实。如果你的策略在加了延迟之后直接崩了,那说明它过度依赖精确入场,实盘大概率活不长。
再说说具体操作流程,我现在的习惯是这么走的:
- 先把EA挂到图表上,手动跑几天模拟盘,确认逻辑没大问题,再进测试器。
- 测试器里选好品种和周期,货币对必须和实盘要挂的一致,别拿欧美测完去挂镑美。
- 建模模式按策略类型选,剥头皮用每笔订单,波段用OHLC。
- 点差和佣金手动填,参考自己账户最近一周的均值。
- 延迟开随机,范围根据VPS位置来,一般50到200毫秒。
- 最后跑之前,把“可视化”打开看一遍,确认开平仓位置符合预期,再关掉跑完整回测。
还有个细节,就是测试用的历史数据质量。MT5默认会从经纪商服务器下载数据,但有些小经纪商的数据缺斤少两,尤其是黄金的分钟数据,经常有空洞。我现在的做法是定期从可靠的数据源导入历史数据,或者在测试前右键图表,选“重新计算”让它重新拉一遍。如果发现回测时K线跳空特别离谱,基本就是数据问题,别怀疑策略。
最后提一句,测试器跑出来的结果再好,也只是个参考。我见过太多人拿着测试器里年化几百个点的曲线就敢上实盘,结果一周就爆仓。回测的意义是帮你排除明显有缺陷的策略,而不是证明它能赚钱。真正要上实盘,至少还得过模拟盘和极小仓位实盘这两关。
你们平时用测试器有没有遇到过什么奇葩问题?比如明明设置了固定点差,结果跑出来还是按浮动算的,或者数据下载到一半卡住的,在下面聊聊,我看看有没有我也没搞定的坑。
