MultiMartin – EA MetaTrader 5

This is a multi-asset expert adviser based on martingale trading strategy. Its original idea is taken from another expert adviser – ExpMartin available for MT4.

Warning. Martingale is easy yet very dangerous strategy. Evaluate your risks carefully.

The strategy is to open reversal trades with increased lots after every loss, until a profitable trade occured or a maximal number of reversals achieved. In both cases next trade will start with initial lot.


In comparison to the original one, this expert adviser demonstrates several points:

  • conversion from MT4 to MT5 (MT4Orders and other header files are used, please find all dependencies attached);
  • conversion from functional programming to OOP paradigm, which in essence makes it possible to fulfill the next objective:
  • adaptation from single-symbol to multi-symbol processing;
  • source code refactoring for easier reading and support;

Also some bugs were fixed.

The program can still be improved in many aspects, for example, operation by timer, volatility analysis, etc. are left out of consideration.

Input parameters

Specific symbol settings – used for step by step optimization on every work symbol (should be selected as current chart symbol).

  • UseTime – enable/disable new trades opening according to the range of hours [HourStart..HourEnd];Β 
  • HourStart – starting hour of the range when new trades are allowed; takes effect if only UseTime is true;Β 
  • HourEnd – ending hour of the range when new trades are allowed; takes effect if only UseTime is true;
  • Lots – initial lot size;
  • Factor – multiplication factor for increased lots;
  • Limit – maximal number of multiplications, if reached – initial lot is used;
  • StopLoss – distance to stoploss in points (no automatic pip adjustement);Β 
  • TakeProfit – distance to takeprofit in points (no automatic pip adjustement);
  • StartType – trade type for starting order: o – buy, 1 – sell;Β 
Alternative:  ytg_Alert_New_Bar - indicator MetaTrader 5

Common settings – used for trading.

  • Magic – expert id;
  • SkipBadTime – an option to wait predefined period of time after trading errors (such as “not enough money”, “lost connection” etc);
  • WorkSymbols – a string of work symbols and their specific settings, which should be selected after separate optimizations per every symbol; the settings for symbols are separated by semicolon;Β the format is “nameΒ±lots*factor^limit(sl,tp)[start,stop];…”, for example “EURUSD+0.01*2.0^7(500,500)[2,22];AUDJPY+0.01*2.0^5(500,500)[1,21]” — to trade EURUSD and AUDJPY starting with buying (the plus sign) of 0.01 lots, then multiplied by 2 on losses up to 7 or 5 times correspondingly, stoploss and takeprofit are all 500 points, trading window differs by 1 hour;Β 
  • Trail – a mode how to treat stop orders: none – fixed level stoploss (no trailing), break-even – trail after profit equal to stoploss size in points, straight – trail from very beginning (may end up with a loss up to the stoploss size in points, but not larger than that);

When used with multi-currency settings, it’s advisable to place the expert to a chart with most liquid symbol (where ticks arrive most frequently and trading sessions are continuous), for example EURUSD. Alternatively, one can replace OnTick event handler with OnTimer and start a timer in OnInit.

Alternative:  iRSIOnArray for MT5 - library MetaTrader 5

Example reports

MultiMartin trade performance on EURUSD for 3 years 2016-2019

MultiMartin trade performance on EURUSD for 3 years 2016-2019

MultiMartin trade performance on EURUSD,AUDJPY,GBPCHF for 2019

MultiMartin trade performance on EURUSD,AUDJPY,GBPCHF for 2019

    πŸ“ˆ ROBOTFX MetaTrader Expert Advisors and Indicators to maximize profits and minimize the risks