主成分残差交易
Avellaneda & Lee (2010) 的统计套利流程:
- 解释收益:对每只股票,用前 个主成分(或行业 ETF)回归其日收益,吸收系统性成分;
- 残差建模:对回归残差 建 OU 过程,估计回归速度与半衰期;
- 交易残差:残差偏离 时反向建仓,回归 时平仓。
直观理解:把股票价格里的"市场共性"剥掉,剩下的个体偏离如果呈现均值回归,就交易这个偏离。等价于一个"对市场中性化的相对价值"策略。
主成分数量的选择
Section titled “主成分数量的选择”的选择影响残差的平稳性:
- 太小:残差仍含系统性成分,回归"回归"的是市场本身的风险暴露,价差与市场同涨跌;
- 太大:残差被过度清洗,信号变弱、噪声占比升高;
- 实践:前 10–15 个主成分已能解释 40–60% 的方差(截面股票数几百时),用滚动窗口重估主成分与暴露——主成分本身随时间漂移,见协整与价差构造。
import numpy as np
def residual_scores(R: np.ndarray, K: int = 15) -> np.ndarray: """R: T×N 收益矩阵。返回每只股票最新残差的 z 分数。""" Xc = R - R.mean(axis=0) U, S, Vt = np.linalg.svd(Xc, full_matrices=False) F = U[:, :K] * S[:K] # 前K个主成分 resid = Xc - F @ Vt[:K] # 残差 cum = np.cumsum(resid, axis=0) # 残差累计 → 价差 return (cum[-1] - cum[-252:].mean(0)) / cum[-252:].std(0)2007 年 8 月:拥挤的代价
Section titled “2007 年 8 月:拥挤的代价”2007 年 8 月的"量化崩盘"是残差类策略的集体教训:多家多空市场中性基金同时平仓,仓位相似的策略互相踩踏,几天内出现历史级亏损——每个单独的策略都"正常",集体行为导致崩溃。
教训:
- 容量有限:残差信号的容量天然小于因子类策略,规模上去后冲击成本非线性增长,见最优执行与交易成本;
- 拥挤是系统性风险:监控自己的策略与同类(其他中性基金、相似信号)的持仓重叠度;
- 去杠杆是连锁的:别人平仓造成的价差爆炸不给你时间等"回归"。
量化中的用法
Section titled “量化中的用法”- 主成分数量滚动重估, 的敏感性写入稳健性检查;
- 严格的成本与冲击模型是前提,不是事后修正;
- 残差信号的规模上限按冲击成本的拐点设定。
- 残差信号的容量有限,拥挤时集体去杠杆造成极端亏损
- 主成分数量的选择影响残差的平稳性,需滚动重估
- 需要严格的成本与冲击模型,规模按冲击成本拐点设定