Watch how to download trading robots for free

Find us on Facebook!
Join our fan page

Access the CodeBase from your MetaTrader 5 terminal
Couldn't find the right code? Order it in the Freelance section
How to Write an Expert Advisor or an Indicator

MQL5 Source Code Library for MetaTrader 5 - 60

This is the largest free source code library for MetaTrader 5 platform programs. Here you can find ready-made Expert Advisors, technical indicators, scripts and libraries. Use the code library when learning MQL5 language and develop your own automated trading applications based on the provided codes.

You can freely download and test published codes, as well as launch them in MetaTrader 5. The library is also available directly from MetaTrader 5 platform and MetaEditor development environment.

Submit your code
latest | best

This indicator is a MetaTrader 5 version of nonlinear regression. Nonlinear regression is very "fast" when responding to sudden market changes so the default calculation period is set to somewhat longer period than it is usual for similar type indicator. Because of that some experimenting with period is advised based on your trading strategy and trading style.

MACD High/Low uses the highest high and lowest low of MACD (nnn) bars back to calculate a sort of dynamically changed zero line, early levels up and down and trend confirmation levels up and down. By adding these non-fixed levels, the MACD becomes faster in response to market changes and the MACD trend assessment has less false signals.

Asymmetric bands indicator is one of the ways to avoid a lag when there is a trend reversal (since the opposite side band is too far from the current price).

This version of Synthetic RSI is using Ehlers smoothed RSI in calculation instead of using "regular" RSI and that makes the resulting synthetic RSI even smoother.

Instead of using one RSI, the Synthetic RSI indicator is using 3 instances of RSI. Those 3 instances of RSI are then used to calculate the "synthetic" value (that is not an average of the 3 since the calculation differs from an average).

The Composite Index was developed to solve the divergence failure problem in the RSI, but its ability to provide specific horizontal levels of support within the indicator adds to its value. The Composite Index takes the normalized formula of RSI and removes the normalization range restrictions. The formula for the Composite Index uses an embedded momentum calculation with a short-term RSI smoothed.

This version of Polychromatic Momentum is using double smoothed EMA for smoothing. DSEMA has been proven for producing very good smooth results with a lag that is almost non-existent, hence, in combination with it, the Polychromatic Momentum indicator becomes much more usable when it comes to signals.

Polychromatic momentum takes an weighted average of all significant lookback periods for the tradable.

Two lines representing positive and negative directional movement. These will intersect and cross during a change of trend and diverge wider and wider as the strength of the trend increases.

This indicator is using filtered prices for RSI (instead of using "raw" prices) and is using Discontinued Signal Line for trend assessment (instead of using slope or fixed levels).

Hull average is used prior to stochastic calculation thus filtering the prices before they are used in the stochastic calculation. This method is used since it adds much less lag than if the smoothing of the already calculated stochastic value would be used.

This version uses double smoothed EMA instead of using Hull average, and since double smoothed EMA is never overshooting, that issue is solved. Being a very smooth average too, double smoothed EMA is really a good filter/average to be used in the "triple" series.

Unlike the similar attempts of smoothing existing indicators, the Double smoothed EMA indicator is not lagging when compared to "regular" EMA.

Glitch Index represents the percentage move price has made above or below the detrended SMA.

The Congestion Index attempts to identify the market's character by dividing the actual percentage that the market has changed in the past x days by the extreme range.

Chande Momentum Oscillator with added Discontinued Signal Lines instead of using static levels for trends displayed on the main chart as bars (if the current chart style is bars or line) or candles (it is done automatically).

Chande Momentum Oscillator with added Discontinued Signal Lines instead of using static levels for trends.

Unlike the original Schaff Trend Cycle, this version is using TEMA MACD for calculation, which makes it "faster" in determining (even compared to DEMA version) the trend changes and thus producing signals a few bars earlier.

Unlike the original Schaff Trend Cycle, this version is using DEMA MACD for calculation, which makes it "faster" in determining the trend changes and thus producing signals a few bars earlier (which can be significant in "scalping" systems).

Indicator based on Hull Moving Average.

Rsi(var) indicator with zero lag DEMA.

Rsi(var) indicator with zero lag Moving Average.

Display the actual stored value of a floating-point number (float or double type), with very high precision up to 55 decimal digits. This helps to debug exact value of floating-point numbers for other MQL5 programs.

This indicator uses TEMA calculation mode in order to make the lag lesser compared to the original Zero lag MA, and that makes this version even faster than the Zero lag DEMA too.

This indicator uses DEMA calculation mode in order to make the lag lesser compared to the original Zero lag MA, and that makes this version faster.

According to creators, the ZeroLAG MA indicator is a Moving Average with zero delay. If we agree or not, does not matter since, compared to some "regular" Moving Averages the lag it has is significantly lower, so it can be used in any system where less lag is of great importance.

The Relative Strength Index (RSI) is a momentum indicator developed by noted technical analyst Welles Wilder, that compares the magnitude of recent gains and losses over a specified time period to measure speed and change of price movements of a security. It is primarily used to attempt to identify overbought or oversold conditions in the trading of an asset.

The indicator is using 3 instances of Hull Moving Average.

The RSI bands indicator helps in multiple ways, but mainly in visualizing on the main chart what price change would trigger the expected overbought or oversold signals.

This non-trading utility generates custom symbol information on 1M chart.

This version of Stochastic RSI uses a sort of a signal line to make it even more sensitive.

This non-trading utility generates custom symbol information on 1M chart. Configure using Tick Size, Pip Size, Points or R. Now with Asymetric Reversals!

Printing GetLastError() and MqlTradeResult retcode as text description.

The Schaff Trend Cycle (STC) indicator detects up and down trends long before the MACD. It does this by using the same Exponential Moving Averages (EMAs), but adds a cycle component to factor currency cycle trends. Since currency cycle trends move based on a certain amount of days, this is factored into the equation of the STC indicator to give more accuracy and reliability than the MACD.

This is a MACD that can use average for input price instead of using "pure" price. That can help in filtering some false signals, but the main purpose of this code is to show how simple some things can be done using MetaTrader 5. In addition to all usual options when it comes to this type of indicators, option to have color changes based on MACD slope change or MACD crossing signal line.

A very well known RSI of average is made with, all in all, 3 lines of a code in a main loop (color assignment on RSI slope change included in those 4 lines). This one can be used as template for some other indicator and can provide a simplicity solution for those that think that everything is very complicated in MetaTrader 5.

This version of Stochastic Oscillator reduces the number of false alerts by smoothing the price prior to be used in the stochastic calculation. That makes a nice smooth stochastic as a result that can easily be used for trend trading systems.

This version of MACD uses Hull Moving Average for MACD calculation instead of using EMA (as the original Gerald Appel version does). That makes it "faster" than the EMA version and suitable for scalping techniques as well as for trending techniques (if longer calculation periods are used).

The indicator shows current trend by showing a color of the current balance. The opposite color is not displayed as long as it does not become a trend (hence, lack of color, means the opposite trend is the prevailing)

MetaTrader 5 version of Candle Closing Time Remaining (CCTR) is an indicator which displays the remaining time for an open candle to be closed.