回测里的右删失:为什么不能按收盘价虚构一个离场

回测右删失是什么回测研究 · 全部研究 · 发布 2026-07-15 · 更新 2026-08-24

回测里有两种"结果还不知道"的情况:票封死跌停你卖不掉,或者样本末尾的交易未来行情还没走完。统计学里这叫右删失(right-censoring)——事件还没发生,观测就结束了。处理它最常见的错误是:随便安一个收盘价当成交价。

为什么不能虚构离场

封死跌停时的"收盘价"是拿不到的价
票封死在跌停价,意味着卖单排成长队、买单没有。你挂在队尾,成交回报不会来。此时按收盘价(= 跌停价)记一笔卖出,等于假设你排到了——而真实情况是你被套在里面,第二天可能继续跌停。虚构的那个价,恰恰把最坏的那批样本粉饰掉了。
正确处理:顺延、再不行就整期剔除
连板网的处理:
① 封死跌停 → 顺延最多 8 个交易日找开板。开盘已开板按开盘价;盘中开板按当日跌停价(挂单能成交的最差价),且成交价钳制不低于当日最低价。
② 8 天仍封死 → 整期剔除,这一期的统计全部回滚,不进胜率、不进收益分布。
③ 样本末尾未来行情不足 → 同样剔除。所以回测区间的末尾必然留一段空白:持有 5 日会留 14 个交易日(持有 5 + 跌停链 8 + 1),持有 20 日留 29 天。这不是数据缺失,是必要的。

但"整期剔除"本身会带来新问题

篮子越大,被剔掉的期越多
如果一期是一个几十只票的篮子,只要有一只删失就剔掉整期,剔除率会随篮子变大而飙升——实测 300 只的篮子剔除率达到 26%,而回测变成了在挑期,结论不可信。
所以必须区分两种删失:"从未买入"(信号日次日停牌,这一笔根本不存在)只剔这一笔;"持仓出不来"(跌停链未解)才整期剔除。混着处理就会出现上面那种剔除率飙升。
停牌也不是删失
该卖的那天停牌,不等于"结果未知"——复牌就能卖。正确做法是顺延到下一个有行情的交易日。按删失处理会让剔除率虚高:个股单日停牌率约 0.07%,300 只的篮子里至少一只停牌的概率约 19%,实测剔除率 19.5%,正好对上。

→ 策略回测的结果里会显示右删失剔除了多少期

本站所有内容仅供研究与学习参考,不构成任何投资建议,据此操作风险自担。市场有风险,投资需谨慎。👥 交流群京ICP备19006701号-1