From 030e1d50c1f643137220f1ecf1d90ce39174204a Mon Sep 17 00:00:00 2001
From: dd <gitluke@outlook.com>
Date: Sat, 30 May 2026 01:58:54 +0800
Subject: [PATCH] 1

---
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineServiceImpl.java |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 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 52a25de..112215e 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,18 +207,23 @@
             }
             // 1分钟K线最新的5条数据,上个层级最近的几条数据
             List<Kline> klineOneTop5 = new ArrayList<>(klineOne.subList(klineOne.size() - nums, klineOne.size()));
-            Kline realtimeKline = klineOneTop5.get(nums - 1);
+            Kline realtimeKline = klineOneTop5.get(klineOneTop5.size() - 1);
             if (realtimeKline == null) {
                 return null;
             }
-            if (latestSameLineKline != null && latestSameLineKline.getTs() >= realtimeKline.getTs()) {
+            long periodTs = klineOneTop5.get(0).getTs();
+            if (latestSameLineKline != null && latestSameLineKline.getTs() >= periodTs) {
                 return null;
             }
             if (latestSameLineKline != null) {
                 long latestSameLineKlineTs = latestSameLineKline.getTs();
                 klineOneTop5 = klineOneTop5.stream().filter(r -> r.getTs() > latestSameLineKlineTs).collect(Collectors.toList());
             }
-
+            if (klineOneTop5.isEmpty()) {
+                return null;
+            }
+            periodTs = klineOneTop5.get(0).getTs();
+            realtimeKline = klineOneTop5.get(klineOneTop5.size() - 1);
 
             Double high = null;
             Double low = null;
@@ -233,7 +238,7 @@
 
             Kline kline = new Kline();
             kline.setSymbol(symbol);
-            kline.setTs(realtimeKline.getTs());
+            kline.setTs(periodTs);
             if (latestSameLineKline != null) {
                 kline.setOpen(latestSameLineKline.getClose());
             } else {

--
Gitblit v1.9.3