From afc858458cbdde1d5f3f2cfce6d056656bf75c16 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 13 May 2026 21:39:39 +0800
Subject: [PATCH] refactor(okxNewPrice): 账户配置

---
 src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
index 510fb0c..6dc10ac 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
@@ -104,6 +104,10 @@
                 config.getPassphrase(),
                 !config.isProduction());
 
+        log.info("[管理器] 清理原有持仓和委托...");
+        restClient.cancelAllOrders(config.getContract());
+        restClient.closeAllPositions(config.getContract(), config.getMarginMode());
+
         boolean posModeOk = restClient.setPositionMode(config.getPosMode());
         if (!posModeOk) {
             log.error("[管理器] 设置持仓方式失败,策略可能无法正常运作");
@@ -115,8 +119,15 @@
             log.error("[管理器] 设置杠杆倍数失败,策略可能无法正常运作");
         }
 
-        log.info("[管理器] 账户配置完成, posMode:{}, leverage:{}, marginMode:{}",
-                config.getPosMode(), config.getLeverage(), config.getMarginMode());
+        Long instIdCode = restClient.fetchInstIdCode("SWAP", config.getContract());
+        if (instIdCode != null) {
+            config.setInstIdCode(instIdCode);
+        } else {
+            log.error("[管理器] 获取instIdCode失败,WS下单将无法正常工作");
+        }
+
+        log.info("[管理器] 账户配置完成, posMode:{}, leverage:{}, marginMode:{}, instIdCode:{}",
+                config.getPosMode(), config.getLeverage(), config.getMarginMode(), config.getInstIdCode());
     }
 
     public OkxKlineWebSocketClient getKlineWebSocketClient() { return wsKlineClient; }

--
Gitblit v1.9.1