SHI XIAOLONG

订单跟踪系统BUG27

订单跟踪严重 Bug 分析 1. 架构与数据流简述 订单跟踪核心在 src/trading/websocket_order_manager.py: * 唯一解析路径:_resolve() 在持锁内将订单从 PENDING 转为终态(FILLED/CANCELED/REJECTED/TIMEOUT),并 result_event.set()。 * WS 驱动:_on_order_update(orderUpdates)、_on_user_fill(userFills)在锁内设置 tracking._ws_status 等,释放锁后再调用 _resolve(oid)(仅传 oid,在 _resolve 内再次按 oid 查表)

By SHI XIAOLONG

订单跟踪系统BUG26

订单跟踪严重 Bug 分析 对当前系统订单跟踪(WebSocketOrderManager + 消息路由 + 超时/重连)进行代码分析,识别可能导致错误成交判定、永久阻塞或数据错误的严重 bug。 1. 架构与数据流概览 订单跟踪核心在 src/trading/websocket_order_manager.py(WebSocketOrderManager),与 src/trading/executor.py 的 _track_limit_order、src/services/realtime_kline_service_base.py 的 WS 回调配合工作。 sequenceDiagram participant Exec as Executor participant Mgr as WebSocketOrderManager

By SHI XIAOLONG

订单跟踪系统BUG25

订单跟踪系统严重 Bug 分析报告 分析日期:2026-02-21 主要问题文件:websocket_order_manager.py BUG 1 — 竞态条件导致定时器内存泄漏 🔴 Critical 位置: websocket_order_manager.py:360-365 代码: timer = threading.Timer( self._FILL_GRACE_SEC, self._resolve, [oid] ) timer.daemon = True tracking._grace_timer = timer timer.start() 问题描述: 同一 oid 被重复调用 track_order() 时,旧 tracking 被替换,

By SHI XIAOLONG

订单跟踪系统bug分析24

订单跟踪系统严重 Bug 分析报告 分析日期: 2026-02-21 分析范围: websocket_order_manager.py, executor.py, position_manager.py, realtime_kline_service_base.py Bug 1 [严重] userFills 重复累计 → 成交价/数量错误 位置: websocket_order_manager.py:559-569 _accumulate_fill 问题: _accumulate_fill 没有任何 fill 级别的去重机制。它简单地将每笔 fill 的 px * sz 累加计算加权平均价。在以下场景会出错: * WS 重连后交易所重播消息:

By SHI XIAOLONG

订单跟踪bug20

订单跟踪系统严重Bug分析报告 Context 基于对 Hyperliquid 永续合约交易系统的全面代码审计,识别出订单跟踪、仓位管理、风控交互等环节中的严重bug。系统采用 WebSocket 实时追踪 + HTTP 回退验证的双路架构,涉及多线程并发操作。 P0 严重Bug(必须立即修复) Bug 1: wait_for_order() 无超时 + _timeout_loop 提前返回 → 可能永久阻塞 文件: src/trading/websocket_order_manager.py 问题: * wait_for_order() (line 133) 使用 tracking.result_event.wait() 无任何超时参数 * 注释声称 _timeout_loop 保证所有路径都调用

By SHI XIAOLONG

订单跟踪bug18

订单跟踪系统严重 Bug 分析报告 分析日期: 2026-02-21 分析范围: websocket_order_manager.py, executor.py, position_manager.py, risk_manager.py, orchestrator.py Bug 1: 止损/同步触发平仓时,每日统计双重计数 (严重) 位置: orchestrator.py:814-818 + position_manager.py:572-578 问题: 当止损监控线程或仓位同步线程触发平仓时,update_daily_stats(trades_closed=1, realized_pnl=...) 被调用两次: 1. position_manager._execute_close(

By SHI XIAOLONG