Administrator
2025-12-17 7419e72a3dc57355cbd9990cafa660281970ead5
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -150,9 +150,9 @@
            return null;
        }
        if (CoinEnums.POSSIDE_LONG.getCode().equals(posSide)){
            return caoZuoLong(accountName);
            return caoZuoLong(accountName,markPx);
        }else if (CoinEnums.POSSIDE_SHORT.getCode().equals(posSide)){
            return caoZuoShort(accountName);
            return caoZuoShort(accountName,markPx);
        }else{
            log.error("账户未设置持仓方向......");
            return null;
@@ -160,13 +160,14 @@
    }
    @Override
    public String caoZuoLong(String accountName) {
    public String caoZuoLong(String accountName,String markPxStr) {
        log.info("开始看涨执行操作CaoZuoServiceImpl......");
        try {
            String positionAccountName = PositionsWs.initAccountName(accountName, CoinEnums.POSSIDE_LONG.getCode());
            // 获取标记价格和平均持仓价格
            BigDecimal markPx = PositionsWs.getAccountMap(positionAccountName).get("markPx");
//            BigDecimal markPx = PositionsWs.getAccountMap(positionAccountName).get("markPx");
            BigDecimal markPx = new BigDecimal(markPxStr);
            BigDecimal avgPx = PositionsWs.getAccountMap(positionAccountName).get("avgPx");
            log.info("开仓价格: {}, 当前价格:{},匹配队列中......", avgPx, markPx);
@@ -188,7 +189,7 @@
                    return OrderParamEnums.HOLDING.getValue();
                }
                DescBigDecimal kaiCang = queueKaiCang.peek();
                log.info("下限队列价格{}", kaiCang);
                log.info("下限队列价格{}", kaiCang.getValue());
                if (kaiCang != null && markPx.compareTo(kaiCang.getValue()) <= 0 && avgPx.compareTo(kaiCang.getValue()) >= 0) {
                    log.info("开始加仓...下限队列价格大于当前价格{}>{}", kaiCang.getValue(), markPx);
                    WsMapBuild.saveStringToMap(OrderInfoWs.getAccountMap(accountName), "orderPrice", String.valueOf(markPx));
@@ -262,14 +263,15 @@
    }
    @Override
    public String caoZuoShort(String accountName) {
    public String caoZuoShort(String accountName,String markPxStr) {
        log.info("开始看空执行操作CaoZuoServiceImpl......");
        try {
            String positionAccountName = PositionsWs.initAccountName(accountName, CoinEnums.POSSIDE_SHORT.getCode());
            // 获取标记价格和平均持仓价格
            BigDecimal markPx = PositionsWs.getAccountMap(positionAccountName).get("markPx");
//            BigDecimal markPx = PositionsWs.getAccountMap(positionAccountName).get("markPx");
            BigDecimal markPx = new BigDecimal(markPxStr);
            BigDecimal avgPx = PositionsWs.getAccountMap(positionAccountName).get("avgPx");
            log.info("开仓价格: {}, 当前价格:{},匹配队列中......", avgPx, markPx);
@@ -291,7 +293,7 @@
                    return OrderParamEnums.HOLDING.getValue();
                }
                DescBigDecimal kaiCang = queueKaiCang.peek();
                log.info("下限队列价格{}", kaiCang);
                log.info("下限队列价格{}", kaiCang.getValue());
                if (kaiCang != null && avgPx.compareTo(kaiCang.getValue()) >= 0) {
                    log.info("开始减仓...下限队列价格小于开仓价格{}<{}", kaiCang.getValue(), avgPx);
@@ -340,7 +342,7 @@
                    return OrderParamEnums.HOLDING.getValue();
                }
                AscBigDecimal pingCang = queuePingCang.peek();
                log.info("上限队列价格: {}", pingCang);
                log.info("上限队列价格: {}", pingCang.getValue());
                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));