From 3cd5191a2840d770a166c937da1b3c8493285c47 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 12 Dec 2025 12:48:00 +0800
Subject: [PATCH] fix(okx): 更新账户占用保证金字段为imr并调整相关逻辑
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java | 34 ++++++++++++++++++----------------
1 files changed, 18 insertions(+), 16 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 f6a9df5..8d8fa58 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
@@ -39,8 +39,8 @@
@Override
public String caoZuo() {
log.info("开始执行操作CaoZuoServiceImpl......");
- BigDecimal cashBal = AccountWs.ACCOUNTWSMAP.get("cashBal");
- BigDecimal availBal = AccountWs.ACCOUNTWSMAP.get("availBal");
+ BigDecimal cashBal = WsMapBuild.parseBigDecimalSafe(AccountWs.ACCOUNTWSMAP.get("cashBal"));
+ BigDecimal availBal = WsMapBuild.parseBigDecimalSafe(AccountWs.ACCOUNTWSMAP.get("availBal"));
// 判断账户余额是否充足
if (cashBal.compareTo(BigDecimal.ZERO) <= 0){
@@ -88,26 +88,28 @@
log.info("预期抗仓金额: {}", kangYaPercent);
BigDecimal kangYaAmount = cashBal.multiply(new BigDecimal(kangYaPercent));
- // 账户预期亏损金额比这个还小时,立即止损
- if (realKuiSunAmount.compareTo(zhiSunAmount) > 0){
- log.error("账户冷静止损......");
- WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.OUT.name(), OrderParamEnums.OUT_YES.getValue());
- return OrderParamEnums.OUT.getValue();
- }
- // 判断抗压
- if (realKuiSunAmount.compareTo(kangYaAmount) > 0 && realKuiSunAmount.compareTo(zhiSunAmount) <= 0){
- log.error("账户紧张扛仓......");
- return OrderParamEnums.HOLDING.getValue();
+ if (realKuiSunAmount.compareTo(BigDecimal.ZERO) > 0){
+ // 账户预期亏损金额比这个还小时,立即止损
+ if (realKuiSunAmount.compareTo(zhiSunAmount) > 0){
+ log.error("账户冷静止损......");
+ WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.OUT.name(), OrderParamEnums.OUT_YES.getValue());
+ return OrderParamEnums.OUT.getValue();
+ }
+ // 判断抗压
+ if (realKuiSunAmount.compareTo(kangYaAmount) > 0 && realKuiSunAmount.compareTo(zhiSunAmount) <= 0){
+ log.error("账户紧张扛仓......");
+ return OrderParamEnums.HOLDING.getValue();
+ }
}
- BigDecimal ordFroz = AccountWs.ACCOUNTWSMAP.get("ordFroz");
- if (BigDecimal.ZERO.compareTo( ordFroz) >= 0) {
+ BigDecimal ordFrozImr = WsMapBuild.parseBigDecimalSafe(AccountWs.ACCOUNTWSMAP.get("imr"));
+ if (BigDecimal.ZERO.compareTo( ordFrozImr) >= 0) {
log.error("占用保证金为零,进行初始化订单");
return OrderParamEnums.INIT.getValue();
}
// 判断是否保证金超标
- BigDecimal totalOrderUsdt = AccountWs.ACCOUNTWSMAP.get(CoinEnums.TOTAL_ORDER_USDT.name());
- if (ordFroz.compareTo(totalOrderUsdt) >= 0){
+ BigDecimal totalOrderUsdt = WsMapBuild.parseBigDecimalSafe(CoinEnums.TOTAL_ORDER_USDT.name());
+ if (ordFrozImr.compareTo(totalOrderUsdt) >= 0){
log.error("已满仓......");
return OrderParamEnums.HOLDING.getValue();
}
--
Gitblit v1.9.1