开发指南

A股回测为什么不能假设想买就买?涨跌停、停牌和一字板会直接改变成交

信号出现不等于订单一定成交。涨跌停、停牌、一字板、流动性和竞价阶段都会让理想回测与真实A股执行产生巨大差异。

核心解答

股票策略里最危险的一种回测假设,是“只要信号出现,就一定能按照图表上的价格完成交易”。

在流动性充足、价格连续的情况下,这种简化有时影响不大。

但放到A股,涨跌停、停牌、一字板和竞价阶段都可能让一个理论上正确的信号根本无法成交。

信号产生和订单成交必须分开

策略可以在某天收盘后判断第二天买入,也可以盘中产生信号。

但回测引擎必须再回答:下一次真正允许下单是什么时间,当时证券是否可交易,以及价格和成交量是否允许完成订单。

如果把“出现买入信号”直接等于“已经持仓”,整个执行层就被跳过了。

涨停时想买不一定能买到

当证券价格达到当日价格限制附近,卖盘可能非常少。

尤其出现封板或接近一字板的情况时,历史K线虽然显示某个价格,但并不代表你的订单就能够获得成交。

如果策略专门追逐强势涨停股,却在回测里默认全部以涨停价买入,结果可能严重高估实际可复制性。

跌停时想卖也可能卖不掉

风险模型经常假设“价格跌到止损位就立即卖出”。

但如果证券已经处在无法获得足够对手盘的极端状态,现实里止损指令并不能保证马上成交。

因此最大回撤不能只根据理论止损价计算,还应该考虑无法执行期间价格继续变化的风险。

这对高仓位策略尤其重要。

停牌期间不能制造虚假交易

停牌证券没有正常连续成交。

如果数据处理只是向前填充价格,而策略引擎仍然允许在这些日期买卖,就会制造现实不存在的交易。

停复牌状态应该成为回测数据的一部分,并明确规定不可交易期间如何处理持仓和信号。

一字板比普通涨停更需要特殊处理

只看日K最高价和最低价,有时无法判断真实可成交深度。

如果整天价格几乎锁在限制位置,策略不能仅凭“收盘价等于某价格”就认为能够随意买入或卖出。

更严谨的模型可以结合开高低收、成交量、盘口或更细粒度数据判断可执行性。

成交量决定策略容量

历史上某只股票当天成交金额很小,而回测却假设策略能瞬间买入占当日成交量很大比例的仓位,价格冲击就被完全忽略。

资金规模越大,应该越关注订单占成交量比例,并为冲击成本和部分成交留出空间。

一个在10万元规模能执行的策略,不一定能够直接放大到1000万元。

竞价和交易阶段也不能混为一谈

开盘集合竞价、连续竞价以及其他交易阶段的撮合条件并不完全相同。

“用当天开盘价买入”实际上已经隐含了一个很强的成交假设。

策略应该明确订单是在前一交易日生成,还是看到当天开盘数据以后才生成,避免无意中使用已经发生的信息获得开盘成交。

不同板块和证券规则不能硬编码成一个值

A股不同市场、板块、特殊证券状态和时期可能适用不同价格限制或交易规则。

回测引擎应该根据证券和日期读取对应规则,而不是永远写死一个统一百分比。

历史规则发生变化时,也需要按当时有效规则重放。

怎样做更现实的执行压力测试

可以分别采用理想成交、保守成交和极端成交三个场景。

对涨停买单降低成交概率,对跌停卖单延后退出,对低成交量股票限制最大订单规模,并额外加入滑点。

如果策略在保守执行模型下仍有明显优势,可信度远高于只在理想成交下漂亮。

资料依据

上海证券交易所、深圳证券交易所现行及历史交易规则对价格限制、停复牌、竞价和订单撮合均有具体规定。

实际量化研究应根据证券代码、交易日期和对应市场采用当时有效规则。

风险提示

历史回测不代表未来收益。本文讨论的是回测工程和交易执行建模,不构成投资建议。

结论

股票回测真正要模拟的不是“信号对不对”,而是信号出现以后订单能不能在现实市场完成。涨跌停、停牌和流动性一旦被忽略,策略最漂亮的利润往往恰恰来自那些现实中最难成交的交易。

RELATED GUIDES

继续了解这个主题

项目咨询

淄博卓亚网络科技服务有限公司
电话:15269365953
地址:山东省淄博市张店区体育场街道办事处华光路2号泽泉消防市场三楼S18