日内 V 型特征与闪电崩盘概率改进 (Intraday V-Shape and Improved Flash Crash Probability)
大白话:股价在日内短时间内大跌然后又涨回来,走出一个深「V」——兴业金工在《时序信息中的 Alpha》(系列六)里把这种形态叫做闪电崩盘。原来统计它只数「连续跌了几分钟」,本篇发现这样太粗:同样连跌 10 分钟的两只股票,一只是小幅阴跌,一只是放量暴跌,风险完全不同。
所以本篇做了两件事:第一,把「V 型」的下跌腿和上涨腿都量出来,而且下跌腿要减去上涨腿;第二,改用连续分布而不是泊松分布来算概率。
改进后的
flashCrashProbV:Rank IC 0.031(原版只有 0.014),多空年化 20.72%,夏普 3.08。
一、先看原版做得不够好的地方
原版因子长什么样
《时序信息中的 Alpha》(系列六,2023-06-29)首次提出「闪电崩盘」:流动性资产的价格在日内短时间出现大幅超跌,同时后续允许价格出现恢复,即在日内出现深 V 的价格走势。
原版做法:
- 以连续下跌次数为出发点,刻画日内分钟级收益率的连续下跌次数序列,引出「快速下跌」特征
- 引入泊松分布,表示未来一段时间内能出现「快速下跌」的概率
- 构建因子
flashCrashProb
截至 2024 年 3 月底,该因子已在样本外跟踪近 1 年。回测全时段:Rank IC 均值 0.014,多空夏普 2.68。
| 因子 | IC 均值 | IC 标准差 | ICIR | T 统计量 |
|---|---|---|---|---|
flashCrash |
0.014 | 0.052 | 0.27 | 12.93 |
| 因子 | 多空年化 | 多头年化 | 空头年化 | 年化波动率 | 夏普 | 最大回撤 | 多头换手率 |
|---|---|---|---|---|---|---|---|
flashCrashProb |
21.61% | 8.74% | −10.26% | 4.62% | 2.68 | −4.84% | 10.99% |
原版因子本身有一个别处没有的性质:它除了能在截面上排序股票,还能在时序上刻画流动性资产的未来风险——这是「概率化」相对于「数值化」的独有好处。
批评一:只数次数,丢掉了幅度
具体例子(报告图 16、图 17):左侧两只股票的收益率序列在下跌次数统计中均为连续 10 次下跌(10:00 至 10:10)。但从幅度看,蓝线的下跌幅度更大。后续走势也不同:蓝线在下跌后出现一定幅度的上涨,红线则相对震荡,最终价格相对接近。
在现有统计中,两者在连续下跌和连续上涨次数统计中结果相对一致——但显然蓝线的走势更符合「V 型下跌」的特征。
批评二:忽略了下跌过程中的放量
具体例子(报告图 18):除了收盘价序列之外,蓝线在下跌过程的放量特征更加明显(看图 17 的分钟累计成交量,蓝线斜率明显更陡)。
结论:现有的全局次数统计法难以精准刻画出类似「V 型走势」这样的典型特征。
二、改进步骤 1:刻画「V 型特征」
V 型特征包含三个维度的信息:股价走势的幅度、持续时间和成交量特征。
第 1 步:分钟量价幅度序列
在每一分钟,计算分钟级对数收益率和分钟级成交量占比数据,相乘得到量价幅度序列 rv:
rv = \left[ rtn_t \cdot \frac{volume_t}{\sum_t volume_t} \cdot 10^4 \right]_{t=1,2,\ldots,240}
其中 rtn_t 是分钟收益率,volume_t / \sum_t volume_t 是该分钟成交量占全日成交量的比重,10^4 是放大系数。
读法:更大的成交量、更大的振幅会得到更大的量价幅度。这一步把「跌得多」和「跌得放量」合并成了一个数。
第 2 步:累计分钟量价幅度序列
沿用之前报告的想法,计算同号累加值,但这次是对量价幅度序列累加:若一个量价幅度为负数,则开始统计连续量价幅度为负数之和,直至下一个量价幅度非负则停止计数,该个数就是一个累计量价幅度样本点:
rvCum_i = \sum_{t=k}^{K} rv_t \cdot \mathbb{1}\{condition\}
其中 condition 表明前序累加的量价幅度同号。
由此得到多个连续下跌量价幅度样本点,该数据应当为正负号相接的一组序列。
第 3 步:刻画「V 型」特征
V 型特征的定义:股价大幅度下跌、小幅度上涨,且下跌幅度大于上涨幅度的一段走势。
根据之前得到的累计量价幅度,计算「为负数、为正数的两者之和」,筛选和为负数的数据,取绝对值作为最终的「V 型」走势特征 rvV:
rvV = \left[ \lvert rvCum_{i-1} + rvCum_i \rvert \cdot \mathbb{1}\{condition\} \right]
condition = \bigl( rvCum_{i-1} < 0 \bigr),\quad \bigl( rvCum_i > 0 \bigr),\quad \bigl( rvCum_{i-1} + rvCum_i < 0 \bigr)
三个条件合起来的意思:
- rvCum_{i-1} < 0:前一段(下跌腿)是累计的负量价幅度
- rvCum_i > 0:当前段(上涨腿)是累计的正量价幅度
- rvCum_{i-1} + rvCum_i < 0:两腿相加仍为负,即下跌幅度大于上涨幅度
取绝对值后,得到 V 型特征的幅度。
除此之外,还能得到每个「V 型」走势的持续分钟数,记为 timeV。
用前面的例子验证
两只股票前 10 分钟均下跌,在原先的计算中连续下跌次数均为 10,不存在差异。在新算法下:
| 下跌腿累计量价幅度(10:10) | 上涨腿累计(10:12) | V 型走势特征 | 持续分钟数 | |
|---|---|---|---|---|
| 序列 1 | −11.2 | +2.5 | 8.68 | 12 |
| 序列 2 | −23.9 | +4.9 | 19.05 | 12 |
(8.68 = \lvert -11.2 + 2.5\rvert,19.05 = \lvert -23.9 + 4.9\rvert)
新算法能清晰区分出这两种走势差异,进而找出 V 型走势特征更明显的 2 号股票。注意两者持续分钟数完全相同(都是 12)——原来只数次数的话两者完全无法区分。
三、改进步骤 2:「V 型特征」基础因子
根据每只股票的 V 型走势特征序列,计算:
| 因子 | 定义 | IC 均值 | IC 标准差 | ICIR | T 统计量 |
|---|---|---|---|---|---|
negV_mean |
V 型走势特征的均值 | 0.028 | 0.074 | 0.38 | 17.70 |
negV_max |
V 型走势特征的最大值 | 0.031 | 0.067 | 0.46 | 21.49 |
negVwgt_mean |
时间加权后 V 型特征的均值 | 0.021 | 0.073 | 0.29 | 13.64 |
negVwgt_max |
时间加权后 V 型特征的最小值 | 0.028 | 0.063 | 0.44 | 20.76 |
时间加权:把 V 型走势特征除以对应的持续分钟数。持续时间越短且原始走势特征越大,V 型走势特征越强烈,对应数值越大。逻辑与原始版本一致。
| 因子 | 多空年化 | 多头年化 | 空头年化 | 年化波动率 | 夏普 | 最大回撤 | 多头换手率 |
|---|---|---|---|---|---|---|---|
negV_mean |
19.93% | 8.79% | −10.12% | 7.55% | 2.64 | −7.88% | 7.73% |
negV_max |
20.62% | 9.89% | −9.51% | 6.75% | 3.06 | −6.85% | 9.49% |
negVwgt_mean |
16.68% | 7.42% | −8.51% | 7.11% | 2.35 | −7.86% | 7.46% |
negVwgt_max |
20.36% | 9.52% | −9.46% | 6.28% | 3.24 | −6.18% | 9.40% |
方向:均值或最大值越大,说明 V 型特征的走势越明显,股价日内风险较大,预期收益较低——所以是负向因子(因子值大 → 预期收益低)。最终在日度时序上取过去 20 日均值。
四、改进步骤 3:把 V 型特征概率化
为什么不能用泊松分布
在前序研究中,引入泊松分布刻画概率,「闪电崩盘」概率有别于其他高频因子:它本身概率化的含义不仅能够在截面上对股票进行排序,同时还能在时序上刻画流动性资产的未来风险。
但现在情况变了:V 型特征由此前的正整数值变为了实数值,并不满足泊松分布的实际含义和分布特征。
所以需要换一种刻画方式:在未来一天内,发生「V 型走势特征数值小于等于某一阈值」的概率是多少。
因此改用连续性分布刻画「闪电崩盘」概率。
概率的具体含义
该概率是在表达:对于某一只股票而言,最为明显的「V 型」走势特征能够超过全市场前 25% 的概率为多少。数值越大则说明未来发生「闪电崩盘」的概率越大。
大白话:拿全市场当天「V 型特征」最明显的那 25% 的股票当门槛,算这只股票下一天也这么明显(超过这个门槛)的概率。
步骤 4:概率的时序风险规避能力
先不看因子值,先看这个概率本身能不能预警风险。
设置发出警示信号的阈值分别是 60%、75%、85%——概率超过阈值时该股被给予警示信号。统计其未来 1 日、3 日和 5 日的区间收益率和区间超额收益率,并进一步统计时序上所有被给予警示信号的股票的收益率均值、超额收益率均值以及负向收益率样本数占比。
另外,由于小市值股票的「崩盘」概率从逻辑层面上概率较高,进一步以流通市值 25% 分位点作为范围,单独统计对应阈值下对小市值股票的预测能力。
结果(图 21,全部为负):
| 统计量 | 60% | 60%(后 25% 市值) | 75% | 75%(后 25% 市值) | 85% | 85%(后 25% 市值) |
|---|---|---|---|---|---|---|
| 1D 收益率均值 | −0.2% | −0.3% | −0.4% | −0.6% | −0.6% | −1.0% |
| 3D 收益率均值 | −0.4% | −0.4% | −0.9% | −1.1% | −1.5% | −1.9% |
| 5D 收益率均值 | −0.5% | −0.5% | −1.3% | −1.3% | −2.3% | −2.6% |
| 1D 超额收益率均值 | −0.2% | −0.3% | −0.4% | −0.6% | −0.7% | −1.0% |
| 3D 超额收益率均值 | −0.5% | −0.5% | −1.0% | −1.1% | −1.6% | −2.0% |
| 5D 超额收益率均值 | −0.7% | −0.7% | −1.5% | −1.5% | −2.5% | −2.8% |
| 1D 负收益率概率 | 49.7% | 50.0% | 51.5% | 52.5% | 53.1% | 55.3% |
| 3D 负收益率概率 | 52.8% | 52.2% | 56.0% | 55.8% | 58.2% | 59.4% |
| 5D 负收益率概率 | 53.3% | 52.4% | 56.8% | 56.2% | 60.0% | 60.7% |
| 1D 负超额收益率概率 | 57.2% | 57.2% | 58.4% | 59.5% | 59.1% | 61.4% |
| 3D 负超额收益率概率 | 58.3% | 58.2% | 60.9% | 61.5% | 62.4% | 63.7% |
| 5D 负超额收益率概率 | 58.9% | 58.7% | 61.4% | 61.5% | 64.4% | 64.7% |
三个读法:
- 所有维度的收益率和超额收益率均值都为负,负向收益率概率基本在 55% 以上 → 概率在时序上具备一定的风险预测能力
- 以 75% 为阈值,未来 3 或 5 日的负向收益率概率约为 56%,小市值统计结果类似;未来 3 或 5 日的负向超额概率达到约 60%,小市值中同样类似
- 随着阈值从 60% 提到 85%,预测能力逐步提升,呈现明显的单调性
因子:flashCrashProbV
在日度层面取过去 20 日均值,作为最终的「V 型特征」下的「闪电崩盘」概率因子 flashCrashProbV。
| 因子 | IC 均值 | IC 标准差 | ICIR | T 统计量 |
|---|---|---|---|---|
flashCrashProbV |
0.031 | 0.067 | 0.46 | 21.56 |
| 因子 | 多空年化 | 多头年化 | 空头年化 | 年化波动率 | 夏普 | 最大回撤 | 多头换手率 |
|---|---|---|---|---|---|---|---|
flashCrashProbV |
20.72% | 9.97% | −9.51% | 6.73% | 3.08 | −6.73% | 9.77% |
对照原版:flashCrashProbV 的 Rank IC 均值 0.031,同期此前闪电崩盘因子均值为 0.014——IC 提高了一倍以上,而多空收益基本持平(20.72% vs 21.61%),夏普从 2.68 升到 3.08。
五、把三张表放在一起看
| 因子 | IC 均值 | ICIR | 多空年化 | 夏普 | 方向 |
|---|---|---|---|---|---|
negV_max |
0.031 | 0.46 | 20.62% | 3.06 | 负向 |
flashCrashProbV |
0.031 | 0.46 | 20.72% | 3.08 | 负向 |
flashCrashProb(原版) |
0.014 | 0.27 | 21.61% | 2.68 | 负向 |
值得留意:新因子的 IC 翻倍、夏普提升,但多空年化几乎没变(20.72% vs 21.61%)。也就是说改进主要体现在信号质量(IC/ICIR)而不是组合收益上——原版 21.61% 的多空收益里,有相当部分来自组合端的对冲,而不是因子本身的信息量。
与本 wiki 其他页面的接口
- 闪电崩盘概率因子 — 本页的直接前作:那一页是系列六首提的原版
flashCrashProb(数连续下跌段数 + 泊松分布 + 15 日概率标准差),本页是它在本篇里的改进版;两页的因子名、构造口径、绩效都要对照读 - 闪崩机制 — 术语必须区分:那一页讲的是 2010-05-06 CME 闪崩的市场机制(卖压 75,000 张 vs 中介承接上限 6,000 张),本页的「闪电崩盘」是卖方研究里的一个技术指标名,指日内「深 V」形态,与 2010 年那次事件无关
- 极端行情订单流 — 极端事件前四量升高、事后幂律松弛、价格部分回吐;本页从形态而非订单流统计的角度捕捉同一类事件
- 大价格变动的四个机制 — 深 V 里的那一跌到底属于哪个机制(临界点抵消 / 订单簿空隙 / 流动性反向补偿 / 限价单反馈),本页不区分,只把它当形态来统计
- HHIt — HHIt 度量日内方差在时间上的集中度(类似纯扩散基线 3n/(n+2))。本页的 V 型特征度量的是下跌与上涨两段的方向性组合,两者互补:HHIt 关心「能量是否集中」,V 型关心「集中的是跌还是涨、跌完有没有涨回来」
- 日内反转的买卖价差跳动 — 「跌完涨回来」在分钟尺度上的另一种解释(买卖价差跳动),本页不排除这一机制
- 分钟级稀疏响应状态 — 系列十里把分钟分成收敛/分歧/线性三态;本页的 V 型是一种具体的分歧形态(先大幅分歧后收敛)
Open Questions
- 连续分布具体是哪个没写:报告说「使用更为贴切的连续性分布刻画闪电崩盘概率」,但没有说明是哪个分布(logistic?正态?经验分布?),也没给参数估计方式。这是复现的最大障碍
- 「全市场前 25%」这个门槛的横截面计算方式未说明:是每天重新计算横截面分位数,还是用某个固定的历史分布?报告只说「全市场前 25%」
- 阈值 60/75/85% 的选择依据未说明:这三个阈值是事后挑的还是有先验依据?从图 21 看,阈值越高预测能力越强,那么为什么不直接用 95%? 报告没有回答
rv里的 10^4 放大系数是任意的:只为让数值可读,但会影响熵/概率估计的数值稳定性- V 型识别只看相邻两段:
rvV只用 rvCum_{i-1} 和 rvCum_i 两段。多腿震荡(跌-涨-跌-涨)的走势无法被完整刻画 - 「大跌后允许恢复」没有对称处理:条件里明确要求
rvCum_{i-1} + rvCum_i < 0,所以纯粹的深 V 反弹(跌得比涨得多)才计入,涨回去超过下跌幅度的「倒 V」不算——这个方向性是有意的,但没有做对称性检验 timeV之后没有单独做成因子:持续时间被折进negVwgt_*里,报告没有给出「纯持续时间」的独立因子表现- A 股 T+1 制度下的可实现性:因子是日频的,但形态发生在日内。日内 V 型形态信息在 T+1 才交易,是否还有可交易价值,报告未讨论
Sources
- summaries/202406-xingye-association-information-alpha/202406-xingye-association-information-alpha — 兴业金工《高频研究系列八—关联信息中的 Alpha》,2024-06-05
- 前序报告:《高频研究系列六—时序信息中的 Alpha》,2023-06-29(
flashCrashProb的原始定义)