Administrator
2026-06-02 ae403b4e16296712de0fd3e954a83d6279420121
refactor(okxNewPrice): 更新配置并优化网格交易初始化逻辑

- 更新OKX UAT测试环境的API密钥和密钥ID
- 重构网格策略启动逻辑,每次重启时重新获取账户本金作为基准
- 添加refreshInitialPrincipal方法用于获取最新账户权益
- 将交易对从ETH-USDT-SWAP更改为BTC-USDT-SWAP
- 改进日志记录,显示启动时的当前本金信息
3 files modified
36 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/ExchangeInfoEnum.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java 30 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxWebSocketClientManager.java 2 ●●● patch | view | raw | blame | history
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);
//
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() {
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"))