从回测到实盘,中间那道叫"模拟盘"的缓冲你别跳过
我第一次做出一条像样的回测曲线,是在一个周末的深夜。参数调了好几轮,年化数字从个位数一路爬到三十多,曲线爬坡爬得又稳又直,我盯着屏幕看了足足十分钟,心跳都有点加速——那种感觉,像是发现了一条别人都没找到的近道。第二天一早,我几乎是揣着这份激动去开了实盘账户,信号一出立刻挂单。结果不用我多说也能猜到:头一个月账户就把回测里”最大回撤”这一栏的数字狠狠刷新了一遍。后来复盘才明白,我犯的不是策略上的错,而是流程上的错——我把回测和实盘之间那道该有的缓冲,一步跳过去了。这篇就想把这道缓冲讲清楚:回测和实盘到底差在哪,为什么中间必须留一段模拟盘和小资金验证,而不是回测一好看就直接冲进去。
回测和实盘差在哪
回测是在一个”理想世界”里跑出来的成绩单,而实盘是在一个到处都有摩擦力的真实世界里较量。这中间的差距,主要来自几个地方。
第一个是滑点。回测里,你的策略说”以20元买入”,程序就默认你真的是以20元成交的。可实盘里,从你的信号触发、到你下单、再到订单真正撮合成交,中间是有时间差的——哪怕只是几秒钟,价格也可能已经跳开了。行情越急、流动性越差,这个跳开的幅度就越大。你在回测里看到的每一笔”精确成交价”,在实盘里往往只是一个理想化的参考,真实成交价大概率比它差一点,有时候差得还不小。
第二个是手续费和税费。这个道理很多人都懂,但真正落实到回测代码里的没那么多。尤其是换手率高的策略,每天进进出出好几次,手续费一点点吃掉的利润,累积起来可能就是策略盈亏的分水岭。如果回测代码里没有认真计入这部分成本,算出来的收益曲线就是虚高的,虚高的幅度还往往跟交易频率成正比——越是频繁交易的策略,这道摩擦力啃得越狠。
第三个是冲击成本,这个最容易被新手忽略,因为回测阶段大多数人测的仓位都比较小,感觉不到它的存在。冲击成本指的是,当你的下单量相对市场承接能力偏大时,你自己的买卖行为会把价格往不利的方向推——你买,价格被你自己抬高了;你卖,价格被你自己压低了。回测软件默认你想买多少就能买多少、想卖多少就能卖多少,价格不会因为你的介入而变化。可现实是,资金量一旦上去,你自己就是那个影响价格的人,回测里那个”干净”的成交价,早就不存在了。
第四个是根本无法成交。回测里,只要触发了信号,程序就默认这笔交易成交了。可实盘里,涨停板买不进去、跌停板卖不出来、盘口挂单薄得你的单子一下去就把对手方全打没了——这些情况在真实交易里天天发生,回测软件却很少会老老实实地把它们模拟出来。
第五个是数据延迟。你用来跑回测的历史数据,大概率是收盘后才整理好的”干净”数据,而实盘里你拿到的行情,是实时跳动、偶尔还会有延迟和错乱的原始数据。一个策略在干净数据上跑得很顺,换到带噪声、带延迟的实时数据上,表现打个折扣几乎是必然的。
这几道摩擦力单独看好像都不大,但叠加在一起,足以把一条回测年化20%的曲线,拉到实盘勉强保本甚至亏损的地步。它们不是可以忽略的”细枝末节”,而是回测和实盘之间那道真实存在的鸿沟。想更系统地了解回测本身的局限,可以先看看回测与过拟合里讲的过拟合问题——那是另一重更隐蔽的坑,和这里说的现实摩擦是两回事,但常常同时踩上。
更大的敌人是你自己
比起这些能被量化出来的摩擦成本,还有一个更难对付的敌人,回测压根没法把它模拟出来——那就是你自己的情绪。
回测跑的时候,不管中间账户曲线怎么起伏,你都能面不改色地看着结果,因为那是历史,是已经发生、不会再变的数字,你不会因为回测曲线在某一天回撤了15%就手心冒汗。可实盘不一样,当那15%的回撤真实地发生在你自己的账户里,浮亏的数字每天在你眼前跳动,你的理性会被一点点侵蚀。策略明明说”按纪律继续持有”,可你心里那个声音会开始嘀咕:“要不先减点仓,万一继续跌呢”;策略说”到点该止损了”,你又忍不住想:“再等等,说不定明天就反弹了”。这种拉扯,回测里从来不会出现,因为回测不需要你拿真金白银去扛那份不确定性。
我自己就吃过这个亏。同一套策略,我在回测里能眼睁睁看着它经历几次20%以上的回撤而毫不动摇,因为那都是过去时;可实盘里第一次真碰上10%的回撤,我就手动跳过了一次该执行的加仓信号,理由是”这次感觉不太一样”。事后复盘,行情该涨还是涨了,我却因为那一次情绪化的犹豫,少赚了一整段行情。策略本身没有错,错的是执行它的人,在没有心理准备的情况下,被真实的浮亏打乱了节奏。这也是为什么很多讲风险管理的内容,反复强调仓位和心态的关系——纸面上再完美的策略,扛不住真钱压力下的情绪波动,照样白搭。
模拟盘的作用与局限
正因为存在这道情绪鸿沟,模拟盘才有它存在的意义——但也要老实说清楚它的局限,别对它抱不切实际的期待。
模拟盘的好处是实实在在的。它能让你把整套交易流程从头到尾走一遍:下单软件怎么用、信号怎么触发、委托怎么挂、成交怎么确认、账户曲线怎么记录。很多人在回测阶段只关心策略逻辑,从没想过”我到底怎么把这套逻辑落地成每天的操作”,等真上手才发现光是操作流程就手忙脚乱。模拟盘能把这些细节提前暴露出来,让你在不亏真钱的情况下,把执行的肌肉记忆先练一遍。它还能帮你观察策略在实时行情下、而不是历史数据里的表现,看看信号的触发频率、持仓周期跟你想象中是否一致。
但模拟盘的局限也很明显,而且是结构性的、没法靠”认真对待”来弥补的:假钱不会让你心疼。 你在模拟盘里看到账户浮亏20%,大概率还是能面不改色地继续执行策略,因为你知道,就算清零了也不会真的影响你的生活。这种”无痛”恰恰是模拟盘最大的短板——它能帮你熟悉流程,却没法真实还原真金白银压在心口上时那种情绪波动。有经验的人常说,模拟盘做得再好,也只能算是”模拟了操作,没有模拟出人性”。所以模拟盘可以帮你排除掉一部分低级的操作失误,但不能替代下一步:用一笔小到你不会心疼、但又真实存在的钱,去亲身感受一次实盘的压力。
循序渐进
把上面这些拼起来,一条相对负责任的路径应该是这样走的:先用回测筛掉那些历史上都跑不赢的想法,同时留出样本外数据检验过拟合;回测过关之后,进入模拟盘阶段,把交易流程走顺,观察策略在实时行情里的触发节奏是否符合预期;模拟盘稳定运行一段时间之后,再拿一笔很小的真实资金去做验证——这笔钱要小到即便全部亏光,也不会影响你的正常生活和情绪,但又要是真钱,让你能亲身感受滑点、冲击成本和心理压力跟你预想的差多少;这一步走稳了,才逐步、缓慢地加大仓位,而且每加一次仓,都要重新观察一段时间,而不是一口气把仓位加到位。
这个过程听起来慢,甚至有点啰嗦,但它换来的是一种更扎实的确定性:每一步你都亲眼验证过,而不是凭一条漂亮的回测曲线就把身家压上去。很多在这条路上栽过跟头的人,后来都会同意一句话——省下来的每一步验证,日后都会以更大的代价还回来。
[!pitfall] 回测收益曲线越漂亮,越应该多一分警惕,而不是多一分兴奋。一条完美到近乎没有回撤的曲线,大概率是没有算进滑点、冲击成本、无法成交这些现实摩擦,更别提它压根没法体现你面对真实浮亏时的情绪状态。曲线越诱人,越值得你在冲进实盘之前,先问一句:这些摩擦和情绪,我算进去了吗。
小结
回测是检验一个想法是否值得往下走的第一道门槛,但它跑出来的漂亮数字,离真正能拿去实盘用,还隔着滑点、冲击成本、无法成交、数据延迟这些真实存在的摩擦,更隔着一道回测永远模拟不出来的情绪鸿沟。模拟盘能帮你把操作流程走顺,却没法替你体验真金白银带来的心理压力;真正靠谱的做法,是回测通过之后先进模拟盘,模拟盘稳定之后再用小到不心疼的真实资金去验证,验证通过了才谨慎、缓慢地加仓。关于风险控制在这整条链条里该怎么摆位置,可以再看看风险管理卷里的内容;如果想回到量化这条主线继续往下学,也可以去L5 量化投资看看还有哪些内容值得补。
再次声明:本文是教育科普,任何策略都不构成投资建议,不保证未来表现。
本文仅为投资教育科普,不构成任何投资建议。回测、模拟盘与实盘之间均存在差异,历史表现不代表未来收益,投资有风险,决策需谨慎。