协整与价差构造
两个非平稳的价格序列 ,若存在系数 使线性组合
平稳(见平稳性与单位根),则称两者协整。含义:两者各自漂移,但被一个长期均衡关系拴住—— 的偏离会回归。配对交易交易的不是收益,而是对均衡的偏离。
Engle–Granger 两步法
Section titled “Engle–Granger 两步法”- 对 做 OLS 回归,得 ;
- 对残差 做 ADF 检验——拒绝单位根即协整。
简单直观,但有对称性问题:以 A 回归 B 与以 B 回归 A 得到的 不同,检验结论也可能不同。且只适用于两个序列。
Johansen 检验
Section titled “Johansen 检验”基于 VAR 的系统方法,直接检验协整关系的个数(秩),适用于三个及以上的资产池:先定秩,再估计协整向量。多资产配对(一个空头对多个多头)用 Johansen,两两配对用 Engle–Granger 足够。
对冲比率的估计
Section titled “对冲比率的估计”| 方法 | 特点 |
|---|---|
| OLS | 简单;截面上 随样本窗口漂移 |
| 总体最小二乘(TLS) | 把价格的"测量误差"计入,更稳健 |
| 卡尔曼滤波 | 把 当作随时间漂移的状态,在线更新 |
协整关系不是常量: 随时间漂移意味着固定对冲比率会逐渐失配。卡尔曼滤波把比率更新变成管道的一部分:
import numpy as np
def kalman_beta(pa: np.ndarray, pb: np.ndarray, q: float = 1e-5, r: float = 1e-2): """β 随时间漂移的卡尔曼滤波;q: 状态噪声,r: 观测噪声""" beta, P = np.zeros(len(pb)), 1.0 betas = np.zeros(len(pb)) for t, x in enumerate(pb): # 预测 P = P + q # 更新(观测模型 pa ≈ β·pb) K = P * x / (x**2 * P + r) beta = beta + K * (pa[t] - beta * x) P = P * (1 - K * x) betas[t] = beta return betas样本外断裂:最常见的死法
Section titled “样本外断裂:最常见的死法”协整关系在样本外经常失效——公司层面事件(重组、行业逻辑变化)会永久打破均衡。处理:
- 入池时优先有经济逻辑的关系(同行业、同供应链、控股关系),纯统计显著的配对不要;
- 持仓期间滚动复检协整(ADF + 系数漂移),断裂即退出,不等价差"回归";
- 单笔价差交易设时间止损:半衰期数倍的时间未回归,认亏离场,见OU 过程与半衰期。
量化中的用法
Section titled “量化中的用法”- 两两配对用 Engle–Granger,多资产用 Johansen;
- 对冲比率用卡尔曼滤波在线更新,不做固定比率;
- 入池标准:经济逻辑 + 滚动协整检验 + 时间止损三件套。
- 协整关系在样本外经常失效,需持续监控
- 对冲比率随时间漂移,卡尔曼滤波可在线更新
- 经济逻辑(同行业、同供应链)比统计显著更重要