Multi Chart
Type:
multi_chart
• Category:visualization
Description
Compose multiple layers (candle/line/renko) on a shared time axis
Parameters
Name | Type | Description | Required | Default |
---|---|---|---|---|
widgetId | string | no | ||
limit | number | no | 500 | |
layersExpr | string | Expr -> list of layer configs | no | |
layers | array | List of layer configs (each: type, rowsExpr/rows, mapping, style) | no | |
append | boolean | Append this single layer to existing widget layers (instead of replacing). | no | false |
layerType | string | Type of layer to add | no | |
layerName | string | no | ||
layerLimit | number | no | 500 | |
layerRowsExpr | string | Expr -> list[dict] for the single layer | no | |
open | string | no | ||
high | string | no | ||
low | string | no | ||
close | string | no | ||
volume | string | no | ||
timestamp | string | no | ||
value | string | Line/Renko value field | no | |
boxSize | number | Renko box size (optional, auto if empty) | no | |
color | string | Line color | no | |
width | number | Line width | no | 1.5 |
opacity | number | Layer opacity | no | 1 |
upColor | string | Candle/Renko up color | no | |
downColor | string | Candle/Renko down color | no | |
stroke | string | Wick/Brick stroke color | no |
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
Category | Layer types (examples) | Typical use‑case |
---|---|---|
Price | Candle, Heikin‑Ashi, Bar, Equivolume (OHLC; Equivolume varies bar width by volume) | Classic price‑action analysis |
Line‑based | Line, Tick, Area (filled), Mountain (soft gradient) | Trend lines, smoothed price curves |
Brick‑style | Renko, Range Bar, Point & Figure (price‑movement bricks) | Noise‑free trend detection |
Kagi | Kagi (thickened segments) | Directional emphasis without fixed time bars |
Indicators | Bollinger Bands (mid, upper, lower + fill), Ichimoku (Tenkan, Kijun, Span A/B cloud, Chikou) | Volatility envelopes, multi‑time‑frame support |
Volume & Profile | Volume (bars in a lower pane), Footprint (candle outline + optional buy/sell levels) | Liquidity and order‑flow insight |
Heatmap | Time × category heat‑map (color = value) | Event‑driven overlays (e.g., signal intensity) |
Extras | Bubble (position = time/value, radius = size, optional colour from colorValue ) | Scatter‑style annotation of additional metrics |
How to Add a MultiChart Widget (Step‑by‑Step)
- Insert the widget – In the workflow editor choose Widget → Visualization → MultiChart.
- Open the configurator – Click the widget to bring up its settings panel.
- Add a layer – Press Add layer, select the desired type from the list (each entry shows a short description).
- Supply required fields – Fill the data‑source expressions or static rows for the chosen layer (see Data Requirements below).
- Save / Apply – Confirm the layer configuration.
- Repeat – Add as many layers as needed (e.g., Candle + Bollinger + Ichimoku + Volume).
Data Requirements per Layer Type
Layer | Required fields (column names) | Notes |
---|---|---|
Candle / Heikin‑Ashi / Bar / Equivolume | timestamp , open , high , low , close (Equivolume also needs volume ) | |
Line / Tick / Area / Mountain | timestamp , value | |
Renko / Range Bar / Point & Figure | timestamp , open , close , up (boolean indicating upward movement) | |
Bollinger Bands | timestamp , middle , upper , lower | |
Kagi | timestamp , value , thick , up | |
Volume | timestamp , volume | |
Bubble | timestamp , value , size , (optional) colorValue | |
Ichimoku (each series) | timestamp , value (repeat for Tenkan, Kijun, Span A, Span B, Chikou) | |
Heatmap | timestamp , 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
Interaction | Behaviour |
---|---|
Hover | A 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 click | Clicking a legend entry toggles the visibility of the corresponding layer, enabling quick side‑by‑side comparisons. |
Last‑value chips | When 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
Symptom | Likely cause | Fix |
---|---|---|
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 colours | Missing y (category) or value , or incorrect min/max range | Supply both y and value ; adjust palette limits if they are set manually. |
Tooltip shows nothing | Layer hidden in legend or data outside the current time window | Re‑enable the layer via the legend; ensure timestamps fall within the chart’s displayed range. |
Over‑crowded chips | Too many layers with Show last chips enabled | Disable 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).append
–false
replaces any existing layers; set totrue
to add without removal.- Each entry in
layers
defines a single chart layer: itstype
, a human‑readablelayerName
, 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
Parameter | Type | Default | Description |
---|---|---|---|
widgetId | string | – | Identifier of the MultiChart widget. |
limit | number | 500 | Global point‑cap applied to every layer unless overridden. |
layersExpr | string | – | Expression that evaluates to a list of layer configurations (alternative to layers ). |
layers | array | – | Explicit array of layer objects (each described below). |
append | boolean | false | If true , the supplied layer(s) are added to existing ones; otherwise they replace all current layers. |
layerType | string | – | Type of a single layer when using the append mode (e.g., "candle" ). |
layerName | string | – | Human‑readable name shown in the legend. |
layerLimit | number | 500 | Point‑cap for this specific layer. |
layerRowsExpr | string | – | Expression returning a list of row dictionaries for the layer. |
open | string | – | Column name for the open price (used by OHLC‑type layers). |
high | string | – | Column name for the high price. |
low | string | – | Column name for the low price. |
close | string | – | Column name for the close price. |
volume | string | – | Column name for volume (used by volume‑type layers). |
timestamp | string | – | Column name for the Unix‑epoch timestamp. |
value | string | – | Generic numeric field for line‑type or Renko value. |
boxSize | number | – | Fixed size of Renko bricks; if omitted the system auto‑calculates. |
color | string | – | Primary colour for lines, area fills, bubbles, etc. |
width | number | 1.5 | Stroke width for line‑type layers. |
opacity | number | 1 | Transparency (0 = fully transparent, 1 = opaque). |
upColor | string | – | Colour for upward candles or bricks. |
downColor | string | – | Colour for downward candles or bricks. |
stroke | string | – | Colour of wicks or brick outlines. |
upColor | string | – | Colour for upward movement in Kagi or Renko. |
downColor | string | – | Colour for downward movement in Kagi or Renko. |
colorValue | string | – | Optional field that drives colour scaling for bubbles or heat‑maps. |
heatmapPalette | string | "viridis" | Palette name for heat‑map colour mapping. |
heatmapMin / heatmapMax | number | – | Manual lower/upper bounds for heat‑map scaling. |
showLastChips | boolean | true | Toggles the right‑hand “last value” chips. |
globalLimit | number | 1000 | Upper bound on total plotted points across all layers (overrides per‑layer limits if lower). |