f48ea5bbcc
Co-authored-by: Cursor <cursoragent@cursor.com>
2.8 KiB
2.8 KiB
比特骆驼自动化对冲系统 — 更新说明
每次发版 / 合并重要改动后,在本文档顶部追加一条(日期新→旧)。
关联审计结论写在同条「审计」小节。
2026-07-26 — 审计修复包(安全 / 下单 / 平仓)
变更
- LIVE 永续合约号:开平仓统一用
load_runtime_settings()/ 组内perp_inst_id,修复 UI 切币安后仍用 envETH-USDT-SWAP的问题。 - 到期平仓:期权先走交易所真实平仓(失败且仓位已空才本地结算),并在永续失败前写入
option_closed_perp_pending。 - 成交完整性:OKX/币安仅接受完全成交;账本数量按交易所
accFillSz/executedQty回写。 ctVal:查不到合约面值时直接失败,禁止静默默认0.01。- 放弃期权路径:优先交易所卖期权;仅深虚且卖不出时才残留归档。
- LIVE 重启:启动时若为 LIVE,自动暂停策略,须人工再点启动。
- 安全:登录限流;切 LIVE 须服务端校验确认串
LIVE;生产关闭/docs;改密后抬升 token 版本作废旧票;.env写入后尽量chmod 600;CORS 改为同源优先。 - 出场:LIVE 净利加入保守平仓手续费缓冲,减少「刚达标但扣费后不够」的提前出场。
审计(本包改后复审)
| 项 | 状态 |
|---|---|
| 永续符号 env/DB 不一致 | 已修(symbols.resolve_perp_inst_id + 开平仓全路径) |
| 到期只本地结算期权 | 已修(先交易所卖;失败才本地结算) |
| 到期永续失败无 pending | 已修(统一 _mark_option_closed_perp_pending) |
| partially_filled 当完成 | 已修(OKX 仅 filled;币安仅 FILLED) |
| 放弃路径不卖期权 | 已缓解(先 close_group 双腿;失败且深虚才残留) |
| 开仓崩溃双开 | 部分:LIVE 启动强制 running=0;仍缺交易所对账 |
| ctVal 静默默认 | 已修(查不到直接报错) |
| LIVE 出场不计平仓费 | 已修(保守 est_close_fees) |
| 登录无限流 / LIVE 可 API 绕过确认 | 已修(限流 + confirm_live_phrase=LIVE) |
/docs 公开 / CORS * / mask 泄露后缀 |
已修 |
| 改密后旧 token | 已修(AUTH_TOKEN_VERSION) |
| 默认口令 / 公网 TLS | 未改默认口令(部署须改 .env);TLS 仍靠反代 |
| 杠杆 set_leverage | 未做 |
| 平仓张数读交易所持仓 | 未做 |
残留风险(下次优先)
- 启动时交易所↔本地仓位对账与开仓幂等键
- 平仓前查询交易所实际持仓张数
- 开仓前
set_leverage - 可选:拒绝默认
AUTH_*启动(硬开关)
测试
pytest:46 passed(含test_symbols、脱敏用例更新)