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 - 62

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

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.

CCI is a very useful indicator. But it lacks one thing: known bounds. Adding Inverse Fisher Transform to CCI makes it oscillate in known bounds, and that way it can help in assessing what is exactly going on with the markets.

This version is a sort of normalized version - since it shows Volume as a percent compared to the Average Volume over a chosen period.

Long known volume analysis method.

The McGinley Dynamic indicator was developed by John McGinley and outlined in the Market Technicians Association's "Journal Of Technical Analysis" in 1991. The purpose of this indicator is to address flaws found in conventional moving averages, such as price separation and whipsaws. The result is a remarkable indicator that follows the average price of an instrument while adapting to current market speeds.

Indicator that shows the current estimated state of the market based on a correlation of 3 Moving Averages.

The Dynamic Momentum Index (DMI) is a variable term RSI. When default values are used, the RSI term varies from 3 to 30. The variable time period makes the RSI more responsive to short-term moves. The more volatile the price is, the shorter the time period is. It is interpreted in the same way as the RSI, but provides signals earlier.

ZigZag separate is a MetaTrader 5 version of one indicator that was floating around the net as a wonder indicator for MetaTrader 4.

Fractal Adaptive Moving Average Technical Indicator (FRAMA) was developed by John Ehlers. This indicator is constructed based on the algorithm of the Exponential Moving Average, in which the smoothing factor is calculated based on the current fractal dimension of the price series. The advantage of FRAMA is the possibility to follow strong trend movements and to sufficiently slow down at the moments of price consolidation.

This version extends the Instantaneous Trend Line indicator with a sort of bands to make it easier to spot trend change and to filter out some false signals that can be produced if only the slope of the ITL indicator is takes for a signal. And it also differs from the original in one important part: instead of using fractional alpha parameter for calculation, this version uses period which makes it the same category as averages are and the usage becomes a bit more intuitive than the original version.

This version differs from the original Instantaneous Trend Line in one important part: instead of using fractional alpha parameter for calculation, this version uses period which makes it the same category as averages are and the usage becomes a bit more intuitive than the original version.

Trading in a channel based on a Moving Average with the period of 220 and three Envelopes with the periods of 220 and different heights. Position trailing.

A trading system based on the account balance and the result of the last trade.

Simple trailing of stop loss and take profit orders of open positions.

An oscillator of market movement, mood and trend.

A set of thirty popular candlestick patterns.

The indicator draws candlesticks in a separate window in the form of a histogram from the zero line.

A moving average based in High and Low prices.

The indicator searches for divergences and displays them on the chart of the signal line of the custom MACD indicator.

The indicator searches for divergences and displays them on the chart of the custom MACD indicator.

Geometric Mean Moving Average is a simple moving average calculated by the geometric mean method.

RSI+CCI in one window.

Colored Bollinger Bands

The EA trades using the signals of iADX (Average Directional Movement Index, ADX) and iSAR (Parabolic SAR) indicators. The profit/loss of the last closed position is taken into account. Positions are moved to breakeven.

The indicator searches for divergences and displays them on the chart of the custom AO indicator.

A trading system based on three indicators: two iMAs (Moving Average) and iMACD (Moving Average Convergence/Divergence, MACD).

A trading system based on two indicators: iSAR (Parabolic SAR) and iRSI (Relative Strength Index, RSI). Lot calculation based on the risk value as a percentage of free margin.

The Expert Advisor uses Buy Stop and Sell Stop orders to trade news and large price movements.

Opening positions randomly after a certain time interval.

This non-trading Expert Advisor is designed for the simple trailing of take profit orders of open positions.

A Simple Expert Advisor The EA opens a position of the specified type at the time specified in the EA parameters. The position is closed at the time specified in the appropriate parameter.

Implementation of multiple trailing types. Pending Buy Stop and Sell Stop orders. Limitation of the maximum total lot and the total number of positions. Several types of position volume calculation.

An Expert Advisor, which trades in a channel based on the Percentage_Crossover_Channel indicator.

An Expert Advisor based on the Diff_TF_MA indicator.