From 1ba3f3e246e7b7a65ccc6c75313fcd9107a5b382 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 05 Jan 2026 10:05:31 +0800
Subject: [PATCH] fix(okxWs): 修复持仓价格获取空指针异常
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java | 9 +++++----
1 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 31191b4..04808fb 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
@@ -159,7 +159,6 @@
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));
@@ -198,6 +197,8 @@
tradeRequestParam.setClOrdId(clOrdId);
String sz = InstrumentsWs.getAccountMap(accountName).get(CoinEnums.BUY_CNT_INIT.name());
tradeRequestParam.setSz(sz);
+
+ WsMapBuild.saveStringToMap(OrderInfoWs.getAccountMap(accountName), "orderPrice", String.valueOf(markPx));
return tradeRequestParam;
}
@@ -273,7 +274,7 @@
if (pingCang != null && avgPx.compareTo(pingCang.getValue()) < 0) {
log.info("开始卖出平多...卖出平多队列价格大于开仓价格{}>{}", pingCang.getValue(), avgPx);
// 手续费
- BigDecimal feeValue = PositionsWs.getAccountMap(positionAccountName).get("fee");
+ BigDecimal feeValue = PositionsWs.getAccountMap(positionAccountName).get("fee").multiply(new BigDecimal(2));
//未实现收益
BigDecimal uplValue = PositionsWs.getAccountMap(positionAccountName).get("upl");
//已实现收益
@@ -366,7 +367,7 @@
log.info("开始买入平空...买入平空队列价格小于开仓价格{}<{}", kaiCang.getValue(), avgPx);
// 手续费
- BigDecimal feeValue = PositionsWs.getAccountMap(positionAccountName).get("fee");
+ BigDecimal feeValue = PositionsWs.getAccountMap(positionAccountName).get("fee").multiply(new BigDecimal("2"));
//未实现收益
BigDecimal uplValue = PositionsWs.getAccountMap(positionAccountName).get("upl");
//已实现收益
@@ -422,7 +423,7 @@
if (pingCang != null && markPx.compareTo(pingCang.getValue()) >= 0 && avgPx.compareTo(pingCang.getValue()) < 0) {
log.info("开始加仓...上限队列价格小于当前价格{}<={}", pingCang.getValue(), markPx);
WsMapBuild.saveStringToMap(OrderInfoWs.getAccountMap(accountName), "orderPrice", String.valueOf(markPx));
- String side = CoinEnums.SIDE_BUY.getCode();
+ String side = CoinEnums.SIDE_SELL.getCode();
tradeRequestParam.setSide(side);
String clOrdId = WsParamBuild.getOrderNum(side);
tradeRequestParam.setClOrdId(clOrdId);
--
Gitblit v1.9.1