From 423f15ff32cd88abcbb703b15dcc66fa2ed05602 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 10 Aug 2026 14:28:53 +0800
Subject: [PATCH] feat(gate): 添加加仓启动阈值配置功能
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 11 +++++++++--
1 files changed, 9 insertions(+), 2 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 11b3e00..59a62f1 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -1295,7 +1295,8 @@
* 根据加仓配置计算止损追单时的实际下单量。
* <p>公式:</p>
* <pre>
- * addMultiplier = floor(effectiveStopLossCount / addPositionInterval)
+ * divisor = addPositionInterval + 1
+ * addMultiplier = floor(effectiveStopLossCount / divisor)
* addQty = addMultiplier × addPositionQuantity
* finalQty = min(baseQuantity + addQty, maxPositionPerSide > 0 ? maxPositionPerSide : ∞)
* </pre>
@@ -1310,7 +1311,13 @@
int maxPerSide = config.getMaxPositionPerSide();
int effectiveCount = getEffectiveStopLossCount(isLong);
- int addMultiplier = interval > 0 ? effectiveCount / interval : 0;
+ int startThreshold = config.getAddPositionStartThreshold();
+ if (startThreshold > 0) {
+ effectiveCount = Math.max(0, effectiveCount - startThreshold);
+ }
+ // divisor = interval + 1:interval=0→每次加仓, interval=1→每2次加仓(2,4,6...), interval=3→每4次加仓(4,8,12...)
+ int divisor = interval + 1;
+ int addMultiplier = interval >= 0 ? effectiveCount / divisor : 0;
int addQty = addMultiplier * addQtyPerUnit;
int totalQty = baseQty + addQty;
--
Gitblit v1.9.1