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