一、统计套利基础:从概念到数学根基
大家好,我是你们的老朋友。今天咱们聊聊统计套利——这个在量化圈里被说烂了、但真正吃透的人不多的东西。
先说说我自己的经历。几年前我刚入行时,听到「统计套利」四个字,第一反应就是「高大上」。后来在实盘里摔过几次跟头,才明白这东西说白了就是——找两个长得像的股票,等它们走散了再拉回来。
1.1 什么是统计套利?
统计套利,英文叫 Statistical Arbitrage,简称 Stat Arb。它不是那种「闭眼捡钱」的玩法,而是基于概率和统计的套利策略。
核心思想很简单:利用资产价格之间的统计关系,当这种关系出现暂时偏离时,押注它会回归。
举个例子。我盯过工商银行和建设银行,这两家都是大行,业务结构相似,股价走势长期看是「同涨同跌」的。但偶尔会出现工行涨了2%、建行只涨了0.5%的情况。这时候,统计套利者会怎么做?
- 做多建行(买便宜的)
- 做空工行(卖贵的)
- 等它们价差回归后,两边平仓,赚取差价
你看,这跟传统的「低买高卖」不太一样。它赌的是价差会回归均值,而不是价格本身会涨会跌。
关键点:统计套利不是无风险的。它赌的是「大概率事件」,但小概率的极端行情(比如黑天鹅)照样能让你亏得怀疑人生。
1.2 统计套利 vs 无风险套利
很多人容易把这两个概念搞混。我刚开始做的时候也犯过这个错——以为统计套利就是无风险套利的升级版。其实完全不是一回事。
| 对比维度 | 无风险套利 | 统计套利 |
|---|---|---|
| 风险特征 | 理论上零风险 | 有风险,但概率可控 |
| 收益来源 | 市场定价错误(瞬时) | 价差回归均值(统计规律) |
| 持仓时间 | 极短(秒级到分钟级) | 中等(小时级到天级) |
| 典型例子 | 同一股票在不同交易所的价差 | 两只同行业股票的价差 |
| 容量 | 极小,很快被填平 | 较大,可以容纳大资金 |
无风险套利,说白了就是「市场犯傻的时候你捡漏」。比如同一只股票在A股和港股价格不一样,你同时买入便宜的、卖出贵的,锁死利润。这种机会转瞬即逝,而且资金容量极小。
统计套利呢?它赌的是「市场会回归理性」。但市场有时候就是不理性——我见过价差偏离后继续扩大,硬生生扛了三个月才回归的案例。嗯,那三个月,账户回撤了15%,晚上根本睡不着。
避坑指南:我曾经以为统计套利就是「低风险」的代名词,结果在2015年股灾期间,很多统计套利策略直接崩了。为什么?因为市场流动性枯竭,价差根本不回归,反而越拉越大。记住:统计套利不是无风险,它只是风险可控。
1.3 统计套利的数学基础:协整与平稳性
好了,聊完了概念,咱们得动点真格的了。统计套利能不能赚钱,核心在于两个数学概念:平稳性和协整。
你想想看,如果两个股票的价格走势完全是随机游走,那它们之间的价差也是随机的,你根本没法预测。但如果你发现它们的价差是「平稳」的——也就是围绕某个均值上下波动,不会越跑越远——那就有套利空间了。
1.3.1 平稳性(Stationarity)
平稳性,简单说就是时间序列的统计性质不随时间变化。具体来说:
- 均值是常数
- 方差是常数
- 自协方差只与时间间隔有关,与具体时间点无关
我习惯用「橡皮筋」来比喻:平稳的时间序列就像一根被拉住的橡皮筋,你把它扯远了,它总会弹回来。非平稳的序列呢?就像一只没拴绳的狗,你永远不知道它下一秒会跑到哪里去。
在Python里,我们可以用ADF检验来判断一个序列是否平稳。代码很简单:
from statsmodels.tsa.stattools import adfuller
# 假设 price_spread 是两只股票的价格差
result = adfuller(price_spread)
print(f'ADF统计量: {result[0]:.4f}')
print(f'p值: {result[1]:.4f}')
# p值小于0.05,说明序列平稳
if result[1] < 0.05:
print('价差序列是平稳的,可以做统计套利')
else:
print('价差序列非平稳,需要进一步处理')
个人经验:我建议不要只看p值。有时候p值刚好在0.05附近,我会再跑一个KPSS检验做交叉验证。两个检验结果一致,我才敢放心用。
1.3.2 协整(Cointegration)
协整这个概念,说白了就是:两个非平稳的时间序列,它们的线性组合是平稳的。
举个例子。A股票和B股票各自都是随机游走的(非平稳),但如果你把它们的价格按一定比例组合起来(比如 A - 0.8*B),这个组合的价差却是平稳的。那我们就说A和B是协整的。
为什么协整对统计套利这么重要?因为:
- 如果两个序列是协整的,它们的价差会围绕均值波动
- 当价差偏离均值时,大概率会回归
- 这就是我们开仓和离场的依据
检验协整关系,最常用的是Engle-Granger两步法。Python里用起来也很方便:
from statsmodels.tsa.stattools import coint
# 假设 stock1 和 stock2 是两只股票的价格序列
score, pvalue, _ = coint(stock1, stock2)
print(f'协整检验p值: {pvalue:.4f}')
if pvalue < 0.05:
print('两只股票存在协整关系,可以构建配对交易策略')
else:
print('没有协整关系,别硬凑')
注意:协整关系不是一成不变的。我见过一些股票对,前两年协整关系很稳定,第三年突然就断了。为什么?可能是公司基本面变了,或者行业政策调整了。所以定期重新检验协整关系,是每个统计套利策略的必修课。
1.4 知识体系总览
说了这么多,咱们用一张图来总结一下本章的核心逻辑:
这张图把咱们今天讲的内容串起来了。从统计套利的定义出发,对比无风险套利,然后深入到数学基础——平稳性和协整,最后落到具体的检验方法上。你想想看,整个逻辑链条是不是很清晰?
1.5 本章小结
聊了这么多,我帮你捋一下重点:
- 统计套利:利用资产间的统计关系,押注价差回归均值
- 与无风险套利的区别:统计套利有风险,但容量大、机会多
- 平稳性:价差序列的统计性质不随时间变化,是套利的前提
- 协整:两个非平稳序列的线性组合是平稳的,这是配对交易的理论基础
- 检验方法:ADF、KPSS、Engle-Granger两步法,都是你的工具箱
我个人习惯,每次拿到一个新的股票对,第一件事就是跑协整检验。p值不过关,后面再花哨的策略都是白搭。记住:数学基础不牢,地动山摇。
好了,这一章就到这里。下一章咱们聊聊如何构建一个完整的统计套利策略——从数据获取到回测,再到实盘部署,一步步带你走一遍。
公众号:蓝海资料掘金营,微信deep3321