加密货币交易所 一:合约交易基础概念

永续合约 50000、现货 49800,这 200 块的差价为什么不会被套利抹平?从这个问题出发,把资金费率的方向和周期、三个价格各管什么、以及强平清算穿仓这三个被混着用的词一次讲清。

位置
第 01 篇 / 共 12 篇
预计
8 分钟

比特币现货 49800,同一时刻永续合约报 50000。这 200 块的差价为什么不会被套利抹平?

传统期货里它会。期货有到期日,到期那天合约按现货的结算价交割,所以越靠近到期日,两个价格越必须收敛 —— 套利者盯着这个确定的收敛点,谁都不敢让差价拉太开。

永续合约没有到期日。没有交割,就没有那个确定的收敛点,也就没有任何一股力量强迫这两个价格对齐。理论上它可以永远贵 200 块,甚至永远贵 2000 块。

填这个洞的是资金费率:合约比现货贵的时候,多头定期给空头付一笔钱;反过来则空头付给多头。它不强行改价格,它改的是持仓的成本 —— 持有多头一直在流血,自然有人平仓,价格自己就下来了。

这一篇讲的就是这套机制里的几个基础概念。它们看起来是定义,实际每一个背后都是一次工程取舍。

资金费率是用现金流把价格拉回来

方向只有一条规则,但很容易记反:

  • 合约价高于指数价(正资金费率)→ 多头付给空头。
  • 合约价低于指数价(负资金费率)→ 空头付给多头。

记法是「贵的那边付钱」。开头那个例子里合约 50000、现货 49800,合约更贵,费率为正,多头掏钱。这笔钱不经过交易所,是多空之间直接划转,交易所在这里不抽成(手续费是另一回事)。

结算周期最常见的是每 8 小时一次,一天三次(Binance 的 BTCUSDT 结算在 UTC 的 00:00、08:00、16:00)。但这不是唯一的设定 —— Binance 现在同时存在 1 小时、4 小时和 8 小时三种结算周期,波动大的小币种周期更短,纠正得更频繁。这带来一个常被忽略的性质:资金费率只在结算的那一瞬间收取,不按持仓时长摊销。 在结算点前一分钟平仓,这一期一分钱不用付;结算点后一分钟开仓,也一样。有一整类交易策略就建立在这个时间点上。

费用本身是一次乘法:

一期资金费怎么算
费用 = 持仓名义价值 × 资金费率
例:持有 1 BTC 多头,标记价格 50000,本期资金费率 0.01%
费用 = 50000 × 0.01% = 5 USDT,从你的保证金里划给空头

5 USDT 看起来不多,但要按年算一遍才知道它的分量:0.01% × 一天 3 次 × 365 天 ≈ 10.95%/年。这是一个正费率长期维持时,做多方每年付出的持仓成本 —— 和杠杆无关、和你赚不赚钱无关,只要仓位还在就一直在扣。高杠杆会把这个成本相对于你本金的比例同步放大:同样 1 BTC 的多头,用 5000 USDT 保证金撑着的话,每年这 5475 USDT 的资金费相当于本金的 100% 以上。

交割合约没有这套东西,它靠到期日强制收敛,代价是你得管理到期和展期。两种设计各自把复杂度放在了不同的地方:永续把它放进一个需要持续计算和划转的费率机制,交割把它放进合约的生命周期管理。

判你死活的是标记价格,不是最新成交价

系统里同时有三个价格在跑,用错一个后果很直接。

是什么 用来干什么
最新成交价 这个合约上最后一笔成交的价格 显示、K 线、图表
指数价格 多家现货交易所价格的加权平均 标记价格的基准
标记价格 从指数价格推出来的合约公允价 计算未实现盈亏、判定强平

分开的理由是抗操纵。如果强平按最新成交价判定,一个手上有足够资金的人就能在深度薄的时刻把合约价格瞬间砸下去,扫掉一批仓位,再把价格放回来 —— 他付出的成本远小于收割到的保证金。指数价格来自多家现货交易所,要砸就得同时砸穿这几家的现货盘,成本高出好几个量级。

标记价格不是简单地等于指数价格。Binance 的 U 本位合约取三个值的中位数:一个是按资金费率调整过的指数价格,一个是指数价格加上最近 2.5 分钟基差的移动平均,第三个就是合约自己的最新成交价。

取中位数而不是平均值是这个设计的关键:三个输入里任何一个跑飞 —— 资金费率突刺、最新成交价被砸、基差短时张开 —— 都会被另外两个夹住,单独一个动不了结果。换成平均值的话,一个极端值就能把标记价格拽走三分之一的偏移量。第三篇会把这几个式子和指数价格的加权算法一起展开。

所以盯盘时看到的那个跳动的数字(最新成交价)和决定你会不会被强平的那个数字(标记价格)不是同一个。它们平时贴得很近,而在最要命的那几分钟里差得最远。

保证金是你要守住的那条线

杠杆这个词容易让人以为是「借钱」。在合约里它只是一个换算比例:你放进去多少保证金,就能撑起多少倍的名义价值。

四个量必须分清楚:

  • 初始保证金 —— 开这个仓位时占用的钱,等于名义价值 ÷ 杠杆。1 BTC @ 50000 用 10 倍杠杆,占用 5000 USDT。
  • 维持保证金 —— 想继续持有这个仓位,账上至少要留的钱。它是名义价值乘以一个很小的比率(0.5% 这个量级),而且按当前名义价值算,不是按开仓时的
  • 保证金余额 —— 你实际还有多少:初始保证金加上未实现盈亏。
  • 可用余额 —— 保证金余额里没被占用的部分,决定你还能不能开新仓。

强平的触发条件就是这两条线相交:保证金余额跌破维持保证金。 注意它不等于「亏光了」—— 维持保证金那一截是留给交易所平仓用的缓冲,等你归零再动手,滑点一出就是负数,那笔钱得平台自己贴。第六篇会拿这个不等式一步步解出具体的强平价,答案比「跌 1/杠杆」来得更早。

全仓和逐仓的区别就在「保证金余额」里装什么。逐仓是给这个仓位单独划一笔钱,亏完为止,其它仓位不受影响。全仓是整个账户的可用余额加上所有仓位的浮盈浮亏一起算 —— 资金效率高得多,一个赚着的仓位能替一个亏着的顶住,代价是亏损在账户内部传导,一个仓位出事会缩短其它所有仓位的寿命。

强平、清算、穿仓是三个环节

这三个词在中文材料里几乎总被混着用,但它们指的是完全不同的东西,分不清就没法讨论后面的机制:

  • 强平触发:保证金余额跌破维持保证金的那一瞬间。此刻还什么都没发生,它只是一个判定结果。
  • 清算处置:接下来那一整套动作 —— 冻结账户、生成平仓单、送进撮合引擎、更新账户。而且不止一种走法,可以只平一部分,也可以由清算引擎接管整个仓位。
  • 穿仓结果:清算完成后保证金余额仍然是负的。用户不会被追缴,这个窟窿先由保险基金吸收,保险基金也见底就走自动减仓(ADL),从盈利最多的对手方那边强制平掉一部分。

「爆仓」这个词日常在用,但它同时指上面三件事,所以本系列不用它。

清算保护的是交易所和其他用户,不是被清算的那一位。它的目标是别让某个账户的亏损穿透到系统,让本来无关的人一起承担 —— 理解这一点,后面所有看起来「对用户不友好」的设计(提前触发、部分平仓、ADL)才说得通。

换一条路会怎么样

上面这一整套 —— 标记价格、维持保证金、清算引擎、保险基金 —— 全部建立在一个前提上:有一个中心化的实体持有所有人的钱,并且有权在需要的时候动别人的仓位。

链上的永续合约没有这个前提,于是几乎每一个环节都得换个做法。Perpetual Protocol 里没有订单簿,价格由一条虚拟的曲线算出来;资金费不逐个转账,只维护一个全局累加器让每个人自己算差额;清算没有人有义务去做,靠给清算者分罚金来激励。把这两套放在一起读,最能看清楚哪些机制是「永续合约」本身要求的,哪些只是「中心化交易所」这个形态带来的。

这个系列讲的是后者。接下来几篇从整体架构开始,逐层往下拆。

这篇是加密货币交易所的开头,往下一篇是加密货币交易所 二:整体架构