Administrator
2025-12-12 ec7a3e6d2bd050f89047079d2c1d71e8f51e0c47
fix(okxNewPrice): 优化订单信息处理逻辑

- 修改日志描述,更准确反映持仓信息缺失情况
- 移除冗余的订单价格设置逻辑,避免重复赋值
- 简化成交均价记录流程,确保数据一致性
- 调整开仓和平仓条件判断后的状态更新逻辑
2 files modified
8 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -106,7 +106,7 @@
        }
        if (PositionsWs.POSITIONSWSMAP.get("pos") == null){
            log.error("没有获取到持仓数量,等待初始化......");
            log.error("没有获取到持仓信息,等待初始化......");
            return null;
        }
        BigDecimal pos = PositionsWs.POSITIONSWSMAP.get("pos");
@@ -149,7 +149,6 @@
                DescBigDecimal kaiCang = queueKaiCang.peek();
                if (kaiCang != null && markPx.compareTo(kaiCang.getValue()) <= 0 && avgPx.compareTo(kaiCang.getValue()) >= 0) {
                    log.info("开始加仓...开仓队列价格大于当前价格{}>{}", kaiCang.getValue(), markPx);
                    WsMapBuild.saveStringToMap(OrderInfoWs.ORDERINFOWSMAP, "orderPrice",String.valueOf(kaiCang.getValue()));
                    WsMapBuild.saveStringToMap(InstrumentsWs.INSTRUMENTSWSMAP, CoinEnums.STATE.name(), OrderParamEnums.STATE_4.getValue());
                    return OrderParamEnums.BUY.getValue();
                } else {
@@ -166,7 +165,6 @@
                AscBigDecimal pingCang = queuePingCang.peek();
                if (pingCang != null && markPx.compareTo(pingCang.getValue()) >= 0 && avgPx.compareTo(pingCang.getValue()) < 0) {
                    log.info("开始减仓...平仓队列价格小于当前价格{}<={}", pingCang.getValue(), markPx);
                    WsMapBuild.saveStringToMap(OrderInfoWs.ORDERINFOWSMAP, "orderPrice",String.valueOf(pingCang.getValue()));
                    // 判断当前是否盈利
                    BigDecimal uplValue = PositionsWs.POSITIONSWSMAP.get("upl");
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/OrderInfoWs.java
@@ -95,9 +95,7 @@
                                && state.equals(stateStr)
                ){
                    //记录成交均价
                    if (StrUtil.isBlank(ORDERINFOWSMAP.get("orderPrice"))){
                        WsMapBuild.saveStringToMap(ORDERINFOWSMAP, "orderPrice",avgPx);
                    }
                    WsMapBuild.saveStringToMap(ORDERINFOWSMAP, "orderPrice",avgPx);
                    WsMapBuild.saveStringToMap(TradeOrderWs.TRADEORDERWSMAP, "state", CoinEnums.ORDER_LIVE.getCode());
                    String outStr = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.OUT.name());