From 3e3eafd0fef030940d22b63b4c549519f989049e Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Sat, 09 May 2026 13:33:55 +0800
Subject: [PATCH] fix(trade): 修复止盈订单数量设置和日志记录问题
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 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 2bccbd2..b925cb5 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -58,8 +58,6 @@
WAITING_KLINE, OPENING, ACTIVE, STOPPED
}
- private static final String AUTO_SIZE_LONG = "close_long";
- private static final String AUTO_SIZE_SHORT = "close_short";
private static final String ORDER_TYPE_CLOSE_LONG = "close-long-position";
private static final String ORDER_TYPE_CLOSE_SHORT = "close-short-position";
@@ -123,6 +121,12 @@
FuturesAccount account = futuresApi.listFuturesAccounts(SETTLE);
this.initialPrincipal = new BigDecimal(account.getTotal());
log.info("[Gate] 初始本金: {} USDT", initialPrincipal);
+
+ //设置持仓模式为双向持仓
+ Boolean inDualMode = account.getInDualMode();
+ if (!inDualMode) {
+ futuresApi.setDualModeCall(SETTLE,true,null);
+ }
if (!config.getPositionMode().equals(account.getPositionMode())) {
futuresApi.setPositionMode(SETTLE, config.getPositionMode());
@@ -265,8 +269,8 @@
} else {
BigDecimal tpPrice = entryPrice.multiply(BigDecimal.ONE.add(config.getGridRate())).setScale(1, RoundingMode.HALF_UP);
executor.placeTakeProfit(tpPrice,
- FuturesPriceTrigger.RuleEnum.NUMBER_1, ORDER_TYPE_CLOSE_LONG, AUTO_SIZE_LONG);
- log.info("[Gate] 多单止盈已设, entry:{}, tp:{}", entryPrice, tpPrice);
+ FuturesPriceTrigger.RuleEnum.NUMBER_1, ORDER_TYPE_CLOSE_LONG, negate(config.getQuantity()));
+ log.info("[Gate] 多单止盈已设, entry:{}, tp:{}, size:{}", entryPrice, tpPrice, negate(config.getQuantity()));
}
} else {
longActive = false;
@@ -285,8 +289,8 @@
} else {
BigDecimal tpPrice = entryPrice.multiply(BigDecimal.ONE.subtract(config.getGridRate())).setScale(1, RoundingMode.HALF_UP);
executor.placeTakeProfit(tpPrice,
- FuturesPriceTrigger.RuleEnum.NUMBER_2, ORDER_TYPE_CLOSE_SHORT, AUTO_SIZE_SHORT);
- log.info("[Gate] 空单止盈已设, entry:{}, tp:{}", entryPrice, tpPrice);
+ FuturesPriceTrigger.RuleEnum.NUMBER_2, ORDER_TYPE_CLOSE_SHORT, config.getQuantity());
+ log.info("[Gate] 空单止盈已设, entry:{}, tp:{}, size:{}", entryPrice, tpPrice, config.getQuantity());
}
} else {
shortActive = false;
--
Gitblit v1.9.1