第二章:价差分析——套利交易的核心密码
做跨市场套利这么多年,我越来越觉得,价差分析就是整个交易体系的基石。说白了,你连价差都搞不明白,还谈什么套利?今天我就把这块硬骨头啃下来,带着大家从定义到实战,一步步吃透。
2.1 价差的定义:不只是简单的减法
价差,数学上就是两个相关资产价格的差。比如沪铜和伦铜,你拿沪铜主力合约价格减去伦铜折算后的价格,得到的就是价差。
但这里有个坑——价差不是随便减的。我刚开始做的时候,直接拿人民币价格减美元价格,结果发现价差波动大得离谱。后来才意识到,汇率、合约单位、交割日期都得对齐。
标准价差公式:
价差 = P₁ - k × P₂
其中 k 是调整系数,包含汇率、合约乘数、单位换算等
举个例子,沪铜(5吨/手)和伦铜(25吨/手)的价差计算:
# 伪代码示例
沪铜价格 = 68000 元/吨
伦铜价格 = 8500 美元/吨
汇率 = 7.2
# 调整后的伦铜价格
伦铜_人民币 = 8500 × 7.2 = 61200 元/吨
# 价差
价差 = 68000 - 61200 = 6800 元/吨
嗯,这里要注意,不同交易所的报价单位可能不一样。有的按吨,有的按磅,有的按盎司。我建议统一换算成同一单位再算价差,否则你看到的价差可能只是单位换算的假象。
2.2 价差的统计特征:摸清它的脾气
价差不是随机游走的。它有自己的脾气和规律。我个人习惯先看三个核心统计量:均值、标准差、偏度。
| 统计量 | 含义 | 实战意义 |
|---|---|---|
| 均值 | 价差的长期平均水平 | 判断当前价差是否偏离正常范围 |
| 标准差 | 价差的波动幅度 | 设定开仓和平仓的阈值 |
| 偏度 | 价差分布的不对称性 | 判断套利机会的偏向性 |
我记得有一次分析豆粕和菜粕的价差,发现偏度是负的。这意味着价差更容易出现极端负值。后来果然遇到一次价差暴跌,提前设好的止损单救了我一命。
实战小技巧:用滚动窗口计算统计量,比如过去60天的滚动均值和滚动标准差。这样能捕捉到价差结构的动态变化。
2.3 价差的均值回归特性:套利的理论基础
为什么价差会均值回归?说白了,是因为两个资产之间存在经济上的约束关系。比如同一商品在不同市场的价差,如果太大,套利者就会进场,把价差拉回来。
我测试过几十个品种的价差序列,发现大部分都有均值回归特性,但回归的速度和强度不一样。
- 强回归品种:股指期货跨期价差、黄金跨市场价差
- 弱回归品种:某些农产品跨品种价差、受政策影响的品种
怎么量化均值回归?我常用的是半衰期这个概念。半衰期越短,回归越快。
# 计算半衰期(简化版)
import numpy as np
from statsmodels.tsa.stattools import adfuller
def half_life(spread):
# 对价差做ADF检验
adf_stat, p_value, _, _, critical_values, _ = adfuller(spread)
# 如果p值小于0.05,说明有均值回归特性
if p_value < 0.05:
# 用OLS估计回归速度
spread_lag = spread[:-1]
spread_diff = np.diff(spread)
# 回归系数
beta = np.polyfit(spread_lag, spread_diff, 1)[0]
# 半衰期
hl = -np.log(2) / beta
return hl
else:
return None
你想想看,如果半衰期是5天,意味着价差偏离均值后,大约5天能回归一半。这个信息对持仓周期的设定很有帮助。
避坑指南:我曾经遇到一个品种,历史数据显示均值回归很好,但突然有一天价差就一去不返了。后来发现是基本面发生了根本性变化。所以,均值回归不是永恒的,要结合基本面判断。
2.4 价差的波动率分析:风险管理的核心
波动率决定了你的套利策略能承受多大的价差波动。我个人习惯把波动率分成两种:
- 历史波动率:基于过去数据计算的波动率
- 隐含波动率:从期权价格反推的波动率
对于价差套利,我更关注历史波动率,因为它直接反映价差的实际波动情况。
波动率分析的核心用途:
- 设定止损:波动率越大,止损要设得越宽
- 仓位管理:波动率低时加大仓位,波动率高时减小仓位
- 入场时机:波动率收缩时入场,扩张时离场
# 计算价差的滚动波动率
def rolling_volatility(spread, window=20):
# 计算对数收益率
log_returns = np.log(spread[1:] / spread[:-1])
# 滚动标准差
rolling_std = pd.Series(log_returns).rolling(window).std()
# 年化波动率
annual_vol = rolling_std * np.sqrt(252)
return annual_vol
我记得有一次做原油跨期套利,价差波动率突然飙升到历史高位的3倍。按照我的规则,应该减仓甚至平仓。但当时贪心,觉得价差偏离均值很多,想多赚点。结果波动率继续扩大,最后止损出局。嗯,从那以后,我再也不敢忽视波动率信号了。
核心观点:价差分析不是静态的。均值、标准差、波动率都在变。你要做的是动态跟踪,而不是拿历史数据刻舟求剑。
知识体系总览
下面这张图是我自己整理的价差分析知识框架,建议保存下来反复看:
这张图把价差分析的四个维度串起来了。从定义出发,到统计特征,再到均值回归和波动率,最后落地到实战应用。你每次做价差分析时,都可以拿这张图对照一下,看看自己漏了哪个环节。
好了,价差分析这块就讲到这里。记住,分析不是为了分析而分析,而是为了找到那个胜率高的入场点。下一章我们会聊具体的套利策略构建,到时候这些分析工具就能派上大用场了。