Administrator
2025-12-15 b333c5cb90a210de64df374c614978a16a1c0074
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -164,13 +164,11 @@
                    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 realizedPnlValue = PositionsWs.POSITIONSWSMAP.get("realizedPnl");
                    realizedPnlValue = realizedPnlValue.add(feeValue).add(fundingFeeValue);
                    realizedPnlValue = realizedPnlValue.add(feeValue);
                    //持仓保证金
                    BigDecimal imr = PositionsWs.POSITIONSWSMAP.get("imr");
@@ -180,20 +178,20 @@
                    if (realizedPnlValue.compareTo(BigDecimal.ZERO) <= 0) {
                        BigDecimal realizedPnlValueZheng = realizedPnlValue.multiply(new BigDecimal("-1"));
                        if (uplValue.compareTo(realizedPnlValue) > 0 && uplValue.compareTo(imrValue.add(realizedPnlValueZheng))  >= 0) {
                            log.info("当前未实现盈亏:{}大于预计收益>{},赚钱咯", uplValue, imrValue);
                            log.info("当前未实现盈亏:{}大于预计收益>{},赚钱咯", uplValue, imrValue.add(realizedPnlValueZheng));
                            WsMapBuild.saveStringToMap(OrderInfoWs.ORDERINFOWSMAP, "orderPrice", String.valueOf(markPx));
                            return OrderParamEnums.SELL.getValue();
                        }else{
                            log.info("当前未实现盈亏:{}没有大于预计收益>{},钱在路上了", uplValue, imrValue);
                            log.info("当前未实现盈亏:{}没有大于预计收益>{},钱在路上了", uplValue, imrValue.add(realizedPnlValueZheng));
                            return OrderParamEnums.HOLDING.getValue();
                        }
                    }else {
                        if (uplValue.compareTo(imrValue)  >= 0) {
                            WsMapBuild.saveStringToMap(OrderInfoWs.ORDERINFOWSMAP, "orderPrice", String.valueOf(markPx));
                            log.info("当前未实现盈亏:{}大于预计收益>{},赚钱咯", uplValue, imrValue);
                            log.info("当前未实现盈亏:{}大于预计收益>{},赚钱咯", uplValue, realizedPnlValue);
                            return OrderParamEnums.SELL.getValue();
                        }else{
                            log.info("当前未实现盈亏:{}没有大于预计收益>{},钱在路上了", uplValue, imrValue);
                            log.info("当前未实现盈亏:{}没有大于预计收益>{},钱在路上了", uplValue, realizedPnlValue);
                            return OrderParamEnums.HOLDING.getValue();
                        }
                    }