From a2532aafed1eaeee130f01f3fde90276a8ea040b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Sun, 14 Dec 2025 14:16:26 +0800
Subject: [PATCH] feat(okxNewPrice): 调整平仓收益比例并增加手续费和资金费用计算
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/enums/CoinEnums.java | 2 +-
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java | 12 ++++++++++--
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java | 2 ++
3 files changed, 13 insertions(+), 3 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 bf8443c..107fc4a 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
@@ -162,10 +162,18 @@
AscBigDecimal pingCang = queuePingCang.peek();
if (pingCang != null && markPx.compareTo(pingCang.getValue()) >= 0 && avgPx.compareTo(pingCang.getValue()) < 0) {
log.info("开始减仓...平仓队列价格小于当前价格{}<={}", pingCang.getValue(), markPx);
- // 判断当前是否盈利
+ // 手续费
+ BigDecimal feeValue = PositionsWs.POSITIONSWSMAP.get("fee").multiply(new BigDecimal("2"));
+ // 资金费用
+ BigDecimal fundingFeeValue = PositionsWs.POSITIONSWSMAP.get("fundingFee");
+ //未实现收益
BigDecimal uplValue = PositionsWs.POSITIONSWSMAP.get("upl");
- BigDecimal imr = PositionsWs.POSITIONSWSMAP.get("imr");
+ //已实现收益
BigDecimal realizedPnlValue = PositionsWs.POSITIONSWSMAP.get("realizedPnl");
+ realizedPnlValue = realizedPnlValue.add(feeValue).add(fundingFeeValue);
+
+ //持仓保证金
+ BigDecimal imr = PositionsWs.POSITIONSWSMAP.get("imr");
String pingCangImr = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.PING_CANG_SHOUYI.name());
BigDecimal imrValue = imr.multiply(new BigDecimal(pingCangImr));
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 0752d51..0af1d7d 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
@@ -114,6 +114,8 @@
WsMapBuild.saveBigDecimalToMap(POSITIONSWSMAP, "markPx", WsMapBuild.parseBigDecimalSafe(posData.getString("markPx")));
WsMapBuild.saveBigDecimalToMap(POSITIONSWSMAP, "bePx", WsMapBuild.parseBigDecimalSafe(posData.getString("bePx")));
WsMapBuild.saveBigDecimalToMap(POSITIONSWSMAP, "realizedPnl", WsMapBuild.parseBigDecimalSafe(posData.getString("realizedPnl")));
+ WsMapBuild.saveBigDecimalToMap(POSITIONSWSMAP, "fee", WsMapBuild.parseBigDecimalSafe(posData.getString("fee")));
+ WsMapBuild.saveBigDecimalToMap(POSITIONSWSMAP, "fundingFee", WsMapBuild.parseBigDecimalSafe(posData.getString("fundingFee")));
WsMapBuild.saveBigDecimalToMap(POSITIONSWSMAP, CoinEnums.READY_STATE.name(), WsMapBuild.parseBigDecimalSafe(CoinEnums.READY_STATE_YES.getCode()));
}
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/enums/CoinEnums.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/enums/CoinEnums.java
index 80119b4..bb01dce 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/enums/CoinEnums.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/enums/CoinEnums.java
@@ -40,7 +40,7 @@
READY_STATE_YES("准备就绪ready_state", "1"),
READY_STATE_NO("未准备就绪ready_state", "0"),
- PING_CANG_SHOUYI("平仓收益比例", "0.05"),
+ PING_CANG_SHOUYI("平仓收益比例", "0.1"),
//下单的总保障金为账户总金额cashBal * TOTAL_ORDER_USDT用来做保证金
TOTAL_ORDER_USDTPECENT("总保证金比例total_order_usdtpecent","0.2"),
TOTAL_ORDER_USDT("总保证金totalOrderUsdt","0"),
--
Gitblit v1.9.1