Skip to main content
Version: 1.0.0

Indicators

Pluto supports out of the box and custom indicators. If you would like an optimized implementation from a ta-lib indicator please request the indicator through the "Give Feedback" button in the app.

Simple Example​

caution

if you access an indicator conditionally (ie behind an if statement) you will encounter an error. There are no performance gains to find by conditionally accessing indicators.

def handle_new_bar(data, emit, atoms):
l_ma = data.SMA(ln=200) # no additional configuration is needed
s_ma = data.EMA(ln=20, previous=True)
open_ma = data.SMA(ln=50, data_type="open")

# you can also access specific bands or lines on indicators that support them
upper_bband = data.BBANDS(band="upper", ln=20, stds=3)

How Do Indicators Work?​

  1. Indicators are precomputed when you click "Run Test"
  2. All indicators, both platform and custom, are displayed on the test results chart.
  3. Using an indicator is simple β€”Β just access the data through the data argument as shown above.

Custom Indicators​

Custom indicators are very powerful you can find documentation here.

Add custom indicators from the block's editor to find the ID. We will support username/indicator-name instead of the indicator's id in the future.

Platform Indicators​

All indicators also support a color argument. You can find a list of supported colors here.

Simple​

Indicator TypeArguments (? means optional)Description
SMAln: int
data_type: str?
Simple Moving Average
EMAln: int
data_type: str?
Exponential Moving Average
DEMAln: int
data_type: str?
Double Exponential Moving Average
RSIln: int? default=14Relative Strength Index
WMAln: int
data_type: str?
Weighted Moving Average

Advanced​

Indicator TypeArguments (? means optional)Description
APOfastln: int? default=12
slowln: int? default=26
data_type: str?
Absolute Price Indicator
AROONline: "aroondown" β€– "aroonup"
ln: int? default=14
Aroon
BBANDSband: "upper" β€– "middle" β€– "lower"
ln: int? default=20
stds: int? default=2
Bollinger Bands
CADno argumentsChaikin Accumulation-Distribution
CCIln: int?default=14Commodity Channel Indicator
CMOln: int?default=14
data_type: str?
Chande Momentum Oscillator
DCchannel: "high" β€– "middle" β€– "low"
ln: int
data_type: str?
Donchian Channel
KAMAln: int? default=30
data_type: str?
Kaufman Adaptive Moving Average
KCband: "upper" β€– "middle" β€– lower"
ema_ln: int? default=20
atr_ln: int? default=20
multiplier: float? default=2
Keltner Channels
MACDline: "macd" β€– "macdsignal" β€– "macdhist"
fastln: int? default=12
slowln: int? default=26
signalln: int? default=9
data_type: str?
MA Convergence/Divergence
Note: This indicator is not currently chartable but is still otherwise usable.
MAMAline: "mama" β€– "fama"
fastlimit: int? default=0.5
slowlimit: int? default=0.05
MESA Adaptive Moving Average
MFIln: int? default=14Money Flow Index
MOMln: int default=10
data_type: str?
Momentum
PPOfastln: int? default=12
slowln: int? default=26
data_type: str?
Percentage Price Oscillator
SARacceleration: float? default=0.02
max_acceleration: float? default=0.2
Parabolic Stop and Reverse
STOCHline: "k" β€– "d"
k_period default=14
k_smoothing default=1
d_smoothing default=3
Stochastic
T3ln: int? default=5
vfactor: int? default=0.7
data_type: str?
Triple Exponential Moving Average
TEMAln: int? default=30
data_type: str?
Triple Exponential Moving Average
TRIMAln: int default=30
data_type: str?
Triangular Moving Average
TRIXln: int default=30
data_type: str?
1-day ROC of a Triple Smooth EMA
TTM_SQUEEZEline: "squeeze_hist" β€– "squeeze_signal"
bband_ln: int? default=20
stds: int? default=2
atr_ln: int? default=20
atr_multiplier: float? default=1.5
sma_ln: int? default=20
ema_ln: int? default=20
data_type: str?
TTM Squeeze
Note: This indicator is not currently chartable but is still otherwise usable. The squeeze_signal line has values of 0 or 1
ROCln: int? default=10
data_type: str?
Rate of Change: ((price/prevPrice)-1)*100
ROCPln: int? default=10
data_type: str?
Rate of Change Percentage: (price-prevPrice)/prevPrice
ROCRln: int? default=10
data_type: str?
Rate of Change Ratio: (price/prevPrice)