From 9fb0fc26dafb63f93c8ca23caeb64fb1750b8ec1 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 23 Sep 2026 18:00:02 +0800
Subject: [PATCH] feat(gateApi): 添加止盈触发对向加仓功能
---
src/main/java/com/xcong/excoin/modules/gateApi/GateConfigDTO.java | 33 +++++++++++++++++++++++++++++----
1 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigDTO.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigDTO.java
index 97be386..dfe0980 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigDTO.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigDTO.java
@@ -69,8 +69,18 @@
private int maxPositionPerSide;
/** 加仓启动阈值:前N次止损不触发加仓,默认 1 */
private int addPositionStartThreshold;
- /** 超额止盈开关:true=挂单成交后将超出基础仓位的部分挂止盈单,默认 false */
- private boolean placeExcessTakeProfit;
+ /** 止盈挂单模式:off=关闭 / concentrated=集中止盈 / dispersed=分散止盈,默认 off */
+ private String placeExcessTakeProfit;
+ /** 自定义止损开关:true=启用自定义止损触发价,false=使用默认阶梯止损。null=未设置(默认false) */
+ private Boolean dualStopLossEnabled;
+ /** 多仓自定义止损触发价(价格跌至该值触发平多),null=未设置 */
+ private BigDecimal longStopLossPrice;
+ /** 空仓自定义止损触发价(价格涨至该值触发平空),null=未设置 */
+ private BigDecimal shortStopLossPrice;
+ /** 止盈成交触发对向加仓开关:true=启用,false=禁用。null=未设置(默认false) */
+ private Boolean tpTriggerOppositeAddEnabled;
+ /** 对向加仓挂单数量:止盈成交后在对向挂出的开仓张数,0=不启用 */
+ private Integer tpTriggerOppositeAddQuantity;
/**
* 从 GateConfig 构建 DTO(不暴露 apiSecret)。
@@ -103,7 +113,12 @@
.addPositionQuantity(config.getAddPositionQuantity())
.maxPositionPerSide(config.getMaxPositionPerSide())
.addPositionStartThreshold(config.getAddPositionStartThreshold())
- .placeExcessTakeProfit(config.isPlaceExcessTakeProfit())
+ .placeExcessTakeProfit(config.getPlaceExcessTakeProfit())
+ .dualStopLossEnabled(config.isDualStopLossEnabled())
+ .longStopLossPrice(config.getLongStopLossPrice())
+ .shortStopLossPrice(config.getShortStopLossPrice())
+ .tpTriggerOppositeAddEnabled(config.isTpTriggerOppositeAddEnabled())
+ .tpTriggerOppositeAddQuantity(config.getTpTriggerOppositeAddQuantity())
.build();
}
@@ -131,6 +146,11 @@
m.put("maxPositionPerSide", maxPositionPerSide);
m.put("addPositionStartThreshold", addPositionStartThreshold);
m.put("placeExcessTakeProfit", placeExcessTakeProfit);
+ m.put("dualStopLossEnabled", dualStopLossEnabled);
+ m.put("longStopLossPrice", longStopLossPrice);
+ m.put("shortStopLossPrice", shortStopLossPrice);
+ m.put("tpTriggerOppositeAddEnabled", tpTriggerOppositeAddEnabled);
+ m.put("tpTriggerOppositeAddQuantity", tpTriggerOppositeAddQuantity);
return m;
}
@@ -164,7 +184,12 @@
.addPositionQuantity(1)
.maxPositionPerSide(0)
.addPositionStartThreshold(1)
- .placeExcessTakeProfit(false)
+ .placeExcessTakeProfit("off")
+ .dualStopLossEnabled(false)
+ .longStopLossPrice(null)
+ .shortStopLossPrice(null)
+ .tpTriggerOppositeAddEnabled(false)
+ .tpTriggerOppositeAddQuantity(0)
.build();
}
}
--
Gitblit v1.9.1