Skip to main content

Data Window

TradeScript terminal workspace showing the chart context inspected by the Data Window
Open the Layers surface to inspect the selected chart point; the field-source table below maps each visible value to its owner.

The Data Window is a compact list of labeled values for the current crosshair point — a feed-owned snapshot of OHLCV, indicator, fundamental, or venue-specific fields for one symbol, interval, and time.

Where it opens from depends on the Object Tree. With the Object Tree enabled, the Data Window is the second tab in the unified Objects and Data panel, opened by the Layers button in the top period bar. Without it, the chart keeps a standalone data-window toolbar button.

The open panel is a themed card anchored to the chart, containing:

  • A tab strip: Object tree and Data window.
  • A header naming the active symbol and interval.
  • One row per value — label on the left, formatted value on the right, with an optional color swatch supplied by the feed.

Field origin

Every displayed field maps to a source and a reproducible chart state:

Displayed fieldSourceReproducible state
Symbol and interval headerChart context supplied by the SDKChange symbol or interval; the header follows
Time of the inspected pointCrosshair location (bar time)Move the crosshair to a specific bar
Value rows (id, label, value, color)Datafeed response from getDataWindowSame crosshair point always issues the same request
Unavailable value labelChartDisplaySettings.dataWindowUnavailableValueLabelReturn null/undefined for a value

Update timing

The surface is available when features.dataWindow is not false and the datafeed capability supportsDataWindow is enabled. Opening the tab requests the current symbol, interval, and crosshair location through MarketDataController.getDataWindow. While visible, it refreshes from typed crosshair, bar, symbol, and interval controller events; the refresh button uses the same request path.

Empty, loading, and error states

StatePanel behavior
No crosshairUse the documented current/latest-bar policy or explain that a point must be selected
LoadingKeep the selection context visible and mark values as updating
Missing fieldRender the configured unavailable label or hide only when explicitly configured
Empty responseShow an intentional "No values for this point" state
ErrorKeep the panel open, identify the failed request, and expose retry

Feed health, connection state, and latency are not inferred by the panel. A future live-feed monitor should display those only after the datafeed exposes a typed status contract.

Configuration

sdk.chart.mount({
mount: '#chart',
symbol: 'AAPL',
interval: '1D',
datafeed: {
async loadBars(request) {
return { bars: await loadBars(request) };
},
async getDataWindow(request) {
return {
symbol: request.symbol,
interval: request.interval,
time: request.time,
values: [
{ id: 'open', label: 'Open', value: 190.12 },
{ id: 'close', label: 'Close', value: 191.4 },
{ id: 'vwap', label: 'VWAP', value: 190.78, color: '#38bdf8' },
],
};
},
},
features: {
dataWindow: true,
objectTree: { defaultOpen: false },
},
});
NeedSurface
Remove the toolbar controlfeatures.dataWindow: false
Advertise feed supportDatafeed capability supportsDataWindow
Supply valuesMarketDataFeed.getDataWindow
Label for null/undefined valuesChartDisplaySettings.dataWindowUnavailableValueLabel
Hide rows with null/undefined valuesChartDisplaySettings.hideUnavailableDataWindowValues

The request is datafeed-owned. The SDK supplies chart context; the feed decides which OHLCV, indicator, fundamental, or venue-specific values are present.