| | |
| | | } |
| | | // 1分钟K线最新的5条数据,上个层级最近的几条数据 |
| | | List<Kline> klineOneTop5 = new ArrayList<>(klineOne.subList(klineOne.size() - nums, klineOne.size())); |
| | | Kline realtimeKline = klineOneTop5.get(klineOneTop5.size() - 1); |
| | | Kline realtimeKline = klineOneTop5.get(nums - 1); |
| | | if (realtimeKline == null) { |
| | | return null; |
| | | } |
| | | long periodTs = klineOneTop5.get(0).getTs(); |
| | | if (latestSameLineKline != null && latestSameLineKline.getTs() >= periodTs) { |
| | | if (latestSameLineKline != null && latestSameLineKline.getTs() >= realtimeKline.getTs()) { |
| | | return null; |
| | | } |
| | | if (latestSameLineKline != null) { |
| | |
| | | if (klineOneTop5.isEmpty()) { |
| | | return null; |
| | | } |
| | | periodTs = klineOneTop5.get(0).getTs(); |
| | | realtimeKline = klineOneTop5.get(klineOneTop5.size() - 1); |
| | | |
| | | Double high = null; |
| | | Double low = null; |
| | |
| | | |
| | | Kline kline = new Kline(); |
| | | kline.setSymbol(symbol); |
| | | kline.setTs(periodTs); |
| | | kline.setTs(realtimeKline.getTs()); |
| | | if (latestSameLineKline != null) { |
| | | kline.setOpen(latestSameLineKline.getClose()); |
| | | } else { |
| | |
| | | if (latestKilne != null && latestKilne.getTs() >= realtime.getTs()) { |
| | | return null; |
| | | } |
| | | long lastKlineTs = latestKilne.getTs(); |
| | | realTimeList = realTimeList.stream().filter(r -> r.getTs() > lastKlineTs).collect(Collectors.toList()); |
| | | if (latestKilne != null) { |
| | | long lastKlineTs = latestKilne.getTs(); |
| | | realTimeList = realTimeList.stream().filter(r -> r.getTs() > lastKlineTs).collect(Collectors.toList()); |
| | | } |
| | | if (realTimeList.isEmpty()) { |
| | | return null; |
| | | } |
| | | Double high = null; |
| | | Double low = null; |
| | | for (Realtime realTime : realTimeList) { |