概述

永续合约是数字货币交易所(CEX)提供的主流衍生品工具,无到期日限制,通过资金费率机制使合约价格与现货价格保持一致。本文以OKX为主要示例,详细介绍CEX永续合约的完整规则体系,包括合约规格、保证金制度、风险管理机制等关键内容。

重要声明:本文内容基于公开资料整理,以OKX平台规则为主要参考,仅供学习和研究使用。不同交易所的具体规则可能存在差异,实际交易时请以各平台官方文档和最新规则为准。投资有风险,请谨慎决策。

核心术语定义

为确保本文表达的一致性和准确性,以下对主要术语进行统一定义:

  • 永续合约(Perpetual Swap):无到期日的衍生品合约,通过资金费率机制实现价格发现
  • 标记价格(Mark Price):用于计算未实现盈亏和强制平仓的基准价格
  • 现货指数价格(Index Price):基于多个现货交易所价格的加权平均值
  • 维持保证金(Maintenance Margin):维持仓位不被强制平仓的最低保证金要求
  • 初始保证金(Initial Margin):开仓时需要投入的保证金,也称开仓保证金
  • 强制平仓(Forced Liquidation):当维持保证金率低于100%时系统自动平仓
  • 自动减仓(ADL):风险准备金不足时强制平仓盈利仓位的机制
  • 资金费率(Funding Rate):定期支付的费用,用于维持合约价格与现货价格的一致性
  • 杠杆倍数(Leverage):放大投资效果的倍数,表示实际仓位价值与保证金的比例
  • 仓位(Position):用户持有的合约数量,分为多仓(看涨)和空仓(看跌)

1. 永续合约基础架构

本章节将从合约类型、订单簿机制等基础要素出发,建立对CEX永续合约系统的整体认知。通过对比分析USDT本位与币本位合约的特点,以及深入解析订单簿的构成原理,为后续章节的交易机制和风险管理奠定理论基础。以OKX平台规则为主要参考示例。

1.1 永续合约类型与规格

1.1.1 合约类型分类

图1 永续合约类型分类对比

graph TD
    A["永续合约类型"] --> B["USDT本位合约
(主流)"] A --> C["币本位合约
(较少使用)"] B --> D["结算货币: USDT
合约面值: 固定数量标的资产
杠杆: 0.01-100倍
优势: 收益计算直观"] C --> E["结算货币: 标的加密货币
合约面值: 100美元等值
杠杆: 0.01-100倍
适用: 套期保值需求"] style B fill:#e1f5fe style C fill:#fff3e0 style A fill:#f3e5f5

如图1所示,永续合约主要分为USDT本位合约和币本位合约两大类型。其中USDT本位合约因其收益计算直观、以USDT计价便于理解盈亏等优势,成为市场主流选择。

1.1.1.1 USDT本位永续合约(主流)
  • 定义:以USDT进行结算的数字货币合约产品,是市场上最主流的永续合约类型
  • 合约面值:每张合约代表固定数量的标的数字货币(例如BTCUSDT合约,每张代表0.01BTC)
  • 结算货币:USDT(泰达币)
  • 杠杆倍数:0.01-100倍(支持1%到100倍的杠杆范围)
  • 核心优势:收益计算直观明了,以USDT计价,便于投资者理解盈亏状况
1.1.1.2 币本位永续合约(较少使用)
  • 定义:以BTC等加密货币进行结算的数字货币合约产品
  • 合约面值:每张合约代表价值100美元等值的标的资产
  • 结算货币:以标的加密货币本身进行结算(如BTC合约以BTC结算)
  • 杠杆倍数:0.01-100倍(与USDT本位合约相同的杠杆范围)
  • 适用场景:特别适合长期持有该币种的用户,如矿工等有套期保值需求的群体

套期保值解释:套保是指通过衍生品交易对冲现货价格波动风险的策略,帮助投资者锁定收益或规避损失。

1.1.2 订单簿基础机制

1.1.2.1 订单簿构成要素

订单簿(Order Book)是交易所展示买卖订单的实时列表,包含:

基本性质

  • 价格精度(最小变动单位):价格不能任意设置,必须是最小精度的整数倍
    • 例如:价格精度为0.1,则只能报价50000.0、50000.1、50000.2…
    • 不能报价50000.05或50000.15等中间值
  • 离散性:正是因为价格精度的存在,才有了买一、买二等不同档位
  • 排序规则:同一价格档位的订单按时间优先原则排序

买卖盘结构

  • 买盘(Bid):买入订单,价格从高到低排列
    • 买一:最高买入价格及对应数量
    • 买二、买三…:依次递减一个或多个最小精度单位的买入价格
  • 卖盘(Ask):卖出订单,价格从低到高排列
    • 卖一:最低卖出价格及对应数量
    • 卖二、卖三…:依次递增一个或多个最小精度单位的卖出价格
1.1.2.2 关键术语定义
  • 档位:订单簿中每一个价格水平及其对应的挂单数量
  • 深度:各档位的挂单总量,反映市场流动性
  • 买卖价差(Bid-Ask Spread):买一价格与卖一价格的差值,反映市场流动性成本
    • 具体例子:买一价格49,950,卖一价格50,000,价差为50 USDT
    • 实际影响:若想立即买入,需按50,000价格成交;若想立即卖出,只能按49,950价格成交
    • 经济含义:这个价差就是立即成交需要支付的"流动性成本",价差越小说明流动性越好
  • 市场深度:大额交易对价格的冲击程度
1.1.2.3 订单簿结构示例

图2 订单簿结构与价格档位分布

graph TB
    subgraph "卖盘 (Ask) - 价格从低到高"
        A3["卖三: 50,100 USDT
数量: 0.15"] A2["卖二: 50,050 USDT
数量: 0.25"] A1["卖一: 50,000 USDT
数量: 0.10"] end MP["当前价格: 49,975 USDT
买卖价差: 50 USDT"] subgraph "买盘 (Bid) - 价格从高到低" B1["买一: 49,950 USDT
数量: 0.20"] B2["买二: 49,900 USDT
数量: 0.30"] B3["买三: 49,850 USDT
数量: 0.40"] end A3 --> A2 --> A1 --> MP --> B1 --> B2 --> B3 style A1 fill:#ffcdd2 style A2 fill:#ffcdd2 style A3 fill:#ffcdd2 style B1 fill:#c8e6c9 style B2 fill:#c8e6c9 style B3 fill:#c8e6c9 style MP fill:#fff3e0

如图2所示,订单簿按照价格优先、时间优先的原则排列。卖盘价格从低到高排序,买盘价格从高到低排序,中间的价差反映了市场的流动性成本。

卖盘 价格 数量
50,100 0.15
卖二 50,050 0.25
卖一 50,000 0.10
当前价格 49,975
买一 49,950 0.20
买二 49,900 0.30
49,850 0.40

2. 永续合约交易机制

本章节将系统地阐述永续合约的核心交易机制,包括开仓与平仓的操作原理、持仓模式的对比分析。通过深入探讨买卖模式与开平模式的差异及其适用场景,为交易者提供理论基础和实践指导。

2.1 开仓与平仓操作

图3 开仓与平仓操作流程

graph LR
    subgraph "开仓操作"
        A1["买入开多
预期价格上涨"] --> B1["建立多头仓位
价格上涨获利"] A2["卖出开空
预期价格下跌"] --> B2["建立空头仓位
价格下跌获利"] end subgraph "平仓操作" C1["多头平仓
卖出合约"] --> D1["结算盈亏
(当前价-开仓价)×张数"] C2["空头平仓
买入合约"] --> D2["结算盈亏
(开仓价-当前价)×张数"] end B1 --> C1 B2 --> C2 style A1 fill:#c8e6c9 style A2 fill:#ffcdd2 style B1 fill:#c8e6c9 style B2 fill:#ffcdd2 style C1 fill:#e1f5fe style C2 fill:#e1f5fe style D1 fill:#fff3e0 style D2 fill:#fff3e0

如图3所示,永续合约的交易包括开仓和平仓两个基本操作。开仓时建立多头或空头仓位,平仓时通过反向操作结算盈亏。

2.1.1 开仓机制原理

  • 开仓(开新仓位)
    • 买入开多(做多):预期价格上涨,买入合约建立多头仓位,盈利来源于价格上涨
    • 卖出开空(做空):预期价格下跌,卖出合约建立空头仓位,盈利来源于价格下跌
    • 保证金机制:只需支付合约价值的一小部分作为保证金,通过杠杆放大收益和风险

2.1.2 平仓机制原理

  • 平仓(关闭仓位)
    • 多头平仓:卖出与持有多头仓位相等数量的合约
    • 空头平仓:买入与持有空头仓位相等数量的合约
    • 盈亏结算:平仓时根据开仓价格与平仓价格的差异计算实际盈亏

实例说明:假设BTC价格为50,000 USDT,用户用1,000 USDT保证金,10倍杠杆开多1个BTC的合约。如果BTC涨至55,000 USDT时平仓,盈利5,000 USDT;如果跌至45,000 USDT时平仓,亏损5,000 USDT(本金全部亏完)。

2.2 持仓模式对比分析

图4 持仓模式对比分析

graph TD
    A["持仓模式"] --> B["买卖模式
(单向持仓)"] A --> C["开平模式
(双向持仓)"] B --> D["特点:
• 一个方向持仓
• 反向操作减少仓位
• 资金效率高"] C --> E["特点:
• 同时持有多空
• 反向操作增加仓位
• 操作灵活性高"] subgraph "示例对比" F["初始: 10张多仓
操作: 卖出5张"] F --> G["买卖模式结果:
5张多仓"] F --> H["开平模式结果:
10张多仓 + 5张空仓"] end D --> G E --> H style B fill:#e1f5fe style C fill:#fff3e0 style G fill:#c8e6c9 style H fill:#ffeb3b

如图4所示,买卖模式和开平模式的核心区别在于对反向操作的处理方式。买卖模式追求资金效率,而开平模式提供更高的操作灵活性。

2.2.1 买卖模式(单向持仓)

  • 每个合约在一个保证金模式下只能有一个持仓方向(多仓或空仓)
  • 反向操作会直接减少当前仓位
  • 例如:持有10张BTCUSDT多仓,卖出5张后变成5张多仓

2.2.2 开平模式(双向持仓)

  • 每个合约可以同时持有多仓和空仓
  • 反向操作会建立新的相反仓位
  • 例如:持有10张BTCUSDT多仓,卖出5张后变成10张多仓+5张空仓

2.2.3 本质差异分析

2.2.3.1 净头寸相同

从最终盈亏角度,两种模式的净头寸效果相同:

  • 单向:10张多仓 - 5张卖出 = 5张净多仓
  • 双向:10张多仓 + 5张空仓 = 5张净多仓
2.2.3.2 关键区别
  • 保证金占用
    • 单向:只需为净头寸(5张)缴纳保证金
    • 双向:需为总头寸(10+5=15张)分别缴纳保证金
  • 资金费率
    • 单向:只对净头寸收取资金费用
    • 双向:多仓和空仓分别收取资金费用(可能相互抵消)
  • 操作灵活性
    • 单向:平仓需要精确计算数量
    • 双向:可以保持原有仓位不动,独立管理对冲仓位

2.2.4 适用场景分析

2.2.4.1 单向持仓

适合场景:资金效率高,适合趋势交易

  • 明确看多或看空方向
  • 追求最大资金利用率
  • 简单的买入持有策略
2.2.4.2 双向持仓

成本考虑:更多保证金占用 + 双倍手续费 + 双倍资金费率

价值场景

  1. 套利策略:发现价差机会时,不影响原有仓位快速建立反向仓位
  2. 风险锁定:持有长期多仓时,短期看跌可开空仓锁定收益,避免平掉长期仓位
  3. 分层管理:不同时间周期的策略可以独立管理(如长期投资+短期交易)
  4. 降低冲击:大仓位分批平仓时,可先开反向仓位对冲,再慢慢处理原仓位

决策考虑:只有当策略收益能够覆盖额外成本时,双向持仓才有意义

3. 价格发现与资金费率机制

本章节将深入分析永续合约的价格发现机制,包括资金费率的计算原理、标记价格与现货指数价格的关系。通过阐述资金费率如何确保合约价格与现货价格较合,以及标记价格的计算方法,建立对永续合约价格发现机制的整体认知。

3.1 资金费率机制原理

图5 资金费率机制作用原理

graph TD
    A["永续合约价格"] --> B["与现货指数价格比较"]
    C["现货指数价格"] --> B

    B --> D{"合约价格 > 现货价格?"}
    D -->|是| E["资金费率为正
多头向空头支付"] D -->|否| F["资金费率为负
空头向多头支付"] E --> G["多头持仓成本增加
部分多头平仓"] F --> H["空头持仓成本增加
部分空头平仓"] G --> I["合约价格下降
向现货价格收敛"] H --> J["合约价格上升
向现货价格收敛"] I --> K["价格平衡机制"] J --> K subgraph "结算时间" L["每8小时结算
UTC+8: 00:00, 08:00, 16:00"] M["只有结算时刻持有仓位
才需要支付或收取费用"] end subgraph "费用计算" N["资金费用 = 持仓仓位价值 × 资金费率"] O["仓位价值 = 合约张数 × 合约面值 × 标记价格"] end style E fill:#ffcdd2 style F fill:#c8e6c9 style K fill:#e1f5fe style L fill:#fff3e0 style M fill:#fff3e0 style N fill:#f3e5f5 style O fill:#f3e5f5

如图5所示,资金费率机制通过多空双方的资金流动,形成负反馈调节机制,确保合约价格向现货价格收敛,维持价格发现功能。

3.1.1 基本概念与作用

  • 定义:为确保永续合约价格与现货指数价格保持一致而设立的机制
  • 结算时间:通常每8小时或4小时结算一次,具体时间以合约信息为准(如UTC+8的00:00、08:00、16:00)
  • 费率方向
    • 正费率:多头(看涨方向,买入开仓的投资者)向空头(看跌方向,卖出开仓的投资者)支付费用
    • 负费率:空头(看跌方向,卖出开仓的投资者)向多头(看涨方向,买入开仓的投资者)支付费用
  • 重要提醒:只有在结算时刻持有仓位才需要支付或收取资金费用

投资者可以在结算前平仓离场来避免支付资金费用,这为短期交易者提供了灵活的套利机会

3.1.2 计算原理与趋势机制

3.1.2.1 基本思想

通过多空双方的资金流动,使永续合约价格向现货指数价格收敛,确保合约价格合理反映标的资产价值

3.1.2.2 趋势机制

设合约价格为x,现货指数价格为y:

  • 当x > y时:多头支付费用→卖压增加→x趋向下降至y
  • 当x < y时:空头支付费用→买压增加→x趋向上升至y
  • 当|x-y|越大时:资金费率绝对值越大→价格修正力度越强
  • 当x ≈ y时:资金费率接近基础利率→价格保持相对稳定

3.1.3 具体算法(OKX采用新版计算逻辑)

公式1 资金费率计算公式

资金费率=clamp[P+clamp(rP,0.05%,0.05%),Fmax,Fmin]\text{资金费率} = \text{clamp}[\overline{P} + \text{clamp}(r - \overline{P}, 0.05\%, -0.05\%), F_{max}, F_{min}]

3.1.3.1 公式设计思想
  1. 市场偏离检测:通过P\overline{P}(平均溢价指数)判断合约价格相对现货的偏离方向和程度

  2. 基准利率设计逻辑

    • 为什么是0.03%/天
      • 经济学原理:多头持仓类似"借钱买资产",空头持仓类似"出借资产收租金"
      • 奖励空头:在理想均衡状态下,空头方承担了"出借风险",应获得0.03%/天的基础收益
      • 成本多头:多头方享受了"杠杆便利",应支付0.03%/天的资金使用成本
      • 参考基准:接近传统金融市场的短期利率水平
    • 中性参考点概念:当合约价格=现货价格时,资金费率应等于基准利率rr(多头向空头支付基础利率)
    • 修正力度计算(rP)(r - \overline{P})的趋势意义:
      • P>r\overline{P} > r时:合约溢价过高 → (rP)<0(r - \overline{P}) < 0 → 虽然修正项为负,但P\overline{P}本身是正大值 → 最终费率 = 大正数 + 小负数 = 仍为正且较大 → 多头付更多费用
      • P<r\overline{P} < r时:合约溢价过低 → (rP)>0(r - \overline{P}) > 0 → 修正项为正 → 如果P\overline{P}为负,最终费率可能为负 → 空头付费用
      • Pr\overline{P} ≈ r时:市场均衡 → 修正力度接近0 → 费率 ≈ rr + 0 = 基准利率(多头向空头支付)
  3. 双重平滑机制

    • 内层clamp:限制单次修正幅度在±0.05%,避免费率剧烈波动
    • 外层clamp:确保费率在交易所风控范围内
  4. 自动平衡效果:整个机制形成负反馈循环,自动将合约价格拉回现货价格附近

3.1.3.2 公式符号说明
  • P\overline{P}:平均溢价指数
  • rr:基础利率 = 0.03%24/T\frac{0.03\%}{24/T},其中TT为结算周期小时数
  • FmaxF_{max}:资金费率上限
  • FminF_{min}:资金费率下限
3.1.3.3 计算步骤

第1步:计算基础利率
r=0.03%24/Tr = \frac{0.03\%}{24/T},例如8小时结算周期:r=0.03%24/8=0.01%r = \frac{0.03\%}{24/8} = 0.01\%

第2步:计算溢价指数

P=max(0,PbI)max(0,IPs)IP = \frac{\max(0, P_b - I) - \max(0, I - P_s)}{I}

溢价指数公式思想

  • 分子设计max(0,PbI)max(0,IPs)\max(0, P_b - I) - \max(0, I - P_s)
    • 第一项:当买方愿意高于指数价格购买时,反映多头热情(正溢价)
    • 第二项:当卖方愿意低于指数价格出售时,反映空头热情(负溢价贡献)
    • 整体:衡量合约市场相对现货的"温度"
  • 分母归一化:除以II得到相对偏离比例,便于不同价格水平的比较
  • 结果解读P>0P > 0表示合约被高估,P<0P < 0表示合约被低估

符号定义

  • PbP_b:深度加权买价(Depth-weighted bid price)
  • PsP_s:深度加权卖价(Depth-weighted ask price)
  • II:现货指数价格
  • DD:深度加权金额 = 200×Lmax200 \times L_{max}LmaxL_{max}为合约最高杠杆倍数)
    • 例如:BTCUSDT合约最高杠杆100倍,则D=200×100=20,000D = 200 \times 100 = 20,000 USDT
    • 意思是:模拟用20,000 USDT去买入BTC时的平均成交价格

深度加权价格计算

Pb=Di=1nqi,其中i=1npiqi=DP_b = \frac{D}{\sum_{i=1}^{n} q_i}, \quad \text{其中} \sum_{i=1}^{n} p_i \cdot q_i = D

  • pip_i:第ii档买单价格
  • qiq_i:第ii档买单数量
  • nn:达到深度加权金额DD所需的档位数

计算步骤:从订单簿最优价格开始,逐档累加直至总价值达到DD,然后计算加权平均价格

第3步:计算平均溢价指数

P(Tn)=i=1niP(Ti)i=1ni\overline{P}(T_n) = \frac{\sum_{i=1}^{n} i \cdot P(T_i)}{\sum_{i=1}^{n} i}

  • P(Ti)P(T_i):第ii分钟时刻的溢价指数(使用步骤2的公式计算)

    P(Ti)=max(0,Pb(Ti)I(Ti))max(0,I(Ti)Ps(Ti))I(Ti)P(T_i) = \frac{\max(0, P_b(T_i) - I(T_i)) - \max(0, I(T_i) - P_s(T_i))}{I(T_i)}

  • TnT_n:当前时刻(距离结算周期开始第nn分钟)
  • 权重:时间越近,权重越大(第ii分钟的权重为ii
  • 例如:8小时结算周期,在第480分钟时计算,使用过去480分钟的溢价指数数据

第4步:应用双重限制

  • 内层限制:将(rP)(r - \overline{P})限制在[0.05%,0.05%][-0.05\%, 0.05\%]区间
  • 外层限制:将最终结果限制在[Fmin,Fmax][F_{min}, F_{max}]区间

3.2 标记价格与现货指数价格计算

3.2.1 现货指数价格计算

公式2 现货指数价格计算公式

I=i=1NwiPiadji=1NwiI = \frac{\sum_{i=1}^{N} w_i \cdot P_i^{adj}}{\sum_{i=1}^{N} w_i}

3.2.1.1 公式符号说明
  • II:现货指数价格(Index Price)
  • NN:参与计算的有效交易所总数
  • wiw_i:第ii个交易所的预设权重(基于流动性、稳定性等因素确定)
  • PiP_i:第ii个交易所的原始现货价格
  • PiadjP_i^{adj}:第ii个交易所经过异常处理后的调整价格
3.2.1.2 基础计算规则
  • 数据获取:实时从指定交易所检索相应交易对价格,受API速率限制
  • 交易所筛选:排除维护中或未及时更新价格的交易所
  • 合约类型区分
    • USDT本位合约:使用相应标的的USDT指数价格
    • USDC本位合约:使用相应标的的USDC指数价格
    • 币本位合约:使用标的资产的USD等值现货指数价格
3.2.1.3 分级加权机制
  • ≥3个交易所可用

    Piadj={0.98×M如果 Pi<0.98M1.02×M如果 Pi>1.02MPi其他情况P_i^{adj} = \begin{cases} 0.98 \times M & \text{如果 } P_i < 0.98M \\ 1.02 \times M & \text{如果 } P_i > 1.02M \\ P_i & \text{其他情况} \end{cases}

    其中MM为所有交易所价格的中位数

  • 2个交易所可用:等权重加权 w1=w2=0.5w_1 = w_2 = 0.5

  • 1个交易所可用:直接使用该交易所价格 I=P1I = P_1

3.2.1.4 异常价格处理
  • 偏差检测:当交易所价格与中位数偏差超过±2%时触发
  • 价格修正:将异常价格调整至中位数的98%或102%
  • 动态调整:OKX可自行调整、增加、删除或替换交易所成分

3.2.2 标记价格计算

公式3 标记价格计算公式

标记价格=I+基差移动平均值\text{标记价格} = I + \text{基差移动平均值}

3.2.2.1 基差移动平均值计算

基差移动平均值=MA(Pbid+Pask2I)\text{基差移动平均值} = \text{MA}\left(\frac{P_{bid} + P_{ask}}{2} - I\right)

3.2.2.2 计算方法详解

根据行业标准和OKX的实际实现,标记价格通常采用 指数移动平均(EMA) 方法计算基差移动平均值:

完整计算公式

标记价格=I+EMA(基差)\text{标记价格} = I + \text{EMA}(\text{基差})

或者表示为

标记价格=I+EMA(Pbid+Pask2I)\text{标记价格} = I + \text{EMA}\left(\frac{P_{bid} + P_{ask}}{2} - I\right)

1. 数据采样与基差计算

  • 采样频率:按固定时间间隔(通常每秒或每几秒)采集数据
  • 基差计算

    基差t=Pbid(t)+Pask(t)2I(t)\text{基差}_t = \frac{P_{bid}(t) + P_{ask}(t)}{2} - I(t)

其中tt表示时间点,Pbid(t)P_{bid}(t)Pask(t)P_{ask}(t)分别为tt时刻的合约最优买价和卖价

2. 指数移动平均(EMA)计算

EMAt=α基差t+(1α)EMAt1\text{EMA}_{t} = \alpha \cdot \text{基差}_t + (1-\alpha) \cdot \text{EMA}_{t-1}

EMA参数说明

  • α\alpha:平滑系数,通常在0.1-0.3之间
  • α\alpha越大,对近期数据权重越高,价格反应越灵敏
  • α\alpha越小,价格更加平滑,但反应较慢
  • 初始值:EMA0=基差0\text{EMA}_0 = \text{基差}_0

3. EMA相对于其他移动平均的优势

  • 简单移动平均(SMA)SMA=1ni=1n基差i\text{SMA} = \frac{1}{n}\sum_{i=1}^{n}\text{基差}_i
    • 优点:计算简单,平滑效果好
    • 缺点:对所有历史数据等权重,反应迟钝
  • 指数移动平均(EMA):对近期数据给予更高权重
    • 优点:响应速度快,更好地跟踪市场变化
    • 缺点:对噪声相对敏感
  • 时间加权平均(TWA):根据时间间隔进行加权
    • 优点:考虑时间因素,适合不规则采样
    • 缺点:计算复杂度较高

4. 实际实现参数

  • 窗口期选择:EMA的有效窗口期约为2α1\frac{2}{\alpha} - 1个采样点
  • 异常数据处理:设置基差上下限,过滤极端值(如±5%)
  • 实时更新频率:每秒更新1-5次,确保标记价格的准确性
  • 初始化方式:系统启动时使用前N个基差值的SMA作为EMA初始值

5. 计算示例
假设α=0.2\alpha = 0.2,某时刻数据如下:

  • 合约买一价:Pbid=50,100P_{bid} = 50,100 USDT
  • 合约卖一价:Pask=50,200P_{ask} = 50,200 USDT
  • 指数价格:I=50,000I = 50,000 USDT
  • 上一时刻EMA:EMAt1=180\text{EMA}_{t-1} = 180 USDT

计算过程:

  1. 基差:基差t=50,100+50,200250,000=150\text{基差}_t = \frac{50,100 + 50,200}{2} - 50,000 = 150 USDT
  2. 新EMA:EMAt=0.2×150+0.8×180=174\text{EMA}_t = 0.2 \times 150 + 0.8 \times 180 = 174 USDT
  3. 标记价格:50,000+174=50,17450,000 + 174 = 50,174 USDT
3.2.2.3 为什么不直接用指数价格,还要加基差移动平均值?

直接使用指数价格的问题

  • 脱离合约市场实际情况

    • 指数价格反映的是现货市场价格
    • 合约市场有自己的供需关系,价格可能系统性偏离现货
    • 例如:现货BTC价格50,000,但合约市场看涨情绪强烈,持续交易在50,200附近
    • 如果强制平仓按50,000指数价格执行,与实际合约成交价差距过大
  • 忽略市场流动性差异

    • 现货市场和合约市场的流动性、参与者结构不同
    • 合约市场可能因为杠杆、资金费率等因素,价格持续性偏离现货
    • 直接用指数价格不能反映合约市场的真实交易成本

加入基差移动平均值的作用

  • 反映合约市场真实价格水平

    • 基差 = 合约价格 - 指数价格,体现合约相对现货的溢价/折价
    • 移动平均基差 = 合约市场相对现货的"稳定偏离度"
    • 标记价格 = 指数价格 + 基差移动平均值 ≈ 合约市场的"真实均衡价格"
  • 平衡准确性与稳定性

    • 如果基差移动平均值为+200,说明合约市场系统性高于现货200
    • 此时标记价格 = 指数价格 + 200,更接近合约真实交易价格
    • 但通过移动平均,避免了单笔交易造成的剧烈波动
3.2.2.4 实际案例对比
  • 指数价格:50,000 USDT(现货平均价)
  • 合约近期交易:50,180-50,220(持续偏高)
  • 基差移动平均值:+200 USDT
  • 标记价格:50,000 + 200 = 50,200 USDT
  • 这样的标记价格既贴近合约市场实际,又避免了极端波动影响
3.2.2.5 符号说明
  • II:现货指数价格(同前面计算的指数价格)
  • PbidP_{bid}:合约买一价
  • PaskP_{ask}:合约卖一价
  • MA\text{MA}:移动平均值(Moving Average)
3.2.2.6 算法设计思想
  1. 基差概念:合约中间价与指数价格的差值,反映合约相对现货的溢价或折价
  2. 移动平均平滑:通过移动平均值机制过滤短时间内的合约价格波动
  3. 防操纵功能:减少异常波动产生的不必要强制平仓,避免单笔交易操纵价格
3.2.2.7 与最新价格的区别
  • 最新价格:由订单簿中最新成交价格决定,可能受到单笔大额交易影响
  • 标记价格:基于指数价格和基差移动平均值,更稳定,用于:
    • 计算未实现盈亏
    • 强制平仓判断
    • 保证金计算

3.2.3 两者关系总结

  • 数据源相同:都基于多个现货交易所的价格数据
  • 算法差异:标记价格在指数价格基础上增加了合约市场的风险控制逻辑
  • 用途分工
    • 现货指数价格(II):资金费率计算的基准
    • 标记价格:风险管理(盈亏计算、强制平仓)的基准
  • 数值关系:正常情况下非常接近,极端市场条件下可能有差异

4. 实例计算与保证金制度

本章节通过具体的合约实例和计算案例,帮助读者理解永续合约的实际操作。同时详细介绍了杠杆与保证金制度的具体规则,为交易者提供风险管理的实用指导。以TONUSDT永续合约为例,展示完整的收益计算过程和资金费用计算方法,并深入分析全仓与逐仓保证金模式的差异,为交易者提供实践中的参考依据。

4.1 合约规格与收益计算

4.1.1 合约规格示例

4.1.1.1 TONUSDT永续合约规格

TONUSDT永续合约为例:

表1 TONUSDT永续合约规格详情

合约要素 详细信息 说明
合约标的 TON/USDT 以TON为标的资产,USDT为计价货币
结算货币 USDT 盈亏和保证金均以USDT结算
合约面值 1 TON 每张合约代表1个TON
价格精度 0.001 最小价格变动单位为0.001 USDT
杠杆倍数 0.01~20.00 支持1%至20倍杠杆
资金费率结算时间 每天 00:00、08:00、16:00 (UTC+8) 一天三次结算
标记价格 ₮2.978 用于计算未实现盈亏的基准价格
持仓量 666.73万 TON 市场未平仓合约总量
24小时成交量 1,028.67万 TON 近24小时交易量
风险准备金 3,101,765 USDT 用于承担超额损失的保障资金

风险准备金:由交易所维护的资金池,用于吸收强制平仓产生的损失。当用户爆仓时产生的亏损超过其保证金时,风险准备金会承担这部分损失,保护平台和其他用户免受影响。风险准备金主要来源于交易手续费和强制平仓的盈余。

什么情况下会亏损超过保证金:在极端市场波动中,价格可能瞬间跳空或流动性不足,导致强制平仓时的成交价格远低于预期的强平价。例如,用户持有100倍杠杆的多仓,市场突然暴跌,系统来不及在理论强平价位平仓,实际平仓价格可能使亏损超过用户的全部保证金,这时风险准备金就会介入承担超额损失。

4.1.2 永续合约收益与费用计算

4.1.2.1 USDT本位永续合约收益计算(官方公式)

根据OKX官方文档,USDT本位永续合约的收益计算公式为:

基础收益计算

  • 多仓收益 = 面值 × |张数| × 合约乘数 × (标记价格 - 开仓均价)
  • 空仓收益 = 面值 × |张数| × 合约乘数 × (开仓均价 - 标记价格)
4.1.2.2 以TONUSDT永续合约为例
  • 合约面值:1 TON
  • 合约乘数:1
  • 假设用户开多1000张,开仓均价2.500 USDT,当前标记价格2.800 USDT

收益计算
多仓收益 = 1 × 1000 × 1 × (2.800 - 2.500) = 300 USDT

4.1.2.3 资金费用计算

资金费用 = 持仓仓位价值 × 资金费率

其中:持仓仓位价值 = 合约张数 × 合约面值 × 合约乘数 × 标记价格

示例

  • 持仓1000张TONUSDT,标记价格2.800 USDT,资金费率0.01%
  • 持仓仓位价值 = 1000 × 1 × 1 × 2.800 = 2,800 USDT
  • 资金费用 = 2,800 × 0.01% = 0.28 USDT
4.1.2.4 实际净收益

实际净收益 = 基础收益 - 开仓手续费 - 平仓手续费 ± 资金费用

注意:资金费用可能为正(需支付)或负(可收取),取决于资金费率的方向和持仓方向。

4.2 杠杆与保证金制度

4.2.1 杠杆倍数规则

  • 最高杠杆:支持高达125倍杠杆(具体倍数因交易对而异)
  • 动态调整:根据持仓规模实行阶梯式杠杆,持仓越大可用杠杆越低
  • 风险控制:大额持仓需要更高的维持保证金要求

4.2.2 保证金模式

4.2.2.1 全仓保证金模式
  • 共享机制:所有持仓共享账户余额作为保证金
  • 风险分散:有助于避免单个持仓的强制平仓
  • 资金利用率:提高资金使用效率

全仓保证金计算示例
假设用户账户中有1,000 USDT,使用10倍杠杆开多1 BTC的BTCUSDT永续合约,当前BTC价格为50,000 USDT:

  • 合约张数 = 1 / 0.01 = 100张
  • 初始保证金 = 0.01 × 100 × 50,000 / 10 = 5,000 USDT
  • 由于账户只有1,000 USDT,无法开仓,需要至少5,000 USDT
4.2.2.2 逐仓保证金模式
  • 独立保证金:每个持仓使用独立的保证金
  • 风险隔离:将风险限制在单个持仓范围内
  • 损失控制:最大损失限制为该持仓的初始保证金

逐仓保证金计算示例
用户使用逐仓模式,投入500 USDT作为保证金,10倍杠杆开多TONUSDT永续合约,当前TON价格为2.5 USDT:

  • 可开仓位价值 = 500 × 10 = 5,000 USDT
  • 可开合约张数 = 5,000 / 2.5 = 2,000张TON
  • 预估强平价 = 开仓价格 × (1 - 1/杠杆 + 维持保证金率)
  • 如果TON价格从2.5跌至约2.25左右将触发强制平仓
  • 最大损失限制为投入的500 USDT保证金

4.2.3 保证金计算公式

USDT本位合约保证金公式

1
初始保证金 = (保证金余额 + 未实现盈亏) / (合约面值 × |合约张数| × 标记价格 × (维持保证金率 + 交易手续费率))

阶梯式维持保证金

  • 持仓规模越大,维持保证金要求越高
  • 降低最大可用杠杆,提升持仓稳定性
  • 当保证金低于维持保证金加交易费用时,将触发强制平仓

5. 风险管理机制与安全保障

本章节是永续合约技术体系的核心部分,将系统性阐述强制平仓机制、自动减仓机制等风险管理工具的原理和操作方式。通过深入分析这些机制如何保护交易者、交易所和整个市场的安全稳定,帮助读者建立对风险管理的全面认知。

5.1 强制平仓机制详解

5.1.1 强制平仓机制核心要素

图7 强制平仓机制执行流程

flowchart TD
    A["用户持仓"] --> B["实时监控
维持保证金率"] B --> C{"维持保证金率 ≤ 100%?"} C -->|否| B C -->|是| D["触发强制平仓"] D --> E["取消挂单
接管仓位"] E --> F["市价单执行"] F --> G["收取费用"] subgraph "费用结构" G1["强平手续费
(按吃单费率)"] G2["强平清算费
(按维持保证金率)"] end G --> G1 G --> G2 F --> H{"风险准备金足够?"} H -->|是| I["风险准备金承担价差损失
平仓完成"] H -->|否| J["触发ADL机制
其他用户承担"] subgraph "核心公式" K["维持保证金率 = 调整后权益 / 维持保证金要求"] L["调整后权益 = 保证金余额 + 未实现盈亏"] M["维持保证金要求 = 合约张数 × 标记价格 × 梯度维持保证金率"] end style A fill:#f9f9f9 style D fill:#ffcdd2 style I fill:#c8e6c9 style J fill:#ffeb3b style K fill:#e1f5fe style L fill:#e1f5fe style M fill:#e1f5fe

如图7所示,强制平仓机制通过实时监控维持保证金率,当触发条件满足时自动执行平仓流程。该机制分为正常清算和ADL清算两种情况,确保系统风险的有效控制。

5.1.1.1 核心概念定义

强制平仓定义
当用户账户的维持保证金率降至100%时,系统自动处理风险仓位的过程。

触发条件

1
维持保证金率 = 调整后权益 / 维持保证金要求 ≤ 100%

注意:实际系统中的维持保证金率计算更加复杂,需要考虑挂单占用、期权保证金、逐仓占用等多种因素。上述公式为简化版本,便于理解核心原理。完整公式会包含:

1
维持保证金率 = (币种全仓内余额 + 全仓收益 - 挂单卖出数量 - 期权买单占用 - 逐仓开仓占用 - 挂单手续费) / (维持保证金 + 爆仓手续费)

核心概念区别

1. 调整后权益

  • 定义:用户实际拥有的支撑持仓的价值
  • 计算:保证金余额 + 未实现盈亏
  • 作用:判断强制平仓的分子

2. 维持保证金要求

  • 定义:维持仓位不被强制平仓的最低资金要求
  • 基础计算:合约面值 × 合约张数 × 标记价格 × 梯度维持保证金率
  • 完整计算:还需加上爆仓手续费预估
  • 作用:判断强制平仓的分母,同时决定强平清算费的计算基础

3. 开仓保证金(初始保证金)

  • 定义:开仓时需要投入的资金
  • 计算:仓位价值 ÷ 杠杆倍数
  • 示例:10倍杠杆开1000张BTCUSDT,开仓保证金5,000 USDT

4. 维持保证金vs开仓保证金的关键差异

  • 数值大小:维持保证金 << 开仓保证金(通常小100-200倍)
  • 用途:开仓保证金用于开仓,维持保证金用于判断强制平仓
  • 变化性:开仓保证金固定,维持保证金随标记价格变化

5. 梯度维持保证金率

  • 定义:根据持仓规模划分档位的风险系数
  • 原理:持仓越大,维持保证金率越高
  • 作用:既是强制平仓的判断标准,也是强平清算费的计算基础
5.1.1.2 梯度维持保证金率制度

基本原理
根据持仓规模划分档位,持仓越大,维持保证金率越高,最大可用杠杆越低。

图6 梯度维持保证金率制度

graph TD
    subgraph "梯度维持保证金率制度"
        A["档位1
0-999张
保证金率: 0.4%
最大杠杆: 125倍"] B["档位2
1000-4999张
保证金率: 0.5%
最大杠杆: 100倍"] C["档位3
5000-9999张
保证金率: 1.0%
最大杠杆: 50倍"] D["档位4
10000-19999张
保证金率: 2.5%
最大杠杆: 20倍"] E["档位5
20000张以上
保证金率: 5.0%
最大杠杆: 10倍"] F["持仓规模增加"] --> G["保证金率提高"] G --> H["最大杠杆降低"] H --> I["风险控制加强"] end A --> B --> C --> D --> E style A fill:#c8e6c9 style B fill:#e8f5e8 style C fill:#fff3e0 style D fill:#ffecb3 style E fill:#ffcdd2 style F fill:#e1f5fe style G fill:#e1f5fe style H fill:#e1f5fe style I fill:#e1f5fe

如图6所示,梯度维持保证金率制度通过档位划分,实现了风险与仓位规模的精确匹配。持仓规模越大,所需维持保证金率越高,可用杠杆越低,形成有效的风险控制机制。

档位 持仓规模 维持保证金率 最大杠杆
1 0-999张 0.4% 125倍
2 1000-4999张 0.5% 100倍
3 5000-9999张 1.0% 50倍
4 10000-19999张 2.5% 20倍
5 20000张以上 5.0% 10倍

作用机制

  • 风险递增控制:大仓位对市场冲击更大,需要更高保证金率
  • 流动性保护:防止大额仓位一次性平仓对市场造成冲击
  • 系统稳定性:降低单个大户爆仓对整个系统的影响
5.1.1.3 触发条件与判断流程

判断标准

1
维持保证金率 = 调整后权益 / 维持保证金要求 ≤ 100%

监控流程

graph TD
    A["实时监控"] --> B["价格变化触发重算"]
    B --> C{"维持保证金率 ≤ 100%?"}
    C -->|否| D["继续监控"]
    C -->|是| E["启动强平流程"]
    E --> F["风控撤单
(撤销增加风险的挂单)"] F --> G["预减仓撤单
(撤销所有挂单)"] G --> H{"维持保证金率 > 100%?"} H -->|是| I["风险缓解,恢复正常"] H -->|否| J["执行强制平仓"] J --> K["按阶段减仓"] K --> L["计算强平费用"] D --> A I --> A

详细执行步骤

第一阶段:风控撤单 (维持保证金率 < 300%)

  • 系统自动撤销增加仓位风险的挂单
  • 包括:全仓开仓单、逐仓开仓单、卖出该币种的挂单
  • 目的:通过减少潜在风险来避免强制平仓

第二阶段:预减仓撤单 (维持保证金率 ≤ 100%)

  • 撤销该币种下所有未成交挂单(包含策略委托单)
  • 撤销普通挂单的逐仓开仓单
  • 撤销开仓属性的逐仓止盈止损单
  • 保留平仓属性的止盈止损单

第三阶段:强制平仓执行 (撤单后仍 ≤ 100%)

  • 按照官方文档规定的三个阶段顺序减仓:
    1. 优先减仓双向持仓下的反向仓位
    2. 减仓delta对冲的仓位(保持总delta值不变)
    3. 减仓剩余非对冲仓位(优先减降低风险效果最好的仓位)

监控要点

  • 实时监控:风险管理引擎持续计算账户保证金率
  • 预警机制:当保证金率接近100%时发出预警(通常300%时开始预警)
  • 触发判断:保证金率降至100%时,系统判定触发强制平仓

账户模式差异

  • 逐仓模式:每个仓位单独计算维持保证金要求
  • 全仓模式:所有仓位综合计算维持保证金要求
  • 组合保证金模式:基于极端压力测试场景的亏损值确定

触发后的立即行动

  1. 订单管理:自动取消或拒绝需要追加保证金的新订单
  2. 仓位接管:交易所接管用户账户仓位的处理责任
  3. 启动平仓:优先平仓保证金最高的仓位
5.1.1.4 强制平仓执行机制

执行流程

  1. 部分平仓

    • 系统尝试通过部分平仓使保证金率回升至安全水平
    • 选择风险最高的仓位进行平仓
    • 优先平仓保证金最高的仓位
  2. 全部平仓

    • 如果部分平仓无法解决问题,进行全部平仓
    • 确保账户不出现负权益

价格基准

  • 标记价格:作为强制平仓的触发和执行基准
  • 避免误平仓:防止因单笔异常交易导致的误平仓
  • 确保公平性:保证价格的公平性和稳定性

执行方式

  1. 市价单执行:将用户仓位作为市价单放入订单簿
  2. 市场匹配:由其他交易者在市场价格接单
  3. 交易所接管:交易所承担用户仓位的处理责任并使用风险准备金
5.1.1.5 费用结构

图8 强制平仓费用结构体系

graph TD
    A["强制平仓费用"] --> B["强制平仓手续费
(处理费用)"] A --> C["强制平仓清算费
(风险补偿费用)"] B --> D["计算公式:
手续费率 × (成交张数 × 合约乘数 × 合约面值 × 成交价格)"] B --> E["费率规则:
按用户等级的吃单费率收取"] B --> F["费率范围:
VIP0: 0.05% ~ VIP9: 0.01%"] C --> G["计算公式:
合约面值 × 合约乘数 × 爆仓张数 × 标记价格 × 梯度维持保证金率"] C --> H["特点:
公式与维持保证金要求相同"] C --> I["作用:
让用户承担风险匹配的成本"] B --> J["风险准备金账户"] C --> J style A fill:#f3e5f5 style B fill:#e1f5fe style C fill:#fff3e0 style J fill:#c8e6c9

如图8所示,强制平仓费用分为手续费和清算费两个组成部分。手续费补偿处理成本,清算费用于风险补偿,两种费用最终都进入风险准备金,增强系统安全性。

费用类型
强制平仓时,用户需要支付两种专门的费用,不收取普通的开仓/平仓手续费

1. 强制平仓手续费(处理费用)

1
强平手续费 = 强平手续费率 × (成交张数 × 合约乘数 × 合约面值 × 成交价格)
  • 费率规则:按照用户当前所处等级的吃单费率收取
  • 费率范围:VIP0为0.05%,VIP9为0.01%
  • 收取时机:强制平仓实际成交时收取
  • 结算货币:USDT永续合约手续费以USDT结算
  • 作用:补偿交易所处理强平订单的运营成本

2. 强制平仓清算费(风险补偿费用)

1
U本位合约强平清算费 = 合约面值 × 合约乘数 × 爆仓张数 × 标记价格 × 梯度维持保证金率
  • 重要特点:公式与维持保证金要求完全相同
  • 设计逻辑:让用户承担与其风险水平相匹配的成本
  • 作用:补偿价格差异风险,减轻风险准备金压力

费用计算示例

1
2
3
4
5
6
7
8
9
仓位:1000张BTCUSDT永续合约
合约面值:0.01 BTC,合约乘数:1
实际成交价格:49,500 USDT,标记价格:50,000 USDT
用户等级:VIP1(吃单费率0.05%)
梯度维持保证金率:0.4%

强平手续费 = 0.05% × (1000 × 1 × 0.01 × 49,500) = 247.5 USDT
强平清算费 = 0.01 × 1000 × 1 × 50,000 × 0.4% = 200 USDT
总费用 = 447.5 USDT

资金流向

  • 两种费用的净收益100%进入风险准备金账户
  • 为用户提供额外保障,持续补充风险准备金
5.1.1.6 价格差异风险管理

核心问题
强制平仓时,标记价格(触发价格)与实际成交价格的差异可能导致超额损失。

价格差异原因

  • 标记价格:用于触发强制平仓的基准价格,相对稳定
  • 实际成交价格:在订单簿中实际成交的价格,受流动性影响
  • 差异产生:市场波动剧烈时,两者可能存在显著差异

风险影响

  • 用户风险:实际损失比按标记价格计算的损失更大,可能导致负权益
  • 交易所风险:需要通过风险准备金承担超额损失
  • 系统风险:大量用户同时爆仓时,累积的价格差异损失巨大

影响因素

  • 市场深度:流动性越差,价格差异越大
  • 波动性:价格波动越剧烈,差异越明显
  • 仓位规模:大仓位需要消耗更多订单簿深度

风险管理机制

  • 风险准备金:吸收价格差异产生的超额损失
  • ADL机制:当风险准备金不足时,由其他用户承担
  • 强平清算费:让用户承担部分价格差异风险,减轻风险准备金压力

5.1.2 自动减仓机制(ADL)

图9 自动减仓机制(ADL)执行流程

flowchart TD
    A["强制平仓发生"] --> B["风险准备金评估"]
    B --> C{"风险准备金充足?"}
    C -->|是| D["正常清算完成
风险准备金承担损失"] C -->|否| E["触发ADL机制"] E --> F["识别相反方向仓位"] F --> G["按ADL队列排序"] subgraph "ADL排序规则" H["盈利水平
(未实现盈利)"] I["杠杆倍数
(风险程度)"] J["综合评分
(盈利×杠杆)"] end G --> H G --> I G --> J J --> K["强制平仓高评分仓位"] K --> L["平仓价格 = 破产价格
(对被ADL用户有利)"] L --> M["损失由被ADL用户承担
保护风险准备金"] subgraph "风险管理层级" N1["第一层: 风险准备金"] N2["第二层: ADL机制"] N3["第三层: 交易所注资"] end style D fill:#c8e6c9 style E fill:#ffeb3b style M fill:#ffcdd2 style N1 fill:#e1f5fe style N2 fill:#fff3e0 style N3 fill:#f3e5f5

如图9所示,ADL机制是风险管理的第二道防线。当风险准备金不足时,系统会按照盈利水平和杠杆倍数对仓位进行排序,强制平仓高风险盈利仓位,形成三层风险管理体系。

5.1.2.1 机制定义与作用

自动减仓(Auto-Deleveraging,ADL)是一种风险管理机制,用于保护OKX风险准备金。当风险准备金无法吸收因清算亏损仓位而产生的进一步损失时,系统将启动ADL机制,将亏损仓位与相反的盈利或高杠杆仓位进行匹配平仓。

5.1.2.2 清算与ADL流程图解

正常清算流程(大多数情况)

graph TD
    A[用户保证金率低于维持保证金率] --> B[系统触发强制平仓]
    B --> C[将仓位作为市价单放入订单簿]
    C --> D[其他交易者接单]
    D --> E[平仓完成]
    E --> F[风险准备金吸收小额损失]
    F --> G[无需ADL]

    style A fill:#ffcccc
    style G fill:#ccffcc

ADL清算流程(特殊情况)

graph TD
    A[用户保证金率低于维持保证金率] --> B[系统触发强制平仓]
    B --> C[将仓位作为市价单放入订单簿]
    C --> D{订单簿深度是否足够?}
    D -->|是| E[其他交易者接单]
    D -->|否| F[市价单部分成交或完全失败]
    F --> G[风险准备金无法承担损失]
    G --> H[触发ADL机制]
    H --> I[寻找相反方向的盈利仓位]
    I --> J[强制匹配平仓]
    J --> K[ADL完成]

    E --> L[平仓完成]
    L --> M[风险准备金吸收小额损失]
    M --> N[无需ADL]

    style A fill:#ffcccc
    style F fill:#ffaaaa
    style K fill:#ffffaa
    style N fill:#ccffcc

重要澄清:ADL针对的是盈利仓位,不是亏损仓位

很多人误解ADL会影响有清算风险的仓位,实际上恰恰相反:

  • 被ADL的仓位:健康的盈利仓位(被强制平仓)
  • 触发ADL的仓位:已经爆仓的亏损仓位(需要被清算)
  • ADL的本质:用盈利仓位的利润来承担爆仓仓位的超额损失

基本原理

  • 亏损仓位与盈利仓位(“被减仓位”)直接匹配
  • 两个仓位相互抵消并平仓
  • 消除亏损仓位对风险准备金的进一步威胁
  • 盈利仓位被强制平仓,限制未来盈利潜力

ADL匹配机制详解

系统会按照以下步骤进行仓位匹配:

第1步:识别亏损仓位

  • 系统扫描所有无法正常平仓的亏损仓位
  • 这些仓位已经导致风险准备金损失或即将耗尽

第2步:寻找匹配的盈利仓位

  • 相反方向的仓位中寻找匹配对象
  • 按照ADL排序规则确定被减仓的优先级
  • 优先选择盈利最多、杠杆最高的仓位

第3步:数量匹配与平仓执行

匹配示例1:完全匹配

1
2
3
4
亏损仓位:用户A持有BTCUSDT多仓 -100张(亏损状态)
盈利仓位:用户B持有BTCUSDT空仓 +100张(盈利状态)
匹配结果:两个仓位完全匹配,同时平仓
执行价格:当前标记价格

匹配示例2:部分匹配(亏损仓位较大)

1
2
3
4
5
6
亏损仓位:用户A持有BTCUSDT多仓 -500张(亏损状态)
盈利仓位:用户B持有BTCUSDT空仓 +100张(盈利状态)
匹配结果:
- 用户B的100张空仓全部平仓
- 用户A的500张多仓中,100张被平仓
- 用户A剩余400张多仓需要寻找下一个匹配对象

匹配示例3:部分匹配(盈利仓位较大)

1
2
3
4
5
6
亏损仓位:用户A持有BTCUSDT多仓 -80张(亏损状态)
盈利仓位:用户B持有BTCUSDT空仓 +200张(盈利状态)
匹配结果:
- 用户A的80张多仓全部平仓
- 用户B的200张空仓中,80张被平仓
- 用户B剩余120张空仓继续持有

第4步:连续匹配处理
当单个盈利仓位无法完全匹配亏损仓位时,系统会:

  1. 按ADL排序顺序寻找下一个盈利仓位
  2. 继续进行匹配,直至亏损仓位完全平仓
  3. 记录所有被减仓的用户和数量

实际案例:市场暴跌触发ADL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
市场情况:BTC从50,000跌至40,000,多个高杠杆多仓爆仓

步骤1:识别触发ADL的亏损仓位
- 用户A:100倍杠杆多仓 -1000张(已爆仓,保证金耗尽)
- 用户C:50倍杠杆多仓 -500张(已爆仓,保证金耗尽)
- 用户E:25倍杠杆多仓 -300张(已爆仓,保证金耗尽)
总计需要清算:1800张多仓

步骤2:寻找被ADL的盈利仓位(相反方向的空仓)
按ADL排序规则选择:
1. 用户B:空仓 +600张(盈利20%,杠杆100倍)→ 全部被减仓
2. 用户D:空仓 +400张(盈利15%,杠杆50倍)→ 全部被减仓
3. 用户F:空仓 +800张(盈利10%,杠杆20倍)→ 其中800张被减仓

步骤3:匹配结果
- 亏损的1800张多仓全部平仓(这些用户已经爆仓)
- 盈利的1800张空仓被强制平仓(这些用户原本在赚钱)
- 匹配在标记价格42,000执行

步骤4:资金流向
- 用户B、D、F的利润被用来填补用户A、C、E的超额损失
- 风险准备金得到保护,避免进一步损失

关键理解:谁受到ADL影响?

错误理解:有清算风险的仓位会被ADL
正确理解:盈利良好的仓位会被ADL

具体说明

  • 有清算风险的仓位:这些仓位已经爆仓,保证金耗尽,无法继续交易
  • 被ADL的仓位:这些是健康的盈利仓位,本来可以继续持有,但被强制平仓
  • ADL的不公平性:盈利的交易者被迫承担了爆仓者的损失
  • ADL的必要性:保护交易所和其他用户免受系统性风险

重要问题:所有清算都需要ADL吗?

答案:不是!ADL只在特殊情况下触发

正常清算流程(大多数情况)

  • 触发强制平仓
    用户保证金率低于维持保证金率 → 系统触发强制平仓

  • 订单簿平仓
    系统将用户的仓位作为市价单放入订单簿 → 由其他交易者接单

  • 风险准备金吸收
    如果有小额损失(平仓价格略差于预期)→ 风险准备金吸收损失

结果:平仓完成,无需ADL

关键问题:为什么市价单机制仍可能失败?

理论上,市价单会以任何可用价格成交,但实际中存在以下问题:

1. 订单簿深度不足
正常情况下的订单簿:
买盘:

  • 49,950: 100张
  • 49,900: 200张
  • 49,850: 300张
  • 49,800: 400张
  • 49,750: 500张
    总深度:1,500张

但某用户爆仓需要平仓2,000张多仓!
结果:订单簿深度不足,无法完全消化

2. 极端市场条件下的订单簿状态
市场恐慌时的订单簿:
买盘:

  • 49,000: 10张 (价格跳空严重)
  • 48,000: 20张
  • 47,000: 30张
  • 46,000: 40张
  • 45,000: 50张

问题:

  • 流动性极度匮乏
  • 价格跳空巨大
  • 接单者寥寥无几

3. 市价单的执行现实
爆仓用户:需要平仓1,000张BTCUSDT多仓
当前标记价格:50,000 USDT
订单簿状态:

  • 49,500: 100张
  • 49,000: 200张
  • 48,000: 300张
  • 47,000: 400张 (深度不足)

执行结果:

  • 前700张可以在49,500-47,000之间成交
  • 剩余300张找不到买家
  • 或者价格跌至极低(如45,000)才有买家

4. 为什么会出现这种情况?

市场恐慌效应

  • 当价格暴跌时,买家会撤单或降低报价
  • 大家都在抛售,很少有人愿意接盘
  • 流动性提供者(做市商)也会减少报价或退出

技术限制

  • 订单簿更新需要时间
  • 大额单子瞬间消耗完所有流动性
  • 系统无法瞬间创造新的买家

心理因素

  • 看到大量强制平仓,其他交易者也会恐慌
  • 预期价格继续下跌,不愿意高价接盘
  • 流动性螺旋:流动性越少,价格波动越大,流动性进一步减少

5. 流动性螺旋与连环爆仓

这是加密货币市场最危险的现象之一——正反馈循环

螺旋清算流程图

graph TD
    A[价格开始波动] --> B{波动方向}
    B -->|下跌| C[多仓开始爆仓]
    B -->|上涨| D[空仓开始爆仓]

    C --> E[大量卖单涌入]
    E --> F[空仓用户不愿接盘]
    F --> G[价格进一步下跌]
    G --> H[更多多仓爆仓]
    H --> I[恐慌性抛售]
    I --> J[价格瀑布式下跌]
    J --> K[连环爆仓完成]

    D --> L[大量买单涌入]
    L --> M[多仓用户不愿卖出]
    M --> N[价格进一步上涨]
    N --> O[更多空仓爆仓]
    O --> P[恐慌性买入]
    P --> Q[价格火箭式上涨]
    Q --> R[连环爆仓完成]

    style A fill:#e1f5fe
    style J fill:#ffcdd2
    style Q fill:#ffcdd2
    style K fill:#ffeb3b
    style R fill:#ffeb3b

下跌螺旋(多仓连环爆仓)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
第1步:价格开始下跌
BTC从50,000跌至48,000

第2步:高杠杆多仓开始爆仓
- 100倍杠杆用户首先爆仓
- 系统强制卖出大量BTC合约
- 需要空仓用户接单

第3步:卖压增加,价格进一步下跌
- 大量卖单涌入市场
- 空仓用户看到跌势,不愿意高价接盘
- 价格继续跌至46,000

第4步:更多多仓爆仓
- 50倍杠杆用户开始爆仓
- 更多强制卖单进入市场
- 价格加速下跌至44,000

第5步:恐慌性抛售
- 其他交易者看到连环爆仓,主动平仓
- 价格瀑布式下跌
- 最终可能跌至35,000-40,000

上涨螺旋(空仓连环爆仓)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
第1步:价格开始上涨
BTC从50,000涨至52,000

第2步:高杠杆空仓开始爆仓
- 100倍杠杆空仓用户首先爆仓
- 系统强制买入大量BTC合约
- 需要多仓用户卖出匹配

第3步:买压增加,价格进一步上涨
- 大量买单涌入市场
- 多仓用户看到涨势,不愿意低价卖出
- 价格继续涨至54,000

第4步:更多空仓爆仓
- 50倍杠杆空仓用户开始爆仓
- 更多强制买单进入市场
- 价格加速上涨至56,000

第5步:恐慌性买入
- 其他交易者看到连环爆仓,主动平空仓
- 价格火箭式上涨
- 最终可能涨至60,000-65,000

为什么会发生这种情况?

1. 杠杆的放大效应

  • 高杠杆用户只需要小幅价格变动就会爆仓
  • 爆仓时产生的买卖压力远大于正常交易

2. 流动性的不对称性

  • 上涨时:多仓用户不愿意卖出(怕错过更大涨幅)
  • 下跌时:空仓用户不愿意买入(怕接到下跌的刀子)

3. 恐慌与贪婪心理

  • 看到连环爆仓,其他用户会恐慌或贪婪
  • 加剧了市场的不理性行为

4. 算法交易的助推

  • 程序化交易会识别爆仓模式
  • 可能会故意触发连环爆仓来获利

历史案例

  • 2021年5月19日:BTC在几小时内从58,000跌至30,000
  • 2021年4月18日:BTC在短时间内从65,000跌至52,000
  • 各种"插针"事件:价格瞬间暴涨暴跌后快速回归

这就是为什么需要ADL的根本原因

  • 在连环爆仓中,正常的订单簿匹配完全失效
  • 价格可能偏离合理水平数十个百分点
  • 风险准备金根本无法承担如此巨大的损失
  • 必须通过ADL强制平仓盈利仓位来止损

需要ADL的特殊情况

  • 正常强制平仓失败
    系统尝试在订单簿平仓 → 但市场流动性不足或价格跳空严重

  • 产生超额损失
    平仓价格远差于预期 → 损失超过用户保证金 → 威胁风险准备金

  • 风险准备金不足
    超额损失过大 → 风险准备金无法完全吸收 → 触发ADL机制

  • 结果:启动ADL,强制平仓盈利仓位

具体示例:为什么会产生超额损失?

用户情况:

  • 持有1,000张BTCUSDT多仓
  • 开仓价格:50,000 USDT
  • 保证金:10,000 USDT (20倍杠杆)
  • 强制平仓触发价格:49,500 USDT

正常情况下的期望:

  • 应该在49,500左右平仓
  • 损失:1,000 × (50,000 - 49,500) = 500,000 USDT
  • 超过保证金的损失:500,000 - 10,000 = 490,000 USDT
  • 风险准备金承担:490,000 USDT

但实际发生:

  • 市场流动性不足,价格跳空至45,000
  • 实际平仓价格:45,000 USDT
  • 实际损失:1,000 × (50,000 - 45,000) = 5,000,000 USDT
  • 超过保证金的损失:5,000,000 - 10,000 = 4,990,000 USDT
  • 风险准备金需要承担:4,990,000 USDT

如果风险准备金只有2,000,000 USDT:

  • 风险准备金不足,触发ADL
  • 需要找4,990,000 - 2,000,000 = 2,990,000 USDT
  • 通过平仓盈利的空仓来获得这笔资金

ADL触发的具体条件

  1. 风险准备金不足:当前风险准备金低于安全阈值
  2. 市场极端波动:价格跳空或流动性危机
  3. 大额爆仓:单笔或多笔爆仓损失过大
  4. 连锁反应:多个用户同时爆仓,风险准备金快速消耗

实际比例

  • 正常情况:约95%的强制平仓通过订单簿完成,无需ADL
  • 特殊情况:约5%的极端情况需要ADL介入
  • 危机时期:在市场崩盘时,ADL使用频率会显著增加

ADL vs 正常清算对比

对比项目 正常清算 ADL清算
触发条件 保证金率不足 风险准备金不足
执行方式 订单簿匹配 强制仓位匹配
价格确定 市场价格 标记价格
手续费 正常收取 免收手续费
影响对象 爆仓用户 盈利用户
频率 常见 罕见

匹配原则

  1. 方向相反:多仓亏损匹配空仓盈利,空仓亏损匹配多仓盈利
  2. 数量对等:平仓数量必须相等,实现完全对冲
  3. 价格统一:所有ADL匹配都在同一标记价格执行
  4. 无手续费:ADL执行不收取交易手续费
  5. 强制执行:被选中的盈利仓位无法拒绝,必须平仓
5.1.2.3 触发条件

1. 波动跌幅阈值触发
当适用风险准备金的当前价值低于:

  • 过去8小时内风险准备金平均价值减去以下两项中的较大者:
    • 8小时平均值的30%
    • 50,000美元(或等值金额)

实际案例

  • 风险准备金当前价值:200,000美元
  • 8小时平均值:400,000美元
  • 30%为120,000美元(>50,000美元,采用此标准)
  • 波动跌幅阈值:400,000 - 120,000 = 280,000美元
  • 由于200,000 < 280,000,触发ADL

2. 其他触发条件

  • 适用风险准备金已全部耗尽
  • 盘前交易合约:未成交强平单超过特定数量和时间阈值
5.1.2.4 ADL排序规则与风险指示

排序算法

  • 逐仓模式:盈利仓位 = 收益率 ÷ 保证金率;亏损仓位 = 收益率 × 保证金率
  • 全仓模式:使用账户保证金率而非仓位保证金率
  • 综合因素:考虑仓位盈利程度、亏损程度、杠杆使用量
  • 排名越高:在ADL中被选中的概率越大

风险指示灯系统

  • 5格灯显示ADL风险等级
  • 全部5格点亮:自动减仓风险最高
  • 1格点亮:风险较低
  • 在高度波动市场中,即使低风险仓位也可能面临ADL
5.1.2.5 执行机制

正常清算 vs ADL执行

  • 正常清算:亏损仓位进入订单簿,由市场相反订单吸收
  • ADL执行:亏损仓位直接与被减仓位匹配,无需进入订单簿

执行特点

  • 以标记价格执行,不收取交易手续费
  • 被减仓位立即锁定利润,无法获得进一步收益
  • 关键风险:重新开仓价格可能与被减仓位不同
5.1.2.6 ADL终止条件

恢复条件

  • 风险准备金价值增加超过波动跌幅阈值加上缓冲金额
  • 缓冲金额为以下两项中的较大者:
    • 触发ADL时8小时平均值的6%
    • 10,000美元(或等值金额)

终止案例

  • 风险准备金价值增加至320,000美元
  • 波动跌幅阈值:280,000美元
  • 缓冲金额:400,000 × 6% = 24,000美元(>10,000美元)
  • 终止阈值:280,000 + 24,000 = 304,000美元
  • 由于320,000 > 304,000,ADL停止
5.1.2.7 预警与防范

预警系统

  • 监控适用风险准备金余额变化
  • 订阅自动减仓预警频道
  • 风险准备金剧烈波动是ADL可能性增加的指标

防范措施

  • 降低杠杆可减少ADL影响概率
  • 监控5格风险指示灯状态
  • 关注市场波动性,ADL最常发生在高波动市场

5.1.3 保险基金制度

5.1.3.1 基金构成
  • OKX官方提供的资金
  • 强制平仓订单产生的盈余
5.1.3.2 独立运营
  • 不同业务线(现货杠杆、期货、永续合约、期权)的保险基金相互独立
  • 同一业务线内,不同标的和币种的保险基金也相互分离

5.1.4 标记价格系统

  • 作用:作为强制平仓和ADL执行的价格基准
  • 计算:基于多个现货交易所的加权平均价格
  • 防操纵:避免单一交易所价格异常对合约交易的影响

6. 交易费用结构与定价机制

本章节详细介绍了OKX永续合约的费用结构和定价机制。通过分析不同类型费率的计算方式和分级标准,为交易者提供成本管理的参考依据。

6.1 费用结构与级别制度

6.1.1 手续费分级制度

根据用户的30天交易量和OKB持仓量实行阶梯费率制度。

6.1.2 费率类型分类

  • 挂单费率:通常享受费率优惠
  • 吃单费率:按标准费率收取
  • 强制平仓费用
    • 强制平仓手续费:替代普通交易手续费
    • 强制平仓清算费:额外的风险补偿费用
    • 重要:强制平仓时不收取普通开仓/平仓手续费

参考材料

1