From 0c23e22ad67551ae3d00a4dea4b41dde6ad2df35 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 07 May 2026 15:00:37 +0800
Subject: [PATCH] fix(gateApi): 设置初始订单为仅减仓模式
---
src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java | 72 +++++++++++++++++++----------------
1 files changed, 39 insertions(+), 33 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
index f020544..21885f0 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
@@ -1,24 +1,18 @@
package com.xcong.excoin.modules.gateApi;
-import com.xcong.excoin.modules.okxNewPrice.OkxKlineWebSocketClient;
-import com.xcong.excoin.modules.okxNewPrice.OkxQuantWebSocketClient;
import com.xcong.excoin.modules.okxNewPrice.celue.CaoZuoService;
-import com.xcong.excoin.modules.okxNewPrice.okxWs.enums.ExchangeInfoEnum;
import com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList.WangGeListService;
import com.xcong.excoin.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
-import java.util.Collection;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import java.math.BigDecimal;
/**
- * 管理多个OKX WebSocket客户端实例,每个实例对应一个账号
+ * 管理 Gate WebSocket 客户端和网格交易服务实例
*/
@Slf4j
@Component
@@ -31,53 +25,65 @@
private WangGeListService wangGeListService;
private GateKlineWebSocketClient klinePriceClient;
+ private GateGridTradeService gridTradeService;
+ private static final String API_KEY = "d90ca272391992b8e74f8f92cedb21ec";
+ private static final String API_SECRET = "1861e4f52de4bb53369ea3208d9ede38ece4777368030f96c77d27934c46c274";
- /**
- * 初始化方法,在Spring Bean构造完成后执行
- * 创建并初始化所有账号的WebSocket客户端实例
- */
@PostConstruct
public void init() {
- log.info("开始初始化OkxWebSocketClientManager");
-
- // 初始化价格WebSocket客户端
+ log.info("开始初始化GateWebSocketClientManager");
+
try {
+ gridTradeService = new GateGridTradeService(
+ API_KEY, API_SECRET,
+ "XAUT_USDT",
+ "100",
+ "cross",
+ "dual",
+ new BigDecimal("0.0035"),
+ new BigDecimal("0.5"),
+ 3,
+ new BigDecimal("7.5"),
+ "10"
+ );
+ gridTradeService.init();
+
klinePriceClient = new GateKlineWebSocketClient(caoZuoService, this, wangGeListService);
+ klinePriceClient.setGridTradeService(gridTradeService);
klinePriceClient.init();
- log.info("已初始化OkxNewPriceWebSocketClient");
+ log.info("已初始化GateKlineWebSocketClient");
+
+ gridTradeService.startGrid();
} catch (Exception e) {
- log.error("初始化OkxNewPriceWebSocketClient失败", e);
+ log.error("初始化GateWebSocketClientManager失败", e);
}
-
}
- /**
- * 销毁方法,在Spring Bean销毁前执行
- * 关闭所有WebSocket客户端连接和相关资源
- */
@PreDestroy
public void destroy() {
- log.info("开始销毁OkxWebSocketClientManager");
-
- // 关闭价格WebSocket客户端
+ log.info("开始销毁GateWebSocketClientManager");
+
+ if (gridTradeService != null) {
+ gridTradeService.stopGrid();
+ }
if (klinePriceClient != null) {
try {
klinePriceClient.destroy();
- log.info("已销毁OkxNewPriceWebSocketClient");
+ log.info("已销毁GateKlineWebSocketClient");
} catch (Exception e) {
- log.error("销毁OkxNewPriceWebSocketClient失败", e);
+ log.error("销毁GateKlineWebSocketClient失败", e);
}
}
-
- log.info("OkxWebSocketClientManager销毁完成");
+
+ log.info("GateWebSocketClientManager销毁完成");
}
- /**
- * 获取OkxNewPriceWebSocketClient实例
- * @return 价格WebSocket客户端实例
- */
public GateKlineWebSocketClient getKlineWebSocketClient() {
return klinePriceClient;
}
+
+ public GateGridTradeService getGridTradeService() {
+ return gridTradeService;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1