• Overview
  • Reviews (1)
  • Comments (18)
  • What's new

Momentum Capture EA MT5

The EA tries to detect the start of a new trend after bank events and speeches. It has multi-currency and multi-timeframe capabilities.

No martingale, no grid, no scalping!

The EA does not trade every day, but it usually is good in catching the big movements without too much risk during range trading periods.

After detecting strong price action and momentum, it will open positions in trend direction as well as pending orders for a possible reversal.

For each timeframe there can be one open order. So you can adjust risk by not choosing all four timeframes.

In general, all combinations of USD, EUR, GBP, CAD, AUD are tradable. Personally, I use the following symbols:


The EA only needs to be placed on one chart on any timeframe. I use EURUSD because it has the most ticks.

Web requests have to be allowed for the EA to get news data. Go to: Tools -> Options -> Expert Advisors and add the following addresses:

http://currencystrength.de and http://backup.currencystrength.de

The minimum balance depends on the number of symbols and on the maximum position settings. I recommend $1600-$2000 with maxStop/maxMarketOrdersAllSymbols=16.

Please contact me if there are problems with backtesting or if you need assistance in live trading.

For backtests, it is very important to use news data and the correct GMT offset. The EA does not trade in the minute after news, so the news data is not used for unrealistic news trading. But it is important to determine whether the movement is fundamentally driven. News data from 2010 to the date of the latest update is already included in the EA file. For future data you have to download a data file.


IMPORTANT: every symbol should only be added to ONE of the symbol lists else it might be traded twice!
  • symbolsNormal - comma separated list of symbols to trade with events from both currencies.
  • symbolsIgnoreUSDevents (EUR,JPY,GBP) - These symbols will also be traded but not on USD (EUR,JPY,GBP) events.
  • tradeM5...tradeH1 - whether to use the M5... H1 timeframe.
  • magicM5...magicH1 - magic number for trades entered on M5... H1 timeframe signals.
  • lotType - "fixed" or "increasing", where the lot size is calculated automatically.
  • fixLots - fixed lot size in case lotType = fixed.
  • lotStep - how much the lot size should be increased every equityPerStep (if lotType = increasing).
  • equityPerStep - how much equity is needed for one lot step (if lotType = increasing).
  • equityHardStop - if the equity falls below this value (in account currency) the EA will close open positions (only of this strategy) and will not open new positions.
  • maxStop/maxMarketOrdersAllSymbols - To limit the total number of open market and pending stop orders for all symbols.
  • 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.
  • allowHedge - If false it will only allow sells when not buys are open and will only allow sellstops below the lowest buy stop loss and the other way around. If set to true then running one time frame should be FIFO complient, but not running multiple time frames!
  • useAutoSettings - whether to use the internally stored entry and exit settings.
  • autoScaleFactor - This parameter is for a quick way of diversification. It will scale SL, TP, BE, trailing start, trailing stop by the factor specified. It will also scale the entry strength parameters, but not as much because those are more sensitive.
  • waitMinutesAfterNews - how long to wait after a news event (in Minutes).
  • momentumStrengthMarket/Pending: Trend strength for entry.
  • stopLoss - maximum stop loss used.
  • takeProfit - take profit for trade exit. Usually the strategy will exit via trailing stop.
  • trailingStop - trailing stop in pips.
  • trailingStart - when to start the trailing stop.
  • breakEvenAt - when to set the breakeven stop loss.
  • breakEvenTo - how many pips above/below the entry price the breakeven stop loss should be placed.
  • maxAllowedMovement - maximum allowed movement to avoid trading on events like the CHF spike on 2015.01.15.
Marcus Nyman
Marcus Nyman 2018.03.16 14:23 

This is my first EA with Metatrader 5. I have several experts with metatrader 4, but I wanted to try something new. This EA does exactly what it Is suppose to do.

According to my research, one can expect a drawdown of 370$ per 0.01 lot (if you are running all the symbols). Therefore, it is important to have the needed capital size which Roman explains.

Also be aware, It might trade rarely but when it bursts, it really hits the trend with maybe 20-30 trades.

Do your research and enjoy the ride. I recommend this EA.

Version 2.5 2018.07.24
- The EA will now check entries based on time instead of based on new bars. This might improve consistency between different brokers and price feeds.
- Added the liveGMToffset parameter for those who want to set the GMT offset manually. Keep in mind that on most brokers the GMT offset will change twice a year because of daylight saving time.
- Added the option to define additional events that will only be used by Momentum Capture (but not by other strategies like NightWalker EA).
- Disabled reversal trades for four symbols that had mixed results: EURGBP, CADJPY, GBPCAD and GBPAUD.
Version 2.4 2018.06.08
Only a small, but very important update. Now the EA will no longer use the MetaTrader 4 GMT time alone but a combination of MetaTrader 4 GMT time and broker time:
1) To calculate GMT offset it will use MetaTrader 4 GMT time which depends on local PC time.
2) It will use MetaTrader 4 broker time for minutes and seconds (because local PC time could be off by a few seconds or more).
3) At the start it will check once with my server whether the MetaTrader 4 GMT time is correct. If it is not correct, an alert message will be shown and you should re-sync your local PC time. A difference of a few seconds or even minutes would not matter because of 2).

- Also, some of the entry parameters were changed slightly.

- The SymbolSelect() function, which caused significantly higher CPU usage on MetaTrader 4 (on MetaTrader 5 not as much), will now only be called at the initialization of the EA.
Version 2.2 2018.05.02
- I made some small improvements to the logic.

- Added auto settings for symbols GBPCAD and GBPAUD, but only without GBP events because we already have 4 GBP symbols. Now we also have full exposure (4 symbols) on CAD and AUD. But default settings will not have GBPAUD because I am sleeping during those events and only want 3 symbols active. have a look at your spreads before using those as spreads can be very large on some brokers for GBP crosses!

- Added equityHardStop parameter: The EA will close all trades and not open new ones if the equity falls below that level (given in account currency).

- Now you can use auto settings, but at the same time change some of the settings. For example, if you want auto settings but only change smaller trailing stop and take profit, you can now set parameters trailingStop and TakeProfit to the value you want to use. But all symbols will then use the same value! If the value is 0 (new default), auto settings will be used.
Note that due to ADR scaling the values might not be exactly the value you set in normal pips.

- ADR calculation was changed to have a better consistency between accounts. It is now calculated only from H1 bars, not D1 bars. Therefore, it does not matter if the broker has 5 or 6 daily bars.
From this version on it is best to backtest the EA on H1 time frame to make sure that the data is available.

- there are now two spread parameters to allow for a bit larger spread on symbols with a larger average spread:
maxSpreadPips: If the spread is below this value (in pips) the trade will be allowed.
maxSpreadRelativeToAverage: If the spread is smaller than the average spread multiplied with this factor, the trade will be allowed even if the spread is larger than maxSpreadPips (but not if it is larger than 2*maxSpreadPips).

- Added a parameter allowHedge. If set to false, it will only allow sells when no buys are open and will only allow sellstops below the lowest buy stop loss and the other way around. If set to false then running one (!) time frame should be FIFO complient, but not running multiple time frames because mutliple trailing stops with FIFO are a pain to adjust so I have not done it. But if you want to use this EA on accounts with FIFO restriction, you could run each time frame on a separate chart.
Version 2.1 2018.03.26
Only small changes to auto settings:
USDCAD and CADJPY will now wait 5 minutes instead of only 1 before checking for possible entries.
Version 2.0 2018.03.20
- Some minor improvements for the trade logic.

- Corrected a small bug concerning CPI news times.

- Added a new parameter "debugMode":
If true the EA will print some debug information when it checks for trade entries. So if you observe that you have different trades than my signals or the backtests, you can send me the log file and I will analyze the reason for the differences.
Version 1.15 2018.03.09
Removed parameter smallerBreakEvenAndTrailingStop (will be replaced by autoScaleFactor).

Added parameters:

- closeOnlyMode: if you do not want to open new positions or afraid that your VPS might crash, you could run it with closeOnlyMode on a second VPS.

- maxSpreadPips: avoid trading during extremely high spread.

- closePendingOrdersInSameDirection: close pending buy orders if there is a signal for a market buy order, same for sell orders.

- autoAllowCPIonSomeSymbols: auto settings allow trading CPI events on those pairs: EURUSD, EURAUD, GBPUSD and AUDUSD.

- autoScaleFactor: this parameter is for a quick way of diversification. It will scale SL, TP, BE, trailing start, trailing stop by the factor specified. It will also scale the entry strength parameters, but not as much because those are more sensitive.
Version 1.14 2018.02.13
The EA will now store bar data internally to avoid delays in data update of non-chart symbols.