3. 价差分析:套利交易的核心密码
做商品套利,说白了就是在玩价差。你想想看,单边交易赌的是价格涨跌,而套利交易赌的是价差回归。这两者有本质区别。我个人习惯把价差比作一根橡皮筋——拉得太远,迟早会弹回来。
这一章,我们就来彻底搞懂价差。从定义到计算,从图表解读到均值回归,再到驱动因素。嗯,这些都是实战中绕不开的硬功夫。
3.1 价差的定义与计算
价差,就是两个相关品种的价格之差。公式很简单:
价差 = 合约A价格 - 合约B价格
但这里有个坑——合约A和B怎么选?
我刚开始做套利时,犯过一个低级错误:用近月合约和远月合约直接相减,没考虑换月移仓。结果价差图上一堆跳空缺口,根本没法分析。后来我学乖了,统一用主力连续合约,或者自己拼接的自定义连续合约。
常见的价差类型有三种:
| 类型 | 示例 | 说明 |
|---|---|---|
| 跨期价差 | 螺纹钢RB2401 - RB2405 | 同一品种,不同月份 |
| 跨品种价差 | 热卷HC2401 - 螺纹RB2401 | 相关品种,同月份 |
| 跨市场价差 | 沪铜CU2401 - 伦铜LME03 | 同一品种,不同市场 |
计算时要注意合约乘数。比如螺纹钢每手10吨,热卷也是10吨,那价差直接相减没问题。但如果是豆粕(10吨/手)和豆油(10吨/手),虽然乘数一样,但价格单位不同,需要做标准化处理。
3.2 价差走势图的解读
价差走势图,说白了就是一条随时间波动的曲线。但这条曲线里藏着大量信息。
我一般会看三个维度:
- 趋势:价差是向上走还是向下走?长期趋势反映基本面变化。
- 波动率:价差震荡的幅度大不大?波动率越高,套利机会越多,但风险也越大。
- 极端值:价差有没有出现过离谱的高点或低点?这些往往是套利开仓的黄金位置。
举个例子。2022年我做了一笔豆粕-菜粕价差套利。当时价差从800元/吨一路飙到1200元/吨。我一看,这不对劲。历史上这个价差很少超过1000元。于是我果断做空价差(卖豆粕买菜粕)。结果呢?三个月后价差回到600元。这笔单子赚得挺舒服。
为什么会这样?因为价差走势图会告诉你:均值回归是大概率事件。
3.3 价差的均值回归特性
均值回归,是套利交易的理论基石。你想想看,如果两个品种长期存在稳定的比价关系,那价差就应该围绕某个均值上下波动。一旦偏离太远,市场力量会把它拉回来。
但这里有个关键问题:均值是固定的吗?
不是。均值会漂移。比如,随着养殖业对豆粕需求的变化,豆粕-菜粕价差的均值可能从800元慢慢移到1000元。如果你还用旧均值做交易,就会一直亏钱。
我建议用滚动均值或指数加权移动平均(EWMA)来动态计算均值。代码实现很简单:
import pandas as pd
# 假设价差数据在 series 中
window = 60 # 60个交易日
rolling_mean = series.rolling(window=window).mean()
ewma_mean = series.ewm(span=window, adjust=False).mean()
有了动态均值,我们就可以计算价差的Z-score:
z_score = (series - rolling_mean) / series.rolling(window=window).std()
当Z-score超过2或低于-2时,通常意味着价差已经严重偏离。这时候开仓,胜率会高很多。
3.4 价差波动的驱动因素
价差不会无缘无故地波动。驱动因素可以分为三类:
- 基本面因素:供需变化、库存数据、政策调整等。比如,豆粕和菜粕的价差,很大程度上取决于两者的替代性和饲料需求。
- 资金面因素:主力资金的移仓、套保盘的介入、投机资金的炒作。我记得有一次,某大资金在螺纹钢上大量做多,导致螺纹-热卷价差瞬间拉大。这种资金驱动的波动,往往来得快去得也快。
- 情绪面因素:市场恐慌、过度乐观、突发事件。比如,2020年疫情初期,所有商品价差都剧烈波动。那时候做套利,风险极高,但机会也极大。
我个人习惯把驱动因素画成一张图,方便自己理清逻辑:
你看,这三类因素不是孤立的。很多时候,基本面变化会引发资金面反应,资金面又会放大情绪面。比如,一个超预期的库存数据(基本面),可能引发大资金入场(资金面),然后散户跟风(情绪面),最终导致价差剧烈波动。
做套利交易,我的经验是:先判断当前的主导因素是什么。如果是基本面驱动,那价差回归可能需要较长时间,但确定性高。如果是资金面或情绪面驱动,那回归速度可能很快,但风险也大。
好了,价差分析的核心内容就这些。记住,价差不是数字,它是市场逻辑的投影。读懂了价差,你就读懂了市场的一部分。
公众号:蓝海资料掘金营,微信deep3321