From 1278ee2bd43b401489b4377b0eee5259b3d5bbbb Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 13 May 2026 18:17:19 +0800
Subject: [PATCH] refactor(okxNewPrice): 账户配置
---
src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java | 32 +++++++++++++++++++++++---------
1 files changed, 23 insertions(+), 9 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 56ef6d1..bee8c45 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
@@ -48,11 +48,6 @@
gridTradeService = new OkxGridTradeService(config, accountName);
gridTradeService.startGrid();
- wsKlineClient = new OkxKlineWebSocketClient(config.getWsKlineUrl());
- wsKlineClient.addChannelHandler(new OkxCandlestickChannelHandler(config.getContract(), gridTradeService));
- wsKlineClient.init();
- log.info("[管理器] K线WS已连接, 已注册K线频道处理器");
-
wsPrivateClient = new OkxKlineWebSocketClient(
config.getWsPrivateUrl(),
config.getApiKey(),
@@ -61,10 +56,22 @@
wsPrivateClient.addChannelHandler(new OkxPositionsChannelHandler(config.getContract(), gridTradeService));
wsPrivateClient.addChannelHandler(new OkxAccountChannelHandler());
wsPrivateClient.addChannelHandler(new OkxOrderInfoChannelHandler(config.getContract(), gridTradeService, config));
- wsPrivateClient.init();
- log.info("[管理器] 私有WS已连接, 已注册 3 个频道处理器");
+ wsPrivateClient.setOnLoginSuccess(() -> {
+ log.info("[管理器] 私有WS登录完成,启动K线订阅");
+ try {
+ wsKlineClient = new OkxKlineWebSocketClient(config.getWsKlineUrl());
+ wsKlineClient.addChannelHandler(new OkxCandlestickChannelHandler(config.getContract(), gridTradeService));
+ wsKlineClient.init();
+ log.info("[管理器] K线WS已连接, 已注册K线频道处理器");
+ } catch (Exception e) {
+ log.error("[管理器] K线WS初始化失败", e);
+ }
+ });
+
+ wsPrivateClient.init();
gridTradeService.setWebSocketClient(wsPrivateClient.getWebSocketClient());
+ log.info("[管理器] 私有WS已连接, 等待登录完成...");
} catch (Exception e) {
log.error("[管理器] 初始化失败", e);
@@ -108,8 +115,15 @@
log.error("[管理器] 设置杠杆倍数失败,策略可能无法正常运作");
}
- log.info("[管理器] 账户配置完成, posMode:{}, leverage:{}, marginMode:{}",
- config.getPosMode(), config.getLeverage(), config.getMarginMode());
+ String 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