混合高斯分布与跳价期因子 (Mixture Gaussian and Jump-Period Factors)

大白话:一只股票一天的分钟收益率,不是从同一条钟形曲线里抽出来的。它同时来自两种状态——大部分时间价格在公允价值附近小幅震荡,偶尔有一两段被大额买家硬推上去或砸下来。用两个正态分布的混合去拟合这一天,就能把这两段分开:权重大的那个是震荡期,权重小的那个是「跳价」期。跳价期那一段是大额投资者的手笔,于是它的均值 \mu_J 和权重 w_J 就成了两个因子。

来源:兴业证券经济与金融研究院(兴业金工)《高频研究系列三—收益率分布中的 Alpha(2)》,2022-05-04 对外发布,分析师郑兆磊 (S0190520080006)。回测区间 2014-09-01 至 2022-01-28。

一、为什么要引入混合分布

日内价格变动有两种状态

兴业金工的描述:

  • 震荡期:价格在相对合理的价位,没有额外投资者用过高或过低的买卖单推动,分钟内每位投资者都通过相近的市价单成交。分钟收益率集中在 0 附近,难以出现极端值,日内占比相对较大。
  • 「跳价」期:激进的大额投资者用大额买卖单在短时间内把价格推上去或砸下来。其他投资者发现价格异动后,为立刻建仓或获利而不断发出更高/更低价的单去匹配,这种追随进一步推高/压低价格,于是极端分钟收益率反复出现,日内占比相对较小。

这就是研究者早已熟知的收益率分布「尖峰(震荡)与厚尾(跳价)」现象。问题在于:基于正态分布假设的统计量(均值、方差、偏度)分不清这两种状态。

从 Clark (1973) 的子过程模型出发

Clark P K 在 1973 年引入混合高斯分布解释日度收益率分布(Econometrica 41: 135-155)。兴业金工把它搬到日内:

第一步:假设股票分钟收盘价服从随机过程

\frac{dP_t}{P_t} = \mu\,dt + \sigma g(t)\,dW_t

其中 \mu 和 \sigma 是漂移与波动,W 是标准布朗运动。g(t) 为常数时这就是标准的几何布朗运动;g(t) 是从属随机过程时,表示交易活跃度的变化会让股价的随机变动幅度不同。

第二步:推导出对数收益率

R_t = \ln\left(\frac{P_t}{P_{t-\Delta t}}\right) = \left(\mu - \frac{(\sigma g(t))^2}{2}\right)\Delta t + \sigma g(t)\,w_{\Delta t}

第三步:忽略时序关系,假设日内收益率服从两个正态分布的混合,其概率密度为

f(R_t \mid \theta) = w\,N(\mu_1, \sigma_1^2) + (1-w)\,N(\mu_2, \sigma_2^2)

u_1, \sigma_1^2, u_2, \sigma_2^2 是两个正态分布的参数,w 是各自在整体混合分布中的权重。实际计算中用 EM 算法(极大似然估计,含隐变量的概率模型参数估计)估计模型参数,共 5 个。

第四步(落到个股和日期上):震荡期对应 N_S(\mu_S, \sigma_S^2),「跳价」期对应 N_J(\mu_J, \sigma_J^2),混合密度为

f(R_t \mid \theta) = w_S\,N_S(\mu_S, \sigma_S^2) + w_J\,N_J(\mu_J, \sigma_J^2), \qquad w_S + w_J = 1, \quad w_J \in [0,\, 0.5)

w_J 被约束在 0.5 以下:跳价期是「小」权重分量,大额投资者不可能主导全天的分钟收益。

二、一个具体例子:603028.SH 赛福天(2022-01-28)

当天收涨约 3%。分钟收盘价显示:

  • 11 点前后经历明显「跳价」:开盘 5 分钟内上涨约 2%,随后大幅下跌约 2.9%,此后又经历短时间大幅上涨,最高 5 分钟内上涨 1.4%,盘中前相对低点最高上涨 5%
  • 午后进入明显震荡期,价格稳定在 12.4 元左右

5 分钟收益率分布图上「尖峰厚尾」非常明显。

只用正态分布统计:样本均值接近 0、样本标准差较小、偏度仅 0.17,完全分不清两个时期。

用混合高斯拟合:

分量 概率密度图颜色 均值 权重
震荡期 橙色(大权重、尖而窄) 0.01% 0.73
「跳价」期 蓝色(小权重、宽而平) 0.1% 0.27

拟合出两段之后,个股在日内不同阶段的收益特征就被分离出来了。

三、两个 capacity 因子

gmm_mean = \mu_J

跳价期分布的均值,同时代表大额投资者推动股价的方向和幅度。

经济逻辑:如果大额投资者这次推动的是上涨,那么当期股价已经高于公允价格,预计未来股价会跌回原先的价格;反之若推动的是下跌,当期股价低于公允价格,预计未来股价会涨回。所以:

gmm_mean 因子值越大,未来预期股价下跌幅度越大(这是一个反向因子;正号 \mu_J 代表推动上涨)。

gmm_mean2wgt = \mu_J / w_J

只除权重还不够——还要看幅度。兴业金工的论证是:

  • 若「跳价」期持续时间较短或相互对抗较少,说明大额投资者能在短时间内用大额买卖单把股价推动,操作能力较强
  • 若「跳价」期出现时间较长或存在较多反向跳价,说明该股当期受关注度高、大额投资者推动股价时容易受到干扰,需要长时间、大量的买卖单才能推动,操作能力较弱

\mu_J / w_J 就是「单位跳价时间份额下推动的幅度」——把「推动力」除以「所占的时间份额」,于是幅度越大、占比越小,因子值越大。

四、绩效

表 7(全股票池):

因子 多空收益率 多头收益率 空头收益率 年化波动率 夏普比率 最大回撤 胜率 换手率
gmm_mean2wgt 36.17% 16.64% 6.56% 5.67% 6.37 -7.58% 68.55% 29.70%
gmm_mean 48.88% 23.47% 10.24% 6.49% 7.53 -3.84% 67.22% 27.90%

表 8(日度 IC):

因子 IC 均值 IC 标准差 ICIR T 统计量
gmm_mean2wgt 3.52% 4.29% 0.82 34.9
gmm_mean 5.44% 6.04% 0.90 38.3

gmm_mean 是全篇表现最好的单因子之一:多空年化 48.88%、多头 23.47%、夏普 7.53、最大回撤仅 -3.84%、IC 均值 5.44%、ICIR 0.90。

五、特异性:与偏度因子撞车,然后正交化

相关性诊断

表 9(时序)与表 10(截面):

因子 nos_gs rtn_mean real_kurt real_skew real_var rv_up rv_down rv_umd
gmm_mean2wgt(时序) 0.26 0.36 0.13 0.48 0.23 0.28 0.24 0.30
gmm_mean(时序) 0.41 0.56 0.25 0.66 0.53 0.53 0.48 0.35
gmm_mean2wgt(截面) 0.44 0.49 0.32 0.56 0.34 0.35 0.19 0.50
gmm_mean(截面) 0.41 0.40 0.30 0.52 0.36 0.35 0.21 0.45
  • gmm_mean2wgt 与各常见收益率因子的时序与截面相关性几乎都在 0.4 以下(时序 0.13–0.48,截面 0.19–0.56)——最干净的一个。
  • gmm_mean 与 real_skew 时序相关 0.66、截面 0.52,偏度是主要撞车对象。
  • 两个 capacity 因子彼此时序相关在 0.7 左右。

正交化后的 gmm_meanN

把 gmm_mean 与 real_skew 正交化得到 gmm_meanN。正交化后相关性显著下降(表 11/12):

因子 real_skew 时序 real_skew 截面 real_var 时序 real_var 截面
gmm_mean 0.66 0.52 0.53 0.36
gmm_meanN 0.49 0.03 0.44 0.28

正交化没有毁掉因子,只是削掉了一块收益(表 13/14):

因子 多空收益率 多头收益率 空头收益率 年化波动率 夏普比率 最大回撤 胜率 换手率 IC 均值 ICIR
gmm_mean 48.88% 23.47% 10.24% 6.49% 7.53 -3.84% 67.22% 27.90% 5.44% 0.90
gmm_meanN 32.47% 19.14% 1.72% 5.60% 5.80 -3.78% 64.17% 31.19% 3.93% 0.77

注意空头端:正交化后多空从 48.88% 掉到 32.47%,空头收益从 10.24% 掉到 1.72%——掉的几乎全是空头贡献。多头端只从 23.47% 降到 19.14%。原文的措辞是「因子表现出优秀的特异性」,但更准确的说法是:这个因子的空头端本来就主要在赚偏度因子的钱。

六、稳健性:中证 800 与不同成交价

中证 800 股票池(表 23/24):

因子 多空收益率 多头收益率 年化波动率 夏普比率 最大回撤 IC 均值 ICIR T 统计量
gmm_mean2wgt 17.06% 10.92% 7.67% 2.22 -11.52% 1.95% 0.35 14.8
gmm_mean 29.89% 19.23% 6.93% 4.31 -3.80% 3.84% 0.57 24.0

不同成交价下的多空表现(夏普):

因子 最后 5 分钟均价 开盘 30 分钟均价 全天均价
gmm_mean2wgt 30.98% / 5.26 16.86% / 3.12 19.89% / 3.79
gmm_mean 44.80% / 6.86 26.74% / 4.33 31.03% / 5.37

IC 几乎不受成交价影响(表 28,gmm_mean):最后 5 分钟均价 5.43% / ICIR 0.90,开盘 30 分钟均价 4.13% / ICIR 0.71,全天均价 4.78% / ICIR 0.81。组合收益被冲击成本吃掉一大截,IC 却基本不动——这是判断因子是否「可交易」和是否「有信息」的一个有用区分。

七、复现时要自己补的东西

  1. EM 的具体实现:初值、收敛判据、是否对每只股票每天独立拟合、拟合失败时怎么办——原文都没说。每天对几千只股票各做一次五参数 EM 的计算量与稳定性都是实打实的工程问题。
  2. w_J 落到 [0, 0.5) 的约束怎么实现——是投影、拒绝采样还是重参数化,原文未写。
  3. 两个分量的排序约定:EM 对两个分量的标签是可交换的(交换 \mu_S \leftrightarrow \mu_J 后似然不变)。必须有一个规则把「小权重的那支」定为跳价期,否则 \mu_J 的符号会随机翻转,因子直接失效。原文没有明说这个约定,这是一个实打实的复现陷阱。
  4. gmm_mean2wgt 的解读在原文里有内部张力:同一段既说「因子值越大说明操作能力越强,后续获得的股价修复越明显」,又说「因子值越大,未来预期股价下跌幅度越大」。两句话需要把「能力」和「方向」分开才不矛盾(能力用 |{\mu_J}|/w_J 衡量,方向用 \mu_J 的符号),但原文没有做这个区分。

与本 wiki 的接口

  • 跳价/震荡的分野,在本 wiki 里有一个更「微观结构」的对应物:大价格变动的四个机制(临界点抵消 / 订单簿空隙 / 流动性反向补偿 / 限价单反馈)——那篇问「为什么会出现大波动」,本页问「怎么从一天的收益分布里把大波动的那一段单独摘出来」。
  • 「大额投资者推动价格」这一角色,与 机构与散户的订单流差异(拆出机构流的结构比例)方向一致,但方法完全不同:那篇需要账户分类数据,本篇只需要分钟收益率。
  • 混合分布(非高斯)本身的方法论背景,见 订单不平衡分布——那里同样记录了「不能用高斯假设做推断」。
  • 大单与母单的信息泄露,见 大单交易的信息泄露。
  • 同一份研报的第 2 章: 极端收益因子与投资者心理承受能力;第 4 章(日内弹性,同一套混合分布拟合): 日内弹性因子。

Cross-ref