From a249cc9e1eebe35ad4c52b74751ba31637076b46 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 02 Jun 2026 10:14:54 +0800
Subject: [PATCH] fix(gate): 修复网格交易数量计算和配置参数

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java       |    8 ++++----
 src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java |    9 +++++----
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
index 1581a23..2408486 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -1391,7 +1391,7 @@
         BigDecimal priceDiff = longEntryPrice.subtract(triggerPrice).abs();
         int entryQty = priceDiff.divide(config.getStep(), 0, RoundingMode.DOWN).intValue();
         entryQty = Math.max(1, entryQty);
-        String size = String.valueOf(entryQty);
+        String size = new BigDecimal(String.valueOf(entryQty)).multiply(new BigDecimal(config.getQuantity())).toString();
         log.info("[Gate] 多仓止损触发 gridId:{}, 在gridId:{}挂{}张多单, 均价:{}, 价差:{}, 步长:{}",
                 gridId, newEntryGridId, entryQty, longEntryPrice, priceDiff, config.getStep());
         newEntryGrid.getLongTraderParam().setQuantity(size);
@@ -1431,7 +1431,7 @@
         BigDecimal priceDiff = shortEntryPrice.subtract(triggerPrice).abs();
         int entryQty = priceDiff.divide(config.getStep(), 0, RoundingMode.DOWN).intValue();
         entryQty = Math.max(1, entryQty);
-        String size = String.valueOf(entryQty);
+        String size = new BigDecimal(String.valueOf(entryQty)).multiply(new BigDecimal(config.getQuantity())).toString();
         log.info("[Gate] 空仓止损触发 gridId:{}, 在gridId:{}挂{}张空单, 均价:{}, 价差:{}, 步长:{}",
                 gridId, newEntryGridId, entryQty, shortEntryPrice, priceDiff, config.getStep());
         newEntryGrid.getShortTraderParam().setQuantity(size);
@@ -1462,7 +1462,7 @@
                     triggerPrice,
                     FuturesPriceTrigger.RuleEnum.NUMBER_2,
                     ORDER_TYPE_CLOSE_LONG,
-                    "-1",
+                    negate(config.getQuantity()),
                     profitId -> {
                         elem.setLongStopLossOrderId(profitId);
                         GridElement.refreshIndices();
@@ -1495,7 +1495,7 @@
                     triggerPrice,
                     FuturesPriceTrigger.RuleEnum.NUMBER_1,
                     ORDER_TYPE_CLOSE_SHORT,
-                    "1",
+                    config.getQuantity(),
                     profitId -> {
                         elem.setShortStopLossOrderId(profitId);
                         GridElement.refreshIndices();
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 7169fe5..e396e46 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
@@ -60,16 +60,17 @@
         try {
             //实盘
             config = GateConfig.builder()
-                    .apiKey("a2338398e00b7935104520e16be96918")
-                    .apiSecret("9111d897f2346d5217619f2da76536632715fef4d7eb304c6c61e869a2a74e98")
+                    .apiKey("08d6108fc29378fe64d6f0e89745b3fb")
+                    .apiSecret("4d16e40117477a2344f6fd5872c5b075dc9664a599e65422d3e6791ff64379f1")
                     .contract("ETH_USDT")
                     .leverage("100")
                     .marginMode("CROSS")
                     .positionMode("dual")
                     .gridRate(new BigDecimal("0.0025"))
-                    .expectedProfit(new BigDecimal("2"))
+                    .expectedProfit(new BigDecimal("10"))
                     .maxLoss(new BigDecimal("15"))
-                    .quantity("1")
+                    .baseQuantity("30")
+                    .quantity("3")
                     .priceScale(2)
                     .contractMultiplier(new BigDecimal("0.01"))
                     .unrealizedPnlPriceMode(GateConfig.PnLPriceMode.LAST_PRICE)

--
Gitblit v1.9.1