高频因子的多空组合与有效性检验

一句话:高频因子日频调仓、换手高,不能照搬低频的「多头前 10% 减空头后 10%」检验法。兴业金工改成全市场按因子值分配多空权重,用一组 PnL 指标加样本内外稳定性筛因子,并用多空收益率的时序相关性(而不是截面相关性)判断两个因子是否在押同一种风险。

起点:IC 半衰期更短

报告对照两支股票的两种方差:

\text{高频-已实现方差}=\frac{1}{T}\sum_{t=1}^{T}\left[\sum_{i=1}^{N}\left(r_{M,i,t}\right)^2\right], \qquad \text{低频-收益率方差}=\frac{1}{T}\sum_{t=1}^{T}\left(r_{D,t}-\overline{r_{D,t}}\right)^2

r_{M,i,t} 是第 t 天第 i 分钟的收益率,r_{D,t} 是日收益率。2014-08-30 至 2021-08-31 日频调仓回测(图 6、图 7):两者原始 IC 相近(约 5%);已实现方差第 1 期 IC 约 5.1%,第 6 期跌到约 2.5%,第 20 期约 1.7%;日收益率方差第 1 期约 5.3%,到第 16 期才降到约 2.6%。报告的结论是高频因子快约 10 天到达 IC 的一半。年化多空同样衰减更快:已实现方差从约 41% 降到约 8%,日收益率方差从约 20% 降到约 10%(右轴)。

所以高频因子必须日频调仓评估,周频或月频会错过信息,也会低估换手成本。

多空组合:全市场按因子值配权

低频的 Top/Bottom 10% 等权法算出的因子收益偏高,但两端风险特征不匹配,波动与回撤都大。替代方案是单期优化:

\max_w \frac{\lambda}{\sigma(\lambda)} \qquad s.t.\quad \mathbf{w}^{T}\mathbf{1}=0,\ \mathbf{w}^{+}\mathbf{1}^{T}=1,\ \mathbf{w}^{-}\mathbf{1}^{T}=-1

约束即多空各 100%、零净暴露。若因子值 F 与当期因子收益正相关,\lambda=\mathbf{w}^{T}F,最优解 \mathbf{w}^*\propto F。以中位数分成 F^+、F^- 两组后,权重就是组内归一化的因子值:

w_i^{+}=\frac{F_i^{+}}{\sum F^{+}},\qquad w_i^{-}=\frac{F_i^{-}}{\sum F^{-}}

最小例子:因子值 [3,1,-2],中位数 1。多头组权重 [0.75,0.25],空头组权重 -1。因子值越大,下注越重。这一构造摊薄了收益也摊薄了波动,因此后面「年化 >10%」偏低而「夏普 >3」偏高。

第一组检验:因子值截面分布

因子值应近似正态,否则少数极端值会主导组合。检查办法是看各分位数区间的权重加和——标准正态下,多头前 10% 的权重和应为 22.09%:

分位 标准正态分位点 权重占比
shtq10 -1.6449 22.09%
shtq20 -1.2816 14.90%
shtq30 -1.0364 11.84%
shtq40 -0.8416 10.16%
shtq50 -0.6745 9.12%
lngq50 0.6745 9.12%
lngq60 0.8416 10.16%
lngq70 1.0364 11.84%
lngq80 1.2816 14.90%
lngq90 1.6449 22.09%

22.09% 的来历:90% 到 95% 分位之间占多头总权重的 (1.6449-1.2816)/1.6449。极值常偏离 5%/95% 分位,报告把检查放宽到 1%/99% 分位(\pm2.3263),对应占比 29.29%。

第二组检验:PnL 指标与通过标准

指标 标准
年化多空收益率 >10%
多头收益率 >5%
空头收益率 不单独设阈值
夏普比率 >3.00
最大回撤 <10.00%
胜率 >51.00%
ICIR 不设阈值
IC >1.5%
日换手率 <40%

此外要求样本内至少 7 年、样本外至少半年有效,内外差异不超过 20%,以抑制过拟合;日换手上限 40% 是为了可投资性。

第三组检验:三种相关性

高频因子日频调仓,回测期内有足够长的日收益序列。报告认为时序相关性是判断因子特异性最重要的指标,截面相关性与交易相关性只作辅助。

时序相关性是两个因子多空 PnL 向量的相关系数:

\rho_{\text{time-series}}=\frac{\mathrm{cov}\left(R_{F_i},R_{F_j}\right)}{\sigma\left(R_{F_i}\right)\sigma\left(R_{F_j}\right)}

判读:低于 0.3 为不同因子;0.3–0.5 表示共享部分风险,需再分类;高于 0.5 为同一种因子。

截面相关性是每日用因子截面值算相关、再对 d 天平均;交易相关性把因子值换成截面换手 Tor=F_i^{(t)}-F_i^{(t-1)} 后同样计算:

\rho_{\text{cross-section}}=\sum_{t=1}^{d}\rho^{(t)}_{\text{cross-section}}/d, \qquad \rho_{\text{trading}}=\sum_{t=1}^{d}\rho^{(t)}_{\text{trading}}/d

经验要求:截面相关性小于 0.5,交易相关性大于 0.1。后者设下限,是为了避免两个因子数值不同但买卖同一批股票、实盘互相挤占容量。

为什么截面相关性 ≠ 时序相关性

两个投资者每期随机买股票,权重 F_A、F_B 独立同分布且与收益率 R 独立。截面相关性为 0、各自期望收益为 0,但时序相关性等于 1:

\rho_{\text{time-series}}=\frac{E[F_A R F_B R]}{\sigma(F_A R)\sigma(F_B R)}=\frac{E[(FR)^2]}{\sigma(FR)\sigma(FR)}=1

两人盈亏来自同一个市场波动,只是选股随机。所以「截面上正交」不等于「收益来源不同」。

截面对冲为什么消不干净

对动量因子 MOM 回归取残差,F_H=F-\frac{[F,MOM]}{[MOM,MOM]}MOM。记 \beta=[F,MOM]/[MOM,MOM],并假设 \sum F=\sum MOM=1,则残差需乘 1/(1-\beta):

F_H=F+\frac{\beta}{1-\beta}(F-MOM), \qquad \mathbf{R}_{F^H}=\mathbf{R}_F+\mathbf{B}\left(\mathbf{R}_F-\mathbf{R}_{MOM}\right)

其中 \mathbf{B}=\mathrm{diag}\left(\frac{\beta_t}{1-\beta_t}\right)。对冲后收益只是在原收益附近移动,动量表现好时因子收益反而下降。若 \mathbf{B}=b 不随时间变化且三者波动率近似相等:

\rho^H\approx\frac{1}{1-\beta}\rho-1

代入数值(图 11):

\beta 1/(1-\beta) 对冲前 \rho 对冲后 \rho^H
0.50 2.00 0.60 0.20
0.55 2.22 0.65 0.44
0.60 2.50 0.70 0.75
0.65 2.86 0.75 1.00
0.70 3.33 0.80 1.00

后两行的 1.00 是近似公式算出大于 1 后截断的结果。结论:截面对冲会降低时序相关性但不会消除,且截面相关性越高残留越多(\beta=0.6 时反而从 0.70 升到 0.75)。所以用来对冲的应是预期收益接近零、截面相关性适中的风险因子。

与 wiki 的接口