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 EURUSD (default settings) from 01/01/2020:
Detailed features are described on the product page. Below is the list of EA settings with explanations.
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 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
-=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
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
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.
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: 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 account balance + open orders benefits. 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: 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 % win/day’.
Close before weekend: close all EA orders on Friday
Closing time before weekend: if ‘Close 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: 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: 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)
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
Break even: if ‘true’, break even is activated
Break even profit: triggers the break even from a certain profit in pips
Trailing stop: if ‘true’, trailing stop is activated
Trail profit: triggers the trailing stop from a certain profit in pips
Trail distance: distance in pips between trailing stop and price
Trail step: step in pips 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’
It is better to have smaller lots than for main orders.
It is better to have smaller lots than for main orders.
Profit step in pips to open an additional order: each time the profit reaches this step, a new order is opened
SL of additional orders: SL in pips of the additional orders
TP of additional orders: TP in pips 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.
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