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