OptionalaccountOptionalanimEase automatic price ranges during navigation. Defaults to animZoom (true).
OptionalanimEase a wheel zoom over a few frames instead of landing the whole step on one. Default true, matching the inertial pan a flick already gets: a chart that glides when panned and jumps when zoomed reads as two different instruments. Off restores the single-frame step.
OptionalariaAccessible label for the chart container (screen readers).
OptionalaxisOptional chrome on the axis strips: the corner clock and the bar-close countdown. Both are off unless asked for, so a chart that omits this block draws the axes it always drew.
OptionalbarsWhere an indicator gets another instrument's bars. The engine is handed
one symbol's history and owns no transport, so a study that compares
against a benchmark asks through this and the host answers from wherever
it keeps candles. Change it later with setBarsProvider. Without one an
indicator's requestBars rejects, and the study reports itself
unsupported rather than drawing something invented.
OptionalbottombarOne bottom bar under the grid, acting on the active chart: preset ranges,
Go to, the market status, the clock and the price scale toggles (since
2.5.10). The charts then leave Go to out of their own bars and the market
status off their status lines. Default false, as for toolbar: each
chart keeps both.
OptionalbrandingOpenAlgo corner mark by default. Pass false to hide it or options for custom branding.
OptionalcanHost capability validation, including derivable intervals.
OptionalcanvasThe settings dialog's Canvas block: grid, crosshair, scale text/lines and
plot margins. Every field is an override of the theme, so a later
setTheme still restyles anything the dialog did not touch.
OptionalchartPrimary chart type. Default candlestick. A registered renderer, or a
transform the chart applies (registeredSeriesTransforms, once the
transform tier is imported).
OptionalcompactAt or below this width in CSS px only the active chart shows, with tabs to switch. 0 turns it off. Default 640.
OptionalconflateLevel of detail for a zoomed-out chart (§4.4). Default true: once bars are
narrower than the stick a candle is drawn with (about one CSS px; exactly
one at a whole pixel ratio), the bars sharing a device-pixel column are
drawn as one OHLC-preserving stick (open of the first, close of the last,
the column's high and low), and line and histogram series keep each
column's first, lowest, highest and last values. A frame then costs the
plot's width, not the number of bars in view. Above that spacing nothing
changes. Data, autoscale, indicators and the crosshair still see every
bar. false draws every bar at every zoom.
The default time scale never zooms out past one bar per CSS px
(timeScale.minBarSpacing: 1), so it matters once a host lowers that floor.
OptionalconflationColumn width in sticks (default 1). Higher merges into wider columns, and from spacings that many times wider, for a coarser, cheaper picture.
OptionalcrosshairCrosshair behaviour. 'normal' (default): the cross follows the pointer exactly. 'magnet': the horizontal line snaps to the nearest O/H/L/C of the bar under the cursor (price pane only).
OptionalcrosshairSnap the vertical crosshair to the nearest primary bar's center. Default false; independent of the price magnet.
OptionaldocumentOptionaldoubleWhat a double-click on a pane does. 'reset' (the default, and what the
chart has always done) fits every loaded bar on screen and autoscales,
which also lands the viewport on the oldest bar and so wakes a history
loader. 'maximize' gives the pane the whole stack, and a second
double-click puts the stack back, which is what a multi-pane terminal
usually wants from the gesture. 'none' only emits the event. While a
tool is being placed a double-click finishes the shape whatever this says.
OptionaldrawingWhose drawings the chart shows. 'instrument' (default): each symbol and
exchange keeps its own, saved when the chart moves to another instrument
and brought back when it returns, which is what a trader drawing levels
expects. 'chart': one drawing set that stays on screen whatever
instrument is loaded, as earlier releases did, for a host that wants
drawings to follow the chart.
OptionaldrawingSaved drawing looks, a tool's default and named templates: a DrawingTemplateRepository from openalgo-charts/workspace.
OptionaldrawingThe floating toolbar over the selected drawings on a desktop layout. Default: shown with the rail.
OptionaleventEvent marker clicks open details. Set false to provide a host-owned view.
OptionalexchangeExchange passed to the feed with the symbol. Default ''.
OptionalfeedWhere the charts load bars: one feed for every chart, or a function that
builds each chart's feed from its pane id and the historyPeriod its
workspace pane carries, for a host whose source answers by period.
OptionalgridGrid lines: visibility (both default to true) plus per-axis colour, dash, width and spacing. Unset colours/dashes fall through to the theme.
OptionalindicatorCollapse study legend rows into a count without hiding their plots or stopping calculations. Default false.
OptionalindicatorsShow the Indicators button. Default true.
OptionalintervalInterval code the registry knows (a built-in token or one passed to registerInterval). Default 1d.
OptionalintervalsOffered intervals, each a known code. Default: DEFAULT_INTERVALS plus every registered code. Favorites and the current interval appear as pills.
OptionallayoutsWhat the grid bar's Layouts control drives instead of the grid's own
controller: one the host built over this grid; false for no control.
Without the bar (toolbar), a controller given here drives each chart's
own Layouts button instead. A chart never saves a layout of its own inside
a grid.
OptionallegendSquare side of a legend action button in media px. Default 16, held to 12..28. Applied to every pane legend, because the rows stack against it.
OptionallegendWhere indicator legend rows start inside one pane, in media px. A host that draws its own overlay in a pane's top-left corner (an OHLC readout, a symbol line, a trade panel) needs to push these clear of it, or the rows land underneath and their settings / close buttons become invisible and unclickable.
It follows the primary price pane, which is at the top until something moves it below its studies: a readout of the price belongs to the price pane, wherever it sits. Maximizing a study pane hides the price pane, so the maximized pane, now in the same corner, inherits the offset. Every other pane keeps the default corner, because a short study pane would have its legend pushed off it entirely.
Defaults to { top: 6, left: 8 }.
OptionallinksLink channels the first group starts with, and every new group. Default: crosshair and viewport on, the rest off.
OptionalloadingShared history, paging and recovery options. now here uses UTC seconds.
OptionallocaleBCP 47 tag for the numbers on the status line. Default: the runtime's.
OptionallookbackHow many bars a load asks the feed for. Default DEFAULT_LOOKBACK_BARS.
OptionalmobileNarrow controls. Auto activates when the container is at most 640 CSS px wide, or, with a coarse primary pointer, at most 960 px wide and under 600 px tall (a phone on its side); a tablet or a touch laptop keeps the desktop chrome. Default auto.
OptionalmovableLet the primary price pane leave the top of the stack: below its studies
through movePane, setPrimaryPaneIndex, a study pane's own up and down
controls, or a restored layout that saved it lower down. Default false,
which keeps the price pane pinned at slot 0 exactly as every earlier
release did: movePane refuses to move or displace it,
setPrimaryPaneIndex returns false, and restoreState refuses a layout
that puts it anywhere else, so an explicit pane 0 always means the price.
Opt-in because a host that passes 0 to mean the price pane (a price or
order line, coordinateToPrice(y, 0) pricing a right-click order, a price
alert check, panes()[0]) would read a study's units the moment a user
moved a study above the candles. Before turning it on, drop those explicit
zeros or ask primaryPaneIndex(), and follow paneMoved. Decided once,
at construction; read it back with movablePrimaryPane(). createWidget
and createChartGrid hand it to their charts as given, off by default too.
OptionalnavigationSaved navigation preferences, also exposed in the Axes settings tab.
OptionalnewsA docked reader for the chart instrument's news. Needs panels.
OptionalnowThe widget's wall clock, in epoch milliseconds: the history load window,
the loading controller's clock (unless loading.now gives it one, in UTC
seconds), the status line and the bottom bar's clock and ranges. Default
Date.now. It shadows ChartOptions.now, the chart's animation clock
(monotonic, performance.now by default), which the widget does not pass
to its chart: its kinetic animation runs on the real clock.
OptionalonOrder entry from the right-click menu. Without it the menu draws no trade rows.
OptionalpanelsDocked Data and Objects panels. False retains the original Objects dialog. Default true.
OptionalpersistKeep the workspace between visits: true for one shared namespace, a string to name one. Default off.
OptionalpixelOptionalpresetThe layout to start with when nothing is restored: a preset or any CHART_GRID_LAYOUTS id. Default 1x1.
OptionalpresetsThe layouts the bar's picker offers, in its order, as intervals lists
the intervals beside interval. Default: every CHART_GRID_LAYOUTS
entry. Empty: the bar has no Layout control. (layouts keeps its widget
meaning here: the saved-layouts controller every chart's menu drives.)
OptionalpriceOptionalpriceCustom price formatter for every pane's axis tick labels, the last-price
tag, and price-line labels. e.g. (p) => '$' + p.toFixed(2). When omitted,
a tick-size-aware toFixed is used. Change it later via setPriceFormatter.
OptionalpriceFit the primary series' scale to that series only. Does not enable auto-fit. Default false.
OptionalpriceDefault price-scale options applied to every pane (tick size minMove,
mode: 'linear' | 'logarithmic' | 'percentage' | 'indexed-to-100',
inverted, and top/bottom margins). minMove is the instrument's, so it
lands only on panes that quote it, see setPriceScaleOptions.
Tune a single pane later via chart.panes()[n].priceScale.setOptions(...).
OptionalrafThe frame scheduler, for deterministic tests. Supplied, it runs every frame the chart paints, the one after a resize or a new pixel ratio included; with the default one the chart paints those inside the callback that reports them, so a resize never shows a cleared canvas.
OptionalrailThe drawing rail. false hides it; an object restricts its tools or seeds its pins. Default on.
OptionalrangesPreset ranges for the bar and setRange. [] leaves the range buttons out. Default DEFAULT_RANGES.
OptionalrenderBuild the backend directly, one call per pane, bypassing renderer and
the registry. For a host bringing its own backend, and for tests that
want to see what the pane asks a backend to paint. A factory that returns
null gets the 2D backend for that pane.
OptionalrendererWhich backend paints the series. 'canvas2d' (the default) is the 2D
path every chart has always drawn with. 'webgl2' asks for the GPU
backend: it throws when the tier that registers it has not been imported
(a missing import is a mistake in the code), and on a device where that
tier finds no WebGL2 it falls back to canvas2d with one console warning
(a property of the machine the host should still hear about). 'auto'
takes webgl2 when it is registered and available on this device and
canvas2d otherwise, silently. Decided once, at construction; read what
was actually chosen from rendererKind. A GPU backend that loses its
context later moves the chart to canvas2d for the rest of the session
and emits 'renderer:fallback'.
OptionalsessionTrading hours, applied with chart.setSessionCalendar for the first
symbol and on every symbol change. They size a range's fetch in
sessions, give the bar its market status and the shading its hours.
Default: the widget leaves the chart's calendar to the host.
OptionalsessionShade the pre-open, post-close and extended-hours bars from the chart's
calendar (attachSessionShading). A calendar without those hours, or no
calendar, shades nothing. Default true.
OptionalshortcutsKeyboard shortcuts. Pass a configured ShortcutManager, options to build
one, or false to disable keyboard control. Defaults to the built-in keymap.
OptionalshortcutsThe ? panel lets the user change the widget's and the chart's chords,
kept in storage when persist is on. False lists them only and applies
no saved chords. Default true.
OptionalstatuslineOptionalstatusPer-field status-line switches applied to every pane legend on the chart.
OptionalstorageThe store behind persist. Default: IndexedDB where the page has it
(since 2.5.10), else the page's localStorage. Over an asynchronous
store the saved desk lands when ready settles; a synchronous one, such
as localStorage passed here, restores it before createChartGrid returns.
OptionalstyleHost CSP nonce for the widget and dialog stylesheet, assigned before insertion.
OptionalsymbolOptionalsymbolSymbol lookup for the top bar's box, called as the user types. Default: the feed's searchSymbols, when it has one.
Optionalthemedark (default), light, or a full ChartTheme; the chrome derives its palette from it.
OptionaltimeOptionaltimeCustom time-axis and crosshair label formatter (receives UTC seconds). When
omitted, labels follow timezone, which is IST unless set. e.g. for UTC:
(s) => new Date(s * 1000).toISOString().slice(11, 16).
OptionaltimeframeShare favorites and custom choices across host-owned chart panes.
OptionaltimeHover-revealed zoom / step controls above the time axis, as terminals show.
true by default: they stay invisible until the pointer nears the bottom
of the chart. Pass false to drop them, or an options object to restyle.
OptionaltimeInitial horizontal scale configuration, including spacing limits for wide profiles.
OptionaltimezoneIANA zone the time axis and crosshair label in, e.g. 'America/New_York' or 'Europe/London'. Defaults to 'Asia/Kolkata': a caller who passes nothing gets exactly the labels the chart produced before this option existed.
An IANA name and not a fixed offset, because a zone that observes DST is a
different offset in July than in January and a fixed one is silently wrong
for half the year. Change it at runtime with setTimezone when the terminal
moves between an NSE symbol and a US one. An explicit timeFormatter
outranks this: a host that formats its own labels has settled the question.
Throws if the runtime does not recognise the name.
OptionaltoolbarShow the grid bar over the charts: the layout picker, maximize and
restore, the link menu, a capture of every chart and, with workspaces,
the desk's saved layouts. Default false, so a host with its own controls
keeps its page as it was.
OptionaltopbarOptionaltradingSupported host order routes, optionally resolved again for each request.
OptionaltradingLocks order entry during host replay selection or workspace transitions.
OptionaltradingThe requested execution mode when the host capabilities constrain it.
OptionaltranslateHost translations for widget chrome and dialogs, with English fallback.
OptionaltypingUnclaimed letters and digits open symbol and interval entry on the focused chart. Default true.
OptionalvariantWhich of the feed's series to show: a session, an adjustment, a currency
or a unit. Default: the feed's own default series. The feed must declare
it through dataVariants, or the chart reports it unsupported.
OptionalwatchlistA docked watchlist: named lists from a store (a WatchlistRepository from
openalgo-charts/workspace), with prices only from quotes. Needs panels.
OptionalwatermarkBackground text, off by default. Blank text follows setDataContext.
OptionalworkspacesSaved layouts of the whole desk, and indicator templates in every
chart's picker: a WorkspaceRepository from openalgo-charts/workspace,
or a host's own WorkspaceStore. With the grid bar (toolbar) the grid
keeps a layouts controller over every chart: a Layouts control in the bar
saves and opens the desk, autosave follows it, and the layout that was
active when the page last closed opens once ready settles, unless the
host has applied a workspace by then. Without the bar the charts get their
templates only. Taken as a type only.
OptionalzoomWhat a wheel zoom holds still: the bar under the cursor, or the right edge
(the latest bar). Default 'cursor', which is what the chart has always
done. 'right' keeps the most recent bar pinned while history stretches
away from it, which is what a live chart usually wants.
Account state for the status line, usually a trade-tier
AccountManager. Omitted shows no account; a source whose provider declares no accounts is shown disabled with the reason. It only reads and switches accounts.