本文档是 07-risk-management.md 的补充,专注于对冲系统的底层架构设计。
当用户在平台做多 BTC(INTERNAL),平台作为对手方自动持有 BTC 空头。如果 BTC 涨了,平台亏钱。
对冲 = 平台去 HL 开一个与平台内部持仓方向相反的单,抵消风险。
用户做多 BTC $500K(INTERNAL)
→ 平台内部持有 BTC 空头 $500K(对赌对手方)
→ BTC 涨 → 平台亏
→ 对冲动作:去 HL 做多 BTC $400K(对冲 80%)
→ BTC 涨 → 平台在 HL 上赚,内部亏 → 互相抵消
即:对冲方向 = 用户方向(= 平台内部敞口的反方向)。
HL 技术限制:同一账户 + 同一币种 + 同一方向 = 只能有一个仓位。
平台 HL 账户
├── BTC 多头 $400K(对冲仓位)
├── ETH 空头 $200K(对冲仓位)
├── BTC 多头 $50K(用户大单路由)← 与对冲仓位自动合并!
└── 全仓模式,共享 $500K 保证金
问题:用户路由到 HL 的仓位和对冲仓位在 HL 端自动合并(同币种同方向),无法分开管理。
| 账户 | 用途 | 资金规模 | 杠杆策略 |
|---|---|---|---|
| 交易账户(Trading Account) | 用户大单路由到 HL(L4 代理执行) | ≥ $500K | 跟随用户选择(5x-50x) |
| 对冲账户(Hedge Account) | L6 对冲引擎专用 | ≥ $200K | 固定低杠杆(2x-3x) |
分离的好处:
HL 多账户可行性:HL 支持通过不同钱包地址创建独立子账户。每个地址是一个独立的 HL 交易账户。平台使用两个不同的 Turnkey 托管地址即可实现。
平台资金池
├── 交易账户 ≥ $500K
│ └── 保证金率 > 500%(安全线)
├── 对冲账户 ≥ $200K
│ └── 保证金率 > 500%(安全线)
├── 风险准备金 ≥ $500K
└── 热钱包(各链提现资金)
账户间资金调拨:
用户下单 $5,000 BTC 多(INTERNAL)
│
▼
[L3] 内部记账 → 成交确认
│
▼
[L6] 接收敞口变更事件
│
▼
[L6] 重算 BTC 净敞口(增量更新,非全量扫描)
│ 净敞口 += $5,000(用户多头方向)
│
▼
[L6] 对冲阈值判断
│
├── 净敞口 < $100K → 仅记录,不对冲(当前状态大概率在此)
├── $100K ~ $500K → 标记"待对冲 50%"
├── $500K ~ $1M → 标记"待对冲 80%"
└── > $1M → 停止对赌 + 对冲 80%
关键点:
时间线:
T1: 前 20 个用户($100K)→ 无对冲(< $100K 阈值)
T2: 第 21-100 个用户($500K)→ 对冲 50% = 在 HL 做多 BTC $250K
T3: 第 101-200 个用户($1M)→ 对冲 80% = 目标 HL 持仓 $800K
→ 增量对冲:$800K - $250K = 再加仓 $550K
T4: 超过 $1M → 停止 BTC INTERNAL 新开仓
对冲 $800K 名义价值 BTC 多头:
2x 杠杆:保证金 = $400K
3x 杠杆:保证金 = $266K
5x 杠杆:保证金 = $160K ← 风险更高但资金效率更高
对冲账户 $200K 本金:
2x 可对冲 = $400K 名义
3x 可对冲 = $600K 名义
5x 可对冲 = $1M 名义
| 对冲名义规模 | 使用杠杆 | 理由 |
|---|---|---|
| ≤ $300K | 2x | 安全第一,BTC 50% 跌幅才爆仓 |
| $300K ~ $600K | 3x | 中等风险,BTC 33% 跌幅才爆仓 |
| $600K ~ $1M | 5x | 资金效率,但需更密切监控 |
| > $1M | 5x + 停止对赌 | 不再新增敞口,等待缩减 |
核心原则:宁可少对冲也不要对冲仓位被爆。对冲仓位被清算 = 风险瞬间回到裸露状态 + 实现亏损。
对冲需求 > 对冲账户承载力:
│
├── 第一步:提高对冲杠杆(3x → 5x)
│
├── 第二步:从资金池紧急补充对冲账户
│ (链上操作,延迟 10-30 分钟)
│
├── 第三步:切换到 HL_MODE(全量路由 HL,不再新增 INTERNAL 仓位)
│
└── 第四步:等待对冲账户补资完成后恢复
平台预先在 HL 对冲账户上维持一个基础对冲仓位(Delta Pool),而不是等净敞口累积到阈值才开始对冲。
平台启动时:
在 HL 对冲账户开 BTC 多头 $100K(3x,保证金 $33K)
在 HL 对冲账户开 BTC 空头 $100K(3x,保证金 $33K)
→ 初始净仓位 = 0(Delta Neutral)
→ 但已经预留了 ±$100K 的对冲容量
初始状态:HL 多 $100K + HL 空 $100K = 净仓位 $0
用户做多 BTC $50K(INTERNAL):
→ 平台内部敞口 = 空头 $50K
→ 需要对冲 = 做多
→ 操作:HL 减空 $50K(而非加多)
→ HL 变成:多 $100K + 空 $50K = 净多 $50K
→ 对冲完成,无需新开仓
用户做空 BTC $30K(INTERNAL):
→ 平台内部敞口变化 = 空头 $50K - $30K = 空头 $20K
→ 操作:HL 加空 $30K
→ HL 变成:多 $100K + 空 $80K = 净多 $20K
HL 同一账户同一币种只能有一个仓位(多或空),不能同时双向。
这意味着纯粹的 Delta Pool(同时持多和空)在单账户内不可行。
方式一:单方向基础仓
如果历史数据显示用户偏好做多(散户常见):
→ 预开 BTC 多头 $100K(预对冲用户多头方向)
→ 用户做多时:已有对冲覆盖,无需操作
→ 用户做空时:减仓 HL 多头
优点:资金效率高(只用一方向保证金)
缺点:方向判断错误时需要翻转,成本高
方式二:跨账户双向(如果用双账户)
对冲账户 A:BTC 多头 $100K
对冲账户 B:BTC 空头 $100K
→ 实现真正的 Delta Neutral
→ 但需要三个 HL 账户(1 交易 + 2 对冲),管理复杂
预对冲增加了资金占用和操作复杂度,但 MVP 阶段敞口规模有限(初期用户少),被动对冲(敞口达阈值再动作)已足够。
预对冲留到 Phase 4 优化阶段,届时有足够的用户行为数据来判断预对冲方向。
触发条件:
对冲账户使用 5x 杠杆对冲 BTC 多头
BTC 急跌 20% → 对冲仓位接近清算价
HL 清算对冲仓位 → 平台对冲消失
同时用户 INTERNAL 多头也在亏钱 → 平台双重亏损
防护措施:
1. 对冲账户保证金率 < 300% → 自动补资
2. 对冲账户保证金率 < 200% → P0 告警 + 紧急降杠杆
3. 对冲仓位未实现亏损 > 保证金 50% → 自动减仓(止损)
4. 对冲仓位绝不使用 > 5x 杠杆(硬性上限)
触发条件:
需要对冲 $500K BTC 多头
BTC 瞬间下跌 10%,HL 订单簿薄
市价对冲单滑点 3-5%
防护措施:
1. 大额对冲使用限价单 + 超时回退市价
2. 对冲单设滑点上限(默认 1%),超出则拆分多笔
3. 极端行情下暂停对冲 + 切换 HL_MODE(停止新增敞口)
触发条件:
BTC 净敞口 = 用户多头 $800K → 对冲:HL 多头 $640K
此时一个大用户下 BTC 多头 $50K,路由到 HL(> $10K)
HL 交易账户也开 BTC 多头
→ 两个账户都在做多 BTC
→ 如果 BTC 跌,两个账户同时亏损
这不是问题,因为:
- 交易账户的多头 = 用户要求的(用户承担盈亏)
- 对冲账户的多头 = 覆盖 INTERNAL 对赌敞口(平台风控需要)
- 两者独立核算,不存在"冲突"
触发条件:
BTC 净敞口 $600K → 需对冲 $480K
ETH 净敞口 $400K → 需对冲 $200K
SOL 净敞口 $200K → 需对冲 $100K
合计对冲需求 $780K
对冲账户 $200K,3x 杠杆最大承载 = $600K
应对策略:
1. 按净敞口大小排序,优先对冲敞口最大的币种
2. 对冲不足的币种 → 切换该币种为 HL_MODE
3. 触发资金池补充到对冲账户
4. 告警通知 Risk Manager
触发条件:
用户 INTERNAL 多头 $800K → 对冲 HL 多头 $640K
大量用户同时平仓(获利了结 / 止损)
用户 INTERNAL 多头降到 $100K
此时 HL 对冲仓位 $640K 远超需要
应对策略:
1. 每次 INTERNAL 仓位减少 → L6 重算净敞口
2. 对冲仓位 > 净敞口 × 对冲比例 → 触发减仓
3. 批量减仓,控制滑点
4. 设置最大减仓速率(如每分钟减仓不超过 $200K)
触发条件:
对冲账户长期持有 BTC 多头 $500K
资金费率持续为正(多头付空头)
每 8 小时支付:$500K × 0.01% = $50
一天 = $150,一个月 = $4,500
应对策略:
1. 对冲成本(手续费 + 资金费)实时累计
2. 如果对冲成本 > 预期客损收益 → 缩减对赌(降低路由阈值)
3. 对冲仓位的资金费支出纳入风控成本报表
4. 后台仪表盘展示"对冲 ROI"指标
INTERNAL 仓位变更事件(开仓 / 平仓 / 清算)
│
▼
[L6 敞口聚合器] ← 增量更新,每笔成交触发
│
├── 各币种净敞口(实时)
├── 各币种对冲仓位(从对冲账户读取)
└── 对冲缺口 = 应对冲量 - 已对冲量
│
▼
[去抖动 + 批量合并](5 秒窗口)
│
▼
[对冲决策引擎]
│
├── 缺口 > 0 → 需要加仓对冲
│ ├── 检查对冲账户可用保证金
│ ├── 选择杠杆(阶梯策略)
│ └── 生成对冲指令 → [L4 对冲账户代理] → HL
│
├── 缺口 < 0 → 需要减仓对冲
│ └── 生成减仓指令 → [L4 对冲账户代理] → HL
│
└── 缺口 ≈ 0 → 无操作
│
▼
[对冲仓位管理器]
├── 追踪每个币种的对冲仓位
├── 对冲仓位保证金率监控
├── 对冲仓位未实现 PnL 监控
└── 对冲成本累计(手续费 + 资金费 + 滑点)
┌─────────────────────────────────────────┐
│ 平台资金池 │
│ (热钱包 / 冷钱包 / 风险准备金) │
└────────┬───────────────┬────────────────┘
│ │
┌────▼─────┐ ┌────▼──────┐
│ 交易账户 │ │ 对冲账户 │
│ Trading │ │ Hedging │
│ ≥$500K │ │ ≥$200K │
├──────────┤ ├───────────┤
│ L4 代理 │ │ L6 对冲 │
│ 用户大单 │ │ 敞口对冲 │
│ 路由执行 │ │ 低杠杆 │
│ 跟随用户 │ │ 2x-5x │
│ 杠杆 │ │ 阶梯杠杆 │
└──────────┘ └───────────┘
| 配置项 | 交易账户 | 对冲账户 |
|---|---|---|
| HL 地址 | 独立 Turnkey 托管地址 A | 独立 Turnkey 托管地址 B |
| 保证金模式 | Cross(全仓) | Cross(全仓) |
| 最低保证金率 | > 500% | > 500% |
| 告警保证金率 | < 300% | < 300% |
| 紧急保证金率 | < 150% | < 150% |
| 最大杠杆 | 跟随用户(≤ HL 最大) | 5x(硬上限) |
| Agent Key | 专用 Agent Key A | 专用 Agent Key B |