Add toggle before technical indicators to show blue dashed vertical lines at Beijing 8:00 day boundaries.
Co-authored-by: Cursor <cursoragent@cursor.com>
Force refresh wipes the series in hub_kline.db before pulling from the exchange; add a Linux clear script and rename the UI button to 清库重拉.
Co-authored-by: Cursor <cursoragent@cursor.com>
When auto-follow is off, refresh only updates the latest bars via series.update instead of setData so zoom and pan stay fixed during background polls.
Co-authored-by: Cursor <cursoragent@cursor.com>
On tail refresh, auto-on always snaps to latest candles while auto-off preserves the saved viewport with clamped range restore.
Co-authored-by: Cursor <cursoragent@cursor.com>
Tie the market auto toggle to both price scale and viewport: tail refresh updates data silently while preserving zoom/pan when auto is disabled.
Co-authored-by: Cursor <cursoragent@cursor.com>
Load 2000 bars for 1m/5m/15m, 1000 for 1h/2h/4h, and 500 for 1d/1w on first screen instead of 300-bar chunked defaults.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove pendingViewportEpoch, fetch only 30 tail bars on poll, restore wasViewingTail logic, and fix left-scroll range shift from actual merge delta.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use pendingViewportEpoch so tail refresh applies default range on new timeframe instead of reusing the previous period's saved range.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the user viewport when SSE updates candles so zooming out to see the full series is not reset to the recent 200-bar view.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop 12h from market chart options and storage, and avoid left-pan reload and tail refresh from resetting the viewport while zooming.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reset visible range and block stale left-pan/tail refresh from applying the previous period logical range to new candles.
Co-authored-by: Cursor <cursoragent@cursor.com>
Store 1m/5m/1h/12h/1d/1w with per-timeframe policies, aggregate 15m and 2h/4h on read, and support left-pan history fetches via before_ms.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use plan margin x leverage x price change with latest K-line close instead of stale board snapshot floating_pnl.
Co-authored-by: Cursor <cursoragent@cursor.com>
Pass unrealized PnL from monitor jump context, refresh from board snapshot, and let users drag the SL price line to call the same place-tpsl API as the monitor entrust dialog.
Co-authored-by: Cursor <cursoragent@cursor.com>
Position cards show trend plan source, risk%, program TP price and RR; trend section uses plan grid; hub API enriches floating PnL and planned_rr.
Co-authored-by: Cursor <cursoragent@cursor.com>