feat(coin): 添加DOGE和SUI币种支持
- 在CoinTypeConvert工具类中添加DOGE/USDT和SUI/USDT的类型转换映射
- 更新OkxNewPriceWebSocketClientV2中的交易对数组,包含DOGE-USDT和SUI-USDT
- 在PricePriorityQueue中为DOGE和SUI币种添加队列和映射表支持
- 扩展SymbolEnum枚举类,增加DOGE和SUI币种枚举值
| | |
| | | |
| | | ,BNB("BNB", "BNB/USDT") |
| | | ,SOL("SOL", "SOL/USDT") |
| | | ,DOGE("DOGE", "DOGE/USDT") |
| | | ,SUI("SUI", "SUI/USDT") |
| | | |
| | | |
| | | ,LTC("LTC", "LTC/USDT") |
| | |
| | | private static final String CHANNEL_OPEN_INTEREST = "open-interest"; |
| | | |
| | | private static final String[] INST_IDS = { |
| | | "BTC-USDT", "ETH-USDT", "XRP-USDT", "LTC-USDT", "BCH-USDT", "ETC-USDT", "BNB-USDT", "SOL-USDT" |
| | | "BTC-USDT", "ETH-USDT", "XRP-USDT", "LTC-USDT", "BCH-USDT", |
| | | "ETC-USDT", "BNB-USDT", "SOL-USDT", "DOGE-USDT", "SUI-USDT" |
| | | }; |
| | | //BTC-USDT-SWAP |
| | | private static final String[] INST_IDS_INTEREST = { |
| | | "BTC-USDT-SWAP", "ETH-USDT-SWAP", "XRP-USDT-SWAP", "LTC-USDT-SWAP", "BCH-USDT-SWAP", "ETC-USDT-SWAP", "BNB-USDT-SWAP", "SOL-USDT-SWAP" |
| | | "BTC-USDT-SWAP", "ETH-USDT-SWAP", "XRP-USDT-SWAP", "LTC-USDT-SWAP", "BCH-USDT-SWAP", |
| | | "ETC-USDT-SWAP", "BNB-USDT-SWAP", "SOL-USDT-SWAP", "DOGE-USDT-SWAP", "SUI-USDT-SWAP" |
| | | }; |
| | | |
| | | /** |
| | |
| | | |
| | | private static Map<String, List<OrderModel>> SOL_MAP_ASC = null; |
| | | |
| | | /** |
| | | * ETC 倒序队列 头元素最大 开多止盈 开空止损 开空爆仓 限价开空 |
| | | */ |
| | | private static PriorityBlockingQueue<DescBigDecimal> DOGE_QUEUE_DESC = null; |
| | | |
| | | private static Map<String, List<OrderModel>> DOGE_MAP_DESC = null; |
| | | |
| | | /** |
| | | * ETC 正序队列 头元素最小 开多止损 开空止盈 开多爆仓 限价开多 |
| | | */ |
| | | private static PriorityBlockingQueue<AscBigDecimal> DOGE_QUEUE_ASC = null; |
| | | |
| | | private static Map<String, List<OrderModel>> DOGE_MAP_ASC = null; |
| | | |
| | | /** |
| | | * ETC 倒序队列 头元素最大 开多止盈 开空止损 开空爆仓 限价开空 |
| | | */ |
| | | private static PriorityBlockingQueue<DescBigDecimal> SUI_QUEUE_DESC = null; |
| | | |
| | | private static Map<String, List<OrderModel>> SUI_MAP_DESC = null; |
| | | |
| | | /** |
| | | * ETC 正序队列 头元素最小 开多止损 开空止盈 开多爆仓 限价开多 |
| | | */ |
| | | private static PriorityBlockingQueue<AscBigDecimal> SUI_QUEUE_ASC = null; |
| | | |
| | | private static Map<String, List<OrderModel>> SUI_MAP_ASC = null; |
| | | |
| | | |
| | | // 收到消息队列的方法 即收取到新的止盈止损等 |
| | | // 【1:买入委托2:开多3:开空4:平多5:平空6:爆仓平多7:爆仓平空8:撤单9:止盈平多10:止盈平空11:止损平多12:止损平空】 |
| | |
| | | SOL_QUEUE_ASC = new PriorityBlockingQueue<AscBigDecimal>(); |
| | | } |
| | | return SOL_QUEUE_ASC; |
| | | case "DOGE/USDT": // 开多止损 开空止盈 开多爆仓 限价开多 |
| | | if (DOGE_QUEUE_ASC == null) { |
| | | DOGE_QUEUE_ASC = new PriorityBlockingQueue<AscBigDecimal>(); |
| | | } |
| | | return DOGE_QUEUE_ASC; |
| | | case "SUI/USDT": // 开多止损 开空止盈 开多爆仓 限价开多 |
| | | if (SUI_QUEUE_ASC == null) { |
| | | SUI_QUEUE_ASC = new PriorityBlockingQueue<AscBigDecimal>(); |
| | | } |
| | | return SUI_QUEUE_ASC; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | SOL_QUEUE_DESC = new PriorityBlockingQueue<DescBigDecimal>(); |
| | | } |
| | | return SOL_QUEUE_DESC; |
| | | case "DOGE/USDT": // 开多止损 开空止盈 开多爆仓 限价开多 |
| | | if (DOGE_QUEUE_DESC == null) { |
| | | DOGE_QUEUE_DESC = new PriorityBlockingQueue<DescBigDecimal>(); |
| | | } |
| | | return DOGE_QUEUE_DESC; |
| | | case "SUI/USDT": // 开多止损 开空止盈 开多爆仓 限价开多 |
| | | if (SUI_QUEUE_DESC == null) { |
| | | SUI_QUEUE_DESC = new PriorityBlockingQueue<DescBigDecimal>(); |
| | | } |
| | | return SUI_QUEUE_DESC; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | } |
| | | return SOL_MAP_DESC; |
| | | } |
| | | case "DOGE/USDT": // 开多止损 开空止盈 开多爆仓 限价开多 |
| | | if (type == 12 || type == 9 || type == 7 || type == 3 || type == 4) { |
| | | if (DOGE_MAP_ASC == null) { |
| | | DOGE_MAP_ASC = new ConcurrentHashMap<String,List<OrderModel>>(); |
| | | } |
| | | return DOGE_MAP_ASC; |
| | | } else { |
| | | if (DOGE_MAP_DESC == null) { |
| | | DOGE_MAP_DESC = new ConcurrentHashMap<String,List<OrderModel>>(); |
| | | } |
| | | return DOGE_MAP_DESC; |
| | | } |
| | | case "SUI/USDT": // 开多止损 开空止盈 开多爆仓 限价开多 |
| | | if (type == 12 || type == 9 || type == 7 || type == 3 || type == 4) { |
| | | if (SUI_MAP_ASC == null) { |
| | | SUI_MAP_ASC = new ConcurrentHashMap<String,List<OrderModel>>(); |
| | | } |
| | | return SUI_MAP_ASC; |
| | | } else { |
| | | if (SUI_MAP_DESC == null) { |
| | | SUI_MAP_DESC = new ConcurrentHashMap<String,List<OrderModel>>(); |
| | | } |
| | | return SUI_MAP_DESC; |
| | | } |
| | | default: |
| | | break; |
| | | } |
| | |
| | | return "BNB/USDT"; |
| | | case "solusdt": |
| | | return "SOL/USDT"; |
| | | case "dogeusdt": |
| | | return "DOGE/USDT"; |
| | | case "suiusdt": |
| | | return "SUI/USDT"; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | return "BNB_NEW_PRICE"; |
| | | case "SOL/USDT": |
| | | return "SOL_NEW_PRICE"; |
| | | case "DOGE/USDT": |
| | | return "DOGE_NEW_PRICE"; |
| | | case "SUI/USDT": |
| | | return "SUI_NEW_PRICE"; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | return "BNB-USDT"; |
| | | case "SOL/USDT": |
| | | return "SOL-USDT"; |
| | | case "DOGE/USDT": |
| | | return "DOGE-USDT"; |
| | | case "SUI/USDT": |
| | | return "SUI-USDT"; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | return "BNB-USDT-SWAP"; |
| | | case "SOL/USDT": |
| | | return "SOL-USDT-SWAP"; |
| | | case "DOGE/USDT": |
| | | return "DOGE-USDT-SWAP"; |
| | | case "SUI/USDT": |
| | | return "SUI-USDT-SWAP"; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | return "open:BNB_NEW_PRICE"; |
| | | case "SOL/USDT": |
| | | return "open:SOL_NEW_PRICE"; |
| | | case "DOGE/USDT": |
| | | return "open:DOGE_NEW_PRICE"; |
| | | case "SUI/USDT": |
| | | return "open:SUI_NEW_PRICE"; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | return "volume:PRICE_BNBUSDTSWAP"; |
| | | case "SOL/USDT": |
| | | return "volume:PRICE_SOLUSDTSWAP"; |
| | | case "DOGE/USDT": |
| | | return "volume:PRICE_DOGEUSDTSWAP"; |
| | | case "SUI/USDT": |
| | | return "volume:PRICE_SUIUSDTSWAP"; |
| | | default: |
| | | return null; |
| | | } |