高频因子的多空组合与有效性检验
一句话:高频因子日频调仓、换手高,不能照搬低频的「多头前 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 的接口
- 这套框架是后续系列的检验标准;系列七在此基础上做风险识别,见 高频因子风险识别 (Top-Down and Bottom-Up)。
- 原文摘要:summaries/202201-xingye-high-frequency-overview/202201-xingye-high-frequency-overview
- 研报 entity:entities/Xingye 2022 High Frequency Overview