2、价差分析基础:价差的计算、价差图表的解读、价差的统计特征
做跨期套利,说白了就是吃价差这碗饭。你连价差怎么算、怎么看、有什么脾气都没摸透,那跟闭着眼开车没啥区别。我刚开始做套利那会儿,就吃过这个亏——光盯着两个合约的价格看,结果被假突破骗了好几次。后来才明白,价差本身才是你要分析的核心对象。
2.1 价差的计算:别小看这个减法
价差的计算公式,简单到离谱:
价差 = 近月合约价格 - 远月合约价格
嗯,就这么简单。但这里有个坑——方向一致性。我见过不少新手,今天用近月减远月,明天用远月减近月,图表画出来上蹿下跳,自己都看不懂。我个人习惯是:永远用近月减远月。这样价差为正,说明近月强于远月,市场看涨情绪浓;价差为负,说明远月更强,市场偏谨慎。
举个例子。假设螺纹钢期货:
- RB2401(近月)价格:3800元/吨
- RB2405(远月)价格:3750元/吨
- 价差 = 3800 - 3750 = +50元/吨
这个+50说明什么?近月比远月贵50块。市场觉得短期内螺纹钢供应偏紧,或者需求还不错。反过来,如果价差是-30,那就说明远月更贵,市场预期未来价格会涨。
2.2 价差图表的解读:一眼看出门道
价差图表,说白了就是把每天的价差连成一条线。你打开交易软件,把两个合约的价格相减,然后画出来,就是它了。但怎么读?我总结了三步走:
- 看趋势——价差是在走高还是走低?
- 看波动——价差上蹿下跳得厉害吗?
- 看极端值——有没有突然冲到历史高位或低位?
举个例子。我截一段自己以前做过的豆粕套利数据:
| 日期 | M2401价格 | M2405价格 | 价差 |
|---|---|---|---|
| 2023-10-09 | 3850 | 3820 | +30 |
| 2023-10-10 | 3860 | 3810 | +50 |
| 2023-10-11 | 3840 | 3830 | +10 |
| 2023-10-12 | 3870 | 3800 | +70 |
你看,价差从+30冲到+70,又回落到+10。这说明什么?近月合约在剧烈波动,远月相对稳定。如果你只看单个合约,可能觉得M2401涨了20点没啥,但价差图告诉你——近远月的关系已经发生了质变。
价差图表还有一种常见形态——均值回归。你想想看,价差不会无限扩大或缩小,它总会在某个区间内晃悠。比如上面豆粕的例子,价差长期在-20到+80之间波动。一旦超出这个范围,大概率会往回走。这就是套利交易的核心逻辑。
2.3 价差的统计特征:用数据说话
光看图不够,你得用数据量化。我一般会算这几个统计量:
- 均值(Mean)——价差的平均水平,告诉你“正常值”在哪
- 标准差(Std)——价差的波动程度,告诉你“正常范围”有多宽
- 偏度(Skewness)——价差分布是否对称,正偏说明极端正价差更多
- 峰度(Kurtosis)——价差是否容易出现极端值,高峰度意味着“黑天鹅”多
举个例子。我算过一组甲醇期货的价差数据:
| 统计量 | 数值 | 解读 |
|---|---|---|
| 均值 | +25元/吨 | 近月平均比远月贵25块 |
| 标准差 | 15元/吨 | 价差通常在10~40之间波动 |
| 偏度 | 0.8 | 正偏,说明正价差(近月强)的情况更多 |
| 峰度 | 4.2 | 高于正态分布的3,说明容易出现极端值 |
看到这个峰度4.2,我就知道——这品种的价差不能简单用正态分布去套。你按2个标准差设止损,可能经常被打脸。我个人习惯是,峰度超过3.5的品种,止损要放宽到2.5甚至3个标准差。
还有一个东西很重要——价差的平稳性。说白了,就是价差会不会越跑越偏,不回来了。如果价差是平稳的,那均值回归策略就有效;如果是不平稳的,那你做套利就是接飞刀。我一般用ADF检验来判断,代码长这样:
from statsmodels.tsa.stattools import adfuller
# 假设spread是你的价差序列
result = adfuller(spread)
print('ADF统计量:', result[0])
print('p值:', result[1])
# p值小于0.05,说明价差平稳
if result[1] < 0.05:
print('价差平稳,可以做均值回归套利')
else:
print('价差不平稳,小心趋势性行情')
嗯,这里要注意——p值小于0.05不代表一定能赚钱,它只说明价差在统计上会回归均值。但回归需要时间,你资金成本扛得住吗?你仓位管理跟得上吗?这些后面会细讲。
最后说一句。我见过太多人,上来就搞复杂的统计模型,结果连价差的基本特征都没摸清。你想想看,连它平时在哪个区间晃悠都不知道,你怎么设止损?怎么定仓位?所以,先把基础打牢,别急着上高阶武器。
公众号:蓝海资料掘金营,微信deep3321