From 10fc1742c62cfab401e96a279553d45ee58d0da8 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 07 Jul 2026 10:21:31 +0800
Subject: [PATCH] feat(gateApi): 网格初始化的止盈单
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 40 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 39 insertions(+), 1 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 6d59571..137d05e 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -816,6 +816,43 @@
baseGridElement.setShortOrderId(baseShortTraderParam.getEntryOrderId());
baseGridElement.setHasShortOrder(true);
+ // 空仓止损对应的多仓止盈:多仓止盈挂在ID=3
+ int tpGridIdLong = 3;
+ GridElement tpElemLong = GridElement.findById(tpGridIdLong);
+ BigDecimal triggerPriceLong = tpElemLong.getGridPrice();
+ String sizeLong = config.getQuantity();
+ executor.placeTakeProfit(
+ triggerPriceLong,
+ FuturesPriceTrigger.RuleEnum.NUMBER_1,
+ ORDER_TYPE_CLOSE_LONG,
+ negate(sizeLong),
+ profitId -> {
+ tpElemLong.setLongTakeProfitOrderId(profitId);
+ GridElement.refreshIndices();
+ log.info("[Gate] 多仓止盈已挂(gridId:{}多止盈), 触发价:{}, takeProfitId:{}",
+ tpGridIdLong, triggerPriceLong, profitId);
+ }
+ );
+
+
+ // 多仓止损对应的空仓止盈:空仓止盈挂在ID=-3
+ int tpGridIdShort = -3;
+ GridElement tpElemShort = GridElement.findById(tpGridIdShort);
+ BigDecimal triggerPriceShort = tpElemShort.getGridPrice();
+ String sizeShort = config.getQuantity();
+ executor.placeTakeProfit(
+ triggerPriceShort,
+ FuturesPriceTrigger.RuleEnum.NUMBER_2,
+ ORDER_TYPE_CLOSE_SHORT,
+ sizeShort,
+ profitId -> {
+ tpElemShort.setShortTakeProfitOrderId(profitId);
+ GridElement.refreshIndices();
+ log.info("[Gate] 空仓止盈已挂(gridId:{}空止盈), 触发价:{}, takeProfitId:{}",
+ tpGridIdShort, triggerPriceShort, profitId);
+ }
+ );
+
// int shortTime = 2;
// GridElement elemShort = GridElement.findById(shortTime);
// if (elemShort != null) {
@@ -876,6 +913,7 @@
}
+
int longTime = Integer.parseInt(config.getBaseQuantity()) / Integer.parseInt(config.getQuantity()) + 1;
for (int id = -2; id >= -longTime; id--) {
GridElement elem = GridElement.findById(id);
@@ -898,7 +936,7 @@
);
}
- log.info("[Gate] 止损单已全部挂完, 空仓止损: 2~{}, 多仓止损: -2~-{}", shortTime, longTime);
+ log.info("[Gate] 止损止盈单已全部挂完, 空仓止损:2~{}, 多仓止损:-2~-{}", shortTime, longTime);
state = StrategyState.ACTIVE;
}
--
Gitblit v1.9.1