ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

量化概念 18:实盘与回测的差距(滑点、成交不了、容量)

量化概念 18:实盘与回测的差距(滑点、成交不了、容量) 回测年化 30%实盘跑一年可能只剩一半。一类原因是策略本身的问题——过拟合、因子失效另一类则是回测的成交假设在实盘里不成立。回测里想买就买、想卖就卖、成交价就是信号价实盘里每一条都要打折扣。滑点、成交不了、容量是回测到实盘之间的三座山。回测的成交假设回测引擎要撮合必须先定假设。常见的口径是T 日收盘出信号T1 开盘价成交不设滑点、不限流动性。这个口径在回测里干净利落但它隐藏了三个实盘必然发生的偏差。我自己的回测引擎滑点默认也是 0——回测做完了要自己记得把这个假设拆掉。差距一成交价——滑点回测假设 T1 开盘价成交实盘里你的委托很难正好成交在开盘价。开盘后价格立刻跳动单子要排队、要穿透成交价往往比开盘价差一点——这就是滑点slippage。滑点有多普遍高开抢筹的票挂开盘价买可能排在别人后面追到更高价低开恐慌的票挂开盘价卖可能只成交一部分。日频策略一年换手几十次每笔滑 0.1%–0.3%一年就是几个百分点直接吃掉超额收益的大头。差距二成交不了——涨停买不进跌停卖不出回测里有信号就成交实盘里有些时刻根本成交不了。一字涨停开盘就封在涨停价买单排在几千手之后大概率轮不到你——回测里这笔买入已经算进去了。一字跌停相反卖单砸不出去。还有停牌信号出了股票停牌复牌后走势早已变化。更要命的是好信号往往正是最买不进的时候信号好意味着大家都在买涨停的概率更高。回测默认成交等于把最赚钱的那几笔当成全都买到了。差距三容量——资金一大收益就摊薄回测里买多少都不影响价格实盘里大资金买入本身就是冲击。容量capacity指一个策略在不显著抬高成本的前提下能承载的资金上限。例子一只日均成交额 5000 万的小盘股买 50 万占日成交的 1%冲击成本约 0.5%买到 250 万占 5%冲击成本可能到 1.5%再往上你的单子自己就把价格推高了——回测假设的那个开盘价根本不存在。回测年化 30% 的策略可能只装得下几百万资金规模再大收益被冲击成本吃掉大半。怎么在回测里预留这些差距加滑点撮合时给成交价加固定滑点比如每笔 0.1%–0.2%或者用开盘价 ± 滑点保守成交成交率打折涨停、跌停、停牌日不算成交或按历史成交概率打折估容量持仓股按日均成交额排序单票买入控制在日成交的 1%–2% 以内超出就剔除小资金先跑回测通过后用小资金实盘跑几个月实际滑点和冲击成本会修正回测的乐观常见误区把滑点设成 0 觉得干净不是干净是把实盘最大的成本藏起来了用开盘价成交却忽略一字板涨停买不进的那几笔往往正是收益的大头以为容量是以后的事小资金阶段验证不了容量等资金大了才发现装不下把回测收益直接当实盘预期先扣滑点、扣冲击、打折成交率剩下的才是能拿到的实盘比回测差就怪市场先检查回测假设是不是过于理想——差距多数在这里不在运气小结回测和实盘的差距本质是成交假设的理想化滑点让成交价变差涨停跌停停牌让成交不了容量让大资金买不动。回测里这三样都是默认不存在实盘里每一样都在发生。做法反过来回测时主动加上滑点、打折成交率、估算容量把最坏的情况先算进去。回测数字减去这些假设的水分才是实盘真正能拿到的。
返回列表