在币圈交易所里,标记价格(Mark Price) 是一个用于风控和结算的参考价格,它通常不等于最新成交价(Last Price) 。
交易所引入标记价格的核心目的,是为了防止有人通过少量成交操纵市场价格,从而恶意触发爆仓、强平或者清算。
不能直接用成交价
假设:
- BTC真实市场价格:100,000 USDT
- 某人故意挂单自成交
- 最新成交价被拉到:95,000 USDT
如果交易所直接用成交价计算盈亏:
很多多头仓位会瞬间被爆仓。
但实际上外部市场根本没跌那么多。
因此交易所会引入标记价格。
标记价格
不同交易所公式不同,但思路基本一致:
标记价格 = 指数价格 + 资金费率基差
通常:
text
Mark Price
=
Index Price × (1 + Basis)
其中:
指数价格来自多个现货交易所报价。
例如 BTC:
text
Binance Spot
Coinbase
Kraken
Bybit Spot
OKX Spot
取加权平均:
text
Index Price
=
Σ(交易所价格 × 权重)
例如:
text
Binance 100000
Coinbase 99980
Kraken 100020
指数价:
text
100000 USDT
这样单个交易所被操纵不会影响指数。
基差(Basis)
永续合约价格和现货价格之间存在溢价。
例如:
text
现货:
100000
永续:
100100
溢价:
text
+0.1%
交易所会把这个差值平滑处理后加入标记价格。
例如:
text
Basis = 0.05%
则:
text
Mark Price
=
100000 × (1 + 0.05%)
=
100050
Binance 的典型计算方式
以永续合约为例:
text
Mark Price
=
Index Price + Moving Average(Premium)
其中:Premium(溢价)
text
Premium
=
Contract Price
-
Index Price
然后做:
text
5分钟移动平均
避免瞬间波动。
所以:
text
成交价暴涨暴跌
↓
Premium变化
↓
移动平均
↓
Mark Price缓慢变化
不容易被操纵。
标记价格主要用来做
未实现盈亏计算(UPNL)
很多交易所显示的浮盈浮亏:
text
UPNL
=
(标记价格 - 开仓价)
× 数量
而不是成交价。
例如:
text
开仓:
100000
成交价:
99000
标记价:
100050
显示可能还是盈利状态。
强平(Liquidation)
最重要用途。
交易所判断
text
是否爆仓
看的是:
text
Mark Price
而不是:
text
Last Price
例如:
text
爆仓价:
95000
情况A:
text
成交价:
94900
标记价:
95500
不会爆仓。
情况B:
text
成交价:
96000
标记价:
94900
会触发强平。
保证金率计算
text
Margin Ratio
=
账户权益
/
持仓价值
持仓价值通常由标记价格计算。
ADL(自动减仓)
自动减仓排名通常也是基于:
text
Mark Price
计算盈利率。
| 价格类型 | 来源 | 用途 |
|---|---|---|
| 最新成交价(Last Price) | 撮合成交 | K线、交易 |
| 指数价格(Index Price) | 多交易所现货均价 | 市场参考 |
| 标记价格(Mark Price) | 指数价+基差 | 爆仓、盈亏计算 |
text
Last Price 99800
Index Price 100000
Mark Price 100030
三者可能同时不同。
在交易所系统架构里
通常会有一个独立的 Mark Price Engine(标记价格引擎):
text
现货行情
↓
Index Engine
↓
计算指数价
↓
Premium Engine
↓
计算基差
↓
Mark Price Engine
↓
发布标记价格
然后:
text
风控系统
清算系统
保证金系统
ADL系统
全部订阅标记价格流。
而撮合引擎只关心:
text
Last Price
不关心 Mark Price。
从交易所架构角度看,标记价格本质上是风控价格,不是交易价格。撮合引擎产生的是成交价(Last Price),而风控引擎、强平引擎、保证金引擎使用的是标记价格(Mark Price)。两套价格体系通常是分离运行的。