From 36c1ee6acf1e2185924ca3fc817c8641d44c4d39 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 06 Jan 2026 14:29:24 +0800
Subject: [PATCH] fix(strategy): 修复MACD策略日志输出和网格止损逻辑

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxKlineWebSocketClient.java                    |    6 +++++-
 src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MacdEmaStrategy.java |    2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxKlineWebSocketClient.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxKlineWebSocketClient.java
index e0802f7..190099d 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxKlineWebSocketClient.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxKlineWebSocketClient.java
@@ -375,7 +375,7 @@
                                 doOpen(client.getWebSocketClient(),accountName, tradingOrderOpenOpen, closePx);
                             }
                             if (ObjectUtil.isNotEmpty(tradingOrderOpenClose)){
-                                doOpen(client.getWebSocketClient(),accountName, tradingOrderOpenClose, closePx);
+                                doclose(client.getWebSocketClient(),accountName, tradingOrderOpenClose, closePx);
                             }
                         }
                     }
@@ -405,6 +405,10 @@
 
         String positionAccountName = PositionsWs.initAccountName(accountName, posSide);
         BigDecimal pos = PositionsWs.getAccountMap(positionAccountName).get("pos");
+        if (BigDecimal.ZERO.compareTo( pos) >= 0) {
+            log.error("历史网格止损方向没有持仓");
+            tradeRequestParam.setTradeType(OrderParamEnums.TRADE_NO.getValue());
+        }
         tradeRequestParam.setSz(String.valueOf(pos));
         TradeOrderWs.orderZhiYingZhiSunEventNoState(webSocketClient, tradeRequestParam);
     }
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MacdEmaStrategy.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MacdEmaStrategy.java
index 4b4bae2..8dab3cb 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MacdEmaStrategy.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MacdEmaStrategy.java
@@ -315,7 +315,7 @@
         boolean isTopDivergence = MACDCalculator.isTopDivergence(closePrices, macdResult);
 
         log.info("空头信号检查, 200日EMA价格{}位于下方: {}, 死叉: {}, MACD柱状线由正转负: {}, 顶背离: {}",
-                isBelowTrend, isDeathCross, isMacdHistTurningNegative, isTopDivergence);
+                latestTrendEma,isBelowTrend, isDeathCross, isMacdHistTurningNegative, isTopDivergence);
         
         // 空头开仓条件:柱状线转弱 + 死叉 + (趋势向下或顶背离)
         return isMacdHistTurningNegative && isDeathCross && ( isBelowTrend || isTopDivergence);

--
Gitblit v1.9.1