| | |
| | | import com.xcong.excoin.modules.okxNewPrice.celue.CaoZuoService; |
| | | import com.xcong.excoin.modules.okxNewPrice.okxWs.*; |
| | | import com.xcong.excoin.modules.okxNewPrice.okxWs.enums.ExchangeInfoEnum; |
| | | import com.xcong.excoin.modules.okxNewPrice.okxWs.param.TradeRequestParam; |
| | | import com.xcong.excoin.modules.okxNewPrice.utils.SSLConfig; |
| | | import com.xcong.excoin.modules.okxNewPrice.wangge.WangGeService; |
| | | import com.xcong.excoin.utils.RedisUtils; |
| | |
| | | */ |
| | | public WebSocketClient getWebSocketClient() { |
| | | return webSocketClient; |
| | | } |
| | | |
| | | /** |
| | | * 获取账号名称 |
| | | * @return 账号名称 |
| | | */ |
| | | public String getAccountName() { |
| | | return account.name(); |
| | | } |
| | | |
| | | public OkxQuantWebSocketClient(ExchangeInfoEnum account, |
| | |
| | | // 这会导致多账号之间的数据冲突。需要进一步修改这些类的设计,让数据存储与特定账号关联 |
| | | if (OrderInfoWs.ORDERINFOWS_CHANNEL.equals(channel)) { |
| | | OrderInfoWs.handleEvent(response, redisUtils, account.name()); |
| | | // TradeRequestParam tradeRequestParam = OrderInfoWs.handleEvent(response, redisUtils, account.name()); |
| | | // TradeOrderWs.orderZhiYingEvent(webSocketClient, tradeRequestParam); |
| | | }else if (AccountWs.ACCOUNTWS_CHANNEL.equals(channel)) { |
| | | AccountWs.handleEvent(response, account.name()); |
| | | // String side = caoZuoService.caoZuo(account.name()); |
| | | // TradeOrderWs.orderEvent(webSocketClient, side, account.name()); |
| | | } else if (PositionsWs.POSITIONSWS_CHANNEL.equals(channel)) { |
| | | PositionsWs.handleEvent(response, account.name()); |
| | | } else if (BalanceAndPositionWs.CHANNEL_NAME.equals(channel)) { |
| | |
| | | } |
| | | |
| | | int attempt = 0; |
| | | int maxAttempts = 5; |
| | | int maxAttempts = 3; |
| | | long delayMs = 1000; |
| | | |
| | | while (attempt < maxAttempts && !isConnected.get()) { |