Skip to content

Charts · Interaction

Synchronised research stack

Three charts, two different engines, one crosshair and one visible range. Synchronisation is Luc UI's, not the engine's: the bus carries a normalised timestamp and window, so ECharts and Lightweight Charts follow each other without either knowing the other exists.

Cross-engine stack

Move the pointer across any pane. Scroll or drag to change the visible window; all three follow. Each chart publishes only what it owns, and a subscriber never receives its own event.

Price

Lightweight Charts · candlestick, volume pane

Funding rate

Apache ECharts · line with a zero reference

Realized volatility

Apache ECharts · area with a prepared band

Same-engine sync

A price line and a volume bar chart sharing a group. The range selector is absent on purpose: the demo is about the crosshair and the window, not about refetching.

Close

Volume

How it works

Two rules do all the work.

Normalised events

The bus carries milliseconds and a window. Each adapter converts at its own boundary: ECharts already speaks milliseconds, Lightweight Charts speaks seconds, and nothing downstream has to know that.

Loop protection

A publish carries its origin id, and a subscriber never receives its own event. While an adapter applies a remote value it sets a guard so the engine's resulting event is not re-published.

<ChartSyncGroup groupId="research-stack"> <FinancialChart candles={candles} syncGroup="research-stack" /> <LineChart data={rows} xKey="time" syncGroup="research-stack" series={funding} /> <LineChart data={rows} xKey="time" syncGroup="research-stack" series={vol} /> </ChartSyncGroup>
Luc UI v1.0Homedark theme