Indicators
All 70+ tulip-rs scalar indicators are supported via addIndicator(). The candlestick pattern indicator is handled separately by addCandlestickPatterns() — it returns labelled pattern objects rather than numeric series and is rendered as chart markers.
Indicators whose displayType is "Overlay" are rendered as canvas primitives on the price pane. All others are rendered as LineSeries / HistogramSeries in automatically-managed oscillator panes.
Pass the Name (lower-case) to addIndicator(). Options are positional — pass them in the order listed in the Options column.
Trend — Overlay
| Name |
Full Name |
Inputs |
Options |
Outputs |
sma |
Simple Moving Average |
close |
period |
sma |
ema |
Exponential Moving Average |
close |
period |
ema |
dema |
Double Exponential Moving Average |
close |
period |
dema |
tema |
Triple Exponential Moving Average |
close |
period |
tema |
wma |
Weighted Moving Average |
close |
period |
wma |
hma |
Hull Moving Average |
close |
period |
hma |
kama |
Kaufman Adaptive Moving Average |
close |
period |
kama |
trima |
Triangular Moving Average |
close |
period |
trima |
zlema |
Zero-Lag Exponential Moving Average |
close |
period |
zlema |
wilders |
Wilders Smoothing |
close |
period |
wilders |
vidya |
Variable Index Dynamic Average |
close |
short_period, long_period, alpha |
vidya |
linreg |
Linear Regression |
close |
period |
linreg |
tsf |
Time Series Forecast |
close |
period |
tsf |
psar |
Parabolic SAR |
high, low |
accel_start, accel_max |
psar |
² PSAR renders as per-point coloured dots (upColor when SAR is below price, downColor when above) rather than a connected line. See Overlays — Parabolic SAR.
Volatility — Overlay
| Name |
Full Name |
Inputs |
Options |
Outputs |
bbands |
Bollinger Bands |
close |
period, stddev |
bbands_upper, bbands_middle, bbands_lower |
Price — Overlay
| Name |
Full Name |
Inputs |
Options |
Outputs |
avgprice |
Average Price |
open, high, low, close |
(none) |
avgprice |
medprice |
Median Price |
high, low |
(none) |
medprice |
typprice |
Typical Price |
high, low, close |
(none) |
typprice |
wcprice |
Weighted Close Price |
high, low, close |
(none) |
wcprice |
Statistical — Overlay
| Name |
Full Name |
Inputs |
Options |
Outputs |
max |
Maximum |
close |
period |
max |
min |
Minimum |
close |
period |
min |
Momentum — Oscillator
| Name |
Full Name |
Inputs |
Options |
Outputs |
rsi |
Relative Strength Index |
close |
period |
rsi |
cmo |
Chande Momentum Oscillator |
close |
period |
cmo |
mom |
Momentum |
close |
period |
mom |
roc |
Rate of Change |
close |
period |
roc |
rocr |
Rate of Change Ratio |
close |
period |
rocr |
stochrsi |
Stochastic RSI |
close |
period |
stochrsi |
dpo |
Detrended Price Oscillator |
close |
period |
dpo |
fosc |
Forecast Oscillator |
close |
period |
fosc |
macd |
MACD |
close |
fast_period, slow_period, signal_period |
macd, macd_signal, macd_histogram |
apo |
Absolute Price Oscillator |
close |
short_period, long_period |
apo |
ppo |
Percentage Price Oscillator |
close |
short_period, long_period |
ppo |
stoch |
Stochastic Oscillator |
high, low, close |
k_period, k_slowing, d_period |
stoch_k, stoch_d |
trix |
1-Day Rate-of-Change of a Triple EMA |
close |
period |
trix |
Volatility — Oscillator
| Name |
Full Name |
Inputs |
Options |
Outputs |
atr |
Average True Range |
high, low, close |
period |
atr |
natr |
Normalized ATR |
high, low, close |
period |
natr |
volatility |
Volatility |
close |
period |
volatility |
stddev |
Standard Deviation |
close |
period |
stddev |
md |
Mean Deviation |
close |
period |
md |
tr |
True Range |
high, low, close |
(none) |
tr |
Volume — Oscillator
| Name |
Full Name |
Inputs |
Options |
Outputs |
obv |
On Balance Volume |
close, volume |
(none) |
obv |
ad |
Accumulation/Distribution |
high, low, close, volume |
(none) |
ad |
adosc |
A/D Oscillator |
high, low, close, volume |
short_period, long_period |
adosc |
mfi |
Money Flow Index |
high, low, close, volume |
period |
mfi |
emv |
Ease of Movement |
high, low, volume |
period |
emv |
nvi |
Negative Volume Index |
close, volume |
(none) |
nvi |
pvi |
Positive Volume Index |
close, volume |
(none) |
pvi |
kvo |
Klinger Volume Oscillator |
high, low, close, volume |
short_period, long_period, signal_period |
kvo, kvo_signal |
vwma |
Volume Weighted Moving Average |
close, volume |
period |
vwma |
vosc |
Volume Oscillator |
volume |
short_period, long_period |
vosc |
Directional — Oscillator
| Name |
Full Name |
Inputs |
Options |
Outputs |
adx |
Average Directional Index |
high, low, close |
period |
adx |
adxr |
Average Directional Rating |
high, low, close |
period |
adxr |
di |
Directional Indicators |
high, low, close |
period |
plus_di, minus_di |
dm |
Directional Movement |
high, low |
period |
plus_dm, minus_dm |
dx |
Directional Movement Index |
high, low, close |
period |
dx |
aroon |
Aroon |
high, low |
period |
aroon_down, aroon_up |
aroonosc |
Aroon Oscillator |
high, low |
period |
aroonosc |
Other — Oscillator
| Name |
Full Name |
Inputs |
Options |
Outputs |
ao |
Awesome Oscillator |
high, low |
(none) |
ao |
bop |
Balance of Power |
open, high, low, close |
(none) |
bop |
cci |
Commodity Channel Index |
high, low, close |
period |
cci |
cvi |
Coefficient of Variation Index |
high, low |
period |
cvi |
fisher |
Fisher Transform |
high, low |
period |
fisher, fisher_signal |
mass |
Mass Index |
high, low |
period |
mass |
marketfi |
Market Facilitation Index |
high, low, volume |
(none) |
marketfi |
msw |
Mesa Sine Wave |
close |
period |
msw_sine, msw_lead |
qstick |
QStick |
open, close |
period |
qstick |
vhf |
Vertical Horizontal Filter |
close |
period |
vhf |
wad |
Williams Accumulation/Distribution |
high, low, close |
(none) |
wad |
willr |
Williams %R |
high, low, close |
period |
willr |
pivotpoint |
Pivot Points |
high, low, close |
(none) |
s3, s2, s1, pp, r1, r2, r3 ¹ |
ultosc |
Ultimate Oscillator |
high, low, close |
short_period, medium_period, long_period |
ultosc |
¹ PIVOTPOINT renders as full-width dashed horizontal lines on the price pane via HorizontalPrimitive — not as an oscillator series — despite its non-overlay displayType. The seven output levels (s3, s2, s1, pp, r1, r2, r3) are packed into a single array that the plugin unpacks automatically. See Overlays — Pivot Points.
tulip-rs-lwc automatically maps the input names from indicator.info.inputs to the corresponding OHLCV fields:
| Input name |
OHLCV field |
Notes |
real |
close |
Generic single-price input (most common) |
close |
close |
|
open |
open |
|
high |
high |
|
low |
low |
|
volume |
volume |
Defaults to 0 if volume is missing from the bar |
You never need to specify which fields an indicator uses — this is handled automatically from the indicator's metadata.
Volume-based indicators require volume
If your OhlcvBar data does not include a volume field, volume-based indicators (OBV, AD, MFI, KVO, ADOSC, EMV, NVI, PVI, VWMA, VOSC, MARKETFI) will receive zeros for all volume values and produce incorrect results. Always include volume when using these indicators.