From 62583dd0423d5586dd4f720b52a34fb4cce6bca5 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 02 Jun 2026 10:14:28 +0800
Subject: [PATCH] fix(gate): 修复网格交易数量计算和配置参数
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 8 ++++----
src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java | 9 +++++----
2 files changed, 9 insertions(+), 8 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 1581a23..2408486 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -1391,7 +1391,7 @@
BigDecimal priceDiff = longEntryPrice.subtract(triggerPrice).abs();
int entryQty = priceDiff.divide(config.getStep(), 0, RoundingMode.DOWN).intValue();
entryQty = Math.max(1, entryQty);
- String size = String.valueOf(entryQty);
+ String size = new BigDecimal(String.valueOf(entryQty)).multiply(new BigDecimal(config.getQuantity())).toString();
log.info("[Gate] 多仓止损触发 gridId:{}, 在gridId:{}挂{}张多单, 均价:{}, 价差:{}, 步长:{}",
gridId, newEntryGridId, entryQty, longEntryPrice, priceDiff, config.getStep());
newEntryGrid.getLongTraderParam().setQuantity(size);
@@ -1431,7 +1431,7 @@
BigDecimal priceDiff = shortEntryPrice.subtract(triggerPrice).abs();
int entryQty = priceDiff.divide(config.getStep(), 0, RoundingMode.DOWN).intValue();
entryQty = Math.max(1, entryQty);
- String size = String.valueOf(entryQty);
+ String size = new BigDecimal(String.valueOf(entryQty)).multiply(new BigDecimal(config.getQuantity())).toString();
log.info("[Gate] 空仓止损触发 gridId:{}, 在gridId:{}挂{}张空单, 均价:{}, 价差:{}, 步长:{}",
gridId, newEntryGridId, entryQty, shortEntryPrice, priceDiff, config.getStep());
newEntryGrid.getShortTraderParam().setQuantity(size);
@@ -1462,7 +1462,7 @@
triggerPrice,
FuturesPriceTrigger.RuleEnum.NUMBER_2,
ORDER_TYPE_CLOSE_LONG,
- "-1",
+ negate(config.getQuantity()),
profitId -> {
elem.setLongStopLossOrderId(profitId);
GridElement.refreshIndices();
@@ -1495,7 +1495,7 @@
triggerPrice,
FuturesPriceTrigger.RuleEnum.NUMBER_1,
ORDER_TYPE_CLOSE_SHORT,
- "1",
+ config.getQuantity(),
profitId -> {
elem.setShortStopLossOrderId(profitId);
GridElement.refreshIndices();
diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
index 7169fe5..e396e46 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
@@ -60,16 +60,17 @@
try {
//实盘
config = GateConfig.builder()
- .apiKey("a2338398e00b7935104520e16be96918")
- .apiSecret("9111d897f2346d5217619f2da76536632715fef4d7eb304c6c61e869a2a74e98")
+ .apiKey("08d6108fc29378fe64d6f0e89745b3fb")
+ .apiSecret("4d16e40117477a2344f6fd5872c5b075dc9664a599e65422d3e6791ff64379f1")
.contract("ETH_USDT")
.leverage("100")
.marginMode("CROSS")
.positionMode("dual")
.gridRate(new BigDecimal("0.0025"))
- .expectedProfit(new BigDecimal("2"))
+ .expectedProfit(new BigDecimal("10"))
.maxLoss(new BigDecimal("15"))
- .quantity("1")
+ .baseQuantity("30")
+ .quantity("3")
.priceScale(2)
.contractMultiplier(new BigDecimal("0.01"))
.unrealizedPnlPriceMode(GateConfig.PnLPriceMode.LAST_PRICE)
--
Gitblit v1.9.1