From 5cbe8a0e419189650d91120dc83bbca205d29c3b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 08 Jun 2026 13:07:46 +0800
Subject: [PATCH] ``` chore(gateApi): 注释掉持仓归零时的重置策略逻辑
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 21 +++++++++++----------
1 files changed, 11 insertions(+), 10 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 be16750..2c445b3 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -461,8 +461,8 @@
}
} else {
if (longActive && state == StrategyState.ACTIVE) {
- log.info("[Gate] 多仓持仓归零,重置策略");
- handlePositionZeroAndReset("多仓");
+// log.info("[Gate] 多仓持仓归零,重置策略");
+// handlePositionZeroAndReset("多仓");
}
longActive = false;
longPositionSize = BigDecimal.ZERO;
@@ -484,8 +484,8 @@
}
} else {
if (shortActive && state == StrategyState.ACTIVE) {
- log.info("[Gate] 空仓持仓归零,重置策略");
- handlePositionZeroAndReset("空仓");
+// log.info("[Gate] 空仓持仓归零,重置策略");
+// handlePositionZeroAndReset("空仓");
}
shortActive = false;
shortPositionSize = BigDecimal.ZERO;
@@ -793,7 +793,7 @@
shortEntryQty = 1;
extendShortStopLoss(filledQty);
log.info("[Gate] 空单成交 gridId:{}, qty:{}, 追挂止损", shortGridElement.getId(), filledQty);
- checkMaxPositionAndPlaceTakeProfit(false, shortGridElement.getId());
+// checkMaxPositionAndPlaceTakeProfit(false, shortGridElement.getId());
}
}
GridElement longGridElement = GridElement.findByLongOrderId(orderId);
@@ -804,7 +804,7 @@
longEntryQty = 1;
extendLongStopLoss(filledQty);
log.info("[Gate] 多单成交 gridId:{}, qty:{}, 追挂止损", longGridElement.getId(), filledQty);
- checkMaxPositionAndPlaceTakeProfit(true, longGridElement.getId());
+// checkMaxPositionAndPlaceTakeProfit(true, longGridElement.getId());
}
}
}
@@ -1598,14 +1598,15 @@
BigDecimal totalEquity = unrealisedPnl.add(available);
// 估算平仓手续费:(多仓张数+空仓张数) × 合约面值 × 当前价 × taker费率
- BigDecimal closeContractValue = longPositionSize.add(shortPositionSize)
- .multiply(CT_VAL).multiply(lastKlinePrice != null ? lastKlinePrice : BigDecimal.ZERO);
+ BigDecimal totalSize = longPositionSize.abs().add(shortPositionSize.abs());
+ BigDecimal closeContractValue =
+ totalSize.multiply(CT_VAL).multiply(lastKlinePrice != null ? lastKlinePrice : BigDecimal.ZERO);
BigDecimal estimatedFee = closeContractValue.multiply(TAKER_FEE_RATE);
BigDecimal netEquity = totalEquity.subtract(estimatedFee);
BigDecimal target = initialPrincipal.add(config.getExpectedProfit());
- log.info("[Gate] 盈亏检查 upl:{}, avail:{}, 合计:{}, 估手续费:{}, 净权益:{}, 目标:{}",
- unrealisedPnl, available, totalEquity, estimatedFee, netEquity, target);
+ log.info("[Gate] 盈亏检查,总张数:{}, upl:{}, avail:{}, 合计:{}, 估手续费:{}, 净权益:{}, 目标:{}",
+ totalSize,unrealisedPnl, available, totalEquity, estimatedFee, netEquity, target);
if (netEquity.compareTo(target) > 0) {
log.info("[Gate] 盈亏达标(净权益{}>目标{}),重置策略", netEquity, target);
state = StrategyState.STOPPED;
--
Gitblit v1.9.1