This tutorial applies to the EA 'MA Crossing Bot MT5' whose product page is accessible by clicking on the image below:
This product is not just an EA that will open orders when the crossing of 2 moving averages occurs. Indeed, the main advantages of this EA are:
- It includes additional filters (3rd MA, Pivot Points, other filters can be implemented on demand).
- It has a complete management of orders (closing on reverse signal, break even, trailing stop, closing before weekend, max lost or win / day ...).
- It can work with all market watch symbols at once.
Below is the backtest of this EA for AUDJPY(default settings) from 01/01/2020:
![](https://c.mql5.com/6/939/361118176033.png)
Detailed features are described on the product page. Below is the list of EA settings with explanations.
-====General settings====-
Symbols: symbols for alerts & trading (all or symbol on the chart)
There are several possibilities to choose which symbols should be scanned:
- 'Only symbol on the chart' : you should use this option for backtests or if you want to apply the bot on the chart symbol ;
- 'All major forex pairs' : the bot will scan all 28 major forex pairs (EUR/USD/GBP/CHF/AUD/NZD/JPY) ;
- 'Market watch' : the bot will scan all market watch symbols ;
- 'Only symbols listed below' : only symbols listed in the field below will be scanned
Symbols to scan or exclude: write here symbols to scan ('Only symbols listed below' mode) or to exclude ('All major forex pairs' and 'Market watch' mode)
Broker prefix (if necessary): only for brokers who use prefixes. For example, type m for mEURUSD
Broker suffix (if necessary): only for brokers who use prefixes. For example, type m for EURUSDm
If several symbols must be entered in this field, they must be separated by commas
Use Timer: define trading days and hours
Orders will only be opened on trading days. However, orders can be closed/modified even outside of the established time if at least one of the following parameters is enabled:
- 'Max % lost/day' ;
- 'Max % win/day' ;
- 'Close orders before weekend' ;
- 'Close on reverse crossing' ;
- 'Close order if price closes above/below a Ma' ;
- 'Break even' ;
- 'Trailing stop'.
Monday: alerts & trading on Mondays
Tuesday: alerts & trading on Tuesdays
Wednesday: alerts & trading on Wednesdays
Thursday: alerts & trading on Thursdays
Friday: alerts & trading on Fridays
Saturday (crypto): alerts & trading on Saturday (generally for crypto trading)
Sunday (crypto): alerts & trading on Sunday (generally for crypto trading)
Start time: start of the session
End time: end of the session
Indicators alerts: terminal and/or smartphone notifs
Trading alerts: terminal and/or smartphone notifs
-====Moving averages crossing settings====-
Timeframe: all MT5 timeframes
Warning! If you want to use the timeframe of the chart, use the value "CURRENT"!
If you use another value, the current chart timeframe will not affect the Ma calculation.
Crossing validated at: actual bar or as soon as the bar is closed
Recommended value: 'as soon as the bar is closed'. An order will be opened if a crossover is detected during the current bar and if it is still there when the bar is closed.
Min bars after previous crossing: the crossing is validated if no crossing during the previous x bars
This setting is there to avoid market noise and a period of range. This means that if a cross occurs, the previous cross will be located. The EA will count the number of bars between the 2 crossings (current and previous). 2 solutions:
- Number of bars < x: the order is not open;
- Number of bars >= x: the order is open.
Reversed logic: buy and sell logic of the 2 MA crossing is reversed
-=Moving average 1 settings=-
Ma1 period: period of the 1st MA
Ma1 method: SMA / EMA / SMMA / LWMA
Ma1 applied price: CLOSE / OPEN / HIGH / LOW / MEDIAN / TYPICAL / WEIGHTED
Ma1 shift: shift of the 1st MA
-=Moving average 2 settings=-
Ma2 period: period of the 2nd MA
Ma2 method: SMA / EMA / SMMA / LWMA
Ma2 applied price: CLOSE / OPEN / HIGH / LOW / MEDIAN / TYPICAL / WEIGHTED
Ma2 shift: shift of the 2nd MA
-====Filters settings====-
-=3rd Moving average settings=-
Use a 3rd MA: checks if price is above (buy signal) or below (sell signal) this MA
Ma3 timeframe: all MT5 timeframes
Note: to avoid unnecessary backtests in optimization mode, the 'Same than Ma1 & Ma2' has been added to automatically provide the same timeframe for Ma3 than for Ma1 & Ma2.
Ma3 period: period of the 3rd MA
Ma3 method: SMA / EMA / SMMA / LWMA
Ma3 applied price: CLOSE / OPEN / HIGH / LOW / MEDIAN / TYPICAL / WEIGHTED
Ma3 shift: shift of the 3rd MA
-=RSI settings=-
Use RSI: checks RSI value before opening an order
RSI Timeframe: all MT5 timeframes
RSI period: period of the RSI filter
RSI applied price: CLOSE / OPEN / HIGH / LOW / MEDIAN / TYPICAL / WEIGHTED
RSI shift: shift of the RSI filter
Min RSI value for a buy order: buy order is opened if RSI > this value
Max RSI value for a sell order: sell order is opened if RSI < this value
-=Pivot points settings=-
Daily PP: checks if price is above (buy signal) or below (sell signal) daily PP
Weekly PP: checks if price is above (buy signal) or below (sell signal) weekly PP
Monthly PP: identical to the previous parameter for monthly PP
Note: the more filters implemented, the fewer orders will be opened. If you find that there aren't enough open orders, try disabling some filters.
-====Trading settings====-
-=General settings=-
Allow trading: if false, only alerts are operational
Magic number: must be unique if other EA are running
'Max open orders', 'Max % lost/day' and 'Max % win/day' are calculated from the magic number. For example, if you have 3 EAs with the same magic number, the total number of orders opened will be the sum of the orders opened in those 3 EAs.
Max open orders: max number of orders opened simultaneously (if 0, no max)
Max lost/day (in % of equity): if max value is reached, the EA open orders are closed and no other order is opened until the next day (if 0, no max)
The calculation is based on equity and not balance. In order to speed up the backtests, the calculation is done every hour during backtests, instead of every minute for a real trading session.
Max win/day (in % of equity): if max value is reached, the EA open orders are closed and no other order is opened until the next day (if 0, no max)
Same remark than for 'Max lost/day (in % of equity)'.
Max drawdown (in % of equity): if max value is reached, the EA open orders are closed and the EA is closed (if 0, no max)
Same remark than for 'Max lost/day (in % of equity)', but the calculation is done every 5 minutes (for backtests and real trading sessions).
Close orders before weekend: close all EA orders on Friday
Closing time before weekend: if ‘Close orders before weekend’ is ‘true’
Use money management: if ‘true’, lot size in % balance
Fixed lots size: lot size per order (if ‘Use money management’ is ‘false')
Lot size in %: % balance per order (if ‘Use money management’ is ‘true’)
Max spread: max allowed spread to open an order (if 0, no max spread)
Warning: if the value of the spread is too low, no order will be opened! To avoid any problem, it is recommended to set the value '0' for the backtests.
Max slippage: max allowed slippage to open an order
Same remark as 'Max spread'.
-=SL & TP settings=-
SL mode: stop loss can be placed x pips above/below current price (normal SL mode) or x pips above/below an Ma (Ma SL mode)
In 'Ma SL mode', SL is placed below the Ma for a buy order and above the Ma for a sell order. For a buy order, if the Ma is above the price, the order is not opened. For a sell order, if the Ma is below the price, the order is not opened.
Ma for SL (Ma SL mode only): if 'Ma SL mode' is chosen, the SL is x pips above/below the Ma chosen in this parameter when the order is opened
SL in pips, points...: stop loss x pips above/below current price in 'normal SL' mode and above/below the chosen Ma in 'Ma SL' mode
TP in pips, points...: take profit x pips above/below the current price at the opening of the order regardless of the 'SL mode' chosen
-=Additional closing settings=-
Close on reverse crossing: close the order if the 2 MA cross in the other direction (only for ‘previous_bar’ mode)
Min number of bars to close an order on reverse signal: for 'Close on reverse crossing' mode, an order is closed only if there is a minimum of bars between the order opening and the reverse signal
If the crossing was not convincing, another crossing in the other direction may occur during subsequent bars. This parameter prevents the order from being closed too early.
Open an order on reverse crossing: opens a new order if another order just closed with the ‘Close on reverse crossing’ parameter
Close order if price closes above/below a Ma: close order if ask < Ma (buy order) or if bid > Ma (sell order)
Close order if price closes above/below this Ma: MA to use for the previous parameter
-=BE/TS/Grid settings=-
Break even: if ‘true’, break even is activated
Break even profit in pips, points...: triggers the break even from a certain profit in pips, points...
Trailing stop: if ‘true’, trailing stop is activated
Trail profit in pips, points...: triggers the trailing stop from a certain profit in pips, points...
Trail distance in pips, points...: distance in pips, points... between trailing stop and price
Trail step in pips, points...: step in pips, points... for the trailing stop
Open additional orders: an additional order is opened each time the profit reaches a step
Max additional orders (by symbol) : 'Open additional orders' must be 'true'
Fixed lots size (additional orders): if ‘Use money management’ is ‘false'
It is better to have smaller lots than for main orders.
Lot size in % (additional orders): if ‘Use money management’ is ‘true'
It is better to have smaller lots than for main orders.
Profit step in pips, points... to open an additional order: each time the profit reaches this step, a new order is opened
SL in pips, points... of additional orders: SL in pips, points... of the additional orders
TP in pips, points... of additional orders: TP in pips, points... of the additional orders
- Before using the 'All major forex pairs' mode, verify that the 28 major currency pairs are present in the “Market Watch” tab of MT5.
- It is recommended to use multi-symbol mode for alerts only. When a profitable method is found on a symbol, it is better to apply it in ‘only_symbol_on_the_chart' mode.
- The EA works for all types of symbols but in some cases (depending on the broker), adaptations on SL and TP have to be done with certain types of symbols (other than forex and indices). In this case, settings in pips or points have to be multiplied by 10 to match the correct value. Example: for a stop loss of $10 on the Oil symbol the 'SL in pips, points...' parameter must take the value 100 and not 10 (x10). Tests can be carried out in backtest to find the right value.
Major forex pairs :
EURUSD / GBPUSD / USDCHF / AUDUSD / USDCAD / USDJPY / NZDUSD
EURGBP / EURCHF / EURAUD / EURCAD / EURJPY / EURNZD
GBPCHF / GBPAUD / GBPCAD / GBPJPY / GBPNZD
AUDCHF / CADCHF / CHFJPY / NZDCHF
AUDCAD / AUDJPY / AUDNZD
CADJPY / NZDCAD
NZDJPY