From 1b55621d4dcf3b4ee6b9c4beb81ad69e5b7a5856 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 05 Jun 2026 17:58:08 +0800
Subject: [PATCH] refactor(okxNewPrice): 优化止损管理器的挂单数量计算逻辑

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxTradeExecutor.java |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxTradeExecutor.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxTradeExecutor.java
index 640424a..3aa0578 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxTradeExecutor.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxTradeExecutor.java
@@ -79,6 +79,14 @@
     }
 
     /**
+     * 提交一个通用任务到交易线程池末尾。
+     * 利用单线程池的 FIFO 特性确保任务按提交顺序执行。
+     */
+    public void submitTask(Runnable task) {
+        executor.execute(task);
+    }
+
+    /**
      * 异步 IOC 市价开多。
      *
      * @param quantity  开仓张数(正数)
@@ -141,11 +149,11 @@
                 params.put("tdMode", tdMode);
                 params.put("side", side);
                 params.put("posSide", posSide);
-                params.put("ordType", "conditional");
+                params.put("ordType", "trigger");
                 params.put("sz", size);
                 params.put("triggerPx", triggerPrice);
                 params.put("triggerPxType", "last");
-                params.put("orderPx", "-1"); // 市价成交
+                params.put("orderPx", "-1");
 
                 String resp = okxAccount.requestHandler.sendSignedRequest(
                         okxAccount.baseUrl, "/api/v5/trade/order-algo", params, HttpMethod.POST, okxAccount.isSimluate());
@@ -186,9 +194,9 @@
                 params.put("posSide", posSide);
                 params.put("ordType", "conditional");
                 params.put("sz", size);
-                params.put("triggerPx", triggerPrice);
-                params.put("triggerPxType", "last");
-                params.put("orderPx", "-1"); // 市价成交
+                params.put("slTriggerPx", triggerPrice);
+                params.put("slTriggerPxType", "last");
+                params.put("slOrdPx", "-1");
 
                 String resp = okxAccount.requestHandler.sendSignedRequest(
                         okxAccount.baseUrl, "/api/v5/trade/order-algo", params, HttpMethod.POST, okxAccount.isSimluate());

--
Gitblit v1.9.1