第2章 价差分析:价差的概念、计算方法与图表解读

做期货套利,说白了就是玩价差。

我刚开始接触套利时,总觉得这玩意儿很玄乎。后来发现,价差就是两个合约价格之间的差值。简单吗?简单。但就是这简单的差值,藏着无数交易机会。

2.1 价差的概念

价差,英文叫Spread。在期货市场里,它特指两个相关合约的价格之差。

举个例子。螺纹钢有RB2301和RB2305两个合约。假设RB2301价格是4000元/吨,RB2305是4050元/吨。那么价差就是:

价差 = RB2305 - RB2301 = 4050 - 4000 = 50元/吨

注意,价差有方向性。我习惯用「近月减远月」或者「远月减近月」,但一定要统一。我个人习惯用「远月减近月」,这样价差为正时,说明远月更贵,市场看涨。

价差的核心逻辑是什么?

两个合约的价格,受共同因素影响,比如供需、宏观政策。但它们也有各自的特点,比如到期时间不同、持仓成本不同。价差就是把这些共同因素抵消掉,只留下「相对价值」的变化。

你想想看,如果两个合约完全一样,价差应该稳定在某个值附近。但现实中,价差会波动。波动就是机会。

2.2 价差的计算方法

价差计算本身不复杂,但要注意几个细节。

2.2.1 基本公式

对于两个期货合约A和B,价差计算公式为:

价差 = Price_A - Price_B

或者:

价差 = Price_B - Price_A

关键是保持一致。我建议在策略文档里明确写清楚「价差 = 远月 - 近月」,这样别人看你的代码也不会晕。

2.2.2 价差的标准化

实际交易中,不同品种的价差数值差异很大。比如螺纹钢价差可能只有几十块,而股指期货价差可能是几十个点。直接比较没意义。

所以,我经常做标准化处理:

标准化价差 = (当前价差 - 历史均值) / 历史标准差

标准化后的价差,可以理解为「当前价差偏离均值多少个标准差」。这个值超过2或3,往往意味着极端行情。

💡 小技巧:标准化价差超过±2时,我会开始关注。超过±3时,我会考虑入场。但记住,极端行情可能持续,别急着抄底。

2.2.3 价差的时间序列处理

价差数据是时间序列。计算时要注意:

  • 对齐时间戳:两个合约的交易时间可能不同,必须对齐到同一时刻
  • 处理缺失值:如果某个合约在某时刻没有成交,可以用前值填充或剔除
  • 考虑换月:主力合约切换时,价差会跳变,需要做调整

我在项目中遇到过一个问题:用分钟数据算价差,结果发现两个合约的成交时间差了10秒。这10秒里价格波动了5个点,价差就失真了。后来我改用Tick级数据,对齐到毫秒,问题才解决。

2.3 价差图的绘制与解读

光看数字不够直观。画图才是王道。

2.3.1 基础价差图

最简单的价差图,就是横轴是时间,纵轴是价差。用Python的matplotlib画一下:

import matplotlib.pyplot as plt
import pandas as pd

# 假设df包含两列:price1, price2
df['spread'] = df['price2'] - df['price1']

plt.figure(figsize=(12, 6))
plt.plot(df.index, df['spread'], label='价差', color='blue')
plt.axhline(y=df['spread'].mean(), color='red', linestyle='--', label='均值')
plt.axhline(y=df['spread'].mean() + 2*df['spread'].std(), color='orange', linestyle=':', label='+2σ')
plt.axhline(y=df['spread'].mean() - 2*df['spread'].std(), color='orange', linestyle=':', label='-2σ')
plt.legend()
plt.title('螺纹钢跨期价差图')
plt.show()

这张图能告诉你什么?

  • 价差是否在均值附近波动
  • 有没有突破上下轨(±2σ)
  • 趋势是向上还是向下

2.3.2 价差分布图

除了时间序列图,我还会画价差的分布直方图:

df['spread'].hist(bins=50, alpha=0.7)
plt.axvline(x=df['spread'].mean(), color='red', linestyle='--')
plt.title('价差分布')
plt.show()

分布图能帮你判断价差是否服从正态分布。如果分布偏斜严重,说明市场存在结构性变化,这时候用均值回归策略要小心。

2.3.3 价差图的解读技巧

画图只是第一步。怎么读图才是关键。

第一,看趋势。价差持续向上,说明远月越来越强,可能是近月基本面恶化,或者远月有升水预期。

第二,看波动率。价差波动突然放大,往往意味着市场出现分歧。这时候套利机会多,但风险也大。

第三,看均值回归特征。如果价差在均值附近来回摆动,说明市场比较理性,适合做均值回归策略。如果价差长期偏离均值不回,那就要考虑是不是基本面变了。

⚠️ 注意:价差图上的「均值」不是一成不变的。随着时间推移,均值可能漂移。我建议用滚动窗口计算均值,比如过去60天的均值,而不是用全部历史数据。

2.4 价差分析的知识体系

为了让你更直观地理解价差分析的全貌,我画了一张图:

价差分析知识体系 价差分析 价差概念 计算方法 图表绘制与解读 价差定义 方向性约定 核心逻辑 基本公式 标准化处理 时间序列处理 基础价差图 分布图 解读技巧 核心目标:识别价差的异常波动 捕捉均值回归或趋势延续的交易机会

这张图把价差分析的三个核心模块串起来了。概念是基础,计算是工具,图表是表达。三者缺一不可。

2.5 实战中的避坑指南

讲完理论,说点实在的。

我曾经犯过一个错误:用日线数据算价差,然后做日内交易。结果发现,日线价差看起来合理,但日内波动极大,进场就被套。后来我改用15分钟K线,才找到合适的入场点。

所以,我的建议是:

  • 做长线套利,用日线或周线数据
  • 做短线套利,用分钟级数据
  • 千万别混用

另外,价差分析不是万能的。它假设两个合约的相关性稳定。如果基本面发生突变,比如政策变化、交割规则调整,价差可能彻底失效。这时候,再漂亮的图表也没用。

嗯,价差分析就讲到这里。记住,画图只是手段,理解背后的逻辑才是目的。


公众号:蓝海资料掘金营,微信deep3321