Files
eth_hedge_sim/docs/更新说明.md
T
dekun 9d3b36826c Include LIVE close-fee estimate in target PnL; rest after manual and emergency close.
Align docs so LIVE exit matches SIM fee buffer; manual full close now enters rest_seconds like auto/emergency.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 22:58:10 +08:00

4.8 KiB
Raw Blame History

比特骆驼自动化对冲系统 — 更新说明

每次发版 / 合并重要改动后,在本文档顶部追加一条(日期新→旧)。
关联审计结论写在同条「审计」小节。


2026-07-26 — LIVE 达标含估平仓费;手动/紧急全平进休息

变更

  1. LIVE 达标口径:盯盘净利继续扣预估平仓手续费(与策略说明 / SIM 一致);实盘索引改为「含估平仓费」。
  2. 组间休息:手动全平成功后调用 enter_rest_after_close();紧急全平成功路径同样进入休息(与自动全平共用)。

测试

  • pytest 全量

2026-07-26 — LIVE 对账 / 手动开仓 UI / Token 自动换发

变更

  1. 开仓幂等与对账opening 占槽;LIVE 开仓前核对交易所永续(双侧);启动写 mismatch 日志。
  2. 平仓张数:OKX/币安平永续优先读交易所持仓,失败才回退本地账本。
  3. 杠杆LIVE 开永续前 set_leverage(失败仅告警)。
  4. 自动运行禁手动开仓running=1/api/sim/open-group 返回 409;计划页按钮禁用。
  5. 手动开仓显示:策略设置「节奏」→「显示手动开仓」,默认不显示;关闭时 API 亦拒绝手动开/手动全平。紧急全平始终可用且为红色
  6. 启动态:策略运行中主按钮文案为「启动中」,绿色样式。
  7. Token 自动换发HMAC Bearer(非 Flask)。新增 POST /api/auth/refresh;前端登录后定时/切回前台/临近过期静默换发。默认口令未改。

审计(本包改后)

状态
交易所↔本地对账 / 开仓幂等 已修
平仓张数读交易所 已修
set_leverage 已修(失败告警)
自动运行仍可手动开仓 已修API + UI
手动开/全平默认露出 已修(默认隐藏 + 设置开关)
紧急全平样式 / 启动中文案 已修
Token 长期不轮换 已修refresh + 前端自动换发)
对账只查单侧漏 short 已修flat 时 long+short
放弃期权残留 / 模式切换仅本地 未做(非本包;紧急全平/人工核对)

测试

  • pytest52 passed

2026-07-26 — 审计修复包(安全 / 下单 / 平仓)

变更

  1. LIVE 永续合约号:开平仓统一用 load_runtime_settings() / 组内 perp_inst_id,修复 UI 切币安后仍用 env ETH-USDT-SWAP 的问题。
  2. 到期平仓:期权先走交易所真实平仓(失败且仓位已空才本地结算),并在永续失败前写入 option_closed_perp_pending
  3. 成交完整性:OKX/币安仅接受完全成交;账本数量按交易所 accFillSz/executedQty 回写。
  4. ctVal:查不到合约面值时直接失败,禁止静默默认 0.01
  5. 放弃期权路径:优先交易所卖期权;仅深虚且卖不出时才残留归档。
  6. LIVE 重启:启动时若为 LIVE,自动暂停策略,须人工再点启动。
  7. 安全:登录限流;切 LIVE 须服务端校验确认串 LIVE;生产关闭 /docs;改密后抬升 token 版本作废旧票;.env 写入后尽量 chmod 600CORS 改为同源优先。
  8. 出场: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 未做
平仓张数读交易所持仓 未做

残留风险(下次优先)

  1. 启动时交易所↔本地仓位对账与开仓幂等键
  2. 平仓前查询交易所实际持仓张数
  3. 开仓前 set_leverage
  4. 可选:拒绝默认 AUTH_* 启动(硬开关)

测试

  • pytest46 passed(含 test_symbols、脱敏用例更新)