| | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * 交易订单处理类,负责构建和发送订单请求到OKX WebSocket |
| | | * |
| | | * @author Administrator |
| | | */ |
| | | @Slf4j |
| | |
| | | public static void orderEvent(WebSocketClient webSocketClient, RedisUtils redisUtils, String side) { |
| | | |
| | | log.info("开始执行TradeOrderWs......"); |
| | | if (StrUtil.isBlank( side)){ |
| | | log.warn("止损了,下次再战..."); |
| | | return; |
| | | } |
| | | String live = (String) redisUtils.getWithDelay(ORDERWS_CHANNEL + ":" + CoinEnums.HE_YUE.getCode() + ":state"); |
| | | if (!CoinEnums.ORDER_LIVE.getCode().equals( live)){ |
| | | 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(); |
| | | if (StrUtil.isNotBlank(buyCntNormal) && BigDecimal.ZERO.compareTo(new BigDecimal(buyCntNormal)) > 0) { |
| | | if (StrUtil.isNotBlank(buyCntNormal) && new BigDecimal(buyCntNormal).compareTo(BigDecimal.ZERO) > 0) { |
| | | buyCnt = buyCntNormal; |
| | | }else{ |
| | | buyCnt = ctval; |
| | |
| | | buyCnt = pos; |
| | | } else if (OrderParamEnums.BUY.getValue().equals(side)){ |
| | | side = OrderParamEnums.BUY.getValue(); |
| | | if (StrUtil.isNotBlank(buyCntNormal) && BigDecimal.ZERO.compareTo(new BigDecimal(buyCntNormal)) > 0) { |
| | | if (StrUtil.isNotBlank(buyCntNormal) && new BigDecimal(buyCntNormal).compareTo(BigDecimal.ZERO) > 0) { |
| | | buyCnt = buyCntNormal; |
| | | }else{ |
| | | buyCnt = ctval; |
| | |
| | | Object valueObj = redisUtils.get(key); |
| | | return valueObj == null ? null : String.valueOf(valueObj); |
| | | } |
| | | } |
| | | } |