From 935856d1a80bacaccad4154d99e7e7c949523011 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 13 May 2026 16:14:35 +0800
Subject: [PATCH] refactor(gateApi): 优化网格交易逻辑和条件单管理

---
 src/main/java/com/xcong/excoin/modules/okxApi/wsHandler/handler/OkxOrderInfoChannelHandler.java |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxApi/wsHandler/handler/OkxOrderInfoChannelHandler.java b/src/main/java/com/xcong/excoin/modules/okxApi/wsHandler/handler/OkxOrderInfoChannelHandler.java
index 813fe03..1fd819c 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/wsHandler/handler/OkxOrderInfoChannelHandler.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/wsHandler/handler/OkxOrderInfoChannelHandler.java
@@ -98,18 +98,20 @@
                 }
                 String state = detail.getString("state");
                 String accFillSz = detail.getString("accFillSz");
-                String fillPnl = detail.getString("fillPnl");
+                String fillPx = detail.getString("fillPx");
+                String pnl = detail.getString("pnl");
                 String posSide = detail.getString("posSide");
                 String avgPx = detail.getString("avgPx");
                 String clOrdId = detail.getString("clOrdId");
 
-                log.info("[{}] 订单, 方向:{}, 状态:{}, 成交量:{}, 均价:{}, 盈亏:{}, 编号:{}",
-                        CHANNEL_NAME, posSide, state, accFillSz, avgPx, fillPnl, clOrdId);
+                log.info("[{}] 订单, 方向:{}, 状态:{}, 成交量:{}, 末笔成交价:{}, 均价:{}, 盈亏:{}, 编号:{}",
+                        CHANNEL_NAME, posSide, state, accFillSz, fillPx, avgPx, pnl, clOrdId);
 
                 if ("filled".equals(state) && accFillSz != null && new BigDecimal(accFillSz).compareTo(BigDecimal.ZERO) > 0) {
                     if (gridTradeService != null) {
-                        BigDecimal pnl = fillPnl != null ? new BigDecimal(fillPnl) : BigDecimal.ZERO;
-                        gridTradeService.onOrderFilled(posSide, new BigDecimal(accFillSz), pnl);
+                        BigDecimal avgPxVal = avgPx != null && !avgPx.isEmpty() ? new BigDecimal(avgPx) : BigDecimal.ZERO;
+                        BigDecimal pnlVal = pnl != null ? new BigDecimal(pnl) : BigDecimal.ZERO;
+                        gridTradeService.onOrderFilled(posSide, new BigDecimal(accFillSz), avgPxVal, pnlVal);
                     }
                 }
             }

--
Gitblit v1.9.1