From bbcaf4f3ab8c6c2428a97a44ae9b3f116265b3e7 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Sat, 06 Jun 2026 11:51:59 +0800
Subject: [PATCH] fix(gateApi): 修复网格交易止损单数量配置问题
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 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 352f61d..be16750 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -928,7 +928,8 @@
baseGridElement.setShortOrderId(baseShortTraderParam.getEntryOrderId());
baseGridElement.setHasShortOrder(true);
- for (int id = 2; id <= 11; id++) {
+ int shortTime = Integer.parseInt(config.getBaseQuantity()) + 1;
+ for (int id = 2; id <= shortTime; id++) {
GridElement elem = GridElement.findById(id);
if (elem == null) {
continue;
@@ -948,7 +949,9 @@
);
}
- for (int id = -2; id >= -11; id--) {
+
+ int longTime = Integer.parseInt(config.getBaseQuantity()) + 1;
+ for (int id = -2; id >= -longTime; id--) {
GridElement elem = GridElement.findById(id);
if (elem == null) {
continue;
@@ -968,7 +971,7 @@
);
}
- log.info("[Gate] 止损单已全部挂完, 空仓止损: 2~11, 多仓止损: -2~-11");
+ log.info("[Gate] 止损单已全部挂完, 空仓止损: 2~{}, 多仓止损: -2~-{}", shortTime, longTime);
state = StrategyState.ACTIVE;
}
}
@@ -1559,20 +1562,22 @@
}
BigDecimal tpPrice = nextGrid.getGridPrice();
+ final long finalPosSize = actualPosSize;
+ final int finalNextGridId = nextGridId;
if (isLong) {
executor.placeTakeProfit(tpPrice,
FuturesPriceTrigger.RuleEnum.NUMBER_1,
ORDER_TYPE_CLOSE_LONG,
negate(config.getQuantity()),
profitId -> log.info("[Gate] 多仓超限止盈已挂(持仓:{})>, gridId:{}, tpPrice:{}, id:{}",
- actualPosSize, nextGridId, tpPrice, profitId));
+ finalPosSize, finalNextGridId, tpPrice, profitId));
} else {
executor.placeTakeProfit(tpPrice,
FuturesPriceTrigger.RuleEnum.NUMBER_2,
ORDER_TYPE_CLOSE_SHORT,
config.getQuantity(),
profitId -> log.info("[Gate] 空仓超限止盈已挂(持仓:{})>, gridId:{}, tpPrice:{}, id:{}",
- actualPosSize, nextGridId, tpPrice, profitId));
+ finalPosSize, finalNextGridId, tpPrice, profitId));
}
} catch (Exception e) {
log.warn("[Gate] 通过API查询持仓超限检查失败", e);
--
Gitblit v1.9.1