第二.09 期现套利策略

📘 本章重点

  • 理解期现套利的核心逻辑:利用期货与现货之间基差的均值回归与到期收敛特性获利
  • 掌握期现套利的两种基本方向——正向套利(买现货卖期货)与反向套利(卖现货买期货)
  • 学会基差的计算方法及其在套利决策中的应用
  • 理解“无套利区间”的概念及其对套利机会判断的重要意义
  • 认识期现套利与跨期套利(第二.07)跨品种套利(第二.08)的本质区别

⚠️ 本章难点

  • 理解“基差”而非“价格”是期现套利的交易标的——基差 = 现货价格 – 期货价格
  • 掌握无套利区间的计算方法——套利需要覆盖交易成本、资金成本、仓储成本等
  • 区分正向套利与反向套利的适用条件——反向套利涉及卖空现货,实操难度远大于正向套利
  • 理解期现套利与跨期套利的本质区别:前者是“期货与现货”的价差,后者是“期货与期货”的价差
  • 认识期现套利的“天花板”——套利空间被成本吃掉后,策略无利可图

⏱️ 预估学习时间

  • 45~60分钟

一、策略简述与一句话定性

一句话定性:期现套利策略是一种利用期货与现货之间基差偏离的套利方法——当期货价格与现货价格之间的价差(基差)偏离正常范围时,同时在期货市场和现货市场进行相反方向的操作,待基差回归或到期收敛时平仓获利。

期现套利(Cash-and-Carry Arbitrage / Index Arbitrage)是期货市场中最基础的套利策略之一,也是套利交易的“原点”。它的交易标的是基差——即期货价格与现货价格之间的差值。

一个直观的比喻:两种渠道买同一件商品

想象同一款手机,在官方商城卖5000元(现货价格),在京东预售卖5050元(期货价格)。如果你在官方商城花5000元买入,同时在京东以5050元卖出(预售),等手机到货后交付给京东买家,你就锁定了50元的差价——这就是期现套利。

反过来,如果预售价格比官方商城便宜,你可以在京东以4950元买入预售券(相当于买入期货),同时借一台手机在官方商城以5000元卖出(相当于做空现货),等预售券到期后拿到手机、还给借方。你锁定的同样是50元差价,但方向相反。

你不需要判断手机未来会涨价还是跌价,你只需要判断两个渠道的价格差是否足够覆盖你的操作成本。如果价差大于成本,你就锁定了一笔无风险利润。

在深入期现套利之前,先用一张表看清它在整个套利家族中的位置。

维度跨期套利跨品种套利期现套利配对交易
交易标的同一品种、不同月份不同品种、相同月份同一品种、期货与现货两只同行业股票
价差驱动力持有成本理论产业逻辑基差收敛(到期必然)经济逻辑/协整
价差确定性最高(制度必然)较低
价差波动范围中等
利润空间中等薄(被成本压缩)中等
资金门槛中等高(需现货头寸)
是否需要现货
做空工具期货天然支持期货天然支持需融券或借现货A股融券受限
主要风险展期成本、流动性相关性破裂、产业逻辑变化成本估算错误、融券难协整破裂、融券成本

一句话区分跨期套利赌的是“远近价差”会收敛,跨品种套利赌的是“强弱关系”会回归,期现套利赌的是“期货终究会变成现货”——这是确定性最高的套利。

老陈点评
期现套利是套利策略中确定性最高的一种——它的价差收敛不是“大概率”,而是“必然”。期货合约到期时,期货价格必然收敛于现货价格,这是期货市场的制度设计决定的。但确定性高不代表容易赚钱。 期现套利需要同时操作期货和现货两个市场,涉及资金成本、仓储成本、运输成本等,利润空间往往被各种成本压缩得很薄。这是一个“确定性高、利润薄、门槛高”的策略。

老王补充
期现套利听起来很美好——“无风险套利”。但我在期货市场上见过太多人做期现套利亏钱。原因很简单:你以为的无风险,其实处处是风险。 现货的仓储成本算了吗?资金占用成本算了吗?交割流程顺利吗?反向套利你能借到现货吗?期现套利不是“无风险”,而是“低风险”——前提是你把所有成本都算清楚了。 算不清楚成本,期现套利就是“确定性亏钱”。

二、策略的使用范围与条件

维度适用范围与条件说明
适用市场股指期货、商品期货、国债期货等需要有对应的现货市场(股票、ETF、实物商品、债券)
品种要求流动性好、有活跃的现货市场、有明确的交割机制流动性差的品种无法有效执行
交易机制期货做多做空 + 现货买入/卖出(或融券做空)反向套利需要做空现货,实操难度大
适用周期日线、周线(持有至到期或基差回归)通常持仓数天至数周
资金门槛高(需同时操作期货和现货)需要较大的资金体量才能覆盖成本
不适合的市场状态基差在无套利区间内、流动性枯竭无套利空间或无法有效执行

期现套利的两大方向

方向触发条件操作盈利逻辑
正向套利期货价格 > 现货价格 + 持有成本(期货被高估)买入现货,卖出期货持有至到期,期货收敛于现货,价差回归
反向套利期货价格 < 现货价格 – 持有成本(期货被低估)卖出现货(融券),买入期货持有至到期,期货收敛于现货,价差回归

适用品种举例

  • 股指期货:沪深300(IF)、中证500(IC)、中证1000(IM)与对应的ETF或一篮子股票
  • 商品期货:黄金、铜、螺纹钢等与对应的现货或ETF
  • 国债期货:2年期、5年期、10年期国债期货与对应的现货债券

不适用品种

  • 没有现货市场的品种(无法执行期现套利)
  • 流动性极差的期货品种(滑点大、无法有效平仓)
  • 融券成本过高的品种(反向套利无利可图)

本文统一采用基差 = 现货 – 期货的定义。 基差为正表示现货价格高于期货价格(贴水),基差为负表示现货价格低于期货价格(升水)。

商品期现套利的特殊条件:商品期现套利涉及现货仓储、运输、质检等实物交割成本,套利区间比金融期货更宽。此外,商品ETF(如有色ETF、黄金ETF)的跟踪误差通常比股指ETF更大,需要额外考虑这一因素。本文以股指期现套利为核心案例,商品期现套利需要额外考虑仓储和物流成本。

失效案例:2015年A股股灾期间,股指期货一度出现深度贴水(期货价格远低于现货价格),反向套利的理论空间巨大。但实际上,由于监管层在股灾期间对融券业务实施了严格限制(禁止裸卖空、提高融券保证金等),融券渠道实质性关闭,投资者无法有效做空现货,反向套利无法执行。期现套利最大的风险不是“价差不回归”,而是“你根本做不了反向套利”。

三、因子拆解与原理

3.1 基差——期现套利的交易标的

期现套利不交易价格,交易的是基差(Basis) 。

基差的定义

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

基差的正负含义

基差状态含义市场状态
基差 > 0现货价格 > 期货价格贴水(Backwardation) ——期货被低估
基差 < 0现货价格 < 期货价格升水(Contango) ——期货被高估
基差 ≈ 0现货价格 ≈ 期货价格正常状态——无套利空间

关键认知:基差在期货合约到期日必然收敛于0。这是期货市场的制度设计决定的——到期时期货价格必须等于现货价格,否则存在无风险套利机会。这个“必然收敛”的特性,是期现套利策略确定性的根本来源。

3.2 持有成本理论——基差的理论锚点

期现套利的理论基础是持有成本理论(Cost of Carry Theory) 。期货的理论价格应该等于:

期货理论价格 = 现货价格 + 持有成本

其中持有成本包括:

成本项说明适用品种
资金成本买入现货占用的资金的利息(无风险利率)所有品种
仓储成本存储现货的费用商品期货
运输成本将现货运至交割库的费用商品期货
保险成本存储期间的保险费用商品期货
便利收益持有现货带来的额外收益(如紧急使用)商品期货(负成本)
股息收益持有股票获得的股息股指期货(负成本)

股指期货的简化定价公式

F = S × e^((r - q) × T)

其中:

  • F:期货价格
  • S:现货价格
  • r:无风险利率
  • q:股息收益率
  • T:到期时间

理论基差

理论基差 = S - F = S × (1 - e^((r - q) × T))

当实际基差偏离理论基差超过交易成本时,就产生了期现套利机会。

3.3 无套利区间——套利机会的判断标准

期现套利并非“基差偏离0就能赚钱”。套利需要覆盖交易成本,因此存在一个无套利区间——在这个区间内,即使基差偏离0,套利也无法盈利。

无套利区间的计算

上边界 = 现货价格 + 正向套利成本(买入现货 + 卖出期货的交易成本、资金成本、仓储成本等)
下边界 = 现货价格 - 反向套利成本(卖出现货 + 买入期货的交易成本、融券成本等)

判断规则

期货价格位置判断操作
期货价格 > 上边界期货被高估正向套利:买现货、卖期货
期货价格 在上下边界之间无套利机会观望
期货价格 < 下边界期货被低估反向套利:卖现货、买期货

计算示例

假设沪深300指数为4000点,股指期货合约还有一个月到期。资金成本(年化3%,一个月约0.25%)折合10个点(4000 × 0.25% = 10),交易成本折合5个点,总计正向套利成本15个点,反向套利成本(含融券成本)25个点。

上边界 = 4000 + 15 = 4015点
下边界 = 4000 – 25 = 3975点
无套利区间 = [3975, 4015]

无套利区间示意图

上边界 = 4015  ← 期货被高估 → 正向套利(买现货、卖期货)
无套利区间 [3975, 4015]  ← 观望
下边界 = 3975  ← 期货被低估 → 反向套利(卖现货、买期货)

如果期货价格在3975-4015之间,没有套利机会;如果期货价格超过4015,可以做正向套利;如果期货价格低于3975,可以做反向套利。

基差均值回归策略的入场信号基于统计偏离(Z-Score),而非无套利区间的成本边界。它赚的是基差波动的钱,而不是到期收敛的钱——因此它的交易频率更高,但也面临基差不回归的风险。

老陈点评
无套利区间的概念非常关键。很多初学者看到基差偏离0就激动,以为发现了套利机会。但实际上,基差偏离0是常态,基差偏离超过套利成本才是机会。 在计算套利成本时,一定要把所有成本都算进去——资金成本、交易成本、冲击成本、滑点——否则你算出来的“利润”会被成本全部吃掉。

3.4 两种基差套利策略

根据东证期货的研究,期现套利可以分为两种策略框架:

策略一:基差收敛策略(持有至到期)

维度说明
逻辑 利用基差到期必然收敛的规律,持有升水合约空头与现货多头
交易频率 较低(持仓约40天至到期)
适用品种年化升水较高的IH和IF
收益来源基差收敛的确定性收益

策略二:基差均值回归策略

维度说明
逻辑 根据基差均值回复的规律进行交易,在基差偏离时开仓、回归时平仓
交易频率较高(基差频繁围绕0波动时信号多)
适用品种基差频繁围绕0波动的IC和IM
收益来源基差波动的价差收益

老陈点评
基差收敛策略赚的是“时间确定性的钱”——你只需要持有到到期,价差必然收敛。基差均值回归策略赚的是“波动不确定性的钱”——你赌基差会回归均值,但不一定等到到期。前者更稳健但利润更薄,后者交易频率更高但面临基差不回归的风险。选择哪种策略,取决于你的风险偏好和资金占用成本。

3.5 期现套利的优缺点

优点缺点
确定性最高(到期必然收敛)资金门槛高(需现货头寸)
收益相对稳定(基差收敛的确定性收益)利润空间薄(被各种成本压缩)
市场中性,不依赖方向判断反向套利需要融券,实操难度大
有坚实的理论支撑(持有成本理论)需要现货渠道(商品现货、融券等)
适合大资金配置(容量大)持仓周期长,资金占用时间长

四、仓位、买卖点与风险管理

4.1 入场信号(开仓规则)

期现套利的入场信号基于基差偏离无套利区间的程度。

正向套利入场

条件操作
期货价格 > 现货价格 + 正向套利成本买入现货,卖出期货

反向套利入场

条件操作
期货价格 < 现货价格 – 反向套利成本卖出现货(融券),买入期货

进阶入场过滤

过滤条件作用说明
流动性过滤确保可执行期货和现货的成交量均大于阈值
时间过滤确保有足够时间收敛合约剩余时间大于N个交易日
成本安全边际防止成本估算偏差价差空间大于估算成本的1.2倍

4.2 平仓信号(出场规则)

平仓方式触发条件说明
到期平仓合约到期日最常用的平仓方式,确定性最高
基差回归平仓基差回归至无套利区间内提前锁定利润,释放资金
提前平仓价差利润达到目标提前平仓,提高资金周转率
止损平仓基差持续扩大超过阈值防止亏损扩大

4.3 仓位管理

期现套利的仓位管理需要同时考虑期货和现货两个市场:

  • 等市值配比:确保期货空头与现货多头的市值匹配
  • 合约配比:期货手数 = 现货市值 /(期货价格 × 合约乘数)
  • 资金占用:需同时准备现货买入资金和期货保证金

现货替代方案

对于股指期货的期现套利,买入现货可以用以下方式替代:

  • 直接买入ETF(最推荐):流动性好、操作简单、门槛低、跟踪误差小。沪深300ETF的年化跟踪误差通常在0.5%-1%之间。对于持仓1个月的期现套利,跟踪误差可能达到0.05%-0.1%——虽然不大,但在利润空间本就微薄的期现套利中,这可能足以将“微利”变成“微亏”。对于散户来说,这是最可行的现货替代方案。
  • 买入一篮子成分股:更精确地复制指数,但操作复杂、资金门槛高,适合机构投资者。
  • 动态选择ETF:根据折溢价和流动性动态选择最优ETF,适合对成本敏感的专业投资者。

4.4 期现套利的特有风险

风险一:成本估算错误

期现套利的利润空间 = 基差 – 成本。如果成本估算偏低,实际利润可能为负。

如何防范:在成本估算中加入安全边际(如按估算成本的1.2倍计算),预留缓冲空间。

风险二:反向套利的融券难题

反向套利需要卖出现货(融券),但在A股市场融券成本高、券源紧张,实际操作难度大。

如何防范:优先考虑正向套利(买现货、卖期货),反向套利需提前确认融券渠道和成本。

风险三:流动性风险

期货或现货市场流动性不足时,无法按理想价格成交,滑点可能侵蚀利润。

如何防范:只在流动性好的品种和主力合约上操作,避开交易清淡的合约。

风险四:交割风险

商品期货的交割涉及仓储、运输、质检等环节,流程复杂,存在交割失败的风险。

如何防范:散户应避免进入交割月,在到期前平仓了结,不参与实物交割。

风险五:跟踪误差

对于股指期货的期现套利,如果使用ETF替代一篮子股票,ETF与指数的跟踪误差可能导致套利利润被侵蚀。

如何防范:选择跟踪误差小、流动性好的ETF,或直接买入一篮子成分股。

风险六:套利空间的“天花板”效应

期现套利的利润 = 基差 – 成本。随着市场效率提高,基差很少会偏离无套利区间太远。当价差空间小于成本时,套利无利可图。期现套利不是“无限容量”的策略——当越来越多的资金涌入,价差会被迅速抹平,套利空间消失。 这就是期现套利的“天花板”。

如何防范:关注市场套利资金的规模和价差的变化趋势,在价差空间被压缩前及时退出。

风险七:ETF折溢价风险

ETF本身存在折溢价——当ETF的市价偏离其净值(NAV)时,用ETF替代现货会产生额外的跟踪偏差。

如何防范:选择折溢价稳定、流动性好的ETF,避免在折溢价过大时进行期现套利。

老王补充
期现套利最大的坑是你以为你算清楚了成本,其实你没有。 资金成本是按什么利率算的?仓储成本真的准确吗?交割流程中会不会有额外费用?融券能借到吗?借券成本是多少?ETF的折溢价考虑了吗?所有这些不确定因素加起来,可能把你的“无风险利润”全部吃掉。 我的建议是:把成本估算得比你想象的更保守一点。 如果按保守估算还有利润,这笔套利才值得做。

五、策略的来历、设计者与趣闻

期现套利的理论基础可以追溯到持有成本理论(Cost of Carry Theory) ,这是期货定价理论中最基础的框架之一。持有成本理论认为,期货价格 = 现货价格 + 持有成本,这一理论在20世纪初期随着商品期货市场的发展而逐步形成。

现代期现套利的发展与股指期货的诞生密切相关。1982年,芝加哥商品交易所(CME)推出了标普500股指期货,期现套利从商品期货领域扩展到了金融领域。股指期货的期现套利(Index Arbitrage)很快成为对冲基金和机构投资者的标准策略。

国内市场,期现套利随着股指期货(2010年4月16日)的推出而进入中国投资者的视野。沪深300股指期货上市后,期现套利成为首批量化策略之一。2015年股灾期间,股指期货一度出现深度贴水,期现套利空间巨大,但融券渠道枯竭导致反向套利无法执行——这个案例深刻揭示了期现套利的“制度性天花板”。

趣闻:2010年股指期货上市初期,由于市场参与者对定价机制不熟悉,期现价差一度达到异常水平,期现套利的年化收益可达20%以上。随着市场参与者增加和套利资金涌入,价差迅速收窄,套利空间被压缩至个位数百分比。一个策略的利润空间,往往在市场发现它之后迅速消失——这就是套利策略的“宿命”。

另一个有趣的现象:股指期货的升贴水本身就是市场情绪的“温度计” 。在牛市中,股指期货往往升水(期货 > 现货),反映市场乐观情绪;在熊市中,股指期货往往贴水(期货 < 现货),反映市场悲观情绪。实战应用:当股指期货出现深度贴水时,往往意味着市场极度悲观——但这恰恰可能是反向套利(做多期货、做空现货)的理论机会。期现套利者在某种程度上是在“收割”市场的悲观情绪溢价。

老陈点评
期现套利的发展史告诉我们一个重要的道理:套利策略的利润空间是有限的,而且会随着参与者增加而迅速消失。 2010年股指期货上市初期20%以上的年化套利收益,在今天已经很难重现。套利不是“印钞机”,而是“拾荒者”——捡的是市场上别人遗漏的价差。 当越来越多的人开始捡,价差就越来越小。

六、Python回测示例

⚠️ 数据拼接问题:回测期现套利时,期货数据必须使用当月连续合约(逐月滚动),而非主力连续。主力连续在换月时的跳空会严重扭曲基差计算。建议使用Wind、聚宽等平台提供的“合约连续”数据进行回测。

以下代码演示股指期货期现套利策略的回测框架。采用基差均值回归方法,使用ETF作为现货替代。

import pandas as pd
import numpy as np
from datetime import datetime, timedelta

# 注意:
# 1. 本代码为期现套利策略框架,需要获取期货和现货(ETF)的价格数据
# 2. 期货数据建议使用聚宽、天勤(TqSdk)或万得(Wind)获取
# 3. 现货数据可以使用ETF的日频数据(如510300.SS对应沪深300)
# 4. 以下代码展示策略逻辑,使用模拟数据演示
# 5. 本代码为简化版,未包含完整的成本模型,实盘需详细计算各项成本
# 6. 期现套利的价差收敛是制度必然(到期交割),协整检验仅用于数据验证,
#    并非策略的必要前提——这与配对交易(第二.02)中的协整检验有本质区别。


def cash_futures_arbitrage_strategy(
    futures_price,        # 期货价格序列(近月合约)
    spot_price,           # 现货/ETF价格序列
    lookback_days=20,     # 计算基差均值和标准差的历史窗口
    entry_zscore=1.5,     # 开仓阈值(基差偏离均值)
    exit_zscore=0.5,      # 平仓阈值(基差回归)
    cost_rate=0.01,       # 套利成本率(含资金成本、交易成本等,建议1%)
    contract_multiplier=300  # 股指期货合约乘数(IF为300)
):
    """
    期现套利策略(基差均值回归)
    参数:
        futures_price: 期货价格序列
        spot_price: 现货/ETF价格序列
        lookback_days: 计算基差均值和标准差的历史窗口
        entry_zscore: 开仓阈值
        exit_zscore: 平仓阈值
        cost_rate: 套利成本率(占现货价格的比例,建议根据实际成本测算)
        contract_multiplier: 合约乘数
    返回:添加了持仓和净值的DataFrame

    注:cost_rate默认1%(0.01)为保守估算,实盘需根据资金成本、
        持仓周期、交易费用等因素重新计算。如果基差空间小于成本,
        则不应开仓。
    """
    # 1. 合并数据
    df = pd.DataFrame({
        'futures': futures_price,
        'spot': spot_price
    }).dropna()

    # 2. 计算基差(基差 = 现货 - 期货)
    df['basis'] = df['spot'] - df['futures']

    # 3. 计算基差的均值和标准差
    df['basis_mean'] = df['basis'].rolling(lookback_days).mean()
    df['basis_std'] = df['basis'].rolling(lookback_days).std()
    df['zscore'] = (df['basis'] - df['basis_mean']) / df['basis_std']

    # 4. 计算套利成本(以点数为单位)
    df['cost'] = df['spot'] * cost_rate

    # 5. 生成交易信号
    df['signal'] = 0  # 0=空仓, 1=正向套利(买现货卖期货), -1=反向套利(卖现货买期货)
    df['position_spot'] = 0
    df['position_futures'] = 0

    position = 0
    open_count = 0
    close_count = 0

    for i in range(lookback_days, len(df)):
        zscore = df['zscore'].iloc[i]
        basis = df['basis'].iloc[i]
        cost = df['cost'].iloc[i]

        if pd.isna(zscore):
            continue

        if position == 0:
            # 开仓信号:基差偏离均值超过阈值,且大于成本
            # 注:如果基差长期偏离,策略可能在整个回测期间只开一次仓
            # 实盘可考虑加入"平仓后冷却期"逻辑来捕捉多次机会
            if zscore > entry_zscore and basis > cost:
                # 正向套利:基差过大(期货被高估),买现货、卖期货
                position = 1
                open_count += 1
                df.loc[df.index[i], 'position_spot'] = 1
                df.loc[df.index[i], 'position_futures'] = -1
            elif zscore < -entry_zscore and basis < -cost:
                # 反向套利:基差过小(期货被低估),卖现货、买期货
                position = -1
                open_count += 1
                df.loc[df.index[i], 'position_spot'] = -1
                df.loc[df.index[i], 'position_futures'] = 1
        else:
            # 平仓信号:基差回归
            if abs(zscore) < exit_zscore:
                position = 0
                close_count += 1
                df.loc[df.index[i], 'position_spot'] = 0
                df.loc[df.index[i], 'position_futures'] = 0

        df.loc[df.index[i], 'signal'] = position

    # 6. 计算每日收益率(等市值配比)
    df['daily_return'] = 0.0
    for i in range(1, len(df)):
        pos_spot = df['position_spot'].iloc[i-1]
        pos_futures = df['position_futures'].iloc[i-1]

        if pos_spot == 0 and pos_futures == 0:
            daily_ret = 0
        else:
            ret_spot = (df['spot'].iloc[i] - df['spot'].iloc[i-1]) / df['spot'].iloc[i-1]
            ret_futures = (df['futures'].iloc[i] - df['futures'].iloc[i-1]) / df['futures'].iloc[i-1]

            # 等市值配比:现货和期货的头寸价值相等(方向相反)
            daily_ret = pos_spot * ret_spot + pos_futures * ret_futures

        # 扣除交易成本(调仓时:开仓扣一次、平仓扣一次)
        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()

    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"开仓次数:{open_count}")
    print(f"平仓次数:{close_count}")

    return df


# ==================== 协整检验(可选的数据验证) ====================

def check_cointegration(futures_price, spot_price):
    """
    检验期货与现货是否存在协整关系
    注:期现套利的价差收敛是制度必然(到期交割),协整检验仅用于数据验证,
    并非策略的必要前提。这与配对交易(第二.02)中的协整检验有本质区别。
    """
    try:
        from statsmodels.tsa.stattools import coint
        p_value = coint(futures_price, spot_price)[1]
        print(f"协整检验 p值 = {p_value:.4f}")
        if p_value < 0.05:
            print("✓ 期货与现货存在协整关系(符合预期)")
        else:
            print("⚠️ 协整关系不显著,请检查数据")
        return p_value
    except ImportError:
        print("⚠️ statsmodels未安装,跳过协整检验")
        return 0.0


# ==================== 使用示例 ====================

# 使用示例(伪代码):
#
# from tqsdk import TqApi, TqAuth
# import yfinance as yf
#
# # 获取股指期货和ETF数据
# futures_data = yf.download('000300.SS', start='2023-01-01', end='2024-12-31')
# etf_data = yf.download('510300.SS', start='2023-01-01', end='2024-12-31')
#
# # 运行策略
# result = cash_futures_arbitrage_strategy(
#     futures_data['Close'],
#     etf_data['Close'],
#     lookback_days=20,
#     entry_zscore=1.5,
#     cost_rate=0.01
# )
# print(result[['basis', 'zscore', 'signal', 'net_value']].tail(10))

回测结果参考(基于公开数据,不同品种和时段结果存在显著差异):

策略类型品种年化收益最大回撤胜率
基差收敛策略IF3.8%-5.8%-0.4% ~ -0.6%~100%
基差收敛策略IC4.7%-0.5%~100%
均值回归策略IF9.2%
均值回归策略IC10.5%

:以上数据来自东证期货研究报告(2018年以来回测)。基差收敛策略胜率接近100%,持仓周期约40天。均值回归策略交易频率更高,收益空间更大,但面临基差不回归的风险。基差收敛策略赚的是“确定性的钱”,均值回归策略赚的是“波动的钱”。

代码说明
本代码为期现套利策略框架,核心逻辑是基差均值回归。实际应用中,需要获取期货和现货(ETF)的价格数据,并详细计算各项套利成本(资金成本、交易成本、冲击成本等)。期货数据建议使用聚宽、天勤(TqSdk)或万得(Wind)等专业数据源。cost_rate默认1%(0.01)为保守估算,实盘需根据资金成本、持仓周期等因素重新计算。

老陈点评
回测时要注意:期现套利的回测结果对成本假设极其敏感。 如果成本假设偏低了0.1%,回测收益可能虚增很多。建议在回测中做成本敏感性测试——把成本率从0.5%到1.5%分别测试,观察策略是否在所有成本假设下都能盈利。

老王补充
实盘中最大的问题是资金占用。期现套利需要同时占用期货保证金和现货买入资金,资金占用时间长(通常要持有到到期),资金周转率低。如果你的资金成本高于套利收益,这笔套利就是亏钱的。 建议在计算套利收益时,把资金占用成本按年化折算进去,看看年化收益率是否跑得赢你的资金成本。

七、本章小结与思考题

小结

项目核心要点
策略类型期现套利 / 基差套利
核心逻辑期货与现货的基差均值回归 + 到期必然收敛
两种方向正向套利(买现货卖期货)和反向套利(卖现货买期货)
核心公式基差 = 现货 – 期货;无套利区间 = [S – 成本_反, S + 成本_正]
理论基础持有成本理论、基差收敛(制度必然)
核心优势确定性最高(到期必然收敛),市场中性
最大风险成本估算错误、反向套利融券难、流动性风险
资金门槛高(需现货头寸)

四种套利策略的终极对比

维度跨期套利跨品种套利期现套利配对交易
交易标的同一品种、不同月份不同品种、相同月份同一品种、期货与现货两只同行业股票
价差驱动力持有成本理论产业逻辑基差收敛(到期必然)经济逻辑/协整
价差确定性最高(制度必然)较低
价差波动范围中等
利润空间中等中等
资金门槛中等
是否需要现货
做空工具期货天然支持期货天然支持需融券或借现货A股融券受限
主要风险展期成本、流动性相关性破裂、产业逻辑变化成本估算错误、融券难协整破裂、融券成本

期现套利策略是套利策略中确定性最高的一种——期货合约到期时必然收敛于现货价格,这是期货市场的制度设计决定的。但“确定性高”不等于“容易赚钱”——期现套利需要同时操作期货和现货两个市场,涉及资金成本、仓储成本、交易成本等,利润空间被各种成本压缩得很薄。

老陈总结
期现套利的价值在于它的确定性。在四种套利策略中,期现套利的价差收敛是最“硬”的——不是因为统计大概率,而是因为制度必然。但确定性的代价是:你需要现货渠道、需要计算所有成本、需要忍受薄利润和长持仓周期。 期现套利不适合小资金,也不适合追求高收益的投资者。它适合的是大资金、低风险偏好的机构投资者——对他们来说,确定性比收益率更重要。

老王总结
期现套利是我在期货市场上最早接触的策略之一。它的优点是——基差收敛是必然的。但它的缺点是——持仓周期长、资金占用大、利润薄。如果你想做期现套利,先问自己三个问题:我有足够的资金吗?我能借到现货做反向套利吗?我的资金成本足够低吗? 三个问题有一个答不上来,就别碰期现套利。

💡 思考题

  1. 期现套利和跨期套利(第二.07)的核心区别是什么?为什么期现套利的价差确定性比跨期套利更高?
  2. 期现套利中,“正向套利”和“反向套利”分别指的是什么操作?在A股市场中,哪一种更容易执行?为什么?
  3. 无套利区间是什么?为什么基差偏离0不一定代表有套利机会?请用具体数字说明。
  4.  从跨期套利(第二.07)到跨品种套利(第二.08)到期现套利(第二.09),价差的“确定性”在依次上升,但“资金门槛”也在依次上升。你认为这种“确定性换门槛”的权衡是否值得?在什么情况下你更倾向于选择期现套利?
  5.  东证期货的研究显示,基差收敛策略的胜率接近100%,但年化收益只有3.8%-5.8%;均值回归策略的收益更高(9.2%-10.5%),但面临基差不回归的风险。你会选择哪种策略?为什么?
  6.  假设沪深300指数为4200点,股指期货价格为4250点,资金成本和交易成本合计为30个点。此时存在套利机会吗?如果有,应该做什么方向的套利?如果没有,为什么?
  7.  期现套利策略中,ETF跟踪误差和ETF折溢价是如何影响套利收益的?在选择ETF作为现货替代时,你会重点关注哪些指标?
  8. (展望题) 随着股指期货市场参与者增加和定价效率提升,期现套利的利润空间正在不断缩小。你认为期现套利最终会消失吗?如果不会,它的利润来源会变成什么?

八、引用/参考出处

网上内容

学术论文与图书(元信息)

  • Hull, J. C. (2018). Options, Futures, and Other Derivatives. Pearson.(期货定价与套利理论的经典教材)
  • 中国金融期货交易所,《股指期货期现套利策略研究》

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

欢迎注册,发表评论

邀请码为:4z0RcGVN1pOtohb