From 935856d1a80bacaccad4154d99e7e7c949523011 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 13 May 2026 16:14:35 +0800
Subject: [PATCH] refactor(gateApi): 优化网格交易逻辑和条件单管理

---
 src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java |   33 ++++++++++++++++++++++++++++++---
 1 files changed, 30 insertions(+), 3 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 600f00f..94f4fe1 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
@@ -29,17 +29,20 @@
                     .apiKey("d90ca272391992b8e74f8f92cedb21ec")
                     .secretKey("1861e4f52de4bb53369ea3208d9ede38ece4777368030f96c77d27934c46c274")
                     .passphrase("Aa123123@")
-                    .contract("BTC-USDT-SWAP")
+                    .contract("ETH-USDT-SWAP")
                     .leverage("100")
                     .marginMode("cross")
+                    .posMode("long_short_mode")
                     .gridRate(new BigDecimal("0.0015"))
                     .overallTp(new BigDecimal("5"))
-                    .maxLoss(new BigDecimal("15"))
-                    .quantity("1")
+                    .maxLoss(new BigDecimal("20"))
+                    .quantity("0.1")
                     .contractMultiplier(new BigDecimal("1"))
                     .unrealizedPnlPriceMode(OkxConfig.PnLPriceMode.LAST_PRICE)
                     .isProduction(false)
                     .build();
+
+            setupAccount();
 
             String accountName = "OKX_API";
             gridTradeService = new OkxGridTradeService(config, accountName);
@@ -85,6 +88,30 @@
         log.info("[管理器] 销毁完成");
     }
 
+    private void setupAccount() {
+        log.info("[管理器] 开始配置账户...");
+        OkxRestClient restClient = new OkxRestClient(
+                config.getRestBaseUrl(),
+                config.getApiKey(),
+                config.getSecretKey(),
+                config.getPassphrase(),
+                !config.isProduction());
+
+        boolean posModeOk = restClient.setPositionMode(config.getPosMode());
+        if (!posModeOk) {
+            log.error("[管理器] 设置持仓方式失败,策略可能无法正常运作");
+        }
+
+        boolean leverOk = restClient.setLeverage(
+                config.getContract(), config.getLeverage(), config.getMarginMode());
+        if (!leverOk) {
+            log.error("[管理器] 设置杠杆倍数失败,策略可能无法正常运作");
+        }
+
+        log.info("[管理器] 账户配置完成, posMode:{}, leverage:{}, marginMode:{}",
+                config.getPosMode(), config.getLeverage(), config.getMarginMode());
+    }
+
     public OkxKlineWebSocketClient getKlineWebSocketClient() { return wsKlineClient; }
     public OkxKlineWebSocketClient getPrivateWebSocketClient() { return wsPrivateClient; }
     public OkxGridTradeService getGridTradeService() { return gridTradeService; }

--
Gitblit v1.9.1