From 6e09aa2c20ff596c2dfae165d94a9af8ce281030 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 05 Jun 2026 10:12:12 +0800
Subject: [PATCH] 1

---
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineServiceImpl.java |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineServiceImpl.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineServiceImpl.java
index 112215e..2f7a1e8 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineServiceImpl.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineServiceImpl.java
@@ -207,12 +207,11 @@
             }
             // 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) {
@@ -222,8 +221,6 @@
             if (klineOneTop5.isEmpty()) {
                 return null;
             }
-            periodTs = klineOneTop5.get(0).getTs();
-            realtimeKline = klineOneTop5.get(klineOneTop5.size() - 1);
 
             Double high = null;
             Double low = null;
@@ -238,7 +235,7 @@
 
             Kline kline = new Kline();
             kline.setSymbol(symbol);
-            kline.setTs(periodTs);
+            kline.setTs(realtimeKline.getTs());
             if (latestSameLineKline != null) {
                 kline.setOpen(latestSameLineKline.getClose());
             } else {
@@ -681,8 +678,13 @@
             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) {

--
Gitblit v1.9.3