Indicators Reference
Detailed schema configurations and built-in calculation subroutines for standard indicators.
Active Indicators Schema (ctx.indicators)
Execute standard technical indicator calculations on-demand. You can now use the global ta.* namespace (e.g., ta.sma, ta.crossover) for a simpler, Pine Script-like syntax, which aliases directly to these ctx.* methods.
const indicator = {
type: "rsi", // Indicator type key
params: { period: 14 }, // Calculation parameters
color: "#9c27b0", // Default display color
enabled: true, // Active state toggle
style: { // Thickness, opacity, and shape overrides
plotColor: "#9c27b0",
plotThickness: 2
}
};
Standard Indicators Specifications
| Type Key | Indicator Name | Parameters Schema | Styling Override References |
|---|---|---|---|
| "sma" | Simple Moving Avg | { period } | plotShow, plotColor, plotThickness, plotStyle |
| "ema" | Exponential Moving Avg | { period } | plotShow, plotColor, plotThickness, plotStyle |
| "wma" | Weighted Moving Avg | { period } | plotShow, plotColor, plotThickness, plotStyle |
| "dema" | Double Exp Moving Avg | { period } | plotShow, plotColor, plotThickness, plotStyle |
| "tema" | Triple Exp Moving Avg | { period } | plotShow, plotColor, plotThickness, plotStyle |
| "bb" | Bollinger Bands | { period, mult } | midShow, midColor, upperShow, upperColor, fillShow, fillColor |
| "vwap" | VWAP | {} | plotShow, plotColor, plotThickness, plotStyle |
| "ichimoku" | Ichimoku Cloud | {} | tenkanShow, tenkanColor, kijunShow, kijunColor, cloudShow, cloudUpColor |
| "psar" | Parabolic SAR | { step, maxStep } | dotsShow, dotsColor, dotsSize, dotsOpacity |
| "rsi" | Relative Strength Index | { period } | plotShow, plotColor, upperLevel, lowerLevel |
| "macd" | MACD | { fast, slow, sig } | macdShow, macdColor, signalShow, signalColor, histShow, histColor |
| "vol" | Volume | {} | volShow, volUpColor, volDownColor, maShow, maColor |
| "stoch" | Stochastic Oscillator | { kPeriod, dPeriod } | kShow, kColor, dShow, dColor, upperLevel, lowerLevel |
| "atr" | Average True Range | { period } | plotShow, plotColor, plotThickness, plotStyle |
| "cci" | Commodity Channel Index | { period } | plotShow, plotColor, upperLevel, lowerLevel |
| "roc" | Rate of Change | { period } | plotShow, plotColor, plotThickness, plotStyle |
| "adx" | Avg Directional Index | { period } | adxShow, adxColor, plusDiShow, plusDiColor, minusDiShow, minusDiColor |
| "obv" | On Balance Volume | {} | plotShow, plotColor, plotThickness, plotStyle |
Exposed Indicator Math APIs (ta.* / ctx.*)
Execute standard technical indicator calculations on-demand. These functions accept raw historical data arrays or bar arrays, and return calculated history arrays of matching lengths.
| Method Signature | Return Type & Value Shape |
|---|---|
| ta.sma(dataArray, period) | Array<number|null> - Simple Moving Average |
| ta.ema(dataArray, period) | Array<number|null> - Exponential Moving Average |
| ta.wma(dataArray, period) | Array<number|null> - Weighted Moving Average |
| ta.dema(dataArray, period) | Array<number|null> - Double Exponential Moving Average |
| ta.tema(dataArray, period) | Array<number|null> - Triple Exponential Moving Average |
| ta.rsi(dataArray, period) | Array<number|null> - Relative Strength Index |
| ta.macd(dataArray, fast, slow, signal) | { line: Array, signal: Array, hist: Array } - MACD Components |
| ta.bollingerBands(dataArray, period, mult) | { mid: Array, upper: Array, lower: Array } - Bollinger Bands Bands |
| ctx.vwap(barsArray) | Array<number|null> - Volume Weighted Average Price |
| ctx.stochastic(barsArray, kPeriod, dPeriod) | { kVals: Array, dVals: Array } - Stochastic Oscillator |
| ctx.atr(barsArray, period) | Array<number|null> - Average True Range |
| ctx.cci(barsArray, period) | Array<number|null> - Commodity Channel Index |
| ctx.roc(dataArray, period) | Array<number|null> - Rate of Change (percent) |
| ctx.psar(barsArray, step, maxStep) | Array<number|null> - Parabolic SAR points |
| ctx.hma(dataArray, period) | Array<number|null> - Hull Moving Average |
| ctx.alma(dataArray, period, offset, sigma) | Array<number|null> - Arnaud Legoux Moving Average |
| ctx.lsma(dataArray, period, offset) | Array<number|null> - Least Squares Moving Average |
| ctx.rma(dataArray, period) | Array<number|null> - Relative Moving Average |
| ctx.stdev(dataArray, period) | Array<number|null> - Standard Deviation |
| ctx.variance(dataArray, period) | Array<number|null> - Variance |
| ctx.covariance(dataArray1, dataArray2, period) | Array<number|null> - Covariance |
| ctx.correlation(dataArray1, dataArray2, period) | Array<number|null> - Correlation Coefficient |
| ctx.median(dataArray, period) | Array<number|null> - Rolling Median |
| ctx.mode(dataArray, period) | Array<number|null> - Rolling Mode |
| ctx.kc(dataArray, period, multiplier, useTrueRange) | { mid: Array, upper: Array, lower: Array } - Keltner Channels |
| ctx.donchian(period) | { basis: Array, upper: Array, lower: Array } - Donchian Channels |
| ctx.supertrend(factor, period) | { supertrend: Array, direction: Array } - Supertrend Line & Direction |
| ctx.stoch(source, highs, lows, period) | Array<number|null> - Stochastic Oscillator series |
| ctx.cmf(period) | Array<number|null> - Chaikin Money Flow |
| ctx.wpr(period) | Array<number|null> - Williams %R |
| ctx.tsi(dataArray, short_length, long_length) | Array<number|null> - True Strength Index |
| ctx.ao(period1, period2) | Array<number|null> - Awesome Oscillator |
| ctx.linreg(dataArray, period, offset) | Array<number|null> - Linear Regression Curve |
| ctx.slope(dataArray, period) | Array<number|null> - Linear Regression Slope |
| ctx.r2(dataArray, period) | Array<number|null> - Coefficient of Determination (R2) |
| ctx.percentrank(dataArray, period) | Array<number|null> - Percent Rank (0-100) |
| ctx.ichimoku(barsArray) | { tenkan: Array, kijun: Array, senkouA: Array, senkouB: Array, chikou: Array } - Ichimoku Components |
| ctx.adx(barsArray, period) | { adx: Array, plusDI: Array, minusDI: Array } - ADX Components |
| ctx.obv(barsArray) | Array<number> - On Balance Volume series |