From fa7d25e98db0e6cb763d304b95e6a943f43ac240 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 17 Dec 2025 13:44:06 +0800
Subject: [PATCH] fix(okxNewPrice): 修复持仓为零时返回值并增加日志输出
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
index 82d8f92..4a84985 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -130,7 +130,7 @@
BigDecimal pos = PositionsWs.getAccountMap(positionAccountName).get("pos");
if (BigDecimal.ZERO.compareTo( pos) >= 0) {
log.error("持仓数量为零,进行初始化订单");
- return null;
+ return OrderParamEnums.INIT.getValue();
}
// 判断是否保证金超标
if (PositionsWs.getAccountMap(positionAccountName).get("imr") == null){
@@ -370,8 +370,11 @@
private boolean buyCntTimeLongEvent(String accountName, BigDecimal avgPx, BigDecimal markPx){
//判断当前价格和开仓价格直接间隔除以间距,取整,获取的数量是否大于等于0,如果大于0,则下单基础张数*倍数
String buyCntTime = InstrumentsWs.getAccountMap(accountName).get(CoinEnums.BUY_CNT_TIME.name());
+ log.info("倍数次数间隔{}", buyCntTime);
BigDecimal subtract = avgPx.subtract(markPx);
+ log.info("倍数价格差距{}", subtract);
BigDecimal divide = subtract.divide(new BigDecimal(buyCntTime), 0, RoundingMode.DOWN).add(BigDecimal.ONE);
+ log.info("倍数次数{}", divide);
if (divide.compareTo(BigDecimal.ZERO) <= 0){
log.warn("加仓次数间隔时间小于0,不加仓");
return false;
@@ -382,8 +385,11 @@
private boolean buyCntTimeShortEvent(String accountName, BigDecimal avgPx, BigDecimal markPx){
//判断当前价格和开仓价格直接间隔除以间距,取整,获取的数量是否大于等于0,如果大于0,则下单基础张数*倍数
String buyCntTime = InstrumentsWs.getAccountMap(accountName).get(CoinEnums.BUY_CNT_TIME.name());
+ log.info("倍数次数间隔{}", buyCntTime);
BigDecimal subtract = markPx.subtract(avgPx);
+ log.info("倍数价格差距{}", subtract);
BigDecimal divide = subtract.divide(new BigDecimal(buyCntTime), 0, RoundingMode.DOWN).add(BigDecimal.ONE);
+ log.info("倍数次数{}", divide);
if (divide.compareTo(BigDecimal.ZERO) <= 0){
log.warn("加仓次数间隔时间小于0,不加仓");
return false;
--
Gitblit v1.9.1