From de610fb8c7dbfca29af713212c05980f314fad2d Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 06 Aug 2026 16:01:31 +0800
Subject: [PATCH] fix(gateApi): 修复网格交易中的止损计数和仓位计算问题

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java |    9 +++++----
 1 files changed, 5 insertions(+), 4 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 bef35fb..1905366 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -676,7 +676,6 @@
                 log.info("[Gate] 空单成交 gridId:{}, 当前持仓:{}张", filledQty, posSize);
 
 
-                accumulatedShortLossCount++;
                 checkShortStopLongProfit(accumulatedShortLossCount, shortGridElement.getId() + 2);
 
             }
@@ -708,7 +707,6 @@
 //                placeExcessTakeProfit(posSize, true);
                 log.info("[Gate] 多单成交 gridId:{}, 当前持仓:{}张", filledQty, posSize);
 
-                accumulatedLongLossCount++;
                 checkLongStopShortProfit(accumulatedLongLossCount, longGridElement.getId() -2);
 
             }
@@ -1287,6 +1285,8 @@
         }
 
         lastLongStopLossGridId = gridId;
+
+        accumulatedLongLossCount++;
         log.info("[Gate] 多仓止损触发 gridId:{}, 止损次数:{}{}, 开始追单",
                 gridId, accumulatedLongLossCount, sameGrid ? "(同网格)" : "");
         int newEntryGridId = gridId + 1;
@@ -1379,7 +1379,7 @@
      */
     private void checkLongStopShortProfit(int times, int gridId) {
         int[] r = ruleOf(times);
-        int maxPos = config.getMaxPositionSize();
+        int maxPos = Integer.parseInt(config.getBaseQuantity());
         if (maxPos <= 0) {
             return;
         }
@@ -1435,7 +1435,7 @@
      */
     private void checkShortStopLongProfit(int times, int gridId) {
         int[] r = ruleOf(times);
-        int maxPos = config.getMaxPositionSize();
+        int maxPos = Integer.parseInt(config.getBaseQuantity());
         if (maxPos <= 0) {
             return;
         }
@@ -1496,6 +1496,7 @@
             return;
         }
         lastShortStopLossGridId = gridId;
+        accumulatedShortLossCount++;
         log.info("[Gate] 空仓止损触发 gridId:{}, 止损次数:{}{}, 开始追单",
                 gridId, accumulatedShortLossCount, sameGrid ? "(同网格)" : "");
         int newEntryGridId = gridId - 1;

--
Gitblit v1.9.1