From 8f69c8ca01f4be5de360f53a95837a97e7ba7e91 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Sat, 13 Dec 2025 16:01:31 +0800
Subject: [PATCH] fix(okxNewPrice): 修复初始化订单时买入数量计算错误
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java | 5 ++++-
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java | 4 +---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
index b2dfa15..e20dd8b 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -114,10 +114,13 @@
if (BigDecimal.ZERO.compareTo( pos) >= 0) {
log.error("持仓数量为零,进行初始化订单");
WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.STATE.name(), OrderParamEnums.STATE_4.getValue());
- buyCntTimeEvent(new BigDecimal(CoinEnums.BUY_CNT.name()),new BigDecimal(CoinEnums.BUY_CNT.name()));
return OrderParamEnums.INIT.getValue();
}
// 判断是否保证金超标
+ if (PositionsWs.POSITIONSWSMAP.get("imr") == null){
+ log.error("没有获取到持仓信息,等待初始化......");
+ return null;
+ }
BigDecimal ordFrozImr = PositionsWs.POSITIONSWSMAP.get("imr");
BigDecimal totalOrderUsdt = WsMapBuild.parseBigDecimalSafe(AccountWs.ACCOUNTWSMAP.get(CoinEnums.TOTAL_ORDER_USDT.name()));
if (ordFrozImr.compareTo(totalOrderUsdt) >= 0){
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
index 1933c21..74ef623 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
@@ -45,9 +45,7 @@
}else if (OrderParamEnums.INIT.getValue().equals(side)){
log.info("当前状态为初始化");
side = OrderParamEnums.BUY.getValue();
- String buyCntTime = TRADEORDERWSMAP.get("buyCntTime");
- String buyCntStr = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.BUY_CNT.name());
- buyCnt = String.valueOf(new BigDecimal(buyCntTime).multiply(new BigDecimal(buyCntStr)));
+ buyCnt = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.BUY_CNT.name());
}else if (OrderParamEnums.BUY.getValue().equals(side)){
log.info("当前状态为加仓");
String buyCntTime = TRADEORDERWSMAP.get("buyCntTime");
--
Gitblit v1.9.1