From 212e20fa6e9d0cc69d7f70339ecd47d4ec286533 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Sun, 04 Jan 2026 11:03:41 +0800
Subject: [PATCH] feat(okxNewPrice): 优化MACD策略交易判断逻辑

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java
index 8f37385..f91b7c0 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java
@@ -118,9 +118,25 @@
 
                     TradeRequestParam tradeRequestParam = new TradeRequestParam();
                     tradeRequestParam.setAccountName(accountName);
-                    tradeRequestParam.setMarkPx(String.valueOf(avgPx));
-                    String fanfangxiangPosside = CoinEnums.POSSIDE_LONG.getCode().equals(posSide) ? CoinEnums.POSSIDE_SHORT.getCode() : CoinEnums.POSSIDE_LONG.getCode();
-                    tradeRequestParam.setPosSide(fanfangxiangPosside);
+                    BigDecimal zhiYingPx = getZhiYingPx(
+                            accountName,
+                            posSide,
+                            fillFee,
+                            WsMapBuild.parseBigDecimalSafe(InstrumentsWs.getAccountMap(accountName).get(CoinEnums.CTVAL.name())),
+                            WsMapBuild.parseBigDecimalSafe(accFillSz),
+                            WsMapBuild.parseBigDecimalSafe(InstrumentsWs.getAccountMap(accountName).get(CoinEnums.CONTRACTMULTIPLIER.name())),
+                            WsMapBuild.parseBigDecimalSafe(avgPx),
+                            WsMapBuild.parseBigDecimalSafe(CoinEnums.LEVERAGE.getCode())
+                    );
+                    tradeRequestParam.setMarkPx(String.valueOf(zhiYingPx));
+                    tradeRequestParam.setInstId(CoinEnums.HE_YUE.getCode());
+                    tradeRequestParam.setTdMode(CoinEnums.CROSS.getCode());
+                    tradeRequestParam.setPosSide(posSide);
+                    tradeRequestParam.setOrdType(CoinEnums.ORDTYPE_LIMIT.getCode());
+                    tradeRequestParam.setTradeType(OrderParamEnums.TRADE_YES.getValue());
+                    tradeRequestParam.setSide(CoinEnums.POSSIDE_LONG.getCode().equals(posSide) ? CoinEnums.SIDE_SELL.getCode() : CoinEnums.SIDE_BUY.getCode());
+                    tradeRequestParam.setClOrdId(WsParamBuild.getOrderNum(tradeRequestParam.getSide()));
+                    tradeRequestParam.setSz(accFillSz);
                     return tradeRequestParam;
 
                 }

--
Gitblit v1.9.1