📘 本章重点
- 理解跨期套利的核心逻辑:利用同一品种不同交割月份合约之间的价差波动获利
- 掌握跨期套利的两种基本方向——正套(买近卖远)与反套(卖近买远)
- 学会价差的均值回归特征及其统计套利方法
- 了解跨期套利与配对交易(第二.02)、统计套利(第二.03)的异同
- 认识跨期套利的特有风险:展期成本、流动性冲击、逼仓风险
⚠️ 本章难点
- 理解“价差”而非“价格”是跨期套利的交易标的——策略不预测方向,只赌价差回归
- 区分“正套”与“反套”的适用场景——正套在贴水市场中长期盈利,反套在升水市场中有效
- 掌握展期成本的计算方法及其对套利收益的影响
- 理解跨期套利并非“无风险套利”——价差可能长期偏离,且临近交割时有收敛压力
- 认识流动性风险——交易清淡的合约可能导致无法按预期价格平仓
⏱️ 预估学习时间
- 45~60分钟
一、策略简述与一句话定性
一句话定性:跨期套利策略是一种基于同一品种不同交割月份合约之间价差均值回归的统计套利方法——同时买入一个合约、卖出另一个合约,在价差偏离历史均值时开仓,待价差回归时平仓获利。
跨期套利(Calendar Spread Arbitrage / Interdelivery Spread)是期货市场中最基础的套利策略之一。期货跨期套利是指对同一个期货品种买卖不同交割月份的期货合约进行的套利交易。它的交易标的不是价格本身,而是两个合约之间的价差。
一个直观的比喻:两列火车的“间距”
想象两列火车在同一轨道上同向行驶——一列是“近月合约号”,一列是“远月合约号”。它们的目的地相同(同一品种),只是发车时间不同(交割月份不同)。两列火车之间有一个“间距”(价差)。
正常情况下,这个间距是稳定的。但如果有一天,两列火车之间的间距突然被拉大(价差扩大)或压缩(价差缩小),这种偏离通常不可持续。两列火车的目的地相同——无论中间的间距被拉得多大,到了终点站,两列火车必然停在同一个位置(交割日临近时价格趋同)。这就是价差收敛的物理必然性。
跨期套利者就是那个盯着间距的观察员——当间距被拉得过大时,他下注“间距会缩小”;当间距被压得过小时,他下注“间距会扩大”。他不在乎火车往哪个方向开(不预测涨跌),只在乎间距是否异常。
两种基本方向:正套与反套
在跨期套利中,根据操作方向的不同,分为两种基本模式:
| 策略方向 | 操作 | 适用市场环境 | 盈利逻辑 |
|---|---|---|---|
| 正套 | 买近月、卖远月 | 贴水市场(近月 < 远月) | 价差从负值向零回归,Spread扩大 |
| 反套 | 卖近月、买远月 | 升水市场(近月 > 远月) | 价差从正值向零回归,Spread缩小 |
跨期套利 vs 跨品种套利 vs 期现套利:
| 类型 | 交易标的 | 价差驱动力 |
|---|---|---|
| 跨期套利 | 同一品种、不同到期月份 | 持有成本理论(同品种基本面完全相同) |
| 跨品种套利 | 不同品种、相同到期月份 | 产业链逻辑(如螺纹钢与热卷的价差) |
| 期现套利 | 同一品种、期货与现货 | 基差收敛逻辑 |
三者中,跨期套利的价差回归逻辑最“硬”——因为两个合约对应的是同一品种,基本面完全相同,价差偏离最终必然被套利力量修正。
老陈点评:
跨期套利与配对交易(第二.02)在数学结构上高度相似——两者都是对两个相关资产价差的均值回归交易。区别在于:配对交易的标的是两只同行业股票(经济逻辑驱动),跨期套利的标的是同一品种的不同到期合约(持有成本理论驱动)。跨期套利的价差回归有更强的理论基础——同一品种的基本面完全相同,价差偏离最终会被套利力量修正。但这也意味着它的价差波动范围通常比股票配对更窄,单笔利润更薄。
老王补充:
跨期套利是我在期货市场上最早接触的策略之一。它的优点是稳——不赌方向,只赌价差。但它的缺点是慢——价差回归可能需要几天甚至几周,资金占用时间长。而且,价差回归不是一定会发生——在极端行情中,价差可能长期偏离,甚至在交割前也不回归。别把它当成“无风险套利”,它只是“相对低风险”的套利。
二、策略的使用范围与条件
| 维度 | 适用范围与条件 | 说明 |
|---|---|---|
| 适用市场 | 期货市场(商品期货、股指期货、国债期货等) | 需要有同一品种的多个到期合约同时交易 |
| 品种要求 | 流动性好、近月与远月合约交易活跃 | 交易清淡的合约存在流动性风险 |
| 交易机制 | 双向交易(可同时做多和做空) | 期货市场的天然优势 |
| 适用周期 | 日线、小时线 | 价差回归通常需要数天至数周 |
| 资金门槛 | 中等(需同时占用两份保证金) | 双边持仓保证金占用较高 |
| 不适合的市场状态 | 极端单边行情、临近交割月 | 价差可能被趋势力量扭曲,交割月流动性急剧下降 |
适用品种举例:
- 股指期货:沪深300(IF)、中证500(IC)、中证1000(IM)的近月与次近月合约
- 商品期货:螺纹钢、豆粕、原油、黄金的主力合约与次主力合约
- 国债期货:2年期、5年期、10年期国债期货的跨期组合
不适用品种:
- 交易量极低的非主力合约(流动性差,无法有效平仓)
- 临近交割的合约(流动性急剧下降,逼仓风险高)
最佳行情特征:价差波动稳定、无明显趋势性偏离、市场处于正常升贴水结构时,跨期套利策略效果最佳。
关于“正套”与“反套”的术语说明:
在跨期套利中,正套(正向套利) 通常指买近月、卖远月——即买入近期合约,卖出远期合约。正套在贴水市场(近月价格低于远月)中,利用价差收敛获利。
反套(反向套利) 通常指卖近月、买远月——即卖出近期合约,买入远期合约。反套在升水市场(近月价格高于远月)中,利用价差缩小获利。
贴水与升水市场中的策略选择:
| 市场状态 | 价差特征 | 有利策略 | 逻辑 |
|---|---|---|---|
| 贴水(Backwardation) | Spread < 0(近月 < 远月) | 正套(买近卖远) | 价差从负值向零回归,Spread扩大,正套获利 |
| 升水(Contango) | Spread > 0(近月 > 远月) | 反套(卖近买远) | 价差从正值向零回归,Spread缩小,反套获利 |
在贴水市场中,近月被低估、远月被高估,买近卖远的正套策略天然具有获利空间;在升水市场中则相反,卖近买远的反套策略更有利。
失效案例:在政策市中(如产业政策调整、监管措施出台),历史价差规律容易被打破。2024年7月,受产业政策影响,某工业品期货的月间价差波动远超历史统计阈值,基于历史价差的跨期套利模型全面失效——价差偏离幅度远超±3倍标准差,且长时间未能回归。在政策市中,依赖历史数据的量化策略有效性可能大幅降低。 这也提示我们:跨期套利策略需要加入“政策风险”的考量,在重大政策发布前后应暂停或调整策略。
风险提示:价差偏离可能是暂时的(回归),也可能是永久性的(结构变化)。如果价差在偏离后未能回归,说明市场的基本面或定价结构可能已经发生了变化——此时继续持有套利头寸无异于“逆势交易”。
三、因子拆解与原理
3.1 价差——跨期套利的交易标的
跨期套利不交易价格,交易的是价差。定义期货合约之间的价差为 Spread,近月合约价格为 P_nearby,远月合约价格为 P_back:
Spread = P_nearby - P_back
价差的正负含义:
- Spread > 0:近月价格高于远月(贴水/Backwardation——近强远弱)
- Spread < 0:近月价格低于远月(升水/Contango——近弱远强)
价差变化的获利逻辑:
| 操作方向 | 开仓条件 | 平仓条件 | 获利条件 |
|---|---|---|---|
| 正套(买近卖远) | Spread 过低(价差被压缩) | Spread 回升至均值 | Spread 扩大 |
| 反套(卖近买远) | Spread 过高(价差被拉大) | Spread 回落至均值 | Spread 缩小 |
价差变化的数学表达:
Profit = Spread(T2) - Spread(T1)
如果 Spread(T2) > Spread(T1),正套获利;如果 Spread(T2) < Spread(T1),反套获利。
3.2 价差的均值回归特性——策略的统计基础
跨期套利策略基于价差的均值回归原理。同一品种不同月份合约的价差在长期内会围绕一个均值上下波动,当价差偏离均值过大时,存在回归的趋势。
价差均值回归的驱动因素:
| 驱动因素 | 说明 |
|---|---|
| 持有成本理论 | 远月合约价格 = 近月合约价格 + 持有成本(资金成本+仓储成本-便利收益)。当价差偏离理论值时,套利力量会推动其回归 |
| 基差收敛 | 随着合约临近交割,远月与近月合约的价差会逐渐收敛 |
| 套利力量 | 当价差过大时,套利者会涌入,通过买卖行为将价差推回合理区间 |
价差分布的正态性假设:价差的波动通常符合或接近正态分布,通过计算标准差可以确定价差偏离程度。这是Z-Score方法在跨期套利中应用的理论基础。
3.3 持有成本理论——价差的理论锚点
股指期货的定价公式基于持有成本理论:
F = S × e^((r - q) × T)
其中:
- F:期货价格
- S:现货价格
- r:无风险利率
- q:股息收益率
- T:到期时间
两个不同到期合约的理论价差:
对于近月合约 F1(到期时间 T1)和远月合约 F2(到期时间 T2):
F1 = S × e^((r - q) × T1)
F2 = S × e^((r - q) × T2)
理论价差为:
ln(F2) - ln(F1) = (r - q) × (T2 - T1)
通俗解释:这个公式告诉我们,两个不同到期合约的理论价差,主要由到期时间差和无风险利率决定。时间差越大,理论价差越大。
当实际价差偏离理论价差时,存在套利机会。
但持有成本模型在实际应用中存在缺陷:股息收益率 q 不易确定,且基于持有成本的套利往往需要经历较长时间才能完成。因此,在实际量化策略中,更常用的是基于历史统计的均值回归方法——用历史价差的均值和标准差来确定交易阈值。
3.4 跨期套利与配对交易的异同
| 维度 | 配对交易 | 跨期套利 |
|---|---|---|
| 交易标的 | 两只同行业股票 | 同一品种的不同到期合约 |
| 价差驱动力 | 经济逻辑(同行业、同产业链) | 持有成本理论(同一品种) |
| 价差稳定性 | 可能因基本面变化而破裂 | 有更强的理论支撑,但也可能因政策冲击而失效 |
| 做空工具 | A股融券受限 | 期货天然支持双向 |
| 保证金占用 | 低(股票无杠杆) | 高(双边期货保证金) |
| 典型持仓周期 | 数天至数周 | 数天至数周 |
老陈点评:
从数学角度看,跨期套利和配对交易的本质完全相同——都是对两个相关资产价差的均值回归交易。但跨期套利的价差有更强的理论锚点(持有成本理论),而配对交易的价差更多依赖统计上的协整关系。这意味着跨期套利的价差回归逻辑更“硬”,但同时也意味着它的价差波动范围更窄,单笔利润更薄。在期货市场上做跨期套利,相当于在做“有理论支撑的配对交易”。
四、仓位、买卖点与风险管理
4.1 入场信号(开仓规则)
跨期套利的入场信号基于价差偏离均值的程度,通常使用Z-Score方法:
Z-Score = (当前价差 - 历史均值) / 历史标准差
开仓规则:
| 信号类型 | 触发条件 | 操作 | 预期 |
|---|---|---|---|
| 正套开仓 | Z-Score < -阈值(如-2.0) | 买近月、卖远月 | 价差将扩大 |
| 反套开仓 | Z-Score > +阈值(如+2.0) | 卖近月、买远月 | 价差将缩小 |
阈值的设定:
- 经典值:±2.0倍标准差(约95%置信区间)
- 激进值:±1.5(信号多,但假突破也多)
- 保守值:±2.5(信号少,但每笔胜率更高)
进阶入场过滤:
| 过滤条件 | 作用 | 说明 |
|---|---|---|
| 价差趋势过滤 | 避免逆势交易 | 价差有趋势时(连续多日同向变动),暂停开仓 |
| 波动率过滤 | 避免高波动中开仓 | 价差波动率异常放大时,暂停交易 |
| 时间过滤 | 避开交割月 | 临近交割(最后5个交易日),暂停开新仓 |
| 成交量过滤 | 确保流动性 | 近月和远月合约成交量均大于阈值时才开仓 |
4.2 平仓信号(出场规则)
| 平仓方式 | 触发条件 | 说明 |
|---|---|---|
| 回归平仓 | Z-Score回归至0附近(如±0.5) | 最常用,与入场逻辑对称 |
| 分批平仓 | Z-Score回归至±1.0时平一半,至0时平另一半 | 锁定部分利润 |
| 时间止损 | 持仓超过N个交易日仍未回归 | 防止资金长期被占用 |
| 价差突破止损 | Z-Score超过历史最大值(如3.5) | 价差可能出现了结构性变化 |
4.3 仓位管理
跨期套利的仓位管理需要考虑双边保证金占用:
- 固定比例仓位:每笔套利占用总资金的10%-20%
- 等市值配比:确保多空两腿的市值匹配(考虑合约乘数差异)
- 杠杆控制:期货自带杠杆,建议将总杠杆控制在2-3倍以内
合约配比计算:
做多合约数量 × 合约乘数 × 价格 ≈ 做空合约数量 × 合约乘数 × 价格
4.4 展期成本管理
跨期套利的特殊风险之一是展期成本——当持有的近月合约到期时,需要将头寸展期到下一个合约。展期成本 = 新旧合约之间的价差。
展期成本的计算:
展期成本 = 新合约价格 - 旧合约价格
展期成本示例:假设你在螺纹钢上做正套——买入近月合约3500元/吨,卖出远月合约3550元/吨,价差为-50元/吨(近月低于远月)。一个月后近月合约到期,你需要将头寸展期到下一个合约。如果新的近月合约价格为3520元/吨,展期成本为20元/吨(3520-3500)。如果价差利润只有30元/吨,展期成本就吃掉了三分之二的利润。
展期策略:
- 提前展期:在近月合约到期前5-10个交易日平仓,避免流动性急剧下降
- 滚动展期:将头寸分批展期到下一个合约,平滑展期成本
- 避免交割:散户不应进入交割月,必须在最后交易日前平仓
老王补充:
展期成本是跨期套利中最容易被忽略的“隐形费用”。很多人只看到价差回归的利润,却忘了计算展期时可能产生的成本。如果价差利润只有1%,而展期成本吃掉0.5%,这笔套利可能就不划算了。 建议在计算预期收益时,把展期成本作为固定费用扣除,再评估策略是否值得执行。
4.5 跨期套利的特有风险
风险一:价差结构性偏离
价差可能因为供需结构变化、政策冲击等原因,出现永久性偏离,不再回归历史均值。在政策市中,历史价差规律容易被打破。
如何防范:使用滚动窗口计算均值(而非全历史均值),及时更新价差的“正常范围”。
如何检测价差是否发生了结构性断裂:
- 比较短期均值(如20天) 与长期均值(如252天) 的偏离程度
- 如果短期均值持续偏离长期均值超过1倍标准差,且持续时间超过20个交易日,可能意味着价差发生了结构性变化
- 此时应暂停使用历史均值作为交易基准,重新评估价差的“新常态”
风险二:流动性风险
交易清淡的合约存在流动性风险——开仓时可能滑点较大,平仓时可能无法及时成交。近月合约的套利交易也有可能发生逼仓风险。
如何防范:只在主力合约与次主力合约之间进行套利,避开交易量过小的合约。
风险三:保证金风险
跨期套利需要同时占用两份保证金,在保证金比例上调时可能面临追加保证金的要求。
如何防范:控制仓位规模,预留充足备用资金。
风险四:基差非线性收敛(A股股指期货特有)
A股股指期货总体长期处于贴水状态(近月低于远月),这是由现货卖空约束和投资者对冲需求共同造成的。叠加风险与持有期限的非线性特征,基差往往在临近到期时加速收敛。这意味着价差的回归可能不是匀速的——前期变化缓慢,后期突然加速。
如何防范:在临近交割时提前平仓,避免被“非线性收敛”打乱节奏。
关于“股指期货贴水”的说明:A股股指期货由于现货做空约束和投资者对冲需求,长期处于贴水状态。但在商品期货中,贴水/升水取决于品种的供需结构(如原油、铜等品种有时升水、有时贴水)。“股指期货长期贴水”是A股市场的特有现象,不应泛化为所有期货品种的普遍规律。
五、策略的来历、设计者与趣闻
跨期套利的理论基础可以追溯到持有成本理论(Cost of Carry Theory) ,这是期货定价理论中最基础的框架之一。持有成本理论认为,期货价格 = 现货价格 + 持有成本(资金成本 + 仓储成本 – 便利收益)。这一理论在20世纪初期随着商品期货市场的发展而逐步形成。
Keynes和Hicks在20世纪早期提出的正常 backwardation 理论,进一步解释了期货期限结构的形成原因。他们认为,期货价格通常低于预期现货价格(即贴水),因为生产者(天然多头)愿意以折扣价卖出期货来对冲风险,而投机者(天然空头)通过承担风险获取溢价。
跨期套利作为一种系统化策略的兴起,与1980年代程序化交易的普及密切相关。随着芝加哥商品交易所(CME)等期货市场的电子化交易发展,交易员开始用计算机程序监控价差,在价差偏离时自动执行套利交易。
在国内市场,跨期套利随着股指期货(2010年)、国债期货(2013年)、商品期货期权等衍生品市场的扩容而逐渐普及。近年来,量化私募和CTA基金将跨期套利作为重要的策略组成部分。
趣闻:2017年,有研究显示仅等权配置四种股指期货品种的跨期正套组合,便可取得1.04的收益风险比和8.5%的年化收益(6倍杠杆),跑赢了历史表现更好、换手率更高的年化基差率策略。这个案例说明:最简单的跨期套利策略(买近卖远),长期来看也能产生可观的稳健收益。
另一个有趣的现象:A股市场的特殊结构让跨期套利有了独特的盈利空间。由于现货市场的卖空约束和投资者的空头对冲需求,A股股指期货总体长期处于贴水状态。这种结构性贴水,使得“多近月空远月”的正套策略长期来看具备盈利能力。在A股市场做跨期套利,多了一层“制度红利” ——但这层红利也可能随着市场制度的演变而消失。
六、Python回测示例
以下代码演示跨期套利策略在股指期货上的回测。采用价差均值回归方法,Z-Score阈值±2.0开仓,回归均值平仓。
import pandas as pd
import numpy as np
import yfinance as yf
from datetime import datetime, timedelta
# 注意:
# 1. 本代码为跨期套利策略框架,需要获取同一品种不同到期合约的价格数据
# 2. 期货数据建议使用聚宽、天勤(TqSdk)或万得(Wind)获取
# 3. 以下代码展示策略逻辑,使用模拟数据演示
# 4. "近月合约"指当前月份合约,"远月合约"指次月合约(如IF当月连续 vs IF下月连续)
def calendar_spread_strategy(
near_price, # 近月合约价格序列(如IF当月连续)
far_price, # 远月合约价格序列(如IF下月连续)
lookback_days=60, # 计算均值和标准差的历史窗口
entry_zscore=2.0, # 开仓阈值
exit_zscore=0.5, # 平仓阈值
stop_loss_zscore=3.5, # 止损阈值
contract_multiplier=1 # 合约乘数(近月与远月相同)
cost_rate=0.0001, # 双边交易成本(含手续费+滑点估算)
):
"""
跨期套利策略(价差均值回归)
参数:
near_price: 近月合约价格序列
far_price: 远月合约价格序列
lookback_days: 计算均值和标准差的历史窗口
entry_zscore: 开仓阈值
exit_zscore: 平仓阈值
stop_loss_zscore: 止损阈值
contract_multiplier: 合约乘数
cost_rate: 双边交易成本(每次完整开平仓扣除)
返回:添加了持仓和净值的DataFrame
"""
# 1. 合并数据
df = pd.DataFrame({
'near': near_price,
'far': far_price
}).dropna()
# 2. 计算价差(近月 - 远月)
df['spread'] = df['near'] - df['far']
# 3. 滚动计算均值和标准差
df['spread_mean'] = df['spread'].rolling(lookback_days).mean()
df['spread_std'] = df['spread'].rolling(lookback_days).std()
df['zscore'] = (df['spread'] - df['spread_mean']) / df['spread_std']
# 4. 生成交易信号
df['signal'] = 0 # 0=空仓, 1=正套(买近卖远), -1=反套(卖近买远)
df['position_near'] = 0 # 近月持仓(正=做多,负=做空)
df['position_far'] = 0 # 远月持仓(正=做多,负=做空)
position = 0
entry_spread = 0
trade_count = 0
for i in range(lookback_days, len(df)):
zscore = df['zscore'].iloc[i]
spread = df['spread'].iloc[i]
# 跳过NaN值
if pd.isna(zscore):
continue
if position == 0:
# 开仓信号
if zscore < -entry_zscore:
# 正套:买近卖远(价差过低,预期扩大)
position = 1
entry_spread = spread
trade_count += 1
df.loc[df.index[i], 'position_near'] = 1 * contract_multiplier
df.loc[df.index[i], 'position_far'] = -1 * contract_multiplier
elif zscore > entry_zscore:
# 反套:卖近买远(价差过高,预期缩小)
position = -1
entry_spread = spread
trade_count += 1
df.loc[df.index[i], 'position_near'] = -1 * contract_multiplier
df.loc[df.index[i], 'position_far'] = 1 * contract_multiplier
else:
# 平仓信号
if abs(zscore) < exit_zscore:
position = 0
df.loc[df.index[i], 'position_near'] = 0
df.loc[df.index[i], 'position_far'] = 0
elif abs(zscore) > stop_loss_zscore:
position = 0
df.loc[df.index[i], 'position_near'] = 0
df.loc[df.index[i], 'position_far'] = 0
df.loc[df.index[i], 'signal'] = position
# 5. 计算每日收益率(扣除交易成本)
df['daily_return'] = 0.0
for i in range(1, len(df)):
if df['signal'].iloc[i-1] == 1: # 正套:买近卖远
ret_near = (df['near'].iloc[i] - df['near'].iloc[i-1]) / df['near'].iloc[i-1]
ret_far = (df['far'].iloc[i] - df['far'].iloc[i-1]) / df['far'].iloc[i-1]
daily_ret = ret_near - ret_far
elif df['signal'].iloc[i-1] == -1: # 反套:卖近买远
ret_near = (df['near'].iloc[i] - df['near'].iloc[i-1]) / df['near'].iloc[i-1]
ret_far = (df['far'].iloc[i] - df['far'].iloc[i-1]) / df['far'].iloc[i-1]
daily_ret = ret_far - ret_near
else:
daily_ret = 0
# 扣除交易成本:调仓时扣除
if df['signal'].iloc[i] != df['signal'].iloc[i-1]:
daily_ret -= cost_rate
df.loc[df.index[i], 'daily_return'] = daily_ret
df['net_value'] = (1 + df['daily_return']).cumprod()
# 6. 统计指标
total_return = (df['net_value'].iloc[-1] - 1) * 100
max_drawdown = ((df['net_value'].cummax() - df['net_value']) / df['net_value'].cummax()).max() * 100
print(f"总收益率:{total_return:.2f}%")
print(f"最大回撤:{max_drawdown:.2f}%")
print(f"交易次数:{trade_count}")
return df
# 使用示例(伪代码):
#
# from tqsdk import TqApi, TqAuth
#
# api = TqApi(auth=TqAuth("your_account", "your_password"))
# # 获取沪深300股指期货近月合约(IF当月连续)和次近月合约(IF下月连续)数据
# kline_near = api.get_kline_serial("CFFEX.IF", 60) # 60分钟线
# kline_far = api.get_kline_serial("CFFEX.IF", 60)
# # 需要分别获取不同到期月份的合约数据
#
# # 运行策略
# result = calendar_spread_strategy(near_prices, far_prices, lookback_days=60, cost_rate=0.0001)
# print(result[['spread', 'zscore', 'signal', 'net_value']].tail(10))
回测结果参考(基于公开数据,不同品种和时段结果存在显著差异):
| 指标 | 参考值 |
|---|---|
| 年化收益率 | 5%-15% |
| 最大回撤 | 3%-10% |
| 夏普比率 | 0.8-1.5 |
| 月度胜率 | 60%-75% |
| 与市场相关性 | 低(市场中性) |
注:以上数据为不同跨期套利策略的历史回测参考值,实际表现取决于品种选择、价差波动特性和市场环境。有研究显示,仅等权配置四种股指期货的跨期正套组合,6倍杠杆下年化收益约8.5%,收益风险比1.04。但需注意,杠杆放大收益的同时也放大风险。
代码说明:
本代码为跨期套利策略框架,核心逻辑是价差均值回归。实际应用中,需要获取同一品种不同到期合约的价格数据。期货数据建议使用聚宽、天勤(TqSdk)或万得(Wind)等专业数据源。
老陈点评:
回测时要注意:跨期套利策略的价差均值和标准差对窗口长度敏感。窗口太短(如20天),均值和标准差容易被近期异常值扭曲;窗口太长(如252天),可能包含已经失效的历史价差关系。建议使用滚动窗口(如60天),并做窗口长度的敏感性测试。
老王补充:
实盘中最大的问题是流动性。跨期套利需要同时交易两个合约,如果其中一个合约流动性不足,滑点会严重侵蚀利润。建议只在主力合约和次主力合约之间做套利,避开交易量过小的合约。另外,临近交割时一定要提前平仓,不要等到最后一天——流动性急剧下降时,你可能根本平不掉。
七、本章小结与思考题
小结
| 项目 | 核心要点 |
|---|---|
| 策略类型 | 统计套利 / 价差套利 |
| 核心逻辑 | 同一品种不同到期合约的价差均值回归 |
| 两种方向 | 正套(买近卖远)和反套(卖近买远) |
| 核心公式 | Spread = P_near – P_far;Z-Score = (Spread – mean) / std |
| 理论基础 | 持有成本理论、均值回归、基差收敛 |
| 核心优势 | 市场中性,不依赖方向判断,有理论支撑 |
| 最大风险 | 价差结构性偏离、流动性风险、展期成本 |
| 资金门槛 | 中等(需双边保证金) |
跨期套利策略是期货市场中最基础的套利策略,也是量化交易者进入期货市场的“入门级”策略之一。它与配对交易(第二.02)同属价差交易的范畴,但跨期套利的价差有更强的理论锚点(持有成本理论)——同一品种的基本面完全相同,价差偏离最终会被套利力量修正。
老陈总结:
跨期套利的价值在于它的理论确定性。与股票配对交易不同,跨期套利的价差回归不是“统计上的大概率”,而是“理论上的必然”——两个合约对应的是同一品种,价差偏离最终会被套利力量修正。但“理论上必然”不等于“实践中马上发生”——价差可能长期偏离,在偏离期间你的资金被占用,机会成本不可忽视。跨期套利赚的是“确定性”的钱,但代价是“时间”的成本。
老王总结:
如果你刚开始接触期货量化,跨期套利是一个不错的起点——它比趋势跟踪稳健,比高频交易简单。但别把它当成“稳赚不赔”的印钞机。你得有耐心等价差回归,也得有勇气在价差不回归时止损。 另外,别在流动性差的合约上做套利——再好的策略,如果平不掉,都是纸上富贵。
💡 思考题
- 跨期套利和配对交易(第二.02)的核心区别是什么?为什么跨期套利的价差回归逻辑比配对交易更“硬”?
- “正套”和“反套”分别指的是什么操作?在什么市场环境下(贴水/升水)各自更有优势?
- 跨期套利策略中,展期成本是什么?它如何影响套利的实际收益?如果忽略展期成本,回测结果可能产生什么偏差?
- 跨期套利策略通常使用固定的历史均值和标准差(如60天窗口)来计算Z-Score。如果市场发生了结构性变化(如政策冲击导致价差中枢上移),固定窗口方法会失效。你会如何设计一个“自适应”的价差监控机制来应对这种情况?
- 跨期套利与跨品种套利、期现套利的本质区别是什么?为什么跨期套利的价差回归逻辑比另外两种更“确定”?
- (展望题) 随着程序化交易的普及,跨期套利的价差回归速度正在加快——当价差偏离时,大量套利资金会迅速涌入将其抹平。你认为这会增强还是削弱跨期套利策略的有效性?个人量化交易者在跨期套利上还有优势吗?
八、引用/参考出处
网上内容:
- 雪球《量化课堂:股指期货跨期套利策略》:https://xueqiu.com/8287840120/80337104
- 期货日报网《期货与期权跨期套利策略对比浅析》:http://www.qhrb.com.cn/articles/310781
- 知乎《零基础也能上手的量化策略:股指期货跨期套利详解+Python代码示例》:https://zhuanlan.zhihu.com/p/1914338054107297603
- 中信建投期货《2026股指套利半年报》(2026-07-01):https://www.163.com/dy/article/L0OE3C3005568W0A.html
- BigQuant量化平台《160-股指期货跨期套利策略》:https://bigquant.com/wiki/doc/khbhTZs2ps
学术论文与图书(元信息):
- Keynes, J. M. (1923). “Some Aspects of Commodity Markets.” Manchester Guardian Commercial.(正常Backwardation理论的早期阐述)
- Hicks, J. R. (1939). Value and Capital. Oxford University Press.(期货定价理论的经典著作)
- 李尉,《中国期货市场量化交易(R与C++版)》,清华大学出版社。(涵盖跨期套利策略的详细实现)


















暂无评论内容