From b3b9edaf5eb570a899ce90d05310f6a1aef11807 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 28 May 2026 16:52:34 +0800
Subject: [PATCH] feat(gateApi): 添加保证金比例限制和网格队列容量配置选项
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 72 +++++++++---------------------------
1 files changed, 18 insertions(+), 54 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 cf1c956..4ee0d14 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -731,7 +731,7 @@
null,
false
);
-// TPonUserTradeShortEntry(byShortTakeProfitOrderId);
+ TPonUserTradeShortEntry(byShortTakeProfitOrderId);
}
GridElement byLongTakeProfitOrderId = GridElement.findByLongTakeProfitOrderId(orderId);
if (byLongTakeProfitOrderId != null){
@@ -745,7 +745,7 @@
null,
false
);
-// TPonUserTradeLongEntry(byLongTakeProfitOrderId);
+ TPonUserTradeLongEntry(byLongTakeProfitOrderId);
}
/**
@@ -806,43 +806,20 @@
if (!isMarginSafe()) {
log.warn("[Gate] 保证金超限,跳过挂条件单");
} else {
-
- /**
- * 下一个开仓位置
- * 获取队列第一个元素的价格对应的网格
- * 判断网格是否能开空仓,如果不能则跳过
- * 前进方向挂空仓条件单
- * 后置方向挂多空条件单
- */
- //下一个开仓位置
- BigDecimal gridPrice = gridElement.getGridPrice();
-
- // 判断网格是否能开空仓,如果不能则跳过
- if (gridElement != null) {
- TraderParam downShortTraderParam = gridElement.getShortTraderParam();
+ // 判断网格是否能开多仓,如果不能则跳过
+ GridElement upGridElement = GridElement.findById(gridElement.getUpId());
+ if (upGridElement != null){
+ BigDecimal upGridPrice = upGridElement.getGridPrice();
+ TraderParam downLongTraderParam = upGridElement.getLongTraderParam();
if (
- !gridElement.isHasShortOrder() &&
- gridPrice.compareTo(longEntryPrice) <= 0 &&
- gridPrice.compareTo(shortEntryPrice) >= 0
+ !upGridElement.isHasLongOrder() &&
+ upGridPrice.compareTo(longEntryPrice) <= 0
){
- placeEntryOrderWithPreFlag(gridElement, false,
- downShortTraderParam.getEntryPrice(),
- FuturesPriceTrigger.RuleEnum.NUMBER_1,
- negate(downShortTraderParam.getQuantity()));
-
- }
-
- TraderParam downLongTraderParam = gridElement.getLongTraderParam();
- if (
- !gridElement.isHasLongOrder() &&
- gridPrice.compareTo(longEntryPrice) <= 0
- ){
- placeEntryOrderWithPreFlag(gridElement, true,
+ placeEntryOrderWithPreFlag(upGridElement, true,
downLongTraderParam.getEntryPrice(),
FuturesPriceTrigger.RuleEnum.NUMBER_1,
downLongTraderParam.getQuantity());
}
-
}
}
}
@@ -851,31 +828,18 @@
if (!isMarginSafe()) {
log.warn("[Gate] 保证金超限,跳过挂条件单");
} else {
- BigDecimal newLongFirst = gridElement.getGridPrice() ;
+ // 判断网格是否能开空仓,如果不能则跳过
+ GridElement downGridElement = GridElement.findById(gridElement.getDownId());
+ if (downGridElement != null){
- // 判断网格是否能开多空仓,如果不能则跳过
- if (gridElement != null) {
+ BigDecimal downGridPrice = downGridElement.getGridPrice();
-// TraderParam downLongTraderParam = gridElement.getLongTraderParam();
-// if (
-// !gridElement.isHasLongOrder() &&
-// newLongFirst.compareTo(shortEntryPrice) >= 0 &&
-// newLongFirst.compareTo(longEntryPrice) <= 0
-// ){
-// placeEntryOrderWithPreFlag(gridElement, true,
-// downLongTraderParam.getEntryPrice(),
-// FuturesPriceTrigger.RuleEnum.NUMBER_2,
-// config.getQuantity());
-//
-// }
-
- TraderParam shortTraderParam = gridElement.getShortTraderParam();
+ TraderParam shortTraderParam = downGridElement.getShortTraderParam();
if (
- !gridElement.isHasShortOrder() &&
- newLongFirst.compareTo(shortEntryPrice) >= 0
+ !downGridElement.isHasShortOrder() &&
+ downGridPrice.compareTo(shortEntryPrice) >= 0
){
-
- placeEntryOrderWithPreFlag(gridElement, false,
+ placeEntryOrderWithPreFlag(downGridElement, false,
shortTraderParam.getEntryPrice(),
FuturesPriceTrigger.RuleEnum.NUMBER_2,
negate(config.getQuantity()));
--
Gitblit v1.9.1