4、配对选择策略:基本面驱动选择、统计驱动选择、流动性筛选、波动率筛选
做跨品种套利这么多年,我最大的体会是:选对配对,交易就成功了一半。很多人一上来就盯着价差图看,觉得哪个顺眼就做哪个。嗯,这其实挺危险的。我早期也犯过这种错,后来亏了几次才明白——配对选择是个系统工程,得从四个维度来把关。
今天我就把这四个维度掰开揉碎了讲给你听。说白了就是:基本面驱动、统计驱动、流动性筛选、波动率筛选。这四个东西,缺一个都不行。
核心观点:配对选择不是找两个走势相似的品种,而是找两个经济逻辑上相关、统计上稳定、交易上可行的品种。这三条缺一不可。
4.1 基本面驱动选择:先问自己,这两个品种为什么该一起动?
我个人习惯,做任何配对之前,先画一张逻辑图。比如螺纹钢和热卷,它们都跟房地产、基建高度相关。再比如豆粕和菜粕,都是饲料原料,替代性很强。这种逻辑关系,是配对能长期有效的基础。
为什么会这样?因为基本面驱动的配对,本质上是在交易产业逻辑。你想想看,如果两个品种在产业链上处于同一环节,或者互为替代品,它们的价差就会有一个合理的波动区间。超出这个区间,市场就会自动纠偏。
我在项目中遇到过这样一个案例:2019年,有人想做铁矿石和螺纹钢的配对。从统计上看,它们相关性确实高。但仔细一分析,铁矿石是原料,螺纹钢是成品,中间还有个焦炭和炼钢利润。这个配对其实是在交易钢厂利润,而不是单纯的价差回归。后来我建议他改成螺纹钢和热卷,逻辑更直接,效果也好得多。
基本面驱动的选择,我一般看三个东西:
- 产业链位置:两个品种是不是同一环节?比如豆油和棕榈油,都是食用油,替代性强。
- 驱动因素重叠度:它们受同样的宏观因素影响吗?比如铜和铝,都跟工业生产和基建相关。
- 供需结构相似性:它们的供给端和需求端是不是类似?比如焦煤和焦炭,一个上游一个下游,但逻辑上紧密相连。
我的小技巧:每次做配对前,先写一段话,解释为什么这两个品种的价差会回归。如果写不出来,说明这个配对逻辑不清晰,最好别碰。
4.2 统计驱动选择:让数据告诉你,它们是不是真的一起动
基本面逻辑有了,接下来就得用数据验证。统计驱动选择,说白了就是用数学工具检验两个品种的相关性和协整性。我常用的方法有两个:
4.2.1 相关性分析
这个最简单,算个皮尔逊相关系数就行。但我得提醒你,相关性高不代表能套利。我见过有人拿比特币和特斯拉做配对,相关性确实高,但那是市场情绪驱动的,不是基本面逻辑。一旦情绪反转,价差可能永远回不来。
我个人习惯,相关性至少要0.7以上,但也不能太高。超过0.95的,反而要小心——可能是伪相关。
4.2.2 协整检验
这个才是核心。协整检验告诉你,两个品种的价差是不是长期稳定的。我一般用Engle-Granger两步法,或者Johansen检验。代码很简单,但解读要小心。
# Python示例:Engle-Granger协整检验
import statsmodels.api as sm
import numpy as np
# 假设price1和price2是两个品种的价格序列
def cointegration_test(price1, price2):
# 第一步:回归
X = sm.add_constant(price1)
model = sm.OLS(price2, X).fit()
residuals = model.resid
# 第二步:对残差做ADF检验
adf_result = sm.tsa.stattools.adfuller(residuals)
p_value = adf_result[1]
return p_value < 0.05 # p值小于0.05,说明存在协整关系
# 使用示例
if cointegration_test(price1, price2):
print("这两个品种存在协整关系,可以做配对套利")
else:
print("小心!它们可能不是长期稳定的配对")
避坑指南:我曾经遇到过一组品种,协整检验通过了,但实际交易时价差就是不回归。后来发现,是因为样本期选得太短,刚好赶上两个品种走势一致。所以,样本期至少要覆盖一个完整的市场周期,比如牛熊都包含。
4.3 流动性筛选:能进能出,才是好配对
这个点,很多人会忽略。你想想看,如果两个品种流动性不好,你建仓时滑点大,平仓时出不来,那再好的策略也是白搭。
我一般用三个指标来筛选流动性:
| 指标 | 说明 | 我的标准 |
|---|---|---|
| 日均成交量 | 过去20个交易日的平均成交量 | 至少10万手以上 |
| 买卖价差 | 当前盘口的买一卖一价差 | 不超过0.1% |
| 持仓量 | 总持仓量,反映市场深度 | 至少50万手以上 |
嗯,这里要注意:流动性不是一成不变的。比如临近交割月,很多品种的流动性会骤降。我建议只做主力合约,或者次主力合约。别碰那些冷门合约,哪怕价差再诱人。
我的经验:有一次我看中一个配对,价差已经到了历史极值,但流动性很差。我犹豫了一下,还是没做。结果第二天价差就回归了,但那个品种全天只成交了200手,根本进不去。所以,流动性是第一位的。
4.4 波动率筛选:价差不动,你就赚不到钱
最后一个维度,是波动率。你想想看,如果价差一直在一个很窄的区间里波动,那你的套利空间就很小,甚至不够覆盖交易成本。
我一般用价差的年化波动率来衡量。具体做法是:
- 计算价差序列的日收益率
- 计算日收益率的标准差
- 乘以sqrt(252)得到年化波动率
我个人习惯,年化波动率至少要10%以上。低于这个数,说明价差波动太小,不适合做套利。当然,也不能太高。超过50%的,说明价差极不稳定,风险太大。
# Python示例:计算价差波动率
import numpy as np
def calculate_spread_volatility(price1, price2):
# 计算价差
spread = price1 - price2
# 计算日收益率
daily_returns = spread.pct_change().dropna()
# 计算年化波动率
annual_vol = daily_returns.std() * np.sqrt(252)
return annual_vol
vol = calculate_spread_volatility(price1, price2)
if 0.1 <= vol <= 0.5:
print(f"价差年化波动率{vol:.2%},适合做套利")
else:
print("波动率不合适,建议换配对")
总结一下:配对选择策略,就是四个步骤——先看基本面逻辑,再用统计验证,然后检查流动性,最后评估波动率。每一步都不能省。我见过太多人,只看统计结果就冲进去,结果被流动性坑了,或者被波动率坑了。
好了,这一章的内容就到这里。记住,好的配对是成功的一半。下一章我们会讲具体的价差交易执行策略,到时候再细聊。