老话题,但我想把它算细一点。这半年我拿同一套参数(EURUSD + GBPUSD,趋势 + 回调进场,平均持仓 11 小时)做了对照:策略测试器跑一遍,实盘账户跑一遍。

结果:回测期末净值 11800(起始 10000),实盘 11100。差距 700,占回测利润的 38%。
我把这 700 拆开看:
- 点差成本 ≈ 420(占比最大):策略半年成交 610 笔,平均每笔实际付出 1.35 点点差。回测里我按 1.0 点设的,光这一项就差了 0.35 点 × 610 笔。
- 滑点 ≈ 190:全部集中在 12 笔订单上。其中 7 笔是纽约盘开盘后 10 分钟内下的单,另外 5 笔是我开 VPS 重启之后的第一次下单。滑点不是均匀分布的,它集中在特定时段和特定动作之后。
- 隔夜利息 ≈ 90:持仓过夜的仓位,正负利息我回测时是按 0 设的。实测平均每手每晚 0.8~1.2 美元的负利息(做空欧元那段时间更贵)。
加起来 700,数字对上了。也就是说这不是玄学,是可以逐项拆解、逐项优化的工程问题。
我做了三件事,下个半年的结果还没出来,但前一个月的数据已经有改善:
① 把「纽约盘开盘 10 分钟」和「重要数据前后 15 分钟」设为禁开仓窗口。EA 里加一层时间过滤,逻辑很简单:if (InpNewsBlock && IsNewsWindow()) return;。这一个改动屏蔽了上面 7 笔滑点里的全部。
② 换掉 VPS 的抖动问题。原来看价格便宜,换了一家离经纪商机房更近的,平均延迟从 42ms 降到 6ms。重启后的首单滑点也没再出现。
③ 把回测的点差假设改成动态的。亚洲时段 1.0,伦敦纽约 1.5,数据日 5.0。回测曲线确实难看了,但和实盘的差距缩小到了 8% 以内。
最后给个我觉得比数字更重要的小提醒:不要用「回测和实盘的差距」去否定策略,先算清楚差距是什么构成的。如果拆开之后发现是点差和滑点,那是可优化的;如果拆开发现是策略在特定行情下失效,那才需要考虑换策略。
你们的点差假设一般设多少?有没有人试过按周内时段做动态点差的,效果如何?
