回测里最隐蔽、也最容易被忽略的一种幻觉,是用当时实际上还不知道的信息去成交。"收盘确认 + 次日开盘成交"这套假设存在的目的,就是尽量把这种幻觉压到最低。
一、两句话说清定义
收盘确认:金叉、突破、放量等任何入场或出场条件,都以当日收盘价计算出的指标数值和价格关系为准;盘中"看起来快要金叉了""看起来快要放量了"都不算,只有收盘后回头看才能确定信号是否真正成立。
次日开盘成交:信号在 T 日收盘后确认成立,最早只能按 T+1 日的开盘价去模拟买入或卖出,不能用 T 日当天的价格成交,因为那在现实中根本无法做到——你不可能在收盘那一刻同时拿到"收盘价确认信号"和"用这个收盘价买入"两件事。
需要强调的是,这和"盘中看到均线金叉就立刻市价追进去"是完全不同的两套交易方式,两者的信号时点、成交时点都不一样,历史表现自然也会有明显差异,不能拿一套假设下的回测结果去评价另一套假设下的交易行为。
二、为什么A股研究普遍采用这套假设
第一,降低前视偏差:收盘价在收盘之前本身就是不确定的,任何用"当天收盘价"直接成交的假设,本质上都偷看了未来数据,这是回测中最常见也最容易被忽视的错误来源之一。第二,更接近个人投资者的真实可执行节奏:大多数非专业交易者是收盘后复盘、选股、下决策,第二天再操作,"收盘确认、次日开盘"恰好对应这种真实的操作时序。第三,天然契合A股的T+1规则:当日买入的股票要到下一交易日才能卖出,交易时序本身就不是美股式的"当日发现、当日闭环",用这套成交假设更贴合A股实际的交易约束。
三、它会让回测收益"变丑",但这恰恰是好事
采用收盘确认加次日开盘成交后,很多原本盘中看起来非常漂亮的策略,历史收益会明显下降——这是因为你去掉了"偷看未来价格"和"追价瞬间成交"这两个幻觉。如果一套交易规则只有在"信号出现的那一根K线当场收盘价成交、且不计滑点和手续费"的极端理想条件下才好看,那么它本来就不应该被当作实盘候选,及早暴露这个问题,比等到实盘亏钱才发现要好得多。
四、这套假设也有它的适用边界
需要指出的是,这套日线级别的成交假设并不适用于所有场景。分钟级的打板交易、盘中强弱切换类策略,需要更细粒度的成交模型来模拟盘中的连续报价与撮合过程,这属于另一套模块和口径,不应该拿它和日线趋势类回测的年化收益放在一起比较,两者本质上回答的是不同粒度的问题。
青柠量化 的常规日线回测默认采用收盘确认、下一根K线开盘价成交,并计入佣金滑点,帮助你在更保守、更接近真实可执行性的假设下做研究。
下载与说明见产品页:
https://www.zpyztech.com/product/qingquant/
免责声明: 本文仅作量化知识科普,不构成任何投资建议。成交假设不同会导致结果不同,请独立判断并自行承担投资风险。
读到这里,不如自己验证一次
文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。