日内 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 的价格走势。

原版做法:

  1. 以连续下跌次数为出发点,刻画日内分钟级收益率的连续下跌次数序列,引出「快速下跌」特征
  2. 引入泊松分布,表示未来一段时间内能出现「快速下跌」的概率
  3. 构建因子 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%

三个读法:

  1. 所有维度的收益率和超额收益率均值都为负,负向收益率概率基本在 55% 以上 → 概率在时序上具备一定的风险预测能力
  2. 以 75% 为阈值,未来 3 或 5 日的负向收益率概率约为 56%,小市值统计结果类似;未来 3 或 5 日的负向超额概率达到约 60%,小市值中同样类似
  3. 随着阈值从 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