5、统计套利理论基础:统计套利定义与分类、配对交易与多资产套利、协整与均值回复、平稳性检验(ADF检验、KPSS检验)
5.1 统计套利到底是个啥?
说实话,刚入行那会儿,我对“统计套利”这四个字有点发怵。听起来像是数学家和物理学家才能玩的东西。但干久了你会发现,它没那么玄乎。
统计套利,说白了就是利用统计规律来赚钱。它不是无风险套利——那种教科书里写的“同一资产在不同市场价差归零”的完美机会,现实中几乎不存在。统计套利赌的是:价格关系在统计上会回归均值。
我个人的理解是:你找到两个或者多个资产,它们的历史价格走势有某种“默契”。一旦这种默契被打破,你就进场,赌它们会重新“和好”。
举个例子,茅台和五粮液。虽然它们不是同一个东西,但长期来看,它们的价格比值往往在一个区间内波动。如果比值突然拉大,我就做空贵的、做多便宜的。这就是统计套利的基本逻辑。
5.2 统计套利的分类
我习惯把统计套利分成两大类:
- 配对交易(Pair Trading):只涉及两个资产。这是最经典、最容易上手的形式。
- 多资产套利(Multi-Asset Arbitrage):涉及三个或更多资产。比如篮子交易、因子套利等。
你想想看,配对交易就像“二人转”,简单直接。多资产套利就像“交响乐”,需要协调更多乐器,但效果可能更稳定。
我在项目中遇到过一个问题:做配对交易时,选的两个股票相关性很高,但突然有一天其中一个公司发了并购公告,相关性瞬间崩塌。那次亏了不少。所以后来我做多资产套利时,会刻意加入一些低相关性的资产来分散风险。
5.3 配对交易:最经典的统计套利
配对交易的步骤,我一般这么走:
- 选对:找到两个历史相关性高的资产。比如同行业的龙头和龙二。
- 算价差:计算它们的价格比值或价差序列。
- 定阈值:根据价差的历史分布,设定开仓和平仓的阈值。通常用均值±几倍标准差。
- 执行:价差突破阈值时开仓,回归均值时平仓。
嗯,这里要注意:阈值设得太窄,交易太频繁,手续费吃掉利润;设得太宽,机会少,资金利用率低。我个人的经验是,先用1.5倍标准差作为初始值,然后根据回测结果微调。
5.4 协整与均值回复:统计套利的数学根基
配对交易能赚钱,背后依赖的是协整(Cointegration)和均值回复(Mean Reversion)这两个概念。
协整是什么意思?简单说:两个非平稳的时间序列,它们的线性组合是平稳的。比如,两个股票价格都是随机游走的(非平稳),但它们的价差却在一个固定均值附近波动(平稳)。这就叫协整。
均值回复就更直观了:价差偏离均值后,有回归的趋势。这是统计套利能赚钱的根本原因。
我刚开始做的时候,以为只要相关性高就能做配对。后来发现相关性高不等于协整。两个完全不相关的随机游走序列,也可能算出很高的相关性(伪回归)。所以,协整检验是必须的。
5.5 平稳性检验:ADF检验与KPSS检验
要判断一个序列是否平稳,或者两个序列是否协整,我们需要做平稳性检验。最常用的两个方法是ADF检验和KPSS检验。
5.5.1 ADF检验(Augmented Dickey-Fuller Test)
ADF检验的原假设是:序列存在单位根(即非平稳)。如果p值小于0.05,就拒绝原假设,认为序列是平稳的。
我个人的习惯是:在做配对交易前,先对价差序列做ADF检验。如果p值小于0.01,我才放心开仓。
# Python代码示例:ADF检验
from statsmodels.tsa.stattools import adfuller
import numpy as np
# 假设price_spread是价差序列
result = adfuller(price_spread)
print(f'ADF统计量: {result[0]}')
print(f'p值: {result[1]}')
if result[1] < 0.05:
print('价差序列平稳,可以尝试配对交易')
else:
print('价差不平稳,小心伪回归')
5.5.2 KPSS检验(Kwiatkowski-Phillips-Schmidt-Shin Test)
KPSS检验和ADF正好相反。它的原假设是:序列是平稳的。如果p值小于0.05,就拒绝原假设,认为序列非平稳。
为什么需要两个检验?因为ADF检验对某些类型的非平稳(比如趋势平稳)不敏感。我一般两个都做:ADF显著且KPSS不显著,我才认为序列是真正平稳的。
# Python代码示例:KPSS检验
from statsmodels.tsa.stattools import kpss
result_kpss = kpss(price_spread, regression='c')
print(f'KPSS统计量: {result_kpss[0]}')
print(f'p值: {result_kpss[1]}')
if result_kpss[1] > 0.05:
print('KPSS检验支持平稳性假设')
else:
print('KPSS检验不支持平稳性假设')
5.6 知识体系框架图
下面这张图总结了本章的核心逻辑。你可以把它当作一个思维导图来用。
5.7 本章小结
统计套利不是玄学,它建立在扎实的统计检验之上。我个人觉得,初学者最容易犯的错误就是跳过平稳性检验,直接拿价格序列做回归。结果呢?看起来漂亮的回测曲线,实盘一跑就崩。
记住三个关键点:
- 协整是基础:没有协整,就没有均值回复,就没有统计套利。
- 检验要双重:ADF和KPSS一起上,别偷懒。
- 阈值要合理:别太窄,也别太宽,回测和实盘要一致。
好了,这一章就到这里。下一章我们会深入讲如何构建一个完整的配对交易策略,包括选股、参数优化和风险管理。到时候我会分享一些我踩过的坑,保证让你少走弯路。