Watch how to download trading robots for free
Find us on Twitter!
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

MQL4 and MQL5 Source Code Library

icon

You don't know where to start learning the MQL5 or MQL4 programming language? Various programs for your MetaTrader terminal are available here. Download and study published code examples, develop your own indicators and Expert Advisors. Publish your applications in the largest library of MQL5 and MQL4 codes, and they will be available in every MetaTrader terminal and MetaEditor.

Your code examples in MQL4 and MQL5 will be distributed worldwide, and thousands of traders will know about you!

Submit your code

Here are some examples of codes for set counters based on "Count"

This is a basic library to create and manage grids.

If you only want to execute your code blocks "only once per bar" it's important to check if there is new bar arrived or not.

This script helps traders understand the distribution and range of candles in a specific period, which can be useful for making trading decisions such as determining which historical values to use for Take Profit or Stop Loss.

Counter attack candlestick pattern

Dominant Candle is a a two candlestick set where the wicks intersect each other but body of the candles are either gapped up, gapped down or equal

This code block loops through all opened position and do trailing based on Ask and Bid prices.

This code block detects a New Bar or a New Candle when it has received.

Logarithmic Moving Average continuously calculates the logarithmic mean of highest price and lowest price within a period.

MQL5 version of harmonic moving average

The indicator draws an arbitrary second time frame on the chart.

Highlights the Forex Market Sessions (Sydney, Tokyo, London, New York).

Indicator based on basic slope moving average and cloud around. Indicator shows two types of signals: prepearing - dot and entry - arrow.

Script to determine whether your Broker follows the US, UK or AU daylight (DST) schedule.

Searches for Wick or Body based High low in visible bars of chart

A simple observatory of individual currencies.

The book "Neural networks in algorithmic trading with MQL5" is a comprehensive guide, covering both the theoretical foundations of artificial intelligence and neural networks and practical aspects of their application in financial trading using the MQL5 programming language.

Now we will get the code with function and purpose as below: 1. How to call and using the bollinger band 2. How to call and using the volume tick 3. How to call and using the Moving average volume. 4. How to code using the Trailling & Check volume lot size

Class to access to the local time for the specified location, as well as time zone information and the local trading session hours.

it is an Indicator of Donchain chanel price action work with to all time frame.

Short description.

easydatabase

The source codes written during the development of the library for creating multi-currency Expert Advisors that combine many instances of various trading strategies.

Static class to fix the TimeGMT() function during testing in the strategy tester.

This is a script to export rates and ticks of current chart's symbol into CSV-files compatible with MT5's export/import format.

KA-Gold Bot is an advanced trading advisor specifically designed for gold, utilizing the powerful combination of the Keltner channel strategy and two exponential moving averages (EMAs) - the 10-period EMA and the 200-period EMA. Principle of Operation: The 10-period EMA represents the average price cutting above/below the Keltner band, confirming an uptrend/downtrend. The price being above the 200-period EMA supports the uptrend/downtrend. This indicates that the uptrend/downtrend has been stronger than the previous 10 periods, considering the volatility over the last 50 periods. - Time frame: M15

SAR ADX Signal with mobile notification, rewritten from MT4 version (source no longer found). This is a repaintable indicator, please be careful when using it.

Historical Strong S/Rs Levels

The EA only trades buy positions and does not use SL and TP.

Hides Alone Candlesticks

Fair Value gaps are used in ICT's smart money concept where there is an imbalanace of 1 point or more between 1st candle's high and 3rd candle 's low in bullish and 1st candle 's low and 3rd candle's high in bearish

While manually adjusting the stop-loss of a single trade to match its open price is a relatively simple task, managing numerous positions individually can be cumbersome and time-intensive. The Titik Impas Breakeven script for MT4/MT5 streamlines this process, providing efficiency and convenience for traders dealing with multiple positions.

This is an indicator to calculate ATR Weighted moving averages.

Show candle gain and candle loss in percent.

Candlestick Fitness concept is used in coding HFT Algos based on population optimization algorithms.

This is an indicator to calculate 14 types of moving averages based on close price.

Provides Bollinger Bands with calculating the range bandwidth as the difference in pips between the upper and lower Bands. Bollinger Bands appearance and behavior can be tailored by adjusting period, shift, deviation, and applied price, along with color and line style. The 'range/bandwidth information' label can be placed in the specified Sub-Window, allow to customize label positions. Overall, this indicator aids traders in visualizing market flexibility and volatility based on Bollinger Bands width.

Sec-WebSocket-Key Generator

This function performs the main logic of opening a trade. Calculates the opening price, take profit levels and stop loss based on symbol information and parameters provided by the user. Prepare a trade request (MqlTradeRequest) with the necessary information, such as symbol, volume, order type, deviation, comment, magic number, etc. Call the OrderSend function to send the operation request and get the result. SetTypeFillingBySymbol function: Determines the order fill type (Fill or Kill, Immediate or Cancel, or Return) based on the symbol's filling policy. GetMinTradeLevel function: Calculates the minimum operating level based on the freeze level and the symbol stops level. Adjusts the minimum level to make sure it is within certain limits and returns the result.

This is a script to print all open trades and their PnLs at a specific time in history.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183