From c46df80551dc93910a863e43ba04f3e7ff365c8c Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 15 Jul 2026 15:09:47 +0800
Subject: [PATCH] fix(gateApi): 修复网格交易止盈逻辑计算问题

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java |   10 ++++++----
 1 files changed, 6 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 f6a67e6..4da7371 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -666,9 +666,10 @@
 //                        }
 //                );
 
-                // 空仓止盈:每1张持仓对应1个止盈位,从entry网格向下逐个挂
+                // 空仓止盈:超额部分挂止盈,从entry网格向下逐个挂
+                int shortBaseQty = Integer.parseInt(config.getBaseQuantity());
                 int shortGridQty = Integer.parseInt(config.getQuantity());
-                int shortTpCount = posSize / shortGridQty;
+                int shortTpCount = posSize > shortBaseQty ? (posSize - shortBaseQty) / shortGridQty : 0;
 
                 for (int i = 0; i < shortTpCount; i++) {
                     int tpGridId = shortGridElement.getId() - 2 * (i + 1);
@@ -731,9 +732,10 @@
 //                        }
 //                );
 
-                // 多仓止盈:每1张持仓对应1个止盈位,从entry网格向上逐个挂
+                // 多仓止盈:超额部分挂止盈,从entry网格向上逐个挂
+                int longBaseQty = Integer.parseInt(config.getBaseQuantity());
                 int longGridQty = Integer.parseInt(config.getQuantity());
-                int longTpCount = posSize / longGridQty;
+                int longTpCount = posSize > longBaseQty ? (posSize - longBaseQty) / longGridQty : 0;
 
                 for (int i = 0; i < longTpCount; i++) {
                     int tpGridId = longGridElement.getId() + 2 * (i + 1);

--
Gitblit v1.9.1