| | |
| | | executor.shutdownNow(); |
| | | } |
| | | } |
| | | /** |
| | | * 提交一个通用任务到交易线程池末尾。 |
| | | * 利用单线程池的 FIFO 特性确保任务按提交顺序执行。 |
| | | */ |
| | | public void submitTask(Runnable task) { |
| | | executor.execute(task); |
| | | } |
| | | |
| | | /** |
| | | * 异步 IOC 市价开多。quantity 为正数(如 "1")。 |
| | |
| | | * |
| | | * @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); |
| | | } |