Administrator
2026-08-06 47b46adab2c9c3f0a6bcf32ff40179c2aee69f79
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);
            }
@@ -1157,8 +1155,8 @@
                    if (newEntryGrid != null) {
                        String quantity = String.valueOf(Math.max(queryPositionSize(Position.ModeEnum.DUAL_SHORT), shortPositionSize.intValue()) + Integer.parseInt(config.getQuantity()));
//                        String quantity = String.valueOf(Math.max(queryPositionSize(Position.ModeEnum.DUAL_SHORT), shortPositionSize.intValue()) + Integer.parseInt(config.getQuantity()));
                        String quantity = String.valueOf(config.getBaseQuantity());
                        // 向下检查是否已有多单挂在更低价格网格,有则跳过(防止价格回升后重复挂单)
                        boolean hasLongOrderBelow = false;
                        GridElement checkDownCursor = GridElement.findById(newEntryGrid.getDownId());
@@ -1228,8 +1226,8 @@
                    if (newEntryGrid != null) {
//                        String quantity = String.valueOf((accumulatedShortLossCount + 1) * Integer.parseInt(config.getQuantity()));
                        String quantity = String.valueOf(Math.max(queryPositionSize(Position.ModeEnum.DUAL_LONG), longPositionSize.intValue()) + Integer.parseInt(config.getQuantity()));
//                        String quantity = String.valueOf(Math.max(queryPositionSize(Position.ModeEnum.DUAL_LONG), longPositionSize.intValue()) + Integer.parseInt(config.getQuantity()));
                        String quantity = String.valueOf(config.getBaseQuantity());
                        // 向上检查是否已有空单挂在更高价格网格,有则跳过(防止价格回落后重复挂单)
                        boolean hasShortOrderAbove = false;
                        GridElement checkUpCursor = GridElement.findById(newEntryGrid.getUpId());
@@ -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;