From 054cf01b7a6a1b8825fd83d9a3a583860ded5558 Mon Sep 17 00:00:00 2001 From: dekun Date: Tue, 2 Jun 2026 12:26:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A1=8C=E6=83=85=E5=8C=BA?= =?UTF-8?q?=20K=20=E7=BA=BF=E5=8F=B3=E4=BE=A7=2010=20=E6=A0=B9=E7=95=99?= =?UTF-8?q?=E7=99=BD=E8=A2=AB=E5=8F=AF=E8=A7=81=E8=8C=83=E5=9B=B4=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- manual_trading_hub/static/chart.js | 14 ++++++++++++-- manual_trading_hub/static/index.html | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/manual_trading_hub/static/chart.js b/manual_trading_hub/static/chart.js index 54f9e08..8a01b9a 100644 --- a/manual_trading_hub/static/chart.js +++ b/manual_trading_hub/static/chart.js @@ -386,13 +386,22 @@ return (exKey || "") + "|" + (sym || "") + "|" + (tf || ""); } + function applyChartRightGap() { + if (!chart) return; + chart.timeScale().applyOptions({ + rightOffset: RIGHT_OFFSET_BARS, + fixRightEdge: false, + }); + } + function applyDefaultVisibleRange() { if (!chart || !lastCandles.length) return; const n = lastCandles.length; const visible = Math.min(DEFAULT_VISIBLE_BARS, n); const from = Math.max(0, n - visible); - const to = n - 1; - chart.timeScale().applyOptions({ rightOffset: RIGHT_OFFSET_BARS }); + // to 延伸到最后一根 K 线之后,留出 RIGHT_OFFSET_BARS 根空白(K 线与价格轴间距) + const to = n - 1 + RIGHT_OFFSET_BARS; + applyChartRightGap(); chart.timeScale().setVisibleLogicalRange({ from: from, to: to }); } @@ -535,6 +544,7 @@ indexCandles(lastCandles); candleSeries.setData(lastCandles); volumeSeries.setData(buildVolumeData(lastCandles)); + applyChartRightGap(); if (resetView) { lastViewKey = vKey; applyDefaultVisibleRange(); diff --git a/manual_trading_hub/static/index.html b/manual_trading_hub/static/index.html index 788ed50..719442e 100644 --- a/manual_trading_hub/static/index.html +++ b/manual_trading_hub/static/index.html @@ -193,7 +193,7 @@
- - + +