From 6a51f45e6a00b65a9e7b0b0707b453c11311f3ef Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 11 May 2026 22:38:13 +0800
Subject: [PATCH] feat(okxApi): 添加仓位模式配置和REST客户端功能
---
src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 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..42dc164 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
@@ -32,6 +32,7 @@
.contract("BTC-USDT-SWAP")
.leverage("100")
.marginMode("cross")
+ .posMode("long_short_mode")
.gridRate(new BigDecimal("0.0015"))
.overallTp(new BigDecimal("5"))
.maxLoss(new BigDecimal("15"))
@@ -40,6 +41,8 @@
.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