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 +++++++++++++++++++++++++++++-
 src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java |    2 +-
 src/main/java/com/xcong/excoin/modules/okxNewPrice/ExchangeInfoEnum.java          |    4 ++--
 3 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/ExchangeInfoEnum.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/ExchangeInfoEnum.java
index 28d723f..3c6a8b0 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/ExchangeInfoEnum.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/ExchangeInfoEnum.java
@@ -17,8 +17,8 @@
 //            "B0C1CC8F39625B41140D93DC25039E33",
 //            "Aa12345678@",
 //            true);
-    OKX_UAT_ceshi("ffb4e79f-fcf5-4afb-82c5-2fbb64123f61",
-            "AA06C5ED1D7C7F5AFE6484052E231C55",
+    OKX_UAT_ceshi("ac76252d-e717-4459-a6f9-80512aed5ea0",
+            "A8168543EF4F08A6DBFE27AB23956898",
             "Aa12345678@",
             false);
 //
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() {
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 10fcdd3..4a722ca 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java
@@ -83,7 +83,7 @@
                     .apiKey(primaryAccount.getApiKey())
                     .secretKey(primaryAccount.getSecretKey())
                     .passphrase(primaryAccount.getPassphrase())
-                    .instId("ETH-USDT-SWAP")
+                    .instId("BTC-USDT-SWAP")
                     .leverage("100")
                     .tdMode("cross")
                     .gridRate(new BigDecimal("0.0025"))

--
Gitblit v1.9.1