2. 策略理论基础:统计套利原理、均值回归理论、协整与相关性概念入门
好,咱们正式开始聊策略的理论基础。说实话,很多人一听到「理论」两个字就想打瞌睡。我当年也是。但后来踩过几次坑才发现,不懂理论就上手做配对交易,基本等于闭着眼睛开车。
这一章,我会把三个核心概念掰开揉碎讲清楚:统计套利、均值回归、还有协整与相关性。你不需要有金融背景,只要懂一点概率统计就行。
2.1 统计套利:不是预测涨跌,是找「价差」的便宜
先问一个问题:你觉得做交易最难的是什么?
我个人觉得,最难的是「预测方向」。明天大盘是涨是跌?茅台是涨是跌?没人能百分百说准。但统计套利换了个思路——我不猜方向,我只赌「价差会回来」。
举个例子。假设有两家公司,A和B,业务高度相似。正常情况下,A比B贵5块钱。但今天因为某个消息,A突然比B贵了20块。这时候,我卖空A、买入B,赌的就是这个价差会缩回到5块附近。
这就是统计套利的本质:利用历史统计规律,捕捉价差的短期偏离。
我在项目中遇到过最典型的案例是银行股配对。招商银行和兴业银行,长期价差稳定在某个区间。但2020年有一次,价差突然拉大到历史极值。我当时按统计套利逻辑进场,结果价差继续扩大,差点爆仓。嗯,后来我加了止损,才活下来。
2.2 均值回归:万物皆可「回归」吗?
均值回归,说白了就是一句话:涨多了会跌,跌多了会涨。
听起来像废话?但它在金融市场里确实存在。比如一只股票,长期市盈率在15倍左右。如果某天跌到10倍,大概率会慢慢涨回去;如果涨到25倍,大概率会跌回来。
为什么会这样?因为市场情绪会过度反应。恐慌时卖过头,贪婪时买过头。但长期来看,基本面会拉回价格。
不过,这里有个大坑——均值回归不是必然发生的。
所以,做配对交易时,我习惯先检查两个股票的基本面是否还相似。如果一家公司转型了,或者被收购了,原来的均值就不适用了。
2.3 协整与相关性:别把「相关」当「因果」
这是新手最容易搞混的地方。我刚开始做配对交易时,也犯过这个错。
相关性衡量的是两个变量是否「一起动」。比如,茅台涨的时候,五粮液也涨,它们相关性很高。但相关性高不代表它们会「回归」。
协整则不同。它衡量的是两个变量之间是否存在长期稳定的线性关系。即使短期偏离,长期也会拉回来。
举个例子:
- 相关性高但不协整:一个醉汉牵着一条狗。醉汉往东走,狗也往东走,但狗可能越跑越远,永远不会回到醉汉身边。
- 协整:醉汉和狗之间有一根弹性绳。狗跑远了,会被绳子拉回来。
做配对交易,我们找的是「有弹性绳」的股票对,而不是「一起散步」的股票对。
2.4 如何检验协整?用代码说话
理论说完了,咱们上点干货。我一般用Python的statsmodels库做协整检验。最常用的是Engle-Granger两步法。
第一步:用OLS回归估计两个股票的价格关系。
第二步:检验残差是否平稳(用ADF检验)。
代码长这样:
import statsmodels.api as sm
import pandas as pd
# 假设df_pairs有两列:stock_a和stock_b
# 第一步:OLS回归
X = sm.add_constant(df_pairs['stock_a'])
model = sm.OLS(df_pairs['stock_b'], X).fit()
residuals = model.resid
# 第二步:ADF检验残差平稳性
from statsmodels.tsa.stattools import adfuller
adf_result = adfuller(residuals)
print(f'ADF统计量: {adf_result[0]:.4f}')
print(f'p值: {adf_result[1]:.4f}')
if adf_result[1] < 0.05:
print('残差平稳,存在协整关系')
else:
print('残差不平稳,不存在协整关系')
注意:p值小于0.05,说明残差平稳,两个股票存在协整关系。这时候才能做配对交易。
2.5 一张图看懂本章知识体系
下面这张SVG图,把统计套利、均值回归、协整与相关性的关系画清楚了。你一看就明白。
2.6 避坑总结:三个常见错误
最后,我把自己踩过的坑总结一下,你直接拿去用:
| 错误类型 | 具体表现 | 我的建议 |
|---|---|---|
| 把相关当协整 | 只看相关系数高就做配对 | 必须做ADF检验,p值小于0.05才用 |
| 忽略基本面变化 | 公司重组后还按旧均值交易 | 每季度检查一次基本面,变了就换对 |
| 不止损硬扛 | 价差越拉越大,还幻想回归 | 设2倍标准差止损,到了就砍 |
嗯,这一章的内容就到这。理论是枯燥的,但它是你后续实战的根基。下一章我们会聊如何用数据筛选股票对,到时候你会感谢今天啃下来的这些概念。