From 2797bf55755816fbd1e7c4f6d982a51b5901f492 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 30 Oct 2026 17:49:31 +0800
Subject: [PATCH] feat(gateApi): 添加加仓停止阈值功能以控制加仓执行次数
---
src/main/java/com/xcong/excoin/modules/gateApi/GateConfigDTO.java | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 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 dfe0980..962f697 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigDTO.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateConfigDTO.java
@@ -69,6 +69,8 @@
private int maxPositionPerSide;
/** 加仓启动阈值:前N次止损不触发加仓,默认 1 */
private int addPositionStartThreshold;
+ /** 加仓停止阈值:启动加仓后按「加仓执行次数」计数,超过该值后加仓张数恢复为基础张数;0=不限制 */
+ private int addPositionStopThreshold;
/** 止盈挂单模式:off=关闭 / concentrated=集中止盈 / dispersed=分散止盈,默认 off */
private String placeExcessTakeProfit;
/** 自定义止损开关:true=启用自定义止损触发价,false=使用默认阶梯止损。null=未设置(默认false) */
@@ -81,6 +83,10 @@
private Boolean tpTriggerOppositeAddEnabled;
/** 对向加仓挂单数量:止盈成交后在对向挂出的开仓张数,0=不启用 */
private Integer tpTriggerOppositeAddQuantity;
+ /** 单格止盈张数:基础仓位止盈挂单时每个网格挂的止盈张数,支持小数,0=不启用 */
+ private BigDecimal baseTakeProfitPerGrid;
+ /** 止盈网格数量:基础仓位止盈挂单的网格数量,0=不启用 */
+ private Integer baseTakeProfitGridCount;
/**
* 从 GateConfig 构建 DTO(不暴露 apiSecret)。
@@ -113,12 +119,15 @@
.addPositionQuantity(config.getAddPositionQuantity())
.maxPositionPerSide(config.getMaxPositionPerSide())
.addPositionStartThreshold(config.getAddPositionStartThreshold())
+ .addPositionStopThreshold(config.getAddPositionStopThreshold())
.placeExcessTakeProfit(config.getPlaceExcessTakeProfit())
.dualStopLossEnabled(config.isDualStopLossEnabled())
.longStopLossPrice(config.getLongStopLossPrice())
.shortStopLossPrice(config.getShortStopLossPrice())
.tpTriggerOppositeAddEnabled(config.isTpTriggerOppositeAddEnabled())
.tpTriggerOppositeAddQuantity(config.getTpTriggerOppositeAddQuantity())
+ .baseTakeProfitPerGrid(config.getBaseTakeProfitPerGrid())
+ .baseTakeProfitGridCount(config.getBaseTakeProfitGridCount())
.build();
}
@@ -145,12 +154,15 @@
m.put("addPositionQuantity", addPositionQuantity);
m.put("maxPositionPerSide", maxPositionPerSide);
m.put("addPositionStartThreshold", addPositionStartThreshold);
+ m.put("addPositionStopThreshold", addPositionStopThreshold);
m.put("placeExcessTakeProfit", placeExcessTakeProfit);
m.put("dualStopLossEnabled", dualStopLossEnabled);
m.put("longStopLossPrice", longStopLossPrice);
m.put("shortStopLossPrice", shortStopLossPrice);
m.put("tpTriggerOppositeAddEnabled", tpTriggerOppositeAddEnabled);
m.put("tpTriggerOppositeAddQuantity", tpTriggerOppositeAddQuantity);
+ m.put("baseTakeProfitPerGrid", baseTakeProfitPerGrid);
+ m.put("baseTakeProfitGridCount", baseTakeProfitGridCount);
return m;
}
@@ -184,12 +196,15 @@
.addPositionQuantity(1)
.maxPositionPerSide(0)
.addPositionStartThreshold(1)
+ .addPositionStopThreshold(0)
.placeExcessTakeProfit("off")
.dualStopLossEnabled(false)
.longStopLossPrice(null)
.shortStopLossPrice(null)
.tpTriggerOppositeAddEnabled(false)
.tpTriggerOppositeAddQuantity(0)
+ .baseTakeProfitPerGrid(BigDecimal.ZERO)
+ .baseTakeProfitGridCount(0)
.build();
}
}
--
Gitblit v1.9.1