Administrator
2026-07-15 c46df80551dc93910a863e43ba04f3e7ff365c8c
fix(gateApi): 修复网格交易止盈逻辑计算问题

- 修改空仓止盈逻辑,改为超额部分挂止盈,避免基础仓位被止盈
- 添加shortBaseQty变量用于判断是否超过基础仓位数量
- 修正shortTpCount计算公式,只对超出baseQuantity的部分设置止盈
- 修改多仓止盈逻辑,改为超额部分挂止盈,保护基础仓位
- 添加longBaseQty变量用于判断多仓是否超过基础仓位数量
- 修正longTpCount计算公式,只对超出baseQuantity的部分设置止盈
1 files modified
10 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -666,9 +666,10 @@
//                        }
//                );
                // 空仓止盈:每1张持仓对应1个止盈位,从entry网格向下逐个挂
                // 空仓止盈:超额部分挂止盈,从entry网格向下逐个挂
                int shortBaseQty = Integer.parseInt(config.getBaseQuantity());
                int shortGridQty = Integer.parseInt(config.getQuantity());
                int shortTpCount = posSize / shortGridQty;
                int shortTpCount = posSize > shortBaseQty ? (posSize - shortBaseQty) / shortGridQty : 0;
                for (int i = 0; i < shortTpCount; i++) {
                    int tpGridId = shortGridElement.getId() - 2 * (i + 1);
@@ -731,9 +732,10 @@
//                        }
//                );
                // 多仓止盈:每1张持仓对应1个止盈位,从entry网格向上逐个挂
                // 多仓止盈:超额部分挂止盈,从entry网格向上逐个挂
                int longBaseQty = Integer.parseInt(config.getBaseQuantity());
                int longGridQty = Integer.parseInt(config.getQuantity());
                int longTpCount = posSize / longGridQty;
                int longTpCount = posSize > longBaseQty ? (posSize - longBaseQty) / longGridQty : 0;
                for (int i = 0; i < longTpCount; i++) {
                    int tpGridId = longGridElement.getId() + 2 * (i + 1);