第四节:跨期套利(一)——期货跨期套利原理、价差与基差的概念、正向市场与反向市场、跨期套利策略类型

各位同学,今天我们来聊聊跨期套利。这是套利交易里最基础、也最实用的一块。我个人做量化这些年,跨期套利是我最早接触的套利策略之一,也是我实盘跑得最久的策略之一。说白了,它不复杂,但里面的门道不少。

一、什么是跨期套利?

跨期套利,就是利用同一品种、不同到期月份的期货合约之间的价差波动来获利。你买近月合约,卖远月合约,或者反过来。赚的不是单边涨跌的钱,而是价差回归或扩大的钱。

举个例子:螺纹钢期货,有RB2301(2023年1月到期)和RB2305(2023年5月到期)。如果1月合约比5月合约贵了50块钱,你觉得合理吗?不合理,那就做空价差——卖1月、买5月。等价差回归到正常水平,平仓获利。

嗯,这里要注意:跨期套利不是无风险套利。它是有风险的,只是风险比单边交易小很多。我见过有人把跨期套利当成无风险套利来做,结果亏得很惨。后面我会讲为什么。

二、价差与基差——两个必须搞清的概念

做跨期套利,你天天跟这两个东西打交道。搞不清它们,就别谈策略了。

2.1 价差(Spread)

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

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

注意:我习惯用近月减远月。也有人用远月减近月,这无所谓,关键是保持一致。我个人习惯用近月减远月,因为这样价差为正时,说明近月比远月贵,市场处于反向市场(后面会讲)。

价差可以是正数,也可以是负数。正数说明近月贵,负数说明远月贵。

2.2 基差(Basis)

基差是现货价格与期货价格之间的差。公式:

基差 = 现货价格 - 期货价格

基差为正,说明现货比期货贵,这叫现货升水。基差为负,说明期货比现货贵,这叫期货升水。

基差和价差有什么关系?其实,跨期价差的本质,就是两个不同月份合约的基差之差。你想想看:

价差 = (现货 - 近月基差) - (现货 - 远月基差) = 远月基差 - 近月基差

所以,价差的变动,本质上反映的是不同月份基差的相对变化。我在项目中遇到过很多新手,把价差和基差搞混,结果策略逻辑全错了。记住:价差是期货之间的差,基差是现货与期货之间的差。

核心要点:

  • 价差 = 近月价格 - 远月价格
  • 基差 = 现货价格 - 期货价格
  • 价差的本质 = 远月基差 - 近月基差

三、正向市场与反向市场

这两个概念,是理解跨期套利策略的前提。我建议你先把它们刻在脑子里。

3.1 正向市场(Contango)

正向市场,就是远月合约比近月合约贵。价差为负。为什么会这样?

因为持有成本。你持有现货到远月,需要支付仓储费、保险费、资金利息等。所以远月价格应该比近月高,高出的部分就是持有成本。公式:

远月价格 = 近月价格 + 持有成本

正向市场下,价差为负,且绝对值等于持有成本。如果价差绝对值大于持有成本,说明远月被高估了,可以做空价差(卖远月、买近月)。

3.2 反向市场(Backwardation)

反向市场,就是近月合约比远月合约贵。价差为正。为什么会这样?

因为现货紧缺。近月马上要交割,但现货供应紧张,大家抢着买近月合约去交割,把近月价格推高了。远月嘛,还早,供需没那么紧张,价格相对便宜。

反向市场下,价差为正。如果价差过大,说明近月被高估了,可以做多价差(买远月、卖近月)。

实战小技巧:

我一般会先判断当前市场是正向还是反向。如果是正向市场,我倾向于做空价差(卖远月买近月)。如果是反向市场,我倾向于做多价差(卖近月买远月)。当然,这不是绝对的,还要结合价差的绝对水平和历史分位数来看。

四、跨期套利策略类型

跨期套利策略,按逻辑可以分为三类。我一个个讲。

4.1 持有成本套利(无风险套利)

这是最接近无风险的套利。逻辑很简单:如果价差偏离了持有成本,就存在套利机会。

比如,正向市场下,理论价差应该是 -100 元(持有成本100元)。但实际价差是 -150 元,说明远月被高估了。你卖远月、买近月,等交割时,你持有近月合约到交割,拿到现货,然后支付持有成本,用现货去交割远月空头。赚的就是那50元的价差偏离。

但这种套利,需要你具备现货交割能力。我早期做的时候,没有现货渠道,只能做统计套利,也就是下面要讲的。

4.2 统计套利(均值回归套利)

这是最常用的跨期套利策略。逻辑:价差会在一个均值附近波动,偏离大了就会回归。

具体做法:

  • 计算历史价差的均值、标准差
  • 设定阈值,比如均值 ± 2倍标准差
  • 当价差突破上轨,做空价差(卖近月、买远月)
  • 当价差跌破下轨,做多价差(买近月、卖远月)
  • 价差回归到均值附近,平仓

代码示例(Python伪代码):

import numpy as np

# 假设有近月价格和远月价格序列
near_prices = [4000, 4010, 4020, ...]
far_prices = [4050, 4055, 4060, ...]

# 计算价差
spread = np.array(near_prices) - np.array(far_prices)

# 计算均值和标准差
mean = np.mean(spread)
std = np.std(spread)

# 设定阈值
upper = mean + 2 * std
lower = mean - 2 * std

# 交易信号
if spread[-1] > upper:
    print("做空价差:卖近月,买远月")
elif spread[-1] < lower:
    print("做多价差:买近月,卖远月")
else:
    print("观望")

嗯,这里要注意:统计套利的前提是价差具有均值回归特性。不是所有品种、所有月份的价差都会回归。我踩过这个坑——有些品种的价差,趋势性很强,根本不回归。做统计套利,亏得底裤都不剩。

避坑指南:

我曾经在动力煤期货上做跨期统计套利,价差突破了上轨,我果断做空价差。结果价差继续扩大,一路不回头。后来我才发现,那段时间动力煤现货紧缺,反向市场持续强化,价差根本没有回归的动力。所以,做统计套利前,一定要先判断市场结构是正向还是反向,以及这个结构会不会持续。

4.3 事件驱动套利

这种策略,是利用特定事件对近月和远月合约的不同影响来获利。

比如:

  • 交割月临近,持仓限制导致近月合约波动加大
  • 季节性供需变化,比如农产品收获季,近月承压
  • 政策出台,对近月和远月的影响不同

事件驱动套利,需要你对品种的基本面有深刻理解。我一般把它作为统计套利的补充,在统计套利信号出现时,再结合事件分析,提高胜率。

五、知识体系总览

下面这张图,是我自己整理的跨期套利知识体系。你可以把它当作本章的思维导图。

跨期套利 核心概念 市场结构 策略类型 价差 基差 正向市场 反向市场 持有成本套利 统计套利 均值回归 阈值设定 信号生成 远月 > 近月 近月 > 远月 跨期套利知识体系总览 事件驱动

六、总结

跨期套利,说白了就是利用价差的波动赚钱。你要搞清楚价差和基差的区别,判断当前市场是正向还是反向,然后选择合适的策略类型。

我个人建议:新手先从统计套利入手,选流动性好的品种,比如螺纹钢、铁矿石、PTA等。先跑模拟盘,跑通了再上实盘。别一上来就搞持有成本套利,那个需要现货交割能力,门槛高。

嗯,今天就讲到这里。记住:跨期套利不是无风险套利,它只是风险相对较小。做好风控,设置好止损,才是长久之计。

专注资料整理