From f6abe8136e257e9da971b413075a8c5e33509370 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 10 Jun 2026 22:40:23 +0800
Subject: [PATCH] refactor(gateApi): 优化网格交易服务代码结构

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 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 acc0ce9..801cb90 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/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;
@@ -458,6 +454,8 @@
                     longPositionSize = size;
                     longEntryPrice = entryPrice;
                 } else {
+
+                    log.info("[Gate-0]多仓: {}", shortBaseEntryPrice);
                     longActive = false;
                     longPositionSize = BigDecimal.ZERO;
                     longEntryPrice = BigDecimal.ZERO;
@@ -468,6 +466,8 @@
                     shortPositionSize = size.abs();
                     shortEntryPrice = entryPrice;
                 } else {
+
+                    log.info("[Gate-0]空仓: {}", shortBaseEntryPrice);
                     shortActive = false;
                     shortPositionSize = BigDecimal.ZERO;
                     shortEntryPrice = BigDecimal.ZERO;
@@ -741,7 +741,9 @@
         longPriceQueue.sort(BigDecimal::compareTo);
         log.info("[Gate] 多队列:{}", longPriceQueue);
         totalShortPriceQueue.sort((a, b) -> b.compareTo(a));
+        log.info("[Gate] 队列从大到小:{}", totalShortPriceQueue);
         totalLongPriceQueue.sort(BigDecimal::compareTo);
+        log.info("[Gate] 队列从小到大:{}", totalLongPriceQueue);
     }
 
     /**
@@ -852,16 +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);
             if (BigDecimal.ZERO.compareTo( matched) == 0) {
                 return;
             }
@@ -873,7 +876,7 @@
                     GridElement newEntryGrid = GridElement.findById(upId);
 
                     if (newEntryGrid != null) {
-                        log.info("[Gate] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
+                        log.info("[Gate-2] 多仓仓位归零 空仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
                         if (!newEntryGrid.isHasLongOrder()) {
                             BigDecimal triggerPrice = newEntryGrid.getGridPrice();
                             String size = config.getBaseQuantity();
@@ -906,10 +909,10 @@
             for (BigDecimal p : totalShortPriceQueue) {
                 if (p.compareTo(currentPrice) <= 0) {
                     matched = p;
-                } else {
                     break;
                 }
             }
+            log.info("[Gate-3] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
             if (BigDecimal.ZERO.compareTo( matched) == 0) {
                 return;
             }
@@ -921,7 +924,7 @@
                     GridElement newEntryGrid = GridElement.findById(downId);
 
                     if (newEntryGrid != null) {
-                        log.info("[Gate] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
+                        log.info("[Gate-4] 空仓仓位归零 多仓队列触发, 匹配:{},当前价:{}", matched, currentPrice);
                         if (!newEntryGrid.isHasShortOrder()){
                             BigDecimal triggerPrice = newEntryGrid.getGridPrice();
                             String size = config.getBaseQuantity();

--
Gitblit v1.9.1