分歧命中因子 (Divergence Hit Factor)
大白话:成交量突然放大,这件事本身不告诉你股价会涨会跌。要紧的是市场接下来怎么反应——是把这批成交顺利消化掉(冲击被吸收),还是因此激活了更多分歧(定价还没定下来)。
所以做法是:先找出「异常成交的分钟」,再看接下来 5 分钟里市场有没有出现分歧,比较异常成交组和对照组的分歧概率。放量后分歧概率低 = 有承接;缩量后分歧概率高 = 定价脆弱。
核心经济问题
股票面对异常成交时,是快速吸收交易冲击,还是进一步激活投资者分歧?
| 成交状态 | 未来分歧表现 | 经济解释 |
|---|---|---|
| 异常放量 | 分歧概率低于非放量 | 成交冲击被吸收,承接能力较强 |
| 异常放量 | 分歧概率高于非放量 | 放量包含信息冲击,投资者判断分化 |
| 异常缩量 | 分歧概率高于非缩量 | 流动性脆弱,边际交易容易改变定价 |
| 异常缩量 | 分歧概率低于非缩量 | 交易减少但原有共识仍然稳定 |
因子方向:异常放量通常代表信息、订单流或流动性冲击。如果冲击没有导致交易状态迅速分化,说明个股承接充分、价格对大额交易更有韧性,这种「冲击吸收能力」对应更高的未来收益 → 放量因子预期是正向因子;异常缩量后越容易激活交易分歧,表明潜在信息与流动性风险越高,股票未来的风险补偿收益越高 → 缩量因子预期是负向因子。
五步构造
第一步:成交状态与分歧状态
对股票 i、交易日 d、分钟 t,定义分歧状态:
D_{i,d,t} = \mathbb{1}\left(\gamma_{i,d,t} > 0\right) (\gamma 来自 分钟级稀疏响应状态) 定义成交状态: H_{i,d,t} = \mathbb{1}\left(q80_{i,d,t} > 0\right), \quad L_{i,d,t} = \mathbb{1}\left(q20_{i,d,t} < 0\right), \quad N_{i,d,t} = 1 - H_{i,d,t} - L_{i,d,t}
其中 H 代表异常放量、L 代表异常缩量、N 代表正常成交(q80 / q20 是条件分位回归的残差,见 条件分位数回归与异常成交)。
第二步:未来五分钟分歧命中
只从当前尚未分歧的分钟出发,即要求 \gamma_{i,d,t} \le 0。
定义未来五分钟分歧命中:
Y_{i,d,t} = \mathbb{1}\left(\max_{k=1,\ldots,5} D_{i,d,t+k} = 1\right) 也就是在 t+1, \ldots, t+5 中只要至少一次出现 \gamma > 0,则 Y = 1。 当前分钟 t 不包含在未来窗口内,且未来五个 \gamma 必须全部有效(有效 = \gamma、\varepsilon^{20}、\varepsilon^{80} 都已算出;五分钟位置均有效时该分钟才具备观察资格)。 ### 第三步:有效分钟数与命中次数 令 A_{i,d,t} 表示该分钟满足全部基础条件,即前 5 分钟均不为分歧时刻: A_{i,d,t} = \mathbb{1}\left(\gamma_{i,d,t} \le 0,\ \ \gamma_{i,d,t+1}, \ldots, \gamma_{i,d,t+5}\ \text{全部有效}\right)
对任意成交条件组 g = \{H_{i,d,t}, L_{i,d,t}\}:
n_{i,a,g} = \sum_t A_{i,d,t}\ \mathbb{1}(G_{i,d,t} = g) $$h_{i,a,g} = \sum_t A_{i,d,t}\ \mathbb{1}(G_{i,d,t} = g), Y_{i,d,t}
其中 $n$ 是有效分钟数、$h$ 是其中未来 5 分钟出现分歧的命中次数。 ### 第四步:伪计数概率 为了避免 $h=0$ 或 $h=n$ 导致概率取到 0 或 1,对「命中」和「未命中」分别增加 0.5 伪计数。以放量分歧命中为例: F_{\text{highVol_onset}} = \log\left[\frac{(h_{N+L} + 0.5)/(n_{N+L} + 1)}{(h_H + 0.5)/(n_H + 1)}\right] $$
其中对照组 N+L 是「正常成交 + 异常缩量」的分钟。
数值越大,意味着放量后的分歧激活概率低于非放量 —— 说明放量冲击吸收能力强;反之说明放量后更容易激活分歧,冲击吸收能力弱。
(缩量版对称:事件组改为 L,对照组改为 \bar L = N + H。)
第五步:基础因子的表现
| 因子 | IC 均值 | IC 标准差 | ICIR | 多空年化 | 多头年化 | 夏普 | 最大回撤 |
|---|---|---|---|---|---|---|---|
highVol_onset |
0.027 | 0.065 | 0.410 | 19.33% | 8.73% | 3.065 | −9.24% |
lowVol_onset |
0.028 | 0.065 | 0.426 | 20.17% | 8.93% | 3.141 | −5.31% |
多空净值长期上升,2026 年 4 月以来有过一段回撤。
基础算法的问题:样本太少
基础版的伪计数(0.5)只解决了「概率取到 0 或 1」,没有处理「一只股票一天只有有限个事件」带来的二项抽样噪声。
问题一:市场里个股概率波动大。 对 2026 年现有 116 个交易日的全天分钟数据统计:典型股票每日约有 34 个有效放量事件,放量后 5 分钟分歧激活概率约为 38.7%。假设各事件相互独立,原始事件率的二项抽样标准误仍约为 8.35 个百分点。即使两只股票的真实激活概率都为 38.7%,仅仅因为一天只有约 34 个有效事件,观测概率的 95% 随机波动区间大约是 38.7% ± 1.96 × 8.35% ≈ 22.3% ∼ 55.1%。
所以两只真实特征完全相同的股票,日内估计概率可能一个是 25%、另一个是 52% —— 基础算法容易把这种随机差异误认为股票特质。
问题二:股票自身样本个数少。 若股票当天只有 3 至 5 个事件样本,多出现或少出现一次分歧,就可能使原始事件率发生很大变化。
| 股票 | 放量样本与命中 | 原始概率 | 统计含义 |
|---|---|---|---|
| A | 0 / 4 | 0% | 样本很少,0% 不稳定 |
| B | 1 / 4 | 25% | 一次命中造成大幅跳变 |
| C | 0 / 40 | 0% | 样本较多,低概率证据更强 |
第一只和第二只只差一次命中,原始事件率却从 0% 跳到 25%;第一只和第三只原始事件率同为 0%,但 0/40 显然比 0/4 包含更强的统计证据。基础概率不能表达这种样本可信度差异。
修法:经验贝叶斯
引入贝叶斯方法后,股票的真实命中率被改写为「股票原始命中率」与「市场先验均值」的加权平均。
目标不是简单压低所有概率,而是:在股票自身样本不足时适度参考当天全市场同类成交状态的平均水平;样本越多,越多保留股票自身信息。
与本 wiki 其他页面的接口
- concepts/strategies/Volume-Price Event Cluster — 国盛金工的「事件簇」方法论:同样是枚举候选事件再筛,但评价标准是相对超额而非绝对冲击吸收
- concepts/strategies/Event-Driven Equity Strategy — 事件驱动选股的上位框架
- concepts/microstructure/永久与临时冲击的实证判别 — 「冲击被吸收」这个概念在冲击文献里的对应物;本页的 Y 实际上是一个分钟级的冲击吸收代理
- concepts/microstructure/平方根冲击定律 (Square-Root Impact Law) — 冲击随规模变化的规律;本页不问冲击多大,只问冲击后市场是收敛还是分歧
Open Questions
- 「未来 5 分钟」这个窗口是任意选的。论文未做窗口敏感性检验。1 分钟、10 分钟、30 分钟会给出完全不同的因子
- 伪计数 0.5 是任意的。更自然的选择是 Jeffreys 先验 \frac{1}{2}(同上)或 Haldane-Anscombe 修正 \frac{1}{2} 用于零事件——但对「h 接近 n」的情况,0.5 与其他取值差别很大
- 对照组的选择:放量因子用 N+L 做对照,但把「正常成交」和「异常缩量」混在一起做对照,本身引入异质性
- \gamma 的符号判断误差会传导:如果某分钟被误判为「尚未分歧」,它就成为候选触发点;误判率有多高,论文未估计
- T+1 与涨跌停:次日才能卖出,而因子预测的是「未来 5 分钟」——这个时间尺度与 A 股交易制度不匹配,可实现性需要单独论证
Sources
- summaries/202610-xingye-trading-anomaly-divergence-alpha/202610-xingye-trading-anomaly-divergence-alpha — 兴业金工《高频研究系列十》,2026-10-21