mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-01 10:01:21 +08:00
## 问题描述 更新止损止盈时,旧订单没有被删除,导致订单累积。 用户看到多个止损/止盈订单同时存在(如截图所示有4个订单)。 ## 根本原因 币安Futures采用双向持仓模式(Hedge Mode),每个symbol可以同时持有LONG和SHORT两个方向的仓位。 取消订单时: - 创建订单时指定了 PositionSide(LONG/SHORT) - 取消订单时未遍历所有订单,导致部分订单残留 ## 修复内容 ### 1. binance_futures.go - CancelStopLossOrders: 取消所有方向(LONG+SHORT)的止损订单 - CancelTakeProfitOrders: 取消所有方向(LONG+SHORT)的止盈订单 - 添加错误收集机制,记录每个失败的订单 - 增强日志输出,显示订单方向(PositionSide) - 仅当所有取消都失败时才返回错误 ### 2. aster_trader.go - 同步应用相同的修复逻辑 - 保持多交易所一致性 ## 预期效果 - 更新止损时,所有旧止损订单被删除 - 更新止盈时,所有旧止盈订单被删除 - 不会出现订单累积问题 - 更详细的日志输出,方便排查问题 ## 测试建议 1. 在双向持仓模式下测试 update_stop_loss 2. 验证旧订单是否全部删除 3. 检查日志中的 positionSide 输出 Related: 用户反馈截图显示4个订单同时存在