打开一家加密交易所的 BTC 永续合约页面,价格旁边通常挂着两个小数字。一个是资金费率,比如 0.0100%。另一个是倒计时,告诉你离下一次结算还有几小时几分钟。
很多人第一次听说“资金费套利”,就是从这两个数字开始的。说法听上去很简单。买 1 万美元的 BTC 现货,再在永续合约上做空同样金额。币价涨跌两边抵消,每八小时安静地收一笔资金费。0.01% 一天收三次,一年 365 天,算下来年化接近 11%。
这篇想把这件事拆开。资金费到底是谁付的,为什么有人愿意一直付,那 11% 里又有多少能真正落进口袋。
先给结论。费率为正时,钱通常由做多永续的人付给做空永续的人,交易所只按规则在两边之间转账。买现货、空永续可以把币价涨跌大体对冲掉,只留下这笔现金流。可它是浮动的,会变小,也会转负。合约那条腿要放保证金,币价急涨时可能先被强平。退出时永续和现货之间的价差,也会改写最后的结果。页面上算出来的年化、账户里显示的盈亏和最后到手的净利润,常常是三个不同的数。
永续没有到期日,所以要有人定时付钱
上一篇讲交割合约。它有到期日,到了那天必须按现货价格结算,期货和现货被硬拉到一起。永续合约把到期日拿掉了,仓位可以一直拿下去,麻烦也跟着来了。如果市场情绪一直偏多,大家抢着在永续上做多,永续价格就可能长期高于现货。没有哪一天会强制它回到现货价。
资金费是交易所给它补上的那股拉力。永续价格高于现货时,费率通常为正,持有多单的人按仓位大小付钱给持有空单的人。永续低于现货时,费率通常为负,方向倒过来。
这笔钱能把价格拉回去,靠的是它改变了两边的持仓意愿。费率为正时,做多的人每隔几小时要掏一次钱,有人嫌贵就平掉多单,平多单要卖出合约。做空的人能收钱,有人为了这笔补贴开空单,也是卖出。两股卖盘一起把永续价格往下压,靠近现货。资金费并不规定价格必须等于现货,它只是让站在拥挤一边的人越待越贵。
可以想象一张长桌,左边挤满了人,右边空着。规则是人多的那边每隔一阵给人少的那边发红包。左边有人嫌贵起身走了,右边有人为了红包坐过去,桌子慢慢就平了。这个比方有一点是对的,钱从拥挤的一方流向冷清的一方,组织者不从中抽成。也有一点不对。合约市场里多单和空单的数量永远相等,每一张多单背后都站着一张空单。所谓“拥挤”体现在价格上,看的是想做多的人愿意把永续价格抬高多少,不是数人头。
交易所不拿这笔钱,这一点 OKX 的资金费说明写得很清楚。资金费等于仓位价值乘以资金费率,仓位价值按标记价格计算,在固定的结算时点支付,钱在多空持仓者之间直接转移,平台不收服务费。

费率怎么算出来,什么时候才算你的
平台不会简单地拿“永续最新价减现货最新价”来定费率。常见做法是参考一段时间内的溢价指数,也就是永续价格平均比现货指数高出或低出多少,再叠加一个利率成分。仓位的名义价值则用标记价格计算。标记价格是交易所综合多家现货报价等数据算出来的参考价,专门用来算盈亏和强平。这样做是为了不让某一笔异常成交直接左右资金费和爆仓。不同交易所公式相似,参数却不必相同。
不同平台的符号和结算频率也可能不一样。程序不能看到一个正号就凭经验下单。它应当读取合约规则,确认谁付给谁、下一次什么时候结算、费率上下限是多少、名义价值按哪个价格算。
还有结算资格。以 Bybit 的资金费规则为例,只有在结算时刻持有仓位才会收付资金费,结算前后几秒内开平仓不保证算进这一期。费率触及上下限时,它还会把结算频率自动切到每小时一次。提前一分钟建仓,不代表稳拿整期费率。只为抢一笔资金费而在结算前后短暂进出,资金费到手的同时,开平仓的价差和手续费可能从另一边把它吃掉。
买现货、空永续,一笔账从头算到尾
假设 BTC 价格是 5 万美元。我买入 0.2 BTC 现货,花 1 万美元,同时做空名义价值 1 万美元的 BTC 永续。BTC 涨到 5.5 万,现货多赚 1000 美元,空单亏 1000 美元。BTC 跌到 4.5 万,现货亏 1000 美元,空单赚 1000 美元。两边数量匹配时,币价往哪边走都和这个组合关系不大。
剩下的就是资金费。费率每八小时 0.01%,1 万美元名义价值乘以 0.01%,每次结算空头收到约 1 美元。一天三次就是 3 美元。这是费率一直不变的理想情况。
这 3 美元由做多永续的人支付。想加杠杆做多的人,用永续比借钱买现货方便得多,几百美元保证金就能拿住上万美元的仓位。资金费可以看成他们为这份便利付的租金。牛市里想加杠杆的人越多,愿意付的租金越高。套利者在另一边接住这些空单,收的就是这份租金。这也是机会会反复出现的原因。
接下来要找对分母。买 1 万美元现货要真金白银 1 万美元,空永续也要放保证金。假设合约账户放 3000 美元,总共占用 1.3 万美元。一天 3 美元,对总资金的日收益是 3 ÷ 13000,约 0.023%,不是页面上的 0.03%。一年按 365 天算,3 × 365 = 1095 美元,除以 1.3 万,年化约 8.4%。开头那个 11% 是按 1 万美元名义价值算的,占用的资金一多出来,它就缩水了。
再扣手续费。开仓要买现货、卖永续,平仓要卖现货、买回永续,一共四笔成交。手续费率因平台和账户等级差别很大,以平台当前费率表为准,这里的数字只做演示。假设现货每笔 0.1%,永续每笔 0.05%,现货两笔是 20 美元,永续两笔是 10 美元,合计 30 美元。按一天 3 美元算,前十天收到的资金费全部用来交手续费。这还没算滑点,也就是实际成交价比看到的报价更差的那部分。
保证金放得越少,纸面上的资金效率越高,离强平也越近。这个取舍后面会算到。
对冲数量也要算准。所谓对冲得住,是指两条腿对币价变化的敏感度正好相反,交易员把这种敏感度叫 delta。0.2 BTC 现货的 delta 是 0.2 BTC,空单也得刚好是 0.2 BTC。永续合约的面值可能按 BTC 计,也可能按美元计。币本位合约用 BTC 做保证金和结算,盈亏本身会随币价再变一层。USDT 计价的线性合约更直观。程序要按合约乘数算出真实 delta,不能只让页面上两个名义金额看起来一样。
这和上一篇的交割基差不同。交割合约靠到期结算产生硬收敛,利润在建仓那一刻基本就锁定了。永续没有终点,策略收的是一笔笔还没发生的资金费。永续和现货之间的价差变化仍会影响中途盈亏,但那是另一种来源的钱。
年化数字为什么靠不住
把单次费率乘以每天的结算次数再乘 365,很容易得到一个漂亮的年化。问题在于资金费率不是定期存款利率。它今天为正,明天可以下降,极端行情里也可能变成负数。一旦转负,持有空单的人反过来要付钱。交易所还可能调整结算频率和费率上下限。
看一个假设的月份。过去三十天一共结算 90 次,其中 60 次收到 0.01%,20 次接近零,10 次反过来支付 0.03%。加起来是 0.6% 减 0.3%,累计 0.3%。放在 1 万美元仓位上是 30 美元。如果按“当前 0.01% 每八小时”往外推,这个月应该收 90 美元。实际只有三分之一,而且正好被上面假设的 30 美元手续费吃光,滑点还没扣。
所以程序更该看费率的历史分布、连续为正的时长和市场的拥挤程度。回测时不能拿当前费率覆盖整段历史,收益曲线要按每次实际结算的记录逐笔累计。
只看平均数也不够。费率收益可能集中在少数极端时段,而那些时段往往伴随最差的盘口深度和最高的清算风险。回测要把费率、标记价格、盘口和保证金放在同一条时间线上。如果手里只有日均费率,就没法知道策略在拿到那笔高费率以前,有没有先爆仓。
这套结构有人做到了很大规模。Ethena 发行的合成美元 USDe,按它的官方文档描述,其中波动资产的部分就是持有现货,同时开出名义金额大致相同的空头合约,让两边的价格变化互相抵消。文档还写明,质押版 sUSDe 的奖励只会为正或持平,协议收入为负的时期由储备基金吸收。专门做这件事的协议,也要单独准备一笔钱来扛费率转负的日子。
价格对冲住了,空单照样会爆仓
回到那 1.3 万美元。假设 BTC 从 5 万美元快速涨到 6.5 万,涨了 30%。0.2 BTC 现货从 1 万美元变成 1.3 万,赚了 3000 美元,这笔钱躺在现货账户里。空单亏了 3000 美元,而合约账户里一共只有 3000 美元保证金。
交易所不会等保证金亏到零。保证金低于一条最低线,也就是维持保证金,系统就会强制平仓,这就是强平。所以空单在涨到 30% 之前就已经被平掉了,通常还要多付一笔强平相关的费用。两个账户合起来看,组合几乎没亏。可空单一没,手里只剩 0.2 BTC 现货,原本中性的组合变成了单纯做多。接下来币价回落,亏损就没有东西对冲了。
如果平台支持统一保证金,也就是现货和合约在同一个账户里共用保证金,现货的浮盈可以撑住空单。若不支持,现货利润不会自己跑过去救人。

所以策略要留足保证金,盯着强平价,并设计自动划转。用高杠杆提高资金利用率,生存空间会同时缩小。合约端放 3000 美元,能扛住接近 30% 的上涨。只放 1000 美元,资金占用降到 1.1 万,年化好看一些,可币价涨 10% 左右空单就到头了。资金费套利最难受的结局,是方向一点没押错,仓位却在收钱之前被强平。
自动划转也不是万能按钮。交易所可能限制调用频率,统一账户里的可用余额也可能被其他策略占走。行情剧烈时,风控系统要先给仓位排好优先级,哪些必须补保证金,哪些可以马上减仓,哪些现货能快速卖掉。这些不能等警报响了才临时决定。
标记价格是另一个容易看错的地方。空单按最新成交价看着还安全,强平系统却按标记价格计算,反过来也可能发生。监控页面如果只订阅成交价,会在最需要报警的时候拿错那把尺子。
退出那一刻,价差会改写结果
永续价格和现货价格之间的差,叫基差。假设建仓时永续比现货贵 0.5%,在 1 万美元仓位上就是 50 美元。平仓时如果基差缩到零,卖出现货、买回永续,会额外多赚这 50 美元。如果基差扩大到 1%,退出时就要亏掉 50 美元。按一天 3 美元的资金费算,50 美元差不多是十七天的收入。
只统计收到的资金费,会把这部分漏掉。完整的收益要把资金费、开平仓基差、交易费、滑点、借贷成本和资金划转成本都算进去。跨平台操作还要加上平台信用和提现风险。
还有一种做法是在两个永续市场之间一多一空。一个平台费率为正,另一个为负,在正费率平台做空、负费率平台做多,理论上两边都能收钱,也不用持有现货。利润来源仍是资金费,工程风险却更重。两边用的指数、结算时刻和标记价格可能不同,极端行情里两个合约不会像镜子一样同步。
多平台仓位还会遇到资金被分割的问题。一边盈利,另一边亏损,盈利没法瞬间搬过去补保证金。交易所一旦暂停提现,原本中性的组合就被拆成两个各自接受风控的账户。费率差越诱人,越要先想清楚,为什么别的资金没有把它提前抹平。
真正跑起来,程序每天在忙什么
建仓前,程序要同时看几样东西。下一期费率和过去一段时间的费率分布,现货和永续实际能成交的价格,两边盘口能吃下多大仓位,保证金离强平还有多远,以及将来退出要花多少钱。只有预期的资金费高于全部成本,还留得出一块风险垫,才值得建仓。
我还会让程序分别记三本账。第一本是价格对冲的盈亏,第二本是资金费现金流,第三本是手续费、借贷和划转成本。三本账混在一起,一笔方向上的盈利可能掩盖费率策略正在失效。拆开以后,才能回答“这次赚钱究竟是不是资金费赚的”。
回到开头的问题。资金费是想用杠杆做多的人付的,套利者站在对面收这份租金。钱是真的,可它的数额每八小时重新定一次,结算时才到账。纸面上写着“买一个、卖一个”,跑久了以后,日常工作大多是对账、搬保证金和检查规则。仓位能不能活到下一次结算,比这一期费率有多高更要紧。