Administrator
2026-06-18 e167d6fb6001f8fc884afd11288fa431e607eb06
fix(gateApi): 修复网格交易止损单数量计算逻辑

- 修改多仓追挂止损逻辑,根据配置数量计算实际止损单个数
- 更新空仓追挂止损逻辑,按成交张数除以配置数量确定止损单数量
- 调整日志输出信息,显示成交张数和追加止损单个数
- 修正循环次数计算方式,避免生成过多止损单
1 files modified
10 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -1246,8 +1246,9 @@
            furthestSlId = gridId;
            interval = 2;
        }
        log.info("[Gate] 多仓追挂止损, 当前最远止损gridId:{}, 追加{}张", furthestSlId, filledQty);
        for (int i = 0; i < filledQty; i++) {
        int stopLossCount = filledQty / Integer.parseInt(config.getQuantity());
        log.info("[Gate] 多仓追挂止损, 当前最远止损gridId:{}, 成交{}张, 追加{}个止损单", furthestSlId, filledQty, stopLossCount);
        for (int i = 0; i < stopLossCount; i++) {
            int newSlId = furthestSlId - i - interval;
            GridElement elem = GridElement.findById(newSlId);
            if (elem == null) {
@@ -1282,8 +1283,9 @@
            furthestSlId = gridId;
            interval = 2;
        }
        log.info("[Gate] 空仓追挂止损, 当前最远止损gridId:{}, 追加{}张", furthestSlId, filledQty);
        for (int i = 0; i < filledQty; i++) {
        int stopLossCount = filledQty / Integer.parseInt(config.getQuantity());
        log.info("[Gate] 空仓追挂止损, 当前最远止损gridId:{}, 成交{}张, 追加{}个止损单", furthestSlId, filledQty, stopLossCount);
        for (int i = 0; i < stopLossCount; i++) {
            int newSlId = furthestSlId + i + interval;
            GridElement elem = GridElement.findById(newSlId);
            if (elem == null) {