fix(trade): 修复条件单取消逻辑并添加回调支持
- 将 cancelOrder 方法替换为 cancelConditionalOrder 方法
- 修改 cancelConditionalOrder 方法签名以支持成功回调
- 添加订单取消成功后的回调执行逻辑
- 优化条件单取消的日志记录和异常处理
| | |
| | | List<GridElement> allShortOrders = GridElement.findAllShortOrders(longEntryPrice); |
| | | if (CollUtil.isNotEmpty(allShortOrders)){ |
| | | for (GridElement e : allShortOrders) { |
| | | executor.cancelOrder( |
| | | executor.cancelConditionalOrder( |
| | | e.getShortOrderId(), |
| | | orderId -> { |
| | | shortEntryTraderIdParam( |
| | |
| | | List<GridElement> allLongOrders = GridElement.findAllLongOrders(shortEntryPrice); |
| | | if (CollUtil.isNotEmpty(allLongOrders)){ |
| | | for (GridElement e : allLongOrders) { |
| | | executor.cancelOrder( |
| | | executor.cancelConditionalOrder( |
| | | e.getLongOrderId(), |
| | | orderId -> { |
| | | shortEntryTraderIdParam( |
| | |
| | | * |
| | | * @param orderId 条件单 ID,为 null 时跳过 |
| | | */ |
| | | public void cancelConditionalOrder(String orderId) { |
| | | public void cancelConditionalOrder(String orderId,Consumer<String> onSuccess) { |
| | | if (orderId == null) { |
| | | return; |
| | | } |
| | |
| | | try { |
| | | futuresApi.cancelPriceTriggeredOrder(SETTLE, Long.parseLong(orderId)); |
| | | log.info("[TradeExec] 条件单已取消, id:{}", orderId); |
| | | if (onSuccess != null) { |
| | | onSuccess.accept(orderId); |
| | | } |
| | | } catch (Exception e) { |
| | | log.warn("[TradeExec] 取消条件单失败(可能已触发), id:{}", orderId); |
| | | } |