From 67939acc2d20ea34618013898154d9ff3fe37a74 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 22 May 2026 12:56:24 +0800
Subject: [PATCH] fix(grid-trade): 修复网格交易订单更新处理逻辑

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java |   34 ++++++++++++----------------------
 1 files changed, 12 insertions(+), 22 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 0559f92..e66ecef 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -700,11 +700,11 @@
                     null,
                     false
             );
-//            longEntryTraderIdParam(
-//                    byLongTakeProfitOrderId,
-//                    null,
-//                    false
-//            );
+            longEntryTraderIdParam(
+                    byLongTakeProfitOrderId,
+                    null,
+                    false
+            );
         }
         GridElement byShortTakeProfitOrderId = GridElement.findByShortTakeProfitOrderId(orderId);
         if (byShortTakeProfitOrderId != null){
@@ -713,11 +713,11 @@
                     null,
                     false
             );
-//            shortEntryTraderIdParam(
-//                    byShortTakeProfitOrderId,
-//                    null,
-//                    false
-//            );
+            shortEntryTraderIdParam(
+                    byShortTakeProfitOrderId,
+                    null,
+                    false
+            );
         }
 
         /**
@@ -726,11 +726,6 @@
         GridElement longGridElement = GridElement.findByLongOrderId(orderId);
         if (longGridElement != null) {
             if (longGridElement.isHasLongOrder() && !tradeId.equals("0")){
-                longEntryTraderIdParam(
-                        longGridElement,
-                        null,
-                        false
-                );
                 if (longGridElement.getLongTakeProfitOrderId() == null){
                     BigDecimal longTp = longGridElement.getLongTraderParam().getTakeProfitPrice();
                     if (longTp != null) {
@@ -754,11 +749,6 @@
         GridElement shortGridElement = GridElement.findByShortOrderId(orderId);
         if (shortGridElement != null) {
             if (shortGridElement.isHasShortOrder() && !tradeId.equals("0")){
-                shortEntryTraderIdParam(
-                        shortGridElement,
-                        null,
-                        false
-                );
                 if (shortGridElement.getShortTakeProfitOrderId() == null){
                     BigDecimal shortTp = shortGridElement.getShortTraderParam().getTakeProfitPrice();
                     if (shortTp != null) {
@@ -1138,7 +1128,7 @@
             // 判断网格是否能开空仓,如果不能则跳过
             if (UpGridElement != null) {
 
-                if (!UpGridElement.isHasShortOrder()) {
+                if (!UpGridElement.isHasShortOrder() && shortEntryPrice.compareTo(newLongFirst) > 0) {
 
                     //挂空仓条件单
                     TraderParam upShortTraderParam = UpGridElement.getShortTraderParam();
@@ -1275,7 +1265,7 @@
             // 判断网格是否能开多仓,如果不能则跳过
             if (UpGridElement != null) {
 
-                if (!UpGridElement.isHasLongOrder()) {
+                if (!UpGridElement.isHasLongOrder() && longEntryPrice.compareTo(newLongFirst) < 0) {
                     //挂多仓条件单
                     TraderParam upLongTraderParam = UpGridElement.getLongTraderParam();
                     executor.placeConditionalEntryOrder(

--
Gitblit v1.9.1