2. 价差与比价:价差计算、比价分析、数据获取

好,咱们直接进入正题。跨期套利的核心,说白了就两个东西:价差比价。很多人一开始搞混,觉得差不多。其实差远了。我刚开始做的时候也犯过这个错,后来亏了一笔才彻底搞明白。

2.1 价差计算:最基础,也最容易出错

价差,就是两个合约的价格差。公式很简单:

价差 = 近月合约价格 - 远月合约价格

嗯,就这么简单。但实际用起来,坑不少。

注意:价差的正负号是有意义的。正价差叫「backwardation」,负价差叫「contango」。我见过有人把符号搞反,结果整个策略都做反了。

举个例子。假设螺纹钢:

  • RB2401(近月):3800 元/吨
  • RB2405(远月):3750 元/吨

价差 = 3800 - 3750 = +50 元/吨。这是正价差,说明近月比远月贵。

我个人习惯用近月减远月。为什么?因为这样更直观。近月强,价差为正;近月弱,价差为负。你想想看,是不是这个理?

2.2 比价分析:另一种视角

比价,就是两个合约价格的比值。公式:

比价 = 近月合约价格 / 远月合约价格

为什么要看比价?因为有些品种价格波动大,价差的绝对值会失真。比如:

  • 黄金价格 500 元/克,价差 5 元,看起来很小
  • 玉米价格 2500 元/吨,价差 5 元,看起来也小

但这两个 5 元的意义完全不同。比价就能解决这个问题。

核心观点:价差看绝对水平,比价看相对强弱。两者结合,才是完整的分析框架。

我在项目中遇到过这样的情况:某化工品种价差一直在 -50 到 +50 之间震荡,看起来很正常。但一看比价,已经从 0.98 跌到 0.92 了。这说明什么?说明远月合约在持续走弱,价差的波动只是表象。

2.3 数据获取:从哪里来,怎么用

数据是套利策略的命根子。没有数据,一切都是空谈。我常用的数据源有这几个:

数据源 特点 适合场景
交易所官网 最权威,免费 日线级别分析
Wind/Choice 数据全,有API 量化回测
Tushare/Akshare 开源,免费 个人研究
CTP直连 实时,低延迟 实盘交易

我个人建议,刚开始做研究,用 Akshare 就够了。免费,数据质量也不错。下面给个简单的 Python 代码示例:

import akshare as ak

# 获取螺纹钢主力合约连续数据
rb_data = ak.futures_main_sina(symbol="RB")
print(rb_data.head())

# 获取具体合约数据
rb2401 = ak.futures_zh_minute_sina(symbol="RB2401", period="daily")
rb2405 = ak.futures_zh_minute_sina(symbol="RB2405", period="daily")

# 计算价差
spread = rb2401['close'] - rb2405['close']
print(spread.tail())
小技巧:获取数据后,第一件事不是分析,而是检查数据质量。我曾经拿到过有缺失值的数据,回测结果漂亮得不行,实盘一跑就崩。后来才发现是数据源的问题。

2.4 知识体系图

下面这张图,把价差、比价、数据获取的关系理清楚了。建议保存下来,后面章节会反复用到。

跨期套利数据体系 价差计算 比价分析 数据获取 近月-远月 正负号含义 近月/远月 相对强弱 交易所/API 数据清洗 三者关系 价差是基础 → 比价是补充 → 数据是前提 三者缺一不可,构成完整分析闭环

2.5 避坑指南

最后,说几个我踩过的坑:

  • 数据对齐问题:不同合约的交易时间可能不同,尤其是夜盘。一定要对齐时间戳。
  • 换月跳空:主力合约切换时,价差会突然跳变。这不是市场行为,是合约切换造成的。
  • 手续费和滑点:价差策略的利润本来就不厚,手续费和滑点能吃掉一大半。算的时候别漏了。
一句话总结:价差是工具,比价是视角,数据是基础。把这三样搞明白,跨期套利就算入门了。

好了,这一章就到这儿。记住,数据质量决定策略质量。别偷懒,多花点时间在数据清洗上,后面会省很多事。

专注资料整理