feat(okx): 添加 WebSocket 处理日志记录
- 在 AccountWs 类中添加执行日志
- 在 BalanceAndPositionWs 类中添加执行日志
- 在 CaoZuoServiceImpl 类中调整日志输出位置
- 在 InstrumentsWs 类中添加执行日志
- 在 LoginWs 类中添加执行日志
- 在 OrderInfoWs 类中添加执行日志
- 在 PositionsWs 类中添加执行日志
- 在 TradeOrderWs 类中添加执行日志和订单方向日志
| | |
| | | */ |
| | | @Override |
| | | public String caoZuo() { |
| | | log.info("开始执行操作......"); |
| | | String pos = (String) redisUtils.get(positionsPosKey); |
| | | if (StrUtil.isBlank(pos) || BigDecimal.ZERO.compareTo( new BigDecimal(pos)) <= 0) { |
| | | log.error("未获取到持仓数量"); |
| | | return OrderParamEnums.INIT.getValue(); |
| | | } |
| | | log.info("开始执行操作CaoZuoServiceImpl......"); |
| | | |
| | | // 获取合约执行操作状态 |
| | | String state = (String) redisUtils.get(instrumentsStateKey); |
| | |
| | | return OrderParamEnums.HOLDING.getValue(); |
| | | } |
| | | |
| | | String pos = (String) redisUtils.get(positionsPosKey); |
| | | if (StrUtil.isBlank(pos) || BigDecimal.ZERO.compareTo( new BigDecimal(pos)) <= 0) { |
| | | log.error("未获取到持仓数量"); |
| | | return OrderParamEnums.INIT.getValue(); |
| | | } |
| | | |
| | | String uplStr = (String) redisUtils.get(positionsUplKey); |
| | | if (StrUtil.isBlank(uplStr)){ |
| | | return OrderParamEnums.INIT.getValue(); |
| | |
| | | * @param redisUtils Redis 工具类实例,用于存储账户相关信息 |
| | | */ |
| | | public static void handleEvent(JSONObject response, RedisUtils redisUtils) { |
| | | |
| | | |
| | | log.info("开始执行AccountWs......"); |
| | | try { |
| | | JSONArray dataArray = response.getJSONArray(DATA_KEY); |
| | | if (dataArray == null || dataArray.isEmpty()) { |
| | |
| | | } |
| | | |
| | | public static void handleEvent(JSONObject response) { |
| | | |
| | | log.info("开始执行BalanceAndPositionWs......"); |
| | | try { |
| | | JSONArray dataArray = response.getJSONArray("data"); |
| | | if (dataArray == null || dataArray.isEmpty()) { |
| | |
| | | public static final String INSTRUMENTSWS_CHANNEL = "instruments"; |
| | | |
| | | public static void handleEvent(RedisUtils redisUtils) { |
| | | log.info("开始执行InstrumentsWs......"); |
| | | // 将账户数据保存到Redis中,设置过期时间为30分钟 |
| | | try { |
| | | boolean setResult = |
| | |
| | | @Slf4j |
| | | public class LoginWs { |
| | | public static void websocketLogin(WebSocketClient webSocketClient) { |
| | | |
| | | log.info("开始执行LoginWs......"); |
| | | try { |
| | | |
| | | JSONArray argsArray = new JSONArray(); |
| | |
| | | private static final String AVGPX_KEY = "avgPx"; |
| | | private static final String STATE_KEY = "state"; |
| | | public static void handleEvent(JSONObject response, RedisUtils redisUtils) { |
| | | |
| | | log.info("开始执行OrderInfoWs......"); |
| | | try { |
| | | JSONArray dataArray = response.getJSONArray(DATA_KEY); |
| | | if (dataArray == null || dataArray.isEmpty()) { |
| | |
| | | } |
| | | |
| | | public static void handleEvent(JSONObject response, RedisUtils redisUtils) { |
| | | |
| | | |
| | | log.info("开始执行PositionsWs......"); |
| | | try { |
| | | JSONArray dataArray = response.getJSONArray("data"); |
| | | if (dataArray == null || dataArray.isEmpty()) { |
| | |
| | | |
| | | public static void orderEvent(WebSocketClient webSocketClient, RedisUtils redisUtils, String side) { |
| | | |
| | | log.info("开始执行TradeOrderWs......"); |
| | | |
| | | String buyCnt = null; |
| | | String ctval = getRedisValue(redisUtils, InstrumentsWs.INSTRUMENTSWS_CHANNEL, ":ctVal"); |
| | | String buyCntNormal = getRedisValue(redisUtils, PositionsWs.POSITIONSWS_CHANNEL, ":buyCnt"); |
| | |
| | | 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)){ |