# Extreme Micro-Grid Risk Guide

**版本**: v0.1  
**日期**: 2025-10-09  
**适用范围**: “贴盘口”极限网格配置（步长 1–2 bps、post-only cushion ≤ 1 bps）

---

## 1. 场景定义

- 内圈实例（`maker-inner`）以 1–2 bps 步长挂单，几乎贴合最优价。  
- 外圈实例（`maker-outer`）负责覆盖更远层级，并在波动扩大时接棒。  
- 预期成交频率高、库存波动剧烈，对交易所限流与对冲链路要求极高。

---

## 2. 主要风险

| 风险类别 | 描述 | 缓解措施 |
|----------|------|-----------|
| 限流 / 延迟 | 大量并行下单导致 WS RPC / REST 被限流、RTT 上升 | Placement Throttling 2.0、令牌桶、批次调度；超时自动降级 |
| Post-only 失败 | 布单贴近盘口，行情跳动导致穿价 | 调整 `post_only_cushion_bps`（≥0.2 bps）；增加 retry，失败达阈值切回常规模式 |
| 库存/对冲压力 | 成交密集，库存偏移快速放大 | 降低 `hedge_threshold_base`、提高 hedger 账户限额、优化 Hedge Engine 节流 |
| 监控噪声 | 极短步长导致指标波动大，误触发告警 | 为极限实例单独设定告警阈值（placement latency、pending levels 等） |
| 多实例互踩 | 内/外圈可能在相近价位冲突 | GlobalOrderCoordinator STP + per-instance 步长/缓冲约束 |
| 运维复杂度 | 自动降级与回滚流程复杂 | 提前定义 playbook；使用运维接口 `fleet:degrade` / `fleet:resume` |

---

## 3. 配置建议

### 3.1 内圈实例
- `grid_step_bps`: 1.0–2.0  
- `post_only_cushion_bps`: 0.2–0.5  
- `min_layers`: ≥ 12  
- `tick_interval_ms`: 20–30 s  
- `fill_starvation_threshold`: `ticks=4`, `compress_factor=0.5`  
- `hedge_threshold_base`: 0.05–0.1  
- 限流：`ws_rate_limiter { burst=6, refill=5 }`

### 3.2 外圈实例
- `grid_step_bps`: 6–8  
- `post_only_cushion_bps`: 1.5–2.0  
- `min_layers`: ≥ 8  
- `grid_range_bps`: 200–240  
- `hedge_threshold_base`: 0.12–0.2  
- 限流：`ws_rate_limiter { burst=8, refill=6 }`

### 3.3 账户分配
- **maker-inner**：专门用于内圈，post-only 缓冲极小；API key 限额需提前申请。  
- **maker-outer**：负责外围网格，步长较宽，承受较少限流冲击。  
- **hedger**：保持更高 `qmax`，且支持更快节流。

---

## 4. 指标与阈值

| 指标 | 建议阈值（内圈） | 说明 |
|------|------------------|------|
| `placement_latency_p95` | ≤ 2s | 超过则触发降级，将步长恢复到常规模式 |
| `order_gateway_queue_depth` | ≤ 40 | WS 队列深度超限 → 延迟侧告警 |
| `grid_pending_levels` | ≤ 1 | >1 连续 2 tick 视为增量补单落后 |
| `fill_interval_seconds` | ≤ 15s | 超过则触发成交驱动压缩策略 |
| `stp_conflicts_total` | 不递增 | 冲突表明内外圈步长配置需调整 |

外圈实例阈值可放宽（如 latency ≤ 4s、pending ≤ 2）。

---

## 5. 降级 / 回滚流程

1. 自动检测指标超阈值 → 通过 FleetController 调用 `POST /api/fleet/instances/{id}/degrade`：  
   - 将内圈步长加倍、post-only cushion 调至 1 bps；  
   - 降低层数至 6；  
   - 停止成交驱动压缩。  
2. 若 10 分钟内未恢复 → 暂停内圈实例 (`/pause`)，仅保留外圈。  
3. 记录事故：placement latency、限流次数、post-only 失败率。  
4. 复盘后通过 `/resume` 恢复，并更新配置/阈值。

---

## 6. 实验与验证

- 在测试网或低额度账户运行 `config/examples/micro_grid_extreme.yaml`，记录 24 小时指标：  
  - RPC RTT 分布、post-only 成功率、成交间隔。  
  - 限流日志与降级触发次数。  
- 真实环境部署前需进行回测：复用 Backtest Framework，注入 1–2 bps 步长的延迟分布。  
- 金丝雀流程：先仅启用外圈，再逐步上线内圈，观察 6 小时后再扩大资产。

---

## 7. 运维提醒

- 设置专项告警渠道（Slack/钉钉）用于极限实例。  
- 日志标签：`component=GridFleet`, `instance=btc-inner`，方便过滤。  
- 需要固定值守窗口，观察首日运行状况。  
- 保持与交易所沟通限流阈值，以便调整 burst/refill。
