Fix LIVE SoT P0/P1: closing state machine, OO exchange fills, BN balances.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-08-08 15:54:45 +08:00
parent 99e58910d3
commit 8d67f3fc6c
10 changed files with 864 additions and 167 deletions
@@ -0,0 +1,45 @@
# 审计修改方案 — 2026-08-08 交易所 SoT 续修
## 目标
实盘以交易所仓位/成交为准;本地仅镜像。修完后无 P0/P1 仓位与状态机硬伤。
## 修改清单
### P0 状态机与错腿
1. `closing` 加入 `BLOCKING_STATUSES`;引擎 manage + emergency 处理 closing
2. OKX `close_winning_oo`:先处理 closing(对齐 BN
3. emergency / `close_group`:检测期期 → `close_oo_full`
4. 到期:期权交易所未空 → fail-closed;空后只平永续;fill 不用 intrinsic
5. recover_opening:解析 `oo_put:`,双腿皆空才清槽
6. 期期盈利腿:交易所张数下单,成交均价入账,验空再落 residual
### P1 镜像与可用性
7. 残仓已空:零价镜像仅标记 `exchange_flat`,不伪造交割现金(PnL 标未知/0+note
8. `close_oo_full`:用 fills 汇总 realized_pnl
9. repair / abandon:交易所 size;永续已空可归档
10. 币安余额接入资金门(能查多少接多少)
11. 半自动:出场前要求盘口可成交(bid/ask 存在),否则 liquidity_wait
### 验收
- 单测覆盖 closing / emergency-OO / expiry 无 intrinsic / recover Put / BN bal stub
- 再审计无 P0;P1 交割账单拉取可标「后续」若交易所 API 未接
### 实施结果(2026-08-08
| 项 | 状态 |
|----|------|
| closing BLOCKING + engine | ✅ |
| OKX OO win 顺序 + 交易所成交 | ✅ |
| emergency/close_group → OO full | ✅ |
| 到期无 intrinsic;只平永续 | ✅ |
| recover oo_put 孤儿 Put | ✅ |
| repair/abandon 交易所 size | ✅ |
| BN 余额资金门 | ✅ |
| 半自动买一闸 | ✅ |
| 交割账单拉价 | ⏳ 后续(零价镜像+note) |
再审计:无剩余 P0;剩交割账单与期期开仓账本对称为 P2/后续。
+15
View File
@@ -5,6 +5,21 @@
---
## 2026-08-08 — 实盘 SoT 续修(closing / 期期 / 资金门)
### 变更
1. `closing` 进开仓拦截;引擎 manage/紧急处理 closingOKX 期期盈利腿收尾顺序对齐 BN。
2. 紧急/全平检测期期 → `close_oo_full`;盈利腿按交易所张数+真实均价,验空再落库。
3. 到期 fill 禁止 intrinsicrecover 识别 `oo_put:` 防孤儿 Putrepair/abandon 交易所 size。
4. 币安余额接入资金门;半自动出场前要求期权买一。
### 审计
`docs/审计修改方案-2026-08-08-交易所SoT续.md`;交割账单 API 未接,ITM 零价镜像 PnL 可能偏低(仓位 SoT 优先)。
---
## 2026-08-08 — 实盘以交易所为 SoT(到期只平永续)
### 变更