3. 封板稳定性因子构造逻辑

在涨停板交易中,"封得住"与"封不住"往往只差几分钟甚至几秒钟,但背后的盘口结构差异巨大。封板稳定性因子要解决的,就是把"这个板稳不稳"这种主观判断,转化为可回测、可排序、可检验的数值。本节围绕四个核心维度——封单强度、封板时长、开板频率、回封速度——逐一给出定义、计算表达式与方向性假设,并说明构造时容易踩的坑。

一、先明确参照系与数据口径

因子构造前必须先固定口径,否则同一表达式在不同数据源上会得到相反结论。本课程统一约定:

  • 时间参照:以交易日 9:30 为起点,以 15:00 为终点,所有时长以"分钟"为单位,精确到秒后换算。
  • 首次封板时刻记为 t_first,指当日价格首次触及涨停价且买一档存在封单的时刻;若全天未触及涨停,则该股当日不进入因子样本。
  • 封单量取买一档挂单量(股数),封单额取买一档挂单金额(元),两者不可混用。
  • 方向性约定:因子值越大,代表封板越稳定,即因子与"次日溢价/封板持续性"预期正相关。所有维度在合成前统一为正向。

需要特别提醒:不同行情软件对"涨停价"的处理存在四舍五入差异,尤其是低价股与 ST 股。构造因子时应以交易所公布的涨跌幅限制价格为准,并在数据清洗阶段剔除价格触及但买一档为空的异常快照。

二、四个维度的定义与表达式

封单强度衡量的是"托单有多厚"。绝对封单额受市值影响极大,直接使用会让大盘股天然占优,因此必须做规模归一。常用两种归一方式:一是除以当日成交额,二是除以流通市值。前者反映"相对当日交投的托举力度",后者反映"相对筹码体量的锁定程度"。实战中更常用成交额归一,表达式为:

seal_strength = mean(封单额_t) / 当日成交额
其中 t 取首次封板后至收盘的等间隔快照(如每 1 分钟一次)
若当日成交额为 0 或缺失,则该样本剔除

方向性假设:seal_strength 越大,封板越稳。但要注意它并非单调——封单额过大有时意味着主力对倒挂单,需结合开板频率交叉验证。

封板时长衡量"封住的时间占比"。它天然是正向指标,但必须区分"全天封死"与"尾盘才封"两种情形,因此用封板时长除以全天可交易时长(240 分钟)做归一:

seal_duration = (15:00 - t_first) / 240
若当日多次开板,仍以首次封板时刻计算"名义封板时长",
真实封板时长需扣除开板区间,见下式:
seal_duration_real = (累计处于涨停状态分钟数) / 240

方向性假设:seal_duration_real 越大越稳。名义时长与真实时长之差,本身就是开板严重程度的度量。

开板频率衡量"封板被打开的次数"。它是最直接的反向指标,构造时统一取负号转为正向:

open_count = 当日从涨停价回落至涨停价以下的次数
open_freq_factor = -1 * open_count
若需平滑,可用 open_count / seal_duration_real 表示单位封板时间内的开板密度

方向性假设:开板次数越多,封板越不稳,故取负。开板密度指标对"封了很久但反复开板"的票更敏感,适合与封板时长配合使用。

回封速度衡量"被打开后多快能重新封上"。它捕捉的是承接资金的反应效率,是四个维度中最容易被忽略、但区分度往往最高的一项:

对于第 i 次开板:
rebound_speed_i = 1 / (t_reclose_i - t_open_i)   (单位:1/分钟)
若当日无开板,则 rebound_speed 记为当日样本的最大值(如 1.0)
若收盘前未回封,则该次记为 0,并单独标记"未回封"状态

方向性假设:回封越快,说明承接越坚决,因子值越大越稳。注意回封速度对时间间隔极敏感,间隔小于 1 分钟时应做上限截断,避免极端值主导排序。

封板稳定性因子:四维度构造与方向性合成 逐笔/快照数据 买一档挂单·成交额 封单强度 封单额 / 成交额 方向:正向 ↑ 封板时长 真实封板分钟 / 240 方向:正向 ↑ 开板频率 -1 × 开板次数 方向:反向取负 ↓ 回封速度 1 / 开板至回封分钟 方向:正向 ↑ 截面标准化 去极值(MAD) Z-score 归一 统一为正向 缺失值剔除 未回封单独标记 按日截面处理 加权合成 F = w1·S + w2·D + w3·O + w4·R 权重由历史检验 IC/分层回测确定 输出:稳定性得分 注:S=封单强度,D=封板时长,O=开板频率(已取负),R=回封速度;四者均先截面标准化再加权,避免量纲差异主导排序。

三、合成方式与权重确定

四个维度量纲不同,不能直接相加。标准做法是先在当日截面上做去极值与 Z-score 标准化,再按权重线性合成。权重不应拍脑袋给定,而应通过历史检验确定:以次日开盘溢价或封板持续性为标签,计算各单因子与标签的 Rank IC,取 IC 均值与 ICIR 综合排序,再结合相关性做正交化处理。若两个维度相关性过高(例如封板时长与开板频率在多数样本上高度负相关),应保留解释力更强的一个,或对二者做残差化。

一个常见的合成陷阱是"未回封"样本的处理。若某股当日开板后收盘仍未回封,回封速度记为 0 会与"回封极慢"混为一谈,实际上二者性质不同。建议在合成时对未回封样本单独打标签,并在回测中分组观察,而不是简单赋 0 后混入排序。

四、构造时的三个实操要点

第一,快照频率要与因子匹配。封单强度用 1 分钟快照均值即可,但回封速度依赖逐笔或秒级数据,若只有分钟线,回封间隔会被量化到分钟,需在表达式中注明精度损失,并在回测中评估该误差对排序的影响。

第二,警惕"一字板"样本。全天一字涨停的股票,开板次数为 0、回封速度取最大值、封板时长为 1,三个维度同时取极值,容易在排序中霸榜。实战中通常对一字板单独分层,或在因子中引入"是否一字"的哑变量做交互,避免因子退化为"是否一字板"的代理。

第三,方向性假设必须可证伪。每个维度给出正向或反向假设后,都要在历史样本上验证符号是否符合预期。若某维度 IC 长期为负且显著,说明假设错误或该维度在当前市场结构下失效,应调整表达式而非强行保留。因子构造不是一次性设计,而是"定义—检验—修正"的循环,本节给出的表达式是起点,真正的稳定性来自后续章节的历史检验。

建议在实盘研究中对四个维度分别保留原始值,合成因子只作为排序依据,这样在因子失效时能快速定位是哪个维度出了问题,而不是面对一个黑箱得分无从下手。