From e0aac76f043820b9ee36f182000e40858bc68ab8 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 08 Jan 2026 09:51:23 +0800
Subject: [PATCH] chore(log): 调整日志级别配置

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 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 1adb9fd..3e58b64 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
@@ -80,7 +80,18 @@
             realKuiSunAmount = realKuiSunAmount.multiply(new BigDecimal("-1"));
             // 账户预期亏损金额比这个还小时,立即止损
             if (realKuiSunAmount.compareTo(zhiSunAmount) > 0){
-                log.warn("账户冷静止损......");
+                log.error("账户冷静止损......");
+                //目前止损掉损失较大的一个方向
+                String positionAccountName = PositionsWs.initAccountName(accountName, posSide);
+                BigDecimal upl = PositionsWs.getAccountMap(positionAccountName).get("upl");
+                String posSideOther = CoinEnums.POSSIDE_LONG.getCode().equals(posSide) ? CoinEnums.POSSIDE_SHORT.getCode() : CoinEnums.POSSIDE_LONG.getCode();
+                String positionAccountOther = PositionsWs.initAccountName(accountName, posSideOther);
+                BigDecimal uplOther = PositionsWs.getAccountMap(positionAccountOther).get("upl");
+                if (upl.compareTo(uplOther) > 0){
+                    log.error("{}的亏损{},{}的亏损{},止损{}......",posSide,upl,posSideOther,uplOther,uplOther);
+                    posSide = posSideOther;
+                }
+
                 WsMapBuild.saveStringToMap(InstrumentsWs.getAccountMap(accountName), CoinEnums.OUT.name(),  OrderParamEnums.OUT_YES.getValue());
                 tradeRequestParam.setTradeType(OrderParamEnums.TRADE_YES.getValue());
                 return caoZuoZhiSunEvent(accountName, markPx, posSide);
@@ -158,7 +169,7 @@
             tradeRequestParam.setTradeType(OrderParamEnums.TRADE_NO.getValue());
         }
         tradeRequestParam.setSz(String.valueOf( pos));
-        log.info("止损订单:{},方向:{}-{},数量:{}",clOrdId,posSide, side, pos);
+        log.error("止损订单:{},方向:{}-{},数量:{}",clOrdId,posSide, side, pos);
         return tradeRequestParam;
 
     }
@@ -453,7 +464,8 @@
         BigDecimal divide = subtract.divide(new BigDecimal(buyCntTime), 0, RoundingMode.DOWN).add(BigDecimal.ONE);
         log.info("倍数次数{}", divide);
         String buyCntInit = InstrumentsWs.getAccountMap(accountName).get(CoinEnums.BUY_CNT_INIT.name());
-        return String.valueOf(divide.multiply(new BigDecimal(buyCntInit)));
+//        return String.valueOf(divide.multiply(new BigDecimal(buyCntInit)));
+        return buyCntInit;
     }
 
     private String buyCntTimeShortEvent(String accountName, BigDecimal avgPx, BigDecimal markPx){
@@ -466,7 +478,8 @@
         BigDecimal divide = subtract.divide(new BigDecimal(buyCntTime), 0, RoundingMode.DOWN).add(BigDecimal.ONE);
         log.info("倍数次数{}", divide);
         String buyCntInit = InstrumentsWs.getAccountMap(accountName).get(CoinEnums.BUY_CNT_INIT.name());
-        return String.valueOf(divide.multiply(new BigDecimal(buyCntInit)));
+//        return String.valueOf(divide.multiply(new BigDecimal(buyCntInit)));
+        return buyCntInit;
     }
 
     /**

--
Gitblit v1.9.1