From 900c9b20cca19df60d14b9ea61d336ba640250f0 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 11 May 2026 10:49:57 +0800
Subject: [PATCH] fix(gateApi): 修复网格交易中仓位大小更新逻辑

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
index 4e695c3..eac6c1e 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
@@ -150,12 +150,33 @@
                 log.info("[TradeExec] 止盈单已创建, 触发价:{}, 类型:{}, size:{}, id:{}",
                         triggerPrice, orderType, size, response.getId());
             } catch (Exception e) {
-                log.error("[TradeExec] 止盈单创建失败, 触发价:{}, size:{}", triggerPrice, size, e);
+                log.error("[TradeExec] 止盈单创建失败, 触发价:{}, size:{}, 立即市价止盈", triggerPrice, size, e);
+                marketClose(size);
             }
         });
     }
 
     /**
+     * 市价止盈:在止盈条件单创建失败时立即市价平仓。
+     * size 与止盈单保持一致(负=平多,正=平空)。
+     */
+    private void marketClose(String size) {
+        try {
+            FuturesOrder order = new FuturesOrder();
+            order.setContract(contract);
+            order.setSize(size);
+            order.setPrice("0");
+            order.setTif(FuturesOrder.TifEnum.IOC);
+            order.setReduceOnly(true);
+            order.setText("t-grid-mkt-close");
+            FuturesOrder result = futuresApi.createFuturesOrder(SETTLE, order, null);
+            log.info("[TradeExec] 市价止盈成功, 价格:{}, size:{}, id:{}", result.getFillPrice(), size, result.getId());
+        } catch (Exception e) {
+            log.error("[TradeExec] 市价止盈也失败, size:{}", size, e);
+        }
+    }
+
+    /**
      * 异步清除指定合约的所有止盈止损条件单。
      */
     public void cancelAllPriceTriggeredOrders() {

--
Gitblit v1.9.1