Extensive Open Source Indicator Library for MT4

 
TA-Lib is well respected open source indicator library that has been used in products like Dukascopy's platform and MATLAB Toolbox. From the TA-Lib website:

Multi-Platform Tools for Market Analysis ...

TA-Lib is widely used by trading software developers requiring to perform technical analysis of financial market data.

  • Includes 200 indicators such as ADX, MACD, RSI, Stochastic, Bollinger Bands etc... (more info)
  • Candlestick pattern recognition
  • Open-source API for C/C++, Java, Perl, Python and 100% Managed .NET

Free Open-Source Library

TA-Lib is available under a BSD License allowing it to be integrated in your own open-source or commercial application. (more info)


It is now available for MetaTrader 4. You can simply install the DLL and Indicator folder and in your MT4 "Libraries" and "Indicators" folders, respectively. You'll then have access to the TA-Lib indicators. The indicators are well-maintained and new ones are added periodically. You can use the iCustom call to use the indicators in any EAs.

Download the library for MetaTrader 4. Instructions are included.


Full list of TA-Lib indicatiors:

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
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
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
 
Why do we need a DLL to get indicator's data ?
 
zirkoner:
Why do we need a DLL to get indicator's data ?

The DLL holds all of the calculations. The calculations are computed using TA-LIBs calculations. The custom indicators call the function or calculation for the indicator in the DLL. Without the DLL, you don't have the calculations to compute the indicator.

You could code all of these indicators up as separate custom indicators, doing the math for each one from scratch or from researching them. That would be hard for indicators like the triple exponential moving average or the Hilbert Transform trend line. So this saves you a lot of time. TA-Lib has a community of developers who have checked the calculations for accuracy. So why reinvent the wheel? Also, you have the same indicator calculations across platforms; Excel, MATLAB, Dukascopy's platform, TRAIDE, Quantopian, and a DLL for NinjaTrader and any other platform that uses TA-Lib or has a TA-Lib plugin. So the goal is to have a standardized indicator library across platforms.

There is a ton of documentation on TA-LIB. You can dive into the calculations and create your own features from this DLL in MT4.

 
Inovance:

The DLL holds all of the calculations. The calculations are computedusing TA-LIBs calculations. The custom indicators call the function orcalculation for the indicator in the DLL. Without the DLL, you don'thave the calculations to compute the indicator.

You could code all of these indicators up as separate custom indicators, doing the math for each one from scratch or from researching them. That would be hard for indicators like the triple exponential moving average or the Hilbert Transform trend line. So this saves you a lot of time. TA-Lib has a community of developers who have checked the calculations for accuracy. So why reinvent the wheel? Also, you have the same indicator calculations across platforms; Excel, MATLAB, Dukascopy's platform, TRAIDE, Quantopian, and a DLL for NinjaTrader and any other platform that uses TA-Lib or has a TA-Lib plugin. So the goal is to have a standardized indicator library across platforms.

There is a ton of documentation on TA-LIB. You can dive into the calculations and create your own features from this DLL in MT4.

is traide-ma.mqh included in this file?

i only got 118 files instead of the 200 noted above.

also none of the candlestick files are included in the file i downloaded.

 
4x_Gypsy:

is traide-ma.mqh included in this file?

i only got 118 files instead of the 200 noted above.

also none of the candlestick files are included in the file i downloaded.


Where are you seeing the traide-ma.mqh missing file error?? I've attached an example EA that calls the PRICE_MINUS_TRIMA, PPO, ROC and CCI.

More indicators to come. The 200 above includes all of the indicators in TA-Lib, with each version of the library, we'll add more and more indicators. Chart patterns will be next.

 
Inovance:

Where are you seeing the traide-ma.mqh missing file error?? I've attached an example EA that calls the PRICE_MINUS_TRIMA, PPO, ROC and CCI.

More indicators to come. The 200 above includes all of the indicators in TA-Lib, with each version of the library, we'll add more and more indicators. Chart patterns will be next.

when i compile the bolinger band files, stochastic files, macd ,PPO,APO.

can't open "C:\Users\Computer\AppData\Roaming\MetaQuotes\Terminal\71808ACDDF4589A555C107AF1E5AEBA0\MQL4\include\TRAIDE-Include\traide-ma.mqh" include file

 
4x_Gypsy:

when i compile the bolinger band files, stochastic files, macd ,PPO,APO.

can't open "C:\Users\Computer\AppData\Roaming\MetaQuotes\Terminal\71808ACDDF4589A555C107AF1E5AEBA0\MQL4\include\TRAIDE-Include\traide-ma.mqh" include file

Thank you! I attached to the traide-ma.mqh to fix the following indicators:

BBANDS
MAC2
PRICE_MINUS_BBANDS
STOCH_SLOWK_MINUS_SLOWD
STOCH
STOCHRSI_FASTK_MINUS_FASTD
STOCHRSI
STOCHF_FASTK_MINUS_FASTD
STOCHF
MACD
APO

PPO

In the MT4 terminal go to File --> Open Data Folder, navigate to MQL4 --> Include, right click to create a folder and name it TRAIDE-Include. Copy and paste the attached traide-ma.mqh into the new folder.

Files:
traide-ma.mqh  1 kb
 
Inovance:

Thank you! I attached to the traide-ma.mqh to fix the following indicators:

BBANDS
MAC2
PRICE_MINUS_BBANDS
STOCH_SLOWK_MINUS_SLOWD
STOCH
STOCHRSI_FASTK_MINUS_FASTD
STOCHRSI
STOCHF_FASTK_MINUS_FASTD
STOCHF
MACD
APO

PPO

In the MT4 terminal go to File --> Open Data Folder, navigate to MQL4 --> Include, right click to create a folder and name it TRAIDE-Include. Copy and paste the attached traide-ma.mqh into the new folder.


Thank You
 
Latest version v1.1.0 removes the necessity of the TRAIDE-Include folder.
 

This is great! Thanks a lot innovance..

So the chart pattern indicators are still missing? 

You should probably have posted this over on the mql5 site as an article:

https://www.mql5.com/en/articles/mt4/indicators

It seems that this site here is sort of being phased out... 

Reason: