From 2fede14ef1191ecd8738af4be3808c087131d8a5 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 05 Jun 2026 16:03:42 +0800
Subject: [PATCH] feat(okx): 添加WebSocket订阅确认机制和优化网格交易配置

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java
index 1a1fbd4..439fa8d 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java
@@ -2,6 +2,7 @@
 
 import com.xcong.excoin.modules.okxNewPrice.gridWs.OkxAlgoOrdersChannelHandler;
 import com.xcong.excoin.modules.okxNewPrice.gridWs.OkxKlineChannelHandler;
+import com.xcong.excoin.modules.okxNewPrice.gridWs.OkxOrdersChannelHandler;
 import com.xcong.excoin.modules.okxNewPrice.gridWs.OkxPositionsChannelHandler;
 import com.xcong.excoin.modules.okxNewPrice.okxpi.config.OKXAccount;
 import com.xcong.excoin.modules.okxNewPrice.okxpi.config.enums.DefaultUrls;
@@ -85,16 +86,16 @@
                     .apiKey(primaryAccount.getApiKey())
                     .secretKey(primaryAccount.getSecretKey())
                     .passphrase(primaryAccount.getPassphrase())
-                    .instId("BTC-USDT-SWAP")
+                    .instId("ETH-USDT-SWAP")
                     .leverage("100")
                     .tdMode("cross")
-                    .gridRate(new BigDecimal("0.0025"))
-                    .expectedProfit(new BigDecimal("2"))
-                    .maxLoss(new BigDecimal("15"))
-                    .quantity("1")
-                    .baseQuantity("10")
+                    .gridRate(new BigDecimal("0.002"))
+                    .expectedProfit(new BigDecimal("180"))
+                    .maxLoss(new BigDecimal("30"))
+                    .quantity("5")
+                    .baseQuantity("50")
                     .priceScale(2)
-                    .ctVal(new BigDecimal("0.1"))
+                    .ctVal(new BigDecimal("0.01"))
                     .isSimulate(!primaryAccount.isAccountType())
                     .gridQueueSize(300)
                     .marginRatioLimit(new BigDecimal("0.2"))
@@ -105,18 +106,18 @@
             gridTradeService.init();
 
             // 4. 创建 WS 客户端并注册频道处理器
-            // 公共 WS:candle1m(K线数据)
+            // 业务 WS(/v5/business):candle1m
             gridWsClientPublic = new OkxGridWsClient(primaryAccount, true);
             gridWsClientPublic.addChannelHandler(new OkxKlineChannelHandler(okxConfig.getInstId(), gridTradeService));
             gridWsClientPublic.init();
 
-            // 私有 WS:positions + orders-algo(持仓 + 条件单)
+            // 私有 WS(/v5/private):positions + orders(algo触发后订单fill带algoId可匹配)
             gridWsClientPrivate = new OkxGridWsClient(primaryAccount, false);
             gridWsClientPrivate.addChannelHandler(new OkxPositionsChannelHandler(okxConfig.getInstId(), gridTradeService));
-            gridWsClientPrivate.addChannelHandler(new OkxAlgoOrdersChannelHandler(okxConfig.getInstId(), gridTradeService));
+            gridWsClientPrivate.addChannelHandler(new OkxOrdersChannelHandler(okxConfig.getInstId(), gridTradeService));
             gridWsClientPrivate.init();
 
-            log.info("[OKX-Manager] WS已连接, 公共: candle1m, 私有: positions/orders-algo");
+            log.info("[OKX-Manager] WS已连接, business: candle1m, private: positions/orders");
 
             // 5. 激活策略,等待首根 K 线触发基底双开
             gridTradeService.startGrid();

--
Gitblit v1.9.1