Indicators
66 built-in indicators. Add by id; each registry entry validates its own params.
Adding an indicator
const instanceId = chart.addIndicator('rsi', { period: 14 }, 'bottom')
chart.updateIndicator(instanceId, { period: 21 })
chart.removeIndicator(instanceId) Overlay indicators
Drawn on the main price pane.
| id | Name |
|---|---|
sma | Simple Moving Average |
ema | Exponential Moving Average |
wma | Weighted Moving Average |
hullMa | Hull Moving Average |
mtfma | MTF Moving Average (higher-timeframe MA, non-repainting) |
bollingerBands | Bollinger Bands |
keltnerChannels | Keltner Channels |
donchianChannels | Donchian Channels |
vwap | VWAP |
anchoredVwap | Anchored VWAP |
svwap | Session VWAP (resets each day; optional ±σ bands via bands: 1–3) |
parabolicSar | Parabolic SAR |
supertrend | Supertrend |
ichimoku | Ichimoku Kinko Hyo |
pivotPoints | Pivot Points (Classic) |
zigzag | ZigZag |
linearRegressionChannel | Linear Regression Channel |
chandelier | Chandelier Exit (ATR trailing-stop levels, long & short) |
alligator | Williams Alligator (3 displaced smoothed MAs: jaw/teeth/lips) |
mtfma plots a moving average from a higher timeframe on the
current chart — e.g. the daily 50-MA while viewing 1h bars. It averages only completed higher-timeframe closes, so it steps at each boundary and
never repaints. Configure period and timeframe from
the indicator's gear dialog (or addIndicator('mtfma', { period: 50,
timeframe: '1d' })).
Panel indicators
Rendered in their own pane beneath the chart.
| id | Name |
|---|---|
rsi | Relative Strength Index |
macd | MACD |
stochastic | Stochastic |
stochrsi | Stochastic RSI (stochastic of RSI; %K/%D, 20/80 bands) |
atr | Average True Range |
adx | Average Directional Index |
cci | Commodity Channel Index |
mfi | Money Flow Index |
williamsR | Williams %R |
obv | On-Balance Volume |
chaikinOscillator | Chaikin Oscillator (exposes cumulative ADL) |
voldelta | Volume Delta (directional volume; per-bar or cumulative) |
vortex | Vortex Indicator (VI+ / VI−; trend direction & strength) |
chop | Choppiness Index (trend vs range, 0–100; >61.8 choppy, <38.2 trending) |
uo | Ultimate Oscillator (3-timeframe momentum, 0–100; 30/70 bands) |
fi | Force Index (price change × volume, EMA-smoothed; zero-centered) |
crsi | Connors RSI (composite RSI + streak-RSI + percent-rank, 0–100; 10/90 bands) |
coppock | Coppock Curve (long-term momentum; WMA of two ROCs; zero-centered) |
kst | Know Sure Thing (4 smoothed ROCs weighted 1:2:3:4 + signal line) |
elderray | Elder Ray (Bull Power / Bear Power vs an EMA of close) |
stc | Schaff Trend Cycle (MACD via double stochastic, 0–100; 25/75 bands) |
kvo | Klinger Oscillator (volume-force money-flow + signal line) |
fisher | Fisher Transform (Gaussian-normalized price + trigger line) |
dpo | Detrended Price Oscillator (isolates cycles by removing the trend) |
bop | Balance of Power (buyers vs sellers per bar; SMA-smoothed) |
massindex | Mass Index (range-bulge reversal detector; 26.5/27 bands) |
cmo | Chande Momentum (−100…+100 net momentum; ±50 bands) |
trix | TRIX (triple-smoothed EMA rate of change + signal line) |
emv | Ease of Movement (midpoint move per unit volume; SMA-smoothed) |
pvt | Price Volume Trend (cumulative volume weighted by % price change) |
wad | Williams A/D (cumulative accumulation/distribution line) |
chaikinvol | Chaikin Volatility (% rate of change of an EMA of the high-low range; zero-centered) |
rvi | Relative Vigor Index (close-vs-open vigor, range-normalized + signal line) |
ppo | Percentage Price Oscillator (MACD in % terms; line + signal + histogram) |
ac | Accelerator Oscillator (Bill Williams; AO − SMA(AO,5) histogram) |
rmi | Relative Momentum Index (RSI with a momentum lookback; 30/70 bands) |
disparity | Disparity Index (% distance of close from its SMA; zero-centered) |
qstick | Qstick (SMA of the close−open body; candlestick sentiment, zero-centered) |
pgo | Pretty Good Oscillator (close−SMA in ATR units; ±3 breakout bands) |
awesomeOscillator | Awesome Oscillator |
momentum | Momentum |
roc | Rate of Change |
volume | Volume bars |
volumeRoc | Volume Rate of Change |
standardDeviation | Standard Deviation |
trix | TRIX |
voldelta (Volume Delta) approximates buy/sell pressure from
OHLCV — bars closing up add positive volume, down bars negative. Set mode: 0 for the per-bar delta histogram or mode: 1 for cumulative delta. (A true tick delta needs per-trade bid/ask data, which
an OHLCV series doesn't carry.)
Resizable panes
Each panel indicator gets its own pane below the chart. Drag the divider between the main chart and a pane (or between panes) to resize it — the cursor switches to ns-resize on hover, and each pane keeps its own independent price scale. Resize
programmatically with chart.setPanelSize:
const id = chart.addIndicator('rsi', { period: 14 }, 'bottom')
chart.setPanelSize(id, 180) // pane height in px (clamped to a minimum) Web Worker pipeline
For heavy indicator workloads, offload calculation off the render loop:
import { IndicatorWorkerHost } from '@tradecanvas/chart'
const host = new IndicatorWorkerHost()
await host.ping()
const result = await host.calculate('rsi', bars, { period: 14 })
host.terminate() Pass null as the worker to use the synchronous fallback (SSR, tests).