• Overview
  • Reviews
  • Comments (2)
  • What's new

Momentum Simplex EA

No martingale, no grid!

This strategy is a simple momentum strategy that does not use any filters for news in contrast to Momentum Capture EA.

Therefore, the profit factor is a bit lower, but this EA has the advantage that it will trigger on every strong movement, not only after bank events. Thus, it is a good EA for diversification of the portfolio.

After a strong momentum, it only opens one position for each symbol that was triggered, so it can be run with a higher lot size compared to other momentum systems that open multiple orders.

It is a multi-currency EA that can be run from a single chart and is optimized for H1 timeframe and the following symbol list:


I recommend using all pairs with 0.01 lots per $1000 balance. See tick data portfolio backtests in the Comments section.

Most of the symbols were also profitable on M30 timeframe in historic tests, but with a smaller profit factor. I did not run optimizations on other timeframes, if useAutoEntryAndExitSettings=true, the EA will always use the H1 settings, which might not be correct if you put it on a chart of another timeframe.

Be careful when using XAUUSD. Backtest XAUUSD at your broker before running it live!

Check the parameter lotsXAUUSD as your broker might have a different minimum lot size. The strategy will identify XAUUSD by searching for "XAUUSD" or "GOLD" within the symbol name. For XAUUSD, the pip will be automatically set to 0.1.


General Settings

  • symbols1 - list of symbols to be traded separated by a comma ",".
  • symbols2 - additional list of trade symbols.
  • lotType - can be either "fixed" or "increasing".
  • lots - lot size used if lotType=fixed and also used as lot step size if lotType=increasing.
  • lotsXAUUSD - different lot size/lot step can be defined for XAUUSD because the contracts can vary between brokers.
  • equityPerStep - equity needed per lot step. For example, lots=0.01 with equityPerStep=1000 will trade 0.01 if equity is between $500 and $1500 and 0.02 if equity is between $1500 and $2500, etc.
  • magic - individual magic number for this EA.
  • pipInPoints - for 5-digit brokers, this should be 10, for 4-digit brokers, this should be 1.
  • usePipsScaledToADR - if true, the pip value will be scaled to the average daily range, so 40 pips could then mean something between 20 and 80 normal pips.
  • slippage - value used in OrderSend() function.
  • timeFrame - timeframe used. The auto settings are optimized for H1 timeframe.
  • comment - user-defined comment.

Entry Settings

  • useAutoEntryAndExitSettings - whether to use the internally stored entry and exit settings.
  • periodATR - period of the ATR used to determine the average price move.
  • lookbackBars - how many bars to look back for the price move.
  • minMovementATR - minimum size of the movement measured in ATR.
  • minMovementPips - minimum size of the movement measured in pips (or scaled pips if usePipsScaledToADR=true).

Exit Settings

  • takeProfit - profit target in pips (or scaled pips).
  • minimumStopLoss - minimum initial stop loss.
  • maximumStopLoss - maximum initial stop loss.
  • trailingStop - trailing stop used to follow open positions. There are also additional filters influencing the actual stop loss.
  • breakEvenAt - when to set SL to breakeven.
  • breakEvenTo - where to set the SL if breakEvenAt is reached.
  • checkExit - whether to check exit (break even and trailing stop) on every tick or only on new bars.

Time settings

  • minUpdateTimeMillis - in case there was no tick for some time (given in milliseconds), you can set an independent update interval.
  • waitSecondsAfterBarClose - if don't want to trade on first tick of a bar.
  • startHourGMT - when to start trading (GMT).
  • endHourGMT - when to stop trading (GMT).
  • mondayStartHourGMT - when to start on Monday (to avoid triggers by gaps over the weekend).
  • fridayEndHourGMT - when to stop trading (GMT) on Fridays.
  • closeAllPositionsOnFriday - whether to close positions before weekend.
  • fridayCloseHourGMT - when to close in case closeAllPositionsOnFriday=true.
  • waitForFirstBarToClose - if true, it will wait until the first bar is closed. If false, it might enter directly if you start the EA during a strong movement.
No reviews
Version 1.4 - 2018.02.12
No changes to the logic. But I switch to saving all bar closes internally to avoid any missing bar data on non-chart symbols.
Version 1.3 - 2018.02.07
Fixed a bug with time shift of bars from other symbols other than the chart symbol.

Also, there is now a parameter "checkExit" which determines whether the exit (break even and trailing stop) is checked on every tick or only on new bars.