Administrator
2026-06-10 edc82fcfdc74c85916eecbad179ca975750c1a3c
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -14,11 +14,7 @@
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import com.xcong.excoin.modules.gateApi.wsHandler.handler.CandlestickChannelHandler;
import com.xcong.excoin.modules.gateApi.wsHandler.handler.PositionClosesChannelHandler;
@@ -858,17 +854,17 @@
        log.info("[Gate] 网格元素列表已构建, 共{}个元素 (空仓:{} 位置:0 多仓:{})", elements.size(), shortSize, longSize);
    }
    private void processShortGrid(BigDecimal currentPrice) {
        BigDecimal matched = BigDecimal.ZERO;
        synchronized (totalLongPriceQueue) {
            for (BigDecimal p : totalLongPriceQueue) {
                if (p.compareTo(currentPrice) >= 0) {
                    matched =  p;
                } else {
                    break;
                }
            }
            log.info("[Gate-1] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
//            log.info("[Gate-1] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
            if (BigDecimal.ZERO.compareTo( matched) == 0) {
                return;
            }
@@ -880,7 +876,7 @@
                    GridElement newEntryGrid = GridElement.findById(upId);
                    if (newEntryGrid != null) {
                        log.info("[Gate-2] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
//                        log.info("[Gate-2] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
                        if (!newEntryGrid.isHasLongOrder()) {
                            BigDecimal triggerPrice = newEntryGrid.getGridPrice();
                            String size = config.getBaseQuantity();
@@ -895,8 +891,8 @@
                        GridElement cancelGridElement = GridElement.findById(newEntryGrid.getUpId());
                        if (cancelGridElement != null && cancelGridElement.isHasLongOrder()) {
                            String longOrderId = cancelGridElement.getLongOrderId();
                            longEntryTraderIdParam(cancelGridElement, null, false);
                            executor.cancelConditionalOrder(longOrderId, oid -> {
                                longEntryTraderIdParam(cancelGridElement, null, false);
                                log.info("[Gate] 多仓仓位归零, 取消gridId:{}的多单,{}", cancelGridElement.getId(),longOrderId);
                            });
                        }
@@ -913,11 +909,10 @@
            for (BigDecimal p : totalShortPriceQueue) {
                if (p.compareTo(currentPrice) <= 0) {
                    matched = p;
                } else {
                    break;
                }
            }
            log.info("[Gate-3] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
//            log.info("[Gate-3] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
            if (BigDecimal.ZERO.compareTo( matched) == 0) {
                return;
            }
@@ -929,7 +924,7 @@
                    GridElement newEntryGrid = GridElement.findById(downId);
                    if (newEntryGrid != null) {
                        log.info("[Gate-4] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
//                        log.info("[Gate-4] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
                        if (!newEntryGrid.isHasShortOrder()){
                            BigDecimal triggerPrice = newEntryGrid.getGridPrice();
                            String size = config.getBaseQuantity();
@@ -946,8 +941,8 @@
                         */
                        if (cancelGridElement != null && cancelGridElement.isHasShortOrder()) {
                            String shortOrderId = cancelGridElement.getShortOrderId();
                            shortEntryTraderIdParam(cancelGridElement, null, false);
                            executor.cancelConditionalOrder(shortOrderId, oid -> {
                                shortEntryTraderIdParam(cancelGridElement, null, false);
                                log.info("[Gate] 空仓仓位归零, 取消gridId:{}的多单{}", cancelGridElement.getId(),shortOrderId);
                            });
                        }