📘 本章重点
- 理解期现套利的核心逻辑:利用期货与现货之间基差的均值回归与到期收敛特性获利
- 掌握期现套利的两种基本方向——正向套利(买现货卖期货)与反向套利(卖现货买期货)
- 学会基差的计算方法及其在套利决策中的应用
- 理解“无套利区间”的概念及其对套利机会判断的重要意义
- 认识期现套利与跨期套利(第二.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))
回测结果参考(基于公开数据,不同品种和时段结果存在显著差异):
| 策略类型 | 品种 | 年化收益 | 最大回撤 | 胜率 |
|---|---|---|---|---|
| 基差收敛策略 | IF | 3.8%-5.8% | -0.4% ~ -0.6% | ~100% |
| 基差收敛策略 | IC | 4.7% | -0.5% | ~100% |
| 均值回归策略 | IF | 9.2% | — | — |
| 均值回归策略 | IC | 10.5% | — | — |
注:以上数据来自东证期货研究报告(2018年以来回测)。基差收敛策略胜率接近100%,持仓周期约40天。均值回归策略交易频率更高,收益空间更大,但面临基差不回归的风险。基差收敛策略赚的是“确定性的钱”,均值回归策略赚的是“波动的钱”。
代码说明:
本代码为期现套利策略框架,核心逻辑是基差均值回归。实际应用中,需要获取期货和现货(ETF)的价格数据,并详细计算各项套利成本(资金成本、交易成本、冲击成本等)。期货数据建议使用聚宽、天勤(TqSdk)或万得(Wind)等专业数据源。cost_rate默认1%(0.01)为保守估算,实盘需根据资金成本、持仓周期等因素重新计算。
老陈点评:
回测时要注意:期现套利的回测结果对成本假设极其敏感。 如果成本假设偏低了0.1%,回测收益可能虚增很多。建议在回测中做成本敏感性测试——把成本率从0.5%到1.5%分别测试,观察策略是否在所有成本假设下都能盈利。
老王补充:
实盘中最大的问题是资金占用。期现套利需要同时占用期货保证金和现货买入资金,资金占用时间长(通常要持有到到期),资金周转率低。如果你的资金成本高于套利收益,这笔套利就是亏钱的。 建议在计算套利收益时,把资金占用成本按年化折算进去,看看年化收益率是否跑得赢你的资金成本。
七、本章小结与思考题
小结
| 项目 | 核心要点 |
|---|---|
| 策略类型 | 期现套利 / 基差套利 |
| 核心逻辑 | 期货与现货的基差均值回归 + 到期必然收敛 |
| 两种方向 | 正向套利(买现货卖期货)和反向套利(卖现货买期货) |
| 核心公式 | 基差 = 现货 – 期货;无套利区间 = [S – 成本_反, S + 成本_正] |
| 理论基础 | 持有成本理论、基差收敛(制度必然) |
| 核心优势 | 确定性最高(到期必然收敛),市场中性 |
| 最大风险 | 成本估算错误、反向套利融券难、流动性风险 |
| 资金门槛 | 高(需现货头寸) |
四种套利策略的终极对比
| 维度 | 跨期套利 | 跨品种套利 | 期现套利 | 配对交易 |
|---|---|---|---|---|
| 交易标的 | 同一品种、不同月份 | 不同品种、相同月份 | 同一品种、期货与现货 | 两只同行业股票 |
| 价差驱动力 | 持有成本理论 | 产业逻辑 | 基差收敛(到期必然) | 经济逻辑/协整 |
| 价差确定性 | 高 | 中 | 最高(制度必然) | 较低 |
| 价差波动范围 | 窄 | 宽 | 中等 | 宽 |
| 利润空间 | 薄 | 中等 | 薄 | 中等 |
| 资金门槛 | 低 | 中等 | 高 | 高 |
| 是否需要现货 | 否 | 否 | 是 | 否 |
| 做空工具 | 期货天然支持 | 期货天然支持 | 需融券或借现货 | A股融券受限 |
| 主要风险 | 展期成本、流动性 | 相关性破裂、产业逻辑变化 | 成本估算错误、融券难 | 协整破裂、融券成本 |
期现套利策略是套利策略中确定性最高的一种——期货合约到期时必然收敛于现货价格,这是期货市场的制度设计决定的。但“确定性高”不等于“容易赚钱”——期现套利需要同时操作期货和现货两个市场,涉及资金成本、仓储成本、交易成本等,利润空间被各种成本压缩得很薄。
老陈总结:
期现套利的价值在于它的确定性。在四种套利策略中,期现套利的价差收敛是最“硬”的——不是因为统计大概率,而是因为制度必然。但确定性的代价是:你需要现货渠道、需要计算所有成本、需要忍受薄利润和长持仓周期。 期现套利不适合小资金,也不适合追求高收益的投资者。它适合的是大资金、低风险偏好的机构投资者——对他们来说,确定性比收益率更重要。
老王总结:
期现套利是我在期货市场上最早接触的策略之一。它的优点是稳——基差收敛是必然的。但它的缺点是慢和贵——持仓周期长、资金占用大、利润薄。如果你想做期现套利,先问自己三个问题:我有足够的资金吗?我能借到现货做反向套利吗?我的资金成本足够低吗? 三个问题有一个答不上来,就别碰期现套利。
💡 思考题
- 期现套利和跨期套利(第二.07)的核心区别是什么?为什么期现套利的价差确定性比跨期套利更高?
- 期现套利中,“正向套利”和“反向套利”分别指的是什么操作?在A股市场中,哪一种更容易执行?为什么?
- 无套利区间是什么?为什么基差偏离0不一定代表有套利机会?请用具体数字说明。
- 从跨期套利(第二.07)到跨品种套利(第二.08)到期现套利(第二.09),价差的“确定性”在依次上升,但“资金门槛”也在依次上升。你认为这种“确定性换门槛”的权衡是否值得?在什么情况下你更倾向于选择期现套利?
- 东证期货的研究显示,基差收敛策略的胜率接近100%,但年化收益只有3.8%-5.8%;均值回归策略的收益更高(9.2%-10.5%),但面临基差不回归的风险。你会选择哪种策略?为什么?
- 假设沪深300指数为4200点,股指期货价格为4250点,资金成本和交易成本合计为30个点。此时存在套利机会吗?如果有,应该做什么方向的套利?如果没有,为什么?
- 期现套利策略中,ETF跟踪误差和ETF折溢价是如何影响套利收益的?在选择ETF作为现货替代时,你会重点关注哪些指标?
- (展望题) 随着股指期货市场参与者增加和定价效率提升,期现套利的利润空间正在不断缩小。你认为期现套利最终会消失吗?如果不会,它的利润来源会变成什么?
八、引用/参考出处
网上内容:
- 东证期货《股指期货套利策略系列一:股指期货与ETF的基差套利策略》(2023-10-11):https://stock.finance.sina.com.cn/stock/go.php/vReport_Show/kind/lastest/rptid/750375611159/index.phtml
- 百度百科 期现套利 :https://baike.baidu.com/item/期现套利
- 百度百科 套利交易 :https://baike.baidu.com/item/套利交易
- CSDN博客《Python量化中如何实现跨期现套利?》(2025-06-06):https://blog.csdn.net/wencaitouzi/article/details/148478253
- 期货日报网《期货套利的底层逻辑及实操要点》(2026-04-26):http://www.qhrb.com.cn/articles/344817
学术论文与图书(元信息):
- Hull, J. C. (2018). Options, Futures, and Other Derivatives. Pearson.(期货定价与套利理论的经典教材)
- 中国金融期货交易所,《股指期货期现套利策略研究》


















暂无评论内容