Skip to content

Price MA Crossover EA MT5 tutorial

    This product is not just an EA that will open orders when the price crosses a moving average. Indeed, the main advantages of this EA are:

    • It includes additional filters (2nd MA, RSI, Pivot Points…).
    • 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 GBPUSD (default settings) from 01/01/2024:

    Backtest

    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

    User comment: allows each action of the robot to be identified, can be left blank

    -====Moving averages 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

    Recommended value: false

    Ma period: period of the MA

    Ma method: SMA / EMA / SMMA / LWMA

    Ma applied price: CLOSE / OPEN / HIGH / LOW / MEDIAN / TYPICAL / WEIGHTED

    Ma shift: shift of the MA

    -====Filters settings====-

         -=2nd Moving average settings=-

    Use a 2nd MA: checks if price is above (buy signal) or below (sell signal) this MA

    Ma2 timeframe: all MT5 timeframes

    Note: to avoid unnecessary backtests in optimization mode, the ‘Same than Ma1’ has been added to automatically provide the same timeframe for Ma2 than for Ma1.

    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

         -=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: the RSI must be greater than this value to validate a buy order

    Max RSI value for a buy order: the RSI must be lower than this value to validate a buy order

    Min RSI value for a sell order: the RSI must be greater than this value to validate a sell order

    Max RSI value for a sell order: the RSI must be lower than this value to validate a sell order

         -=ADX settings=-

    Use ADX: checks ADX value before opening an order

    ADX Timeframe: all MT5 timeframes

    ADX period: period of the RSI filter

    Min ADX value for a buy or sell order: the ADX must be greater than this value to validate a buy or sell order

    Max ADX value for a buy or sell order: the ADX must be lower than this value to validate a buy or sell order

         -=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. It is also possible to take into account buy orders or sell orders only.

    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 in pips, points…: stop loss x pips above/below current price

    TP in pips, points…: take profit x pips above/below the current price

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

         -=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 (per 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

    www.mql5.com (Article Sourced Website)

    #Price #Crossover #MT5 #tutorial