From ae403b4e16296712de0fd3e954a83d6279420121 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 02 Jun 2026 09:57:50 +0800
Subject: [PATCH] refactor(okxNewPrice): 更新配置并优化网格交易初始化逻辑
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java | 30 +++++++++++++++++++++++++++++-
1 files changed, 29 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java
index 1a7cb5c..dca76ea 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java
@@ -190,7 +190,35 @@
longPriceQueue.clear();
currentLongOrderIds.clear();
currentShortOrderIds.clear();
- log.info("[OKX] 网格策略已启动");
+
+ // 每次重启重新获取当前本金,确保盈亏对比基准正确
+ refreshInitialPrincipal();
+
+ log.info("[OKX] 网格策略已启动, 当前本金: {} USDT", initialPrincipal);
+ }
+
+ /**
+ * 重新获取当前账户权益作为初始本金。
+ */
+ private void refreshInitialPrincipal() {
+ try {
+ String balanceResp = executor.getBalance();
+ if (balanceResp != null) {
+ JSONObject json = JSON.parseObject(balanceResp);
+ if ("0".equals(json.getString("code"))) {
+ JSONArray data = json.getJSONArray("data");
+ if (data != null && !data.isEmpty()) {
+ JSONObject detail = data.getJSONObject(0);
+ String totalEq = detail.getString("totalEq");
+ if (totalEq != null) {
+ this.initialPrincipal = new BigDecimal(totalEq);
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.warn("[OKX] 获取初始化本金失败,使用旧值: {}", initialPrincipal);
+ }
}
public void stopGrid() {
--
Gitblit v1.9.1