From d663147264d0fc97e9e7ddbd4aeee69e833ad025 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 02 Jun 2026 15:14:02 +0800
Subject: [PATCH] fix(okxNewPrice): 修复合约面值配置错误并更新文档

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxTradeExecutor.java |   33 +++++++++++++++------------------
 1 files changed, 15 insertions(+), 18 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 d96dd44..488e8ac 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxTradeExecutor.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxTradeExecutor.java
@@ -86,7 +86,7 @@
      * @param onFailure 失败回调
      */
     public void openLong(String quantity, Consumer<String> onSuccess, Runnable onFailure) {
-        submitOrder("buy", "long", quantity, "market", null, false, "t-okx-grid-long", onSuccess, onFailure);
+        submitOrder("buy", "long", quantity, "market", null, false, null, onSuccess, onFailure);
     }
 
     /**
@@ -97,7 +97,7 @@
      * @param onFailure 失败回调
      */
     public void openShort(String quantity, Consumer<String> onSuccess, Runnable onFailure) {
-        submitOrder("sell", "short", quantity, "market", null, false, "t-okx-grid-short", onSuccess, onFailure);
+        submitOrder("sell", "short", quantity, "market", null, false, null, onSuccess, onFailure);
     }
 
     /**
@@ -141,11 +141,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 +186,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());
@@ -219,11 +219,9 @@
         }
         executor.execute(() -> {
             try {
-                LinkedHashMap<String, Object> params = new LinkedHashMap<>();
-                params.put("instId", instId);
-                params.put("algoId", algoId);
-                String resp = okxAccount.requestHandler.sendSignedRequest(
-                        okxAccount.baseUrl, "/api/v5/trade/cancel-algos", params, HttpMethod.POST, okxAccount.isSimluate());
+                String body = "[{\"instId\":\"" + instId + "\",\"algoId\":\"" + algoId + "\"}]";
+                String resp = okxAccount.requestHandler.sendSignedRequestRaw(
+                        okxAccount.baseUrl, "/api/v5/trade/cancel-algos", body, HttpMethod.POST, okxAccount.isSimluate());
                 log.info("[OkxExec] 条件单已取消, algoId:{}", algoId);
                 if (onSuccess != null) {
                     onSuccess.accept(algoId);
@@ -235,18 +233,17 @@
     }
 
     /**
-     * 异步取消所有未完成的 algo 订单。
+     * 异步取消所有未完成的 algo 订单(best-effort,失败仅警告)。
      */
     public void cancelAllAlgoOrders() {
         executor.execute(() -> {
             try {
-                LinkedHashMap<String, Object> params = new LinkedHashMap<>();
-                params.put("instId", instId);
-                String resp = okxAccount.requestHandler.sendSignedRequest(
-                        okxAccount.baseUrl, "/api/v5/trade/cancel-algos", params, HttpMethod.POST, okxAccount.isSimluate());
+                String body = "[{\"instId\":\"" + instId + "\",\"instType\":\"SWAP\"}]";
+                String resp = okxAccount.requestHandler.sendSignedRequestRaw(
+                        okxAccount.baseUrl, "/api/v5/trade/cancel-algos", body, HttpMethod.POST, okxAccount.isSimluate());
                 log.info("[OkxExec] 已尝试清除条件单, resp:{}", resp);
             } catch (Exception e) {
-                log.error("[OkxExec] 清除条件单失败", e);
+                log.warn("[OkxExec] 清除条件单失败(若无挂单可忽略), msg:{}", e.getMessage());
             }
         });
     }

--
Gitblit v1.9.1