Skip to main content

Multi Chart

Type: multi_chart • Category: visualization

Description

Compose multiple layers (candle/line/renko) on a shared time axis

Parameters

NameTypeDescriptionRequiredDefault
widgetIdstringno
limitnumberno500
layersExprstringExpr -> list of layer configsno
layersarrayList of layer configs (each: type, rowsExpr/rows, mapping, style)no
appendbooleanAppend this single layer to existing widget layers (instead of replacing).nofalse
layerTypestringType of layer to addno
layerNamestringno
layerLimitnumberno500
layerRowsExprstringExpr -> list[dict] for the single layerno
openstringno
highstringno
lowstringno
closestringno
volumestringno
timestampstringno
valuestringLine/Renko value fieldno
boxSizenumberRenko box size (optional, auto if empty)no
colorstringLine colorno
widthnumberLine widthno1.5
opacitynumberLayer opacityno1
upColorstringCandle/Renko up colorno
downColorstringCandle/Renko down colorno
strokestringWick/Brick stroke colorno

Help

MultiChart Worker – Documentation

Overview

MultiChart is a single visualization widget that can render multiple chart layers—candlesticks, lines, Renko bricks, heat‑maps, bubbles, and more—on a shared time axis. By stacking different chart types (e.g., OHLC candles together with Bollinger Bands, Ichimoku clouds, and volume bars) analysts can inspect price action, volatility, and market depth in one coherent view.


Supported Layer Types

CategoryLayer types (examples)Typical use‑case
PriceCandle, Heikin‑Ashi, Bar, Equivolume (OHLC; Equivolume varies bar width by volume)Classic price‑action analysis
Line‑basedLine, Tick, Area (filled), Mountain (soft gradient)Trend lines, smoothed price curves
Brick‑styleRenko, Range Bar, Point & Figure (price‑movement bricks)Noise‑free trend detection
KagiKagi (thickened segments)Directional emphasis without fixed time bars
IndicatorsBollinger Bands (mid, upper, lower + fill), Ichimoku (Tenkan, Kijun, Span A/B cloud, Chikou)Volatility envelopes, multi‑time‑frame support
Volume & ProfileVolume (bars in a lower pane), Footprint (candle outline + optional buy/sell levels)Liquidity and order‑flow insight
HeatmapTime × category heat‑map (color = value)Event‑driven overlays (e.g., signal intensity)
ExtrasBubble (position = time/value, radius = size, optional colour from colorValue)Scatter‑style annotation of additional metrics

How to Add a MultiChart Widget (Step‑by‑Step)

  1. Insert the widget – In the workflow editor choose Widget → Visualization → MultiChart.
  2. Open the configurator – Click the widget to bring up its settings panel.
  3. Add a layer – Press Add layer, select the desired type from the list (each entry shows a short description).
  4. Supply required fields – Fill the data‑source expressions or static rows for the chosen layer (see Data Requirements below).
  5. Save / Apply – Confirm the layer configuration.
  6. Repeat – Add as many layers as needed (e.g., Candle + Bollinger + Ichimoku + Volume).

Data Requirements per Layer Type

LayerRequired fields (column names)Notes
Candle / Heikin‑Ashi / Bar / Equivolumetimestamp, open, high, low, close (Equivolume also needs volume)
Line / Tick / Area / Mountaintimestamp, value
Renko / Range Bar / Point & Figuretimestamp, open, close, up (boolean indicating upward movement)
Bollinger Bandstimestamp, middle, upper, lower
Kagitimestamp, value, thick, up
Volumetimestamp, volume
Bubbletimestamp, value, size, (optional) colorValue
Ichimoku (each series)timestamp, value (repeat for Tenkan, Kijun, Span A, Span B, Chikou)
Heatmaptimestamp, y (category name), value

All timestamps must be Unix epoch seconds and increase monotonically.


Global & Per‑Layer Styling Options

  • Global limit – Caps the total number of plotted points (improves performance on large datasets).
  • Show last chips – Toggles small “chips” that display the most recent value of each layer on the right‑hand side.

Per‑layer options (available depending on the type) include:

  • Line/Bar colour, width, opacity.
  • Candle up/down colours, wick (stroke) colour.
  • Bollinger band colours, fill opacity, line thickness.
  • Ichimoku component colours and cloud transparency.
  • Bubble minimum/maximum radius, colour palette, optional colorValue scaling.
  • Heat‑map palette (inferno, viridis, magma, plasma) and manual min/max limits.

Interaction Features

InteractionBehaviour
HoverA vertical guide line appears; a tooltip shows the timestamp and the values of all visible layers at that point (format adapts to the layer type).
Legend clickClicking a legend entry toggles the visibility of the corresponding layer, enabling quick side‑by‑side comparisons.
Last‑value chipsWhen enabled, a small chip on the right edge shows the latest value for each layer; chips auto‑offset to avoid overlap.

Best Practices

  • Layer count – Keep the total number of layers between 3 and 6 for optimal readability (e.g., Candle + Bollinger + Ichimoku + Volume).
  • Performance – Use the Global limit for datasets larger than a few thousand points to maintain smooth panning/zooming.
  • Brick layers – Avoid mixing multiple brick‑style layers (Renko, Range Bar, P&F) simultaneously; choose the one that best matches your analysis goal.
  • Heat‑map placement – Rendered in a dedicated lower pane; it does not affect the price‑scale of the main chart.

Common Issues & Troubleshooting

SymptomLikely causeFix
Empty chart / “no data”Field names mismatched or missing (ts, value, ohlc)Verify column names in the data source and ensure timestamps are in seconds.
Heat‑map shows no coloursMissing y (category) or value, or incorrect min/max rangeSupply both y and value; adjust palette limits if they are set manually.
Tooltip shows nothingLayer hidden in legend or data outside the current time windowRe‑enable the layer via the legend; ensure timestamps fall within the chart’s displayed range.
Over‑crowded chipsToo many layers with Show last chips enabledDisable chips for less‑important layers or increase the chart width.

Minimal Example Usage

Below is a compact JSON configuration that creates a MultiChart widget with a single candlestick layer and a Bollinger‑Band overlay. The example assumes the data source provides the required fields (timestamp, open, high, low, close, middle, upper, lower).

{
"widgetId": "multiChart_01",
"limit": 500,
"append": false,
"layers": [
{
"type": "candle",
"layerName": "Price",
"layerLimit": 500,
"layerRowsExpr": "SELECT timestamp, open, high, low, close FROM price_data",
"color": "#1f77b4",
"upColor": "#2ca02c",
"downColor": "#d62728",
"stroke": "#000000",
"width": 1.2,
"opacity": 1
},
{
"type": "bollinger",
"layerName": "BB",
"layerLimit": 500,
"layerRowsExpr": "SELECT timestamp, middle, upper, lower FROM bb_data",
"color": "#ff7f0e",
"width": 1,
"opacity": 0.6,
"fillColor": "#ffbb78"
}
],
"showLastChips": true,
"globalLimit": 1000
}

Explanation

  • widgetId – Unique identifier for the widget instance.
  • limit – Maximum points per layer (defaults to 500).
  • appendfalse replaces any existing layers; set to true to add without removal.
  • Each entry in layers defines a single chart layer: its type, a human‑readable layerName, the SQL‑like expression that returns the rows, and styling options.

When this configuration is applied, the widget renders OHLC candles together with the Bollinger Band envelope, shows the latest values as chips on the right, and supports hover tooltips and legend toggling out‑of‑the‑box.


Full Parameter Schema

ParameterTypeDefaultDescription
widgetIdstringIdentifier of the MultiChart widget.
limitnumber500Global point‑cap applied to every layer unless overridden.
layersExprstringExpression that evaluates to a list of layer configurations (alternative to layers).
layersarrayExplicit array of layer objects (each described below).
appendbooleanfalseIf true, the supplied layer(s) are added to existing ones; otherwise they replace all current layers.
layerTypestringType of a single layer when using the append mode (e.g., "candle").
layerNamestringHuman‑readable name shown in the legend.
layerLimitnumber500Point‑cap for this specific layer.
layerRowsExprstringExpression returning a list of row dictionaries for the layer.
openstringColumn name for the open price (used by OHLC‑type layers).
highstringColumn name for the high price.
lowstringColumn name for the low price.
closestringColumn name for the close price.
volumestringColumn name for volume (used by volume‑type layers).
timestampstringColumn name for the Unix‑epoch timestamp.
valuestringGeneric numeric field for line‑type or Renko value.
boxSizenumberFixed size of Renko bricks; if omitted the system auto‑calculates.
colorstringPrimary colour for lines, area fills, bubbles, etc.
widthnumber1.5Stroke width for line‑type layers.
opacitynumber1Transparency (0 = fully transparent, 1 = opaque).
upColorstringColour for upward candles or bricks.
downColorstringColour for downward candles or bricks.
strokestringColour of wicks or brick outlines.
upColorstringColour for upward movement in Kagi or Renko.
downColorstringColour for downward movement in Kagi or Renko.
colorValuestringOptional field that drives colour scaling for bubbles or heat‑maps.
heatmapPalettestring"viridis"Palette name for heat‑map colour mapping.
heatmapMin / heatmapMaxnumberManual lower/upper bounds for heat‑map scaling.
showLastChipsbooleantrueToggles the right‑hand “last value” chips.
globalLimitnumber1000Upper bound on total plotted points across all layers (overrides per‑layer limits if lower).