TA-lib Indicators

Estimated reading time: 4 min

TA-lib is a library for technical analysis of price and market data. - Includes over 200 indicators such as RSI, MACD, Moving Averages and Bollinger Bands - Price candle pattern recognition - Open Source libraries for C#, Python and .NET

Using TA-lib Indicators and Functions

To use a TA-lib indicator or function, you must import TA-lib into your algorithm.

using static TALib.Core;

Next, define any adjustable parameters for your indicator in your algorithm's class definition.

namespace MachinaEngine.Algorithm.CSharp
{
    public class MyRSIstrategy : MEAlgorithm
    {
        #region Parameters

        [Parameter("RSI Lookback")]
        public int RSIPeriod { get; set; } = 14;

By defining the RSI lookback period in this manner, you are prompting the Machina Engine to create an adjustable parameter "RSI Lookback" in the Launcher panel.

By defining this parameter as public in your algorithm's class definition, you also make the parameter (its name and value) available to other code methods in your algorithm. This will become clear in the rest of this example.

In your algorithm's Initialize() method you should declare the maximum number of tradebars (candles) your indicator(s) will need before generating usable values.

        public override void Initialize()
        {
            var barsBack = RSIPeriod;

In this case, our RSI has a default lookback period of 14 tradebars. However, we do not define var barsBack = 14; because we previously made the RSI lookback period an adjustable parameter. You might change that lookback period to 21 for a particular backtest. So, instead of having to change your code in two places, we simply pass the correct lookback period value by using RSIPeriod.

With the algorithm setup complete, we can now go to the OnTradeBar() method where the Machina Engine iterates over the list of tradebars (candles) you have requested for your backtest.

        public override void OnTradeBar(Slice slice)
        {
            foreach (Symbol symbol in slice.Symbols)
            {
                // Is tradebar history sufficient for the current symbol and period?
                if (!IsHistoryReady(symbol, MTO.PeriodSeconds))
                    continue;

                // Get the tradebars for this iteration
                var tBars = SymbolHistory(symbol, MTO.PeriodSeconds);
                // Build RSI for this iteration
                var rsi = tBars.Rsi(RSIPeriod);

                if (rsi.Rsi.Any())
                {
                    var buyArea = (rsi.Rsi.LastOrDefault().Value > 50;
                    // Make trading decisions; execute orders

                    // Plot RSI indicator below price chart
                    Plotter($"RSI", "RSI", rsi.LastOrDefault().Value, "purple", SeriesType.Line, LineStyleType.Solid, 2, true);
                }

Alphabetic List of TA-lib Indicators and Studies

Name Description
AD Chaikin A/D Line
ADOSC Chaikin A/D Oscillator
ADX Average Directional Movement Index
ADXR Average Directional Movement Index Rating
APO Absolute Price Oscillator
AROON Aroon
AROONOSC Aroon Oscillator
ATR Average True Range
AVGPRICE Average Price
BBANDS Bollinger Bands
BETA Beta
BOP Balance Of Power
CCI Commodity Channel Index
CMO Chande Momentum Oscillator
CORREL Pearson's Correlation Coefficient (r)
DEMA Double Exponential Moving Average
DX Directional Movement Index
EMA Exponential Moving Average
HT_DCPERIOD Hilbert Transform - Dominant Cycle Period
HT_DCPHASE Hilbert Transform - Dominant Cycle Phase
HT_PHASOR Hilbert Transform - Phasor Components
HT_SINE Hilbert Transform - SineWave
HT_TRENDLINE Hilbert Transform - Instantaneous Trendline
HT_TRENDMODE Hilbert Transform - Trend vs Cycle Mode
KAMA Kaufman Adaptive Moving Average
LINEARREG Linear Regression
LINEARREG_ANGLE Linear Regression Angle
LINEARREG_INTERCEPT Linear Regression Intercept
LINEARREG_SLOPE Linear Regression Slope
MA All Moving Average
MACD Moving Average Convergence/Divergence
MACDEXT MACD with controllable MA type
MACDFIX Moving Average Convergence/Divergence Fix 12/26
MAMA MESA Adaptive Moving Average
MAX Highest value over a specified period
MAXINDEX Index of highest value over a specified period
MEDPRICE Median Price
MFI Money Flow Index
MIDPOINT MidPoint over period
MIDPRICE Midpoint Price over period
MIN Lowest value over a specified period
MININDEX Index of lowest value over a specified period
MINMAX Lowest and highest values over a specified period
MINMAXINDEX Indexes of lowest and highest values over a specified period
MINUS_DI Minus Directional Indicator
MINUS_DM Minus Directional Movement
MOM Momentum
NATR Normalized Average True Range
OBV On Balance Volume
PLUS_DI Plus Directional Indicator
PLUS_DM Plus Directional Movement
PPO Percentage Price Oscillator
ROC Rate of change : ((price/prevPrice)-1)*100
ROCP Rate of change Percentage: (price-prevPrice)/prevPrice
ROCR Rate of change ratio: (price/prevPrice)
ROCR100 Rate of change ratio 100 scale: (price/prevPrice)*100
RSI Relative Strength Index
SAR Parabolic SAR
SAREXT Parabolic SAR - Extended
SMA Simple Moving Average
STDDEV Standard Deviation
STOCH Stochastic
STOCHF Stochastic Fast
STOCHRSI Stochastic Relative Strength Index
SUM Summation
T3 Triple Exponential Moving Average (T3)
TEMA Triple Exponential Moving Average
TRANGE True Range
TRIMA Triangular Moving Average
TRIX 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
TSF Time Series Forecast
TYPPRICE Typical Price
ULTOSC Ultimate Oscillator
VAR Variance
WCLPRICE Weighted Close Price
WILLR Williams' %R
WMA Weighted Moving Average

List of Recognized Candle Patterns

Name Description
CDL2CROWS Two Crows
CDL3BLACKCROWS Three Black Crows
CDL3INSIDE Three Inside Up/Down
CDL3LINESTRIKE Three-Line Strike
CDL3OUTSIDE Three Outside Up/Down
CDL3STARSINSOUTH Three Stars In The South
CDL3WHITESOLDIERS Three Advancing White Soldiers
CDLABANDONEDBABY Abandoned Baby
CDLADVANCEBLOCK Advance Block
CDLBELTHOLD Belt-hold
CDLBREAKAWAY Breakaway
CDLCLOSINGMARUBOZU Closing Marubozu
CDLCONCEALBABYSWALL Concealing Baby Swallow
CDLCOUNTERATTACK Counterattack
CDLDARKCLOUDCOVER Dark Cloud Cover
CDLDOJI Doji
CDLDOJISTAR Doji Star
CDLDRAGONFLYDOJI Dragonfly Doji
CDLENGULFING Engulfing Pattern
CDLEVENINGDOJISTAR Evening Doji Star
CDLEVENINGSTAR Evening Star
CDLGAPSIDESIDEWHITE Up/Down-gap side-by-side white lines
CDLGRAVESTONEDOJI Gravestone Doji
CDLHAMMER Hammer
CDLHANGINGMAN Hanging Man
CDLHARAMI Harami Pattern
CDLHARAMICROSS Harami Cross Pattern
CDLHIGHWAVE High-Wave Candle
CDLHIKKAKE Hikkake Pattern
CDLHIKKAKEMOD Modified Hikkake Pattern
CDLHOMINGPIGEON Homing Pigeon
CDLIDENTICAL3CROWS Identical Three Crows
CDLINNECK In-Neck Pattern
CDLINVERTEDHAMMER Inverted Hammer
CDLKICKING Kicking
CDLKICKINGBYLENGTH Kicking - bull/bear determined by the longer marubozu
CDLLADDERBOTTOM Ladder Bottom
CDLLONGLEGGEDDOJI Long Legged Doji
CDLLONGLINE Long Line Candle
CDLMARUBOZU Marubozu
CDLMATCHINGLOW Matching Low
CDLMATHOLD Mat Hold
CDLMORNINGDOJISTAR Morning Doji Star
CDLMORNINGSTAR Morning Star
CDLONNECK On-Neck Pattern
CDLPIERCING Piercing Pattern
CDLRICKSHAWMAN Rickshaw Man
CDLRISEFALL3METHODS Rising/Falling Three Methods
CDLSEPARATINGLINES Separating Lines
CDLSHOOTINGSTAR Shooting Star
CDLSHORTLINE Short Line Candle
CDLSPINNINGTOP Spinning Top
CDLSTALLEDPATTERN Stalled Pattern
CDLSTICKSANDWICH Stick Sandwich
CDLTAKURI Takuri (Dragonfly Doji with very long lower shadow)
CDLTASUKIGAP Tasuki Gap
CDLTHRUSTING Thrusting Pattern
CDLTRISTAR Tristar Pattern
CDLUNIQUE3RIVER Unique 3 River
CDLUPSIDEGAP2CROWS Upside Gap Two Crows
CDLXSIDEGAP3METHODS Upside/Downside Gap Three Methods

TA-lib Math, Statistical and Price Functions

Math Operators
ADD
DIV
MAX
MAXINDEX
MIN
MININDEX
MINMAX
MINMAXINDEX
MULT
SUB
SUM
Math Transform
ACOS
ASIN
ATAN
CEIL
COS
COSH
EXP
FLOOR
LN
LOG10
SIN
SINH
SQRT
TAN
TANH
Price Transform
AVGPRICE
MEDPRICE
TYPPRICE
WCLPRICE
Statistic Functions
BETA
CORREL
LINEARREG
LINEARREG_ANGLE
LINEARREG_INTERCEPT
LINEARREG_SLOPE
STDDEV
TSF
VAR

TA-lib Indicators Grouped by Type

Cycle Indicators
HT_DCPERIOD
HT_DCPHASE
HT_PHASOR
HT_SINE
HT_TRENDMODE
Momentum Indicators
ADX
ADXR
APO
AROON
AROONOSC
BOP
CCI
CMO
DX
MACD
MACDEXT
MACDFIX
MFI
MINUS_DI
MINUS_DM
MOM
PLUS_DI
PLUS_DM
PPO
ROC
ROCP
ROCR
ROCR100
RSI
STOCH
STOCHF
STOCHRSI
TRIX
ULTOSC
WILLR
Overlap Studies
BBANDS
DEMA
EMA
HT_TRENDLINE
KAMA
MA
MAMA
MAVP
MIDPOINT
MIDPRICE
SAR
SAREXT
SMA
T3
TEMA
TRIMA
WMA
Candle Pattern Recognition
CDL2CROWS
CDL3BLACKCROWS
CDL3INSIDE
CDL3LINESTRIKE
CDL3OUTSIDE
CDL3STARSINSOUTH
CDL3WHITESOLDIERS
CDLABANDONEDBABY
CDLADVANCEBLOCK
CDLBELTHOLD
CDLBREAKAWAY
CDLCLOSINGMARUBOZU
CDLCONCEALBABYSWALL
CDLCOUNTERATTACK
CDLDARKCLOUDCOVER
CDLDOJI
CDLDOJISTAR
CDLDRAGONFLYDOJI
CDLENGULFING
CDLEVENINGDOJISTAR
CDLEVENINGSTAR
CDLGAPSIDESIDEWHITE
CDLGRAVESTONEDOJI
CDLHAMMER
CDLHANGINGMAN
CDLHARAMI
CDLHARAMICROSS
CDLHIGHWAVE
CDLHIKKAKE
CDLHIKKAKEMOD
CDLHOMINGPIGEON
CDLIDENTICAL3CROWS
CDLINNECK
CDLINVERTEDHAMMER
CDLKICKING
CDLKICKINGBYLENGTH
CDLLADDERBOTTOM
CDLLONGLEGGEDDOJI
CDLLONGLINE
CDLMARUBOZU
CDLMATCHINGLOW
CDLMATHOLD
CDLMORNINGDOJISTAR
CDLMORNINGSTAR
CDLONNECK
CDLPIERCING
CDLRICKSHAWMAN
CDLRISEFALL3METHODS
CDLSEPARATINGLINES
CDLSHOOTINGSTAR
CDLSHORTLINE
CDLSPINNINGTOP
CDLSTALLEDPATTERN
CDLSTICKSANDWICH
CDLTAKURI
CDLTASUKIGAP
CDLTHRUSTING
CDLTRISTAR
CDLUNIQUE3RIVER
CDLUPSIDEGAP2CROWS
CDLXSIDEGAP3METHODS
Volatility Indicators
ATR
NATR
TRANGE
Volume Indicators
AD
ADOSC
OBV
Was this article helpful?
Dislike 0
Views: 42