先说结论:如果你只用经纪商自带的 M1 数据、并且把点差当 0 处理,那你的回测结果基本没有参考价值。不是绝对,是不值得信任。
上周我把手上同一个 EA(EURUSD,H1,纯趋势跟随,无马丁无网格)用三种方式各跑了一遍三年,参数一个字没改:

三条曲线的差别,我一条条说:
① 真实 Tick 数据(蓝线)
年化大概 28%,最大浮亏 11%。这是最接近实盘的基准。代价是要下几十 G 的 tick 包,跑一次要一个多小时。
② 经纪商 M1 OHLC 数据(橙虚线)
同样的策略,年化掉到 19%。原因不难理解:M1 一根 K 线只有开高低收四个价,中间怎么走的全靠猜。MT5 的策略测试器在「每笔 tick」模式下会用这些点去插值,于是该被止损的没止损、该止损的滑过了最佳成交价。尤其这个 EA 用的是 20 点以内的短止损,插值误差直接吃掉利润。
③ M1 数据 + 固定 2.0 点点差(红线)
这一条最刺激:前一年半和蓝线几乎重合,后半年直接拐头向下,最后几乎是平盘收场。为什么差在后半段?因为 2022 年下半年到 2023 年初 EURUSD 的波动率下了一个台阶,而这套策略的网格化加仓在低波动里频繁触发,交易次数翻倍——点差成本是按次数收的,次数一多,成本就压不住了。
这里有个很多人忽略的细节:点差不是一个固定数字。我统计了自己账户的 EURUSD 点差分布:
- 亚盘平静时段:0.6~0.9 点
- 伦敦盘:0.8~1.4 点
- 纽约盘开盘 30 分钟:2~5 点
- 非农、利率决议:8~20 点,最极端见过 30 点
如果用 2.0 点固定点差,等于低估了非农时段的成本、高估了平静时段的成本,而且低估的那部分,恰恰是策略最容易爆亏的时段。
我现在的做法,三步:
- 用 Dukascopy 或 Tickstory 拉真实 tick 数据,至少三年、覆盖一次极端行情。质量优先于数量,两年糊数据不如一年干净数据。
- 点差不用固定值,改用按时段加权的动态点差:亚洲时段 1 点,伦敦/纽约盘 1.5 点,重要数据日单独给 5 点以上。
- 滑点不要设 0。短线策略设 1 点,网格类设 2 点。宁可实盘比回测好看,也不要反过来。
改完这三步之后,我的回测曲线「难看」了很多——年化从 28% 掉到 21%,最大回撤从 11% 变成 16%。但它和实盘的差距,从原来的「根本对不上」变成了可以解释的范围。
最后说一句可能得罪人的话:那种回测年化 200%、最大回撤 3%、曲线笔直向上的图,不用看策略,先看数据来源和成本假设。十有八九是 0 点差、1 分钟插值跑出来的。
你们回测都用什么数据?点差按几点设的?评论区聊聊,我看看是不是只有我这么轴。
