↓ Skip to main content
  1. Posts/

从传统期货到永续合约:理解基差交易与资金费率

·5906 words·12 mins
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

最近在系统地补加密货币衍生品的知识。之前写过期权,那篇关注的是"方向对了也能亏钱"的多维度约束。这次想理清的是另一组概念:Basis Trade(基差交易)、永续合约(Perpetual Futures)和 Funding Rate(资金费率)。

这几个概念单独查定义都不复杂,但它们之间的因果关系并不那么显然。比如:为什么传统期货到期时价格会向现货收敛?是结算规则直接强制的,还是套利行为推动的?永续合约没有到期日,那它凭什么还能追踪现货价格?Funding Rate 到底是怎么通过经济激励间接影响永续价格的?

这篇文章是我把这条因果链从头到尾梳理一遍的笔记。

为什么同一个 BTC 会有两个价格?
#

假设你在某个时刻看到两个报价:

  • BTC 现货价格:100,000 USDT
  • BTC 永续合约价格:105,000 USDT

都跟 BTC 有关,但价格差了 5,000 USDT。

这里先把几个基本概念理一下。现货(Spot)就是你直接在市场上买入并持有的 BTC,付钱交货,一手交钱一手交币。期货(Futures)是一份标准化合约,约定在未来某个时间按约定价格买卖 BTC,不需要当下立即交割。永续合约(Perpetual Futures)是加密货币市场发明的一种特殊期货——它没有固定到期日,可以无限期持有。

这三者之间的价格差,就引出了基差(Basis)的概念。全文统一采用:

$$ Basis = Futures - Spot $$

在上面的例子中,基差为 +5,000 USDT。当期货价格高于现货时,基差为正,市场处于升水(Contango)状态。

需要说明的是,传统商品期货教材也常把基差定义为 Spot - Futures,跟这里的符号相反。本文统一用 Futures - Spot,后续推导都基于这个约定。

另外,105,000 对 100,000 的 5% 溢价是为了让例子里的数字好算。实际 BTC 永续合约的基差远没有这么稳定地大,不要把这个假设当成市场的常态。

传统期货为什么会向现货价格收敛?
#

传统期货有一个关键特征:到期日。到期之后,合约必须按照预先约定的规则进行最终结算。这个规则,就是驱动期现价格收敛的核心锚点。

结算方式主要有两种。

现金结算
#

假设有一份 BTC 季度期货合约,今天现货 100,000 USDT,期货报价 105,000 USDT,明天到期。合约条款规定:最终结算价采用指定的 BTC 现货参考指数(比如几家主流交易所现货价格的加权平均)。

注意,交易所并不是在到期的那一刻直接把期货市场上的报价强行拉到跟现货一样。它做的事情更简单:合约规定了最终结算价的计算方式,这个结算价锚定在现货参考指数上。

有了这个规则,套利者就有了可执行的策略。假设我现在:

  • 买入 1 BTC 现货,花费 100,000 USDT
  • 做空 1 BTC 季度期货,开仓价 105,000 USDT

明天到期时,不管 BTC 现货跌到多少,看看三种情况下这个组合的结果:

到期参考指数现货盈亏期货空头盈亏组合总盈亏
90,000-10,000+15,000+5,000
100,0000+5,000+5,000
110,000+10,000-5,000+5,000

三种场景下,组合的理论毛利润都是 5,000 USDT——恰好等于建仓时的基差。

这就是现金结算期货收敛的底层逻辑:结算规则提供了一个确定的终点价格锚,套利者可以围绕这个锚点构建对冲组合来锁定基差利润。当足够多的套利者这样做时(买现货、卖期货),他们的交易行为本身就在压缩基差——现货受到买盘推高,期货受到卖盘压低。

实物交割
#

换一个更直观的例子:黄金。

  • 现货黄金:1,000 元/克
  • 即将到期的黄金期货:1,100 元/克

如果这份期货合约采用实物交割,套利者可以这样做:

  1. 在现货市场买入符合交割标准的黄金,花费 1,000 元/克。
  2. 在期货市场做空等量合约,开仓价 1,100 元/克。
  3. 到期时,用买来的实物黄金履行期货空头的交割义务。

在忽略仓储、运输、交割手续费和资金成本的理想条件下,每克锁定了 100 元的毛利。

我觉得这里有一个很容易含混带过的因果关系:实物交割本身并不会自动让市场报价收敛。真正的因果链是——交割规则提供了一条可兑现的套利路径,套利者沿着这条路径买入现货、卖出期货,现货受到买盘推动上涨、期货受到卖盘压力下跌,价差因此趋于缩小。

反方向也有类似的直觉:如果期货价格低于现货(贴水),理论上可以做多期货、做空现货,等到期时用交割拿到的实物来平掉现货空头。但反向操作在实际中涉及借券、仓储资格等复杂问题,这里不展开。

几个容易忽略的细节
#

  • 期货通常实行每日盯市(Mark-to-Market),保证金账户会逐日结算浮动盈亏,不能简单地把做空期货理解成"立即收到全部期货卖出价款"。
  • 最终结算价不一定等于某家现货交易所的最后一笔成交价,通常是多个来源的加权或时间段均价。
  • 到期前最后一笔期货成交价也不一定严格等于最终结算价,两者之间可能存在微小偏差。
  • 套利并非无摩擦:交易费用、资金占用成本、交割成本、滑点等都会侵蚀利润。只有当基差大到足以覆盖这些成本时,套利才有实际价值。

小结:最终结算或交割提供价格锚点,套利行为推动市场报价向这个锚点收敛。两者不能混为一谈——前者是制度基础,后者是市场行为。

永续合约没有到期日,意味着什么?
#

永续合约(Perpetual Futures)是加密货币交易所引入的合约品种,几个基本特征:

  • 没有固定到期日,可以一直持有。
  • 可以做多,也可以做空。
  • 以保证金形式交易,使用杠杆。
  • 持有合约不代表持有实际 BTC。
  • 不会因为到了某个日期就按现货指数进行最终到期结算。

需要澄清一个误解:没有到期日不等于不结算盈亏、不需要保证金或不会被强平。永续合约的保证金会实时计算,触及维持保证金线就会被强制平仓。

它跟传统到期期货的关键区别,用一个对比来说明:

合约 A:明天到期的 BTC 现金结算期货,价格 105,000 USDT。

合约 B:BTC 永续合约,价格也是 105,000 USDT。

现货 BTC 均为 100,000 USDT。两者都做空 1 BTC,同时买入 1 BTC 现货对冲。

假设明天现货跌到 90,000 USDT:

  • 合约 A:到期按现货参考指数 90,000 最终结算。期货空头盈利 \( 105,000 - 90,000 = 15,000 \),现货亏损 10,000,组合净赚 5,000 USDT。基差从 5,000 被强制归零。
  • 合约 B:没有到期结算。假设永续合约的市场价还挂在 95,000 USDT,基差从 5,000 缩小到了 5,000(\( 95,000 - 90,000 \)),一分没变。组合的价格盈亏:现货亏 10,000,永续空头赚 \( 105,000 - 95,000 = 10,000 \),净盈亏为 0(暂时忽略 Funding)。

对比下来就很清楚了:传统到期期货有一个确定的基差归零时间点,而永续合约没有。

这不意味着永续合约的价格可以完全脱缰。它只是说,永续合约需要依赖一套不同于"到期结算"的机制来约束价格偏离。这个机制就是后面要说的 Funding Rate。

在进入 Funding Rate 之前,先把 Basis Trade 本身的结构理清楚。

Basis Trade 究竟在交易什么?
#

Basis Trade(基差交易)是金融领域已有的术语,不是 Crypto 独创的。它跟 Cash-and-Carry Arbitrage(现货持有套利)密切相关——后者特指买入现货、卖出期货并持有到到期的操作,前者则更泛化,既可以做到期期货,也可以做永续合约,不一定持有到期。

以一个具体组合来看:

  • 买入 1 BTC 现货,价格 \( S_0 = 100,000 \) USDT
  • 做空 1 BTC 线性 USDT 本位永续合约,开仓价 \( F_0 = 105,000 \) USDT

假设一段时间后平仓,现货价格变为 \( S_1 \),永续价格变为 \( F_1 \)。

现货多头的盈亏:

$$ PnL_{spot} = S_1 - S_0 $$

永续空头的盈亏:

$$ PnL_{perp} = F_0 - F_1 $$

组合总价格盈亏(暂不考虑 Funding):

$$ PnL_{basis} = (S_1 - S_0) + (F_0 - F_1) = (F_0 - S_0) - (F_1 - S_1) $$

也就是:

$$ \boxed{PnL_{basis} = Basis_{open} - Basis_{close}} $$

这个公式非常直观:组合的价格盈亏等于开仓时的基差减去平仓时的基差。

用三组数字验证。开仓基差 = 5,000 USDT。

场景一:基差从 5,000 缩小到 0。

\( S_1 = 105,000 \),\( F_1 = 105,000 \)。现货赚 5,000,永续空头亏 0。或者 \( S_1 = 90,000 \),\( F_1 = 90,000 \)。现货亏 10,000,永续空头赚 15,000。不管 BTC 涨跌,组合赚 5,000 USDT。

场景二:BTC 上涨,基差缩小但没有归零。

\( S_1 = 110,000 \),\( F_1 = 114,000 \)。基差从 5,000 缩小到 4,000。现货赚 10,000,永续空头亏 9,000。组合赚 1,000 USDT。

场景三:基差扩大。

\( S_1 = 100,000 \),\( F_1 = 110,000 \)。基差从 5,000 扩大到 10,000。现货盈亏为 0,永续空头亏 5,000。组合亏 5,000 USDT。

到这里我发现,从公式和数字都能看出来:这个组合赚的不是 BTC 涨跌的钱,而是基差缩小的钱;反过来,基差扩大就是亏损。它本质上是在做空基差(Short Basis)。

这种组合在方向上近似是 Delta-Neutral(方向中性)的:现货多 1 BTC,永续空 1 BTC,BTC 本身的涨跌在两头大致抵消,剩下的价格敞口主要来自基差变化。但方向中性不等于所有风险都中性——基差风险、Funding 风险、保证金风险都还在,后面会讲。

上述公式的适用前提:同数量 BTC、线性 USDT 本位合约、暂时忽略 Funding 和交易成本。如果换成反向币本位合约(Inverse Perpetual),PnL 的计算方式不同,这个公式不能直接套用。

Funding Rate 为什么能让永续价格向现货靠拢?
#

现在到了整篇文章的核心问题:如果永续合约永远不到期,市场凭什么不让它的价格长期偏离现货?

答案是资金费率(Funding Rate)。

在大多数交易所的典型机制下:

  • Funding Rate 为正时:永续多头向空头支付资金费。
  • Funding Rate 为负时:永续空头向多头支付资金费。

以一个假设为例:Funding Rate = +0.1%,每 8 小时结算一次。永续合约价格为 105,000 USDT。

如果我持有 1 BTC 的永续空头仓位,在名义价值不变的前提下,每次 Funding 结算收到:

$$ 105,000 \times 0.1\% = 105 \text{ USDT} $$

这笔钱不是交易所给的,也不是从现货市场来的。它来自永续合约多头方的账户,直接转入空头方的账户。 现货多头的作用是对冲永续空头的方向风险,它本身并不产生 Funding 收入。

但 Funding Rate 不只是一笔资金转移。更重要的是它创造的经济激励,以及这些激励如何间接影响永续合约的市场供需。

当永续价格相对现货偏贵时(正基差),完整的因果链是这样的:

  1. 正 Funding Rate 意味着多头要向空头付钱——持有永续多头的成本上升了。
  2. 同时,正 Funding Rate 意味着空头从多头那里收钱——持有永续空头变得更有吸引力。
  3. 一部分原本持有多头的交易者会减仓甚至平仓,因为持仓成本变高了。
  4. 另一批交易者(包括做 Basis Trade 的套利者)会入场做空永续、买入现货,锁定 Funding 收入。
  5. 这些交易行为在永续市场增加了卖盘(空头开仓),在现货市场增加了买盘。
  6. 永续价格受到卖压趋于下降,现货价格受到买压趋于上升,基差因此缩小。
Funding Rate 正向激励的因果链

反方向也成立:当永续价格低于现货(负基差)时,Funding Rate 为负,空头要向多头付钱。空头的持仓成本上升,多头获得补贴。于是一部分空头平仓,一部分交易者做多永续、卖出现货,永续价格受到买盘推高,基差反向收窄。

容易混淆的一点:Funding Rate 本身只是多空之间的资金转移,它并没有直接修改永续合约的市场挂单价格。 它的作用机制是间接的——通过改变多空双方的持仓成本和收益预期,影响交易者的行为决策,交易者的行为再影响市场供需,供需变化最终反映到价格上。

还有一个实际细节:不要把"永续高于现货"机械地等同于"Funding 一定为正"。实际的 Funding Rate 计算涉及溢价指数(Premium Index)、利率分量(Interest Rate)等因素,不同交易所的公式有差异。在大多数情况下,正基差对应正 Funding,但不是一个严格的等式。

如果基差始终不收敛,还能赚钱吗?
#

前面推导的 \( PnL_{basis} = Basis_{open} - Basis_{close} \) 只是价格维度的盈亏。但做 Basis Trade 的收益来源不止这一个。

来看一个极端场景:

  • 现货价格始终为 100,000 USDT。
  • 永续价格始终为 105,000 USDT。
  • 基差始终为 5,000 USDT,纹丝不动。
  • 持仓期间发生了一次 Funding 结算,Funding Rate = +0.1%。
  • 组合:1 BTC 现货多头 + 1 BTC 永续空头。

Basis PnL:

$$ PnL_{basis} = 5,000 - 5,000 = 0 $$

Funding PnL(永续空头收到的资金费):

$$ PnL_{funding} = 105,000 \times 0.1\% = 105 \text{ USDT} $$

忽略交易成本:

$$ PnL_{total} = 0 + 105 = 105 \text{ USDT} $$

基差没变,但组合赚了 105 USDT。这笔钱完全来自 Funding。

所以 Basis Trade 的完整收益有两个来源:

Basis PnL:基差变化产生的盈亏。基差缩小赚钱(做空基差时),基差扩大亏钱。

Funding PnL:永续合约资金费的累计收入或支出。正 Funding 时空头收钱,负 Funding 时空头付钱。

更完整的 PnL 公式:

$$ PnL_{total} = PnL_{basis} + PnL_{funding} - Costs $$

其中 Costs 包括交易手续费、滑点、资金占用的机会成本等。

Funding Rate 不是固定不变的。它随市场情绪波动,可能从 +0.1% 变成 +0.01%,甚至反转为负值。收取 Funding 不是无风险的固定收益。 如果市场情绪反转、Funding 长期转负,永续空头反而要向多头付钱,叠加基差扩大的可能性,组合可以出现显著亏损。

为什么 Basis Trade 不等于无风险套利?
#

从上面的推导来看,Basis Trade 的结构清晰,逻辑闭环。但它绝不是无风险套利。至少有三个明确的风险来源。

基差风险(Basis Risk)
#

基差可能扩大而不是缩小。如果开仓时基差 5,000,后来扩大到 10,000,即使 Funding 为正,Basis PnL 的亏损(-5,000)也可能远超 Funding 的收入。

在极端行情中(比如市场突然进入狂热的杠杆多头情绪),基差可以在短时间内剧烈扩大。

资金费率风险(Funding Risk)
#

Funding Rate 不保证始终为正。市场情绪可能反转,正基差变成负基差,正 Funding 变成负 Funding。此时永续空头不仅收不到钱,反而要向多头付费。

如果持仓周期较长,期间 Funding Rate 大幅波动甚至长期为负,累计 Funding PnL 可能从正变负。

保证金与强平风险(Margin / Liquidation Risk)
#

这是实操中最容易被忽视的风险。

虽然组合的整体经济敞口近似对冲,但现货和永续的保证金通常是分开管理的。如果 BTC 价格剧烈上涨,永续空头的浮亏会迅速增加、保证金被侵蚀。即使现货端的浮盈完全覆盖了永续端的浮亏,如果你没有及时把现货端的盈利转移到永续保证金账户,永续空头仍然可能因为保证金不足而被强制平仓。

一旦永续空头被强平,你就只剩下一个裸露的 BTC 现货多头——原本的方向中性对冲彻底瓦解。

除了这三个主要风险,还有交易成本(开平仓手续费、滑点)、交易所信用风险(交易所跑路或冻结提币)等。

这一节不展开成完整的风险管理教程,但需要建立一个认知:Basis Trade 是一种有明确结构和可量化收益来源的交易策略,但它不是无风险的,也不是"稳赚不赔的套利"。

总结
#

  • 基差交易关注的是两个相关价格之间的差值变化,而不是单纯押注 BTC 涨跌。方向中性不代表无风险。
  • 传统到期期货通过最终结算或实物交割提供明确的价格锚点;套利者的交易行为才是推动到期前市场价格收敛的力量,结算规则本身只是提供了套利的可执行基础。
  • 永续合约没有固定到期日,因此不存在到期结算带来的基差强制归零。Funding Rate 通过改变多空双方的持仓成本和收益预期,间接影响交易者行为和市场供需,从而促使永续价格向现货靠拢。但这是一个概率性的均衡机制,不是确定性的。
  • Basis Trade 组合的总收益 = 基差变化的盈亏 + 累计 Funding 收支 - 成本。即使基差不动,Funding 也可以产生收入;但 Funding 会波动,基差会扩大,保证金可能不够用。策略的适用边界在于你对这三个风险的理解和管理能力。

参考资料
#

Related

期权入门:为什么看对涨跌方向,仍然可能亏钱?

最近在学股票的波段交易(Swing Trading),平时看行情主要依赖趋势形态、动量和成交量。前段时间在琢磨做空交易时,遇到过一个很实际的场景:我看空某只股票,但我不想直接融券做空——融券需要借入股票,要付融券利息,还有被券商提前召回的可能;更棘手的是,如果遇到逼空(Short Squeeze),理论上的亏损幅度是上不封顶的,账户随时面临追加保证金(Margin Call)的压力。

从价格发现到流动性螺旋:股票市场为什么需要“国家队”?

在很长一段时间里,我对股票市场的理解非常机械,甚至带着一种理所当然的工程偏见。 作为一个长期和分布式系统、性能优化与反馈控制打交道的工程师,我习惯把撮合引擎看作一个纯粹的分布式信息处理系统:全市场的参与者带着各自的信息、算力和风险偏好,用真金白银在订单簿上挂单出清。价格上涨,说明对未来的盈利预期转好;价格下跌,说明基本面恶化或风险溢价上升。

大量主动卖出,股价为什么不跌?——从 SOXL 成交统计理解流动性与价格冲击

10月16日,美东时间上午,我在看 SOXL 的成交统计时看到了一组让我反复盯着屏幕的数字。 SOXL 是 3 倍做多半导体 ETF,那天跌了超过 6%。我打开成交统计,本来预期应该看到一个主动卖出量远超买入量的页面——毕竟已经跌成这样了。结果是这样的:

为什么美债收益率会变化?从 3M 国债理解债券定价

·5975 words·12 mins
前段时间在梳理短期利率时,有一个朴素的疑问困扰了我一阵子。 当时我在看 3 个月期美国国债(3-Month Treasury Bill,简称 3M T-Bill)。直觉上的买卖过程非常直接:假设我花了 9,900 美元买下一张三个月后到期、面值为 10,000 美元的国债。只要美国政府不违约,三个月后财政部如期兑付 10,000 美元,我净赚 100 美元差价。