Administrator
2025-12-10 69feff48c5b26b01d3d1849d476bc8cd6071b4cd
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
@@ -23,28 +23,45 @@
    public static void orderEvent(WebSocketClient webSocketClient, RedisUtils redisUtils, String side) {
        String buyCnt = null;
        log.info("开始执行TradeOrderWs......");
        if (StrUtil.isBlank( side)){
            log.warn("止损了,下次再战...");
            return;
        }
        String buyCnt = null;
        String ctval = getRedisValue(redisUtils, InstrumentsWs.INSTRUMENTSWS_CHANNEL, ":ctVal");
        String buyCntNormal = getRedisValue(redisUtils, PositionsWs.POSITIONSWS_CHANNEL, ":buyCnt");
        String pos = getRedisValue(redisUtils, PositionsWs.POSITIONSWS_CHANNEL, ":pos");
        if (OrderParamEnums.ORDERING.getValue().equals(side)) {
            log.warn("正在下单中,等待下单结束...");
            return;
        } else if (OrderParamEnums.HOLDING.getValue().equals(side)) {
            return;
        } else if (OrderParamEnums.INIT.getValue().equals(side)) {
            side = OrderParamEnums.BUY.getValue();
            buyCnt = getRedisValue(redisUtils, InstrumentsWs.INSTRUMENTSWS_CHANNEL, ":ctVal");
            if (StrUtil.isNotBlank(buyCntNormal) && new BigDecimal(buyCntNormal).compareTo(BigDecimal.ZERO) > 0) {
                buyCnt = buyCntNormal;
            }else{
                buyCnt = ctval;
            }
        } else if (OrderParamEnums.OUT.getValue().equals(side)) {
            log.info(OrderParamEnums.getNameByValue(OrderParamEnums.OUT.getValue()));
            side = OrderParamEnums.SELL.getValue();
            buyCnt = pos;
        } else if (OrderParamEnums.BUY.getValue().equals(side)){
            side = OrderParamEnums.BUY.getValue();
            if (StrUtil.isNotBlank(buyCntNormal) && new BigDecimal(buyCntNormal).compareTo(BigDecimal.ZERO) > 0) {
                buyCnt = buyCntNormal;
            }else{
                buyCnt = ctval;
            }
        }else if (OrderParamEnums.SELL.getValue().equals(side)){
            side = OrderParamEnums.SELL.getValue();
            buyCnt = getRedisValue(redisUtils, PositionsWs.POSITIONSWS_CHANNEL, ":pos");
        } else {
            if (OrderParamEnums.BUY.getValue().equals(side)){
                String buyCntNormal = getRedisValue(redisUtils, PositionsWs.POSITIONSWS_CHANNEL, ":buyCnt");
                if (StrUtil.isNotBlank(buyCntNormal)) {
                    buyCnt = buyCntNormal;
                }
            }else{
                side = OrderParamEnums.SELL.getValue();
                buyCnt = getRedisValue(redisUtils, PositionsWs.POSITIONSWS_CHANNEL, ":pos");
            }
        }else{
            log.warn("操作信号异常,请检查下单操作...");
            return;
        }
        // 校验必要参数