From 23ece6103fd890655f0eef79331d3d73921611a2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 07 Jan 2026 11:59:23 +0800
Subject: [PATCH] feat(trade): 优化交易系统止损逻辑和订单处理机制
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java
index f1a8d12..7136774 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java
@@ -4,6 +4,9 @@
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.modules.okxNewPrice.okxWs.enums.CoinEnums;
import com.xcong.excoin.modules.okxNewPrice.okxWs.enums.OrderParamEnums;
+import com.xcong.excoin.modules.okxNewPrice.okxWs.param.TradeRequestParam;
+import com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList.WangGeListEnum;
+import com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList.WangGeListService;
import com.xcong.excoin.modules.okxNewPrice.okxpi.MallUtils;
import com.xcong.excoin.modules.okxNewPrice.utils.WsMapBuild;
import com.xcong.excoin.modules.okxNewPrice.utils.WsParamBuild;
@@ -12,6 +15,8 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -109,7 +114,8 @@
last, idxPx, bePx, realizedPnl, settledPnl,
markPx,fee,fundingFee
);
- initParam(posData, accountName,posSide);
+ //先更新缓存
+ Map<String, BigDecimal> stringBigDecimalMap = initParam(posData, accountName, posSide);
}
}
} catch (Exception e) {
@@ -117,7 +123,7 @@
}
}
- private static void initParam(JSONObject posData, String accountName,String posSide) {
+ private static Map<String, BigDecimal> initParam(JSONObject posData, String accountName,String posSide) {
String accountNamePositons = initAccountName(accountName, posSide);
Map<String, BigDecimal> accountMap = getAccountMap(accountNamePositons);
WsMapBuild.saveBigDecimalToMap(accountMap, "avgPx", WsMapBuild.parseBigDecimalSafe(posData.getString("avgPx")));
@@ -137,5 +143,6 @@
if (ordFrozImr.compareTo(totalOrderUsdt) <= 0){
WsMapBuild.saveBigDecimalToMap(accountMap, CoinEnums.READY_STATE.name(), WsMapBuild.parseBigDecimalSafe(CoinEnums.READY_STATE_YES.getCode()));
}
+ return accountMap;
}
}
--
Gitblit v1.9.1