From f4d1d77b2ea56e01ca57306f3a4b522037df7ae2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 07 May 2026 14:55:42 +0800
Subject: [PATCH] fix(gateApi): 设置初始订单为仅减仓模式

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 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 e1e01a8..3074c07 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -189,22 +189,23 @@
     private void placeLongTpSl(BigDecimal entryPrice) {
         BigDecimal tpPrice = entryPrice.multiply(BigDecimal.ONE.add(gridRate)).setScale(1, RoundingMode.HALF_UP);
         BigDecimal slPrice = entryPrice.multiply(BigDecimal.ONE.subtract(gridRate)).setScale(1, RoundingMode.HALF_UP);
-        longTpOrderId = placePriceTriggeredOrder(tpPrice, FuturesPriceTrigger.RuleEnum.NUMBER_1, "close-long-position");
-        longSlOrderId = placePriceTriggeredOrder(slPrice, FuturesPriceTrigger.RuleEnum.NUMBER_2, "close-long-position");
+        longTpOrderId = placePriceTriggeredOrder(tpPrice, FuturesPriceTrigger.RuleEnum.NUMBER_1, "close-long-position", "close_long");
+        longSlOrderId = placePriceTriggeredOrder(slPrice, FuturesPriceTrigger.RuleEnum.NUMBER_2, "close-long-position", "close_long");
         log.info("[GateGrid] 多头TP/SL已设置, TP:{}, SL:{}, tpId:{}, slId:{}", tpPrice, slPrice, longTpOrderId, longSlOrderId);
     }
 
     private void placeShortTpSl(BigDecimal entryPrice) {
         BigDecimal tpPrice = entryPrice.multiply(BigDecimal.ONE.subtract(gridRate)).setScale(1, RoundingMode.HALF_UP);
         BigDecimal slPrice = entryPrice.multiply(BigDecimal.ONE.add(gridRate)).setScale(1, RoundingMode.HALF_UP);
-        shortTpOrderId = placePriceTriggeredOrder(tpPrice, FuturesPriceTrigger.RuleEnum.NUMBER_2, "close-short-position");
-        shortSlOrderId = placePriceTriggeredOrder(slPrice, FuturesPriceTrigger.RuleEnum.NUMBER_1, "close-short-position");
+        shortTpOrderId = placePriceTriggeredOrder(tpPrice, FuturesPriceTrigger.RuleEnum.NUMBER_2, "close-short-position", "close_short");
+        shortSlOrderId = placePriceTriggeredOrder(slPrice, FuturesPriceTrigger.RuleEnum.NUMBER_1, "close-short-position", "close_short");
         log.info("[GateGrid] 空头TP/SL已设置, TP:{}, SL:{}, tpId:{}, slId:{}", tpPrice, slPrice, shortTpOrderId, shortSlOrderId);
     }
 
     private Long placePriceTriggeredOrder(BigDecimal triggerPrice,
                                            FuturesPriceTrigger.RuleEnum rule,
-                                           String orderType) {
+                                           String orderType,
+                                           String autoSize) {
         try {
             FuturesPriceTrigger trigger = new FuturesPriceTrigger();
             trigger.setStrategyType(FuturesPriceTrigger.StrategyTypeEnum.NUMBER_0);
@@ -215,10 +216,11 @@
 
             FuturesInitialOrder initial = new FuturesInitialOrder();
             initial.setContract(contract);
-            initial.setSize(1L);
+            initial.setSize(0L);
             initial.setPrice("0");
             initial.setTif(FuturesInitialOrder.TifEnum.IOC);
             initial.setReduceOnly(true);
+            initial.setAutoSize(autoSize);
 
             FuturesPriceTriggeredOrder order = new FuturesPriceTriggeredOrder();
             order.setTrigger(trigger);
@@ -226,12 +228,12 @@
             order.setOrderType(orderType);
 
             TriggerOrderResponse response = futuresApi.createPriceTriggeredOrder(SETTLE, order);
-            log.info("[GateGrid] 条件单已创建, triggerPrice:{}, rule:{}, type:{}, id:{}",
-                    triggerPrice, rule, orderType, response.getId());
+            log.info("[GateGrid] 条件单已创建, triggerPrice:{}, rule:{}, orderType:{}, autoSize:{}, id:{}",
+                    triggerPrice, rule, orderType, autoSize, response.getId());
             return response.getId();
         } catch (Exception e) {
-            log.error("[GateGrid] 创建条件单失败, triggerPrice:{}, rule:{}, type:{}",
-                    triggerPrice, rule, orderType, e);
+            log.error("[GateGrid] 创建条件单失败, triggerPrice:{}, rule:{}, orderType:{}, autoSize:{}",
+                    triggerPrice, rule, orderType, autoSize, e);
             return null;
         }
     }

--
Gitblit v1.9.1