Multi Strategist EA

Multi Strategist EA

17 November 2019, 11:46
Julian Jäger
8 877

Multi Strategist is a fully automated multi-currency Expert Advisor. The aim of this Expert advisor is to achieve profits by trading with low DD and high win rates. The high win rates are achieved by utilizing up to nine indicator-based trading strategies which work in combination or separate. Each strategy uses a unique indicator combination. The strategies have been developed by cloud-based Strategy screening and each strategy has been tested and selected out of billions of possible strategies. The low DD is achieved by applying strict money management and position sizing rules. Version 4S further enables you to screen for own trading strategies with the new strategy screening feature.

The technical analysis implemented in the strategies utilizes are among others:

  • Moving Averages
  • Pivot Points (Standard or Fibonacci)
  • Retracements
  • Stochastic Oscillator
  • Directional Movement Index (DMI) & Average Directional Index (ADX)
  • Alligator
  • Momentum
  • Relative Strength Index (RSI)
  • Moving Average Convergence/Divergence (MACD)
  • Williams Percent Range (WPR) 


  • For beginners and advanced users
  • The market changes over time, so change with it!
  • Up to nine trading strategies trading in parallel per instrument.
  • A strategy scanner allows strategy development.
  • A strict risk and money management
  • Volatility sensitive stop losses and take profits
  • Trailing stops  support profit taking and loss limitation.
  • Partial Closing of positions.
  • Weekday filter/Optional automatic trade closing on Fridays
  • economic newsfilter
  • several info panels

Recommended use

  • Option A (recommended)
    • Get a vServer / VPS pre-installed with Windows (online search "Windows VPS")
    • Install Metatrader on the VPS
    • Activate AutoTrading
    • Load the expert advisor on the EURUSD H1 /GBPUSD H1 Chart using the supplied set files.
  • Option B)
    • Register a virtual server (VPS) via MQL5 software.
    • Load the expert advisor on the EURUSD H1 /GBPUSD H1 Chart using the supplied set files.
    • Synchronize the terminal with VPS by clicking on "Synchronize experts, indicators". Wait until you have visual confirmation that Expert is running on VPS.


Recommended settings

  • Account balance: >1000 USD or equivalent currency. Lower balance is possible, but risk per trade (as percent of deposit) will be higher due to the minimum volume of 0.01 lot.
  • Risk per Trade: < 5 %. The higher MaxPositions, the lower risk per single trade should be, due to parallel trades.
  • “Max Total Risk” per Instrument: 5%. (corresponds to the maximum possible floating loss per instrument).
  • optimization settings: e.g.
    • recommended settings for optimizations are marked with asterisks (***)
    • recommended range and step size is stored in optimizationTips.set


InfoPanel Settings

  • PanelNote: text here will appear on infopanel. E.g. setfile name.
  • Show InfoPanel: shows optional info panel.
  • Show TradingTime: Gives you an additional panel with time info.
  • Show DD-GuardPanel: Shows additional panel with DD-Guard info.
  • Panel on the right: if true InfoPanel will appear on the right.
  • MoveDDPanelLeft: Moves DD-Guard panel more inwards. 
  • Move downwards: moves panel downwards on the y-axes.
  • Scaling: changes size of panel.
  • Scale Correction: if scaling settings in Windows 10 have been changed;
    e.g. if Win10 scale is 150% then Scale Correction must be = 1.5
  • Autoscale: if true, Infopanel size adjusts to the chart size.
  • Scaling autoscale: autoscaled panel can be changed in size.

Set Magic Numbers

  • Magic S0-S8 Symbol 0 1  st: First Magic number has to be set. Default 1000. This means that Strategy 0 of Symbol 0 will have the Magic number 1000. Strategy 1 of Symbol to will be assigned Magic number 1001 etc.
  • Alt trade comment:allows you to add a custom trade comment (limited to 20 characters)

Set Trading Mode

  • TradingOrderMode:  0 = market order; Pending orders: 1 = limit order, 2 = stop order.
  • PendingPipDistance:Sets the distance of pending order in pips if order mode is limit or stop order. If PendingPipDistance is set to 0, then TradingOrderMode will become internally 0 as well (only market order).
  • Pending expiration hours: "-1" means pending order is canceled at the end of day (servertime); "0" means no expiration. E.g. 1 means 1 hour expiration time.
  • AlgoTemplate: EURUSD and GBPUSD strategies are pre-stored. Only the strategy algorithm is loaded Strategy combination, risk settings and trailing settings are to be set manually or by set by loading provided set files.
  • Allow Buy/Sell:If false, Long/Short trades will not be opened. (If OCO is used, order is still cancelled without opening not allowed opposing trade.)
  • Use OCO: Strategy specific one-cancels-the-other order. Example: if ‘true’ open buy trade of Strategy 0 gets closed as soon as strategy 0 generates a sell signal. 
  • Allow Hedging: if ‘true’ open trade of gets opened next to an already opened opposite trade of the same strategy if this strategy generates a signal for it.

Trendguard (Moving average SMA)

Moving average is used for trend detection (SMA, Open-Price). Timeframe and period (number of bars) can be set and used for optimization. Trend is defined as uptrend if open price is above SMA. Downtrend if open price is below SMA. If TrendGuard is on, Strategies are only allowed to open buy orders during an uptrend and only sell orders in a downtrend. This feature can (for example) help reducing the risk of repeated sell orders during long lasting bull market.

  • TrendGuard (TG): Turns TrendGuard on or off.
  • Timeframe (TF): Sets Timeframe for Moving Average Indicator (SMA, open price). Needs to be equal or higher than chart timeframe.
  • Period (TF bars): Sets period for selected timeframe.

Trendguard (normalized linear Regression) 

Linear Regression is used to detect the current trend. If TrendGuard is on, Strategies are only allowed to open buy orders during an uptrend and only sell orders in a downtrend.

  • TrendGuard ( normalized linear Regression): Turns TrendGuard on or off.
  • Show regression trendline: Shows the calculated trendline on chart.
  • Timeframe : Sets Timeframe for linear regression calculation.
  • Period (TF bars): Sets amount of bars for calculation.
  • min neg slope for short: min and max values can be checked in backtest, those values will be printed in the journal at the end of the test. Spreads mostly between -1 and +1. If ' min neg slope for short' is set to -0.1, then this negative slope becomes the minimum requirement for a short trade (if trading signal is available).
  • min pos slope for long: see above.

Choose Strategies

  • Use Strategy 0-8: Each strategy can be switched on and off.

Risk Management I

  • Max Positions: Sets the number of trading positions allowed at the same time. (Each Strategy has never more than a single trade opened. Exception: if hedging is allowed, an opposite order by the same strategy is possible as long as the number of max allowed positions is not exceeded.)
  • Risk per Trade: In percent; sets risk per trade (does not affect chance of winning a trade). Corresponds to the percentage of your deposit balance you are willing to lose if the next trade is lost. Please note that you will have multiple trades if you set Max Positions over 1. Important: If you have a low balance, the real risk per trade may exceed the set risk per trade. See Risk Management II for more options.
  • Max total Risk: Sets max allowed total risk at any given time. If the real total risk of all parallel trades (in total) is below max total risk and if opening an additional trade will not set the real risk (as percent of balance) higher than the max total Risk, than a new position will be allowed (as long as the total number of trades is below MaxPositions and as long as a trading signal exists)). Example: Maxpositions=4, RiskPerTrade=3%,  MaxTotal Risk=10%: if three trades are open, the total risk is 9% (9% of the deposit is lost if all three trades loose). But if one trade is already trailing over the break-even point, the risk of this trade becomes zero. Therefore, the total risk will decrease to 6% (9%-3%). A fourth position can now be opened, since the total risk won't exceed MaxTotalRisk after opening the fourth position. Max total Risk cannot be exceeded.
  • ATR SL Multiplier: Is used to calculate StopLosses by multiplying ATR SL multiplier with ATR (calculated in pips).
  • TR TP Multiplier: Is used to calculate TakeProfits by multiplying ATR TP multiplier with ATR (calculated in pips).
  • ATR timeframe: Timeframe can be selected for ATR calculation; default is one day.
  • ATR range [days]: Sets the range in days used to calculate ATR based stoplosses and take profits. The smaller the quicker the adaptation increasing/decreasing volatility. Make sure acceptable min SL/TP and max SL/TP are set in Risk Management II. Recommendation: ATR range: 4-14 days.
  • max DepositLoad: Helps to prevent margin calls for high risk settings and low deposits. Deposit load = Margin / Equity *100
  • Max Spread: Sets spread limit in pips for opening trade.

Trailing Settings

  • Use Trailing: turns trailing on or off.
  • Auto Trailing Settings: if true minimum profit and trailing stops are automatically calculated (see below).
  • auto MinProfit Multiplier: Multiplier multiplied by current take profit equals current minimum profit. Uses the take profit calculated for the current market situation rather than the take profit of the actual position. This makes trailing specific for the current market volatility. Setting auto MinProfit Multiplier to 0 will set Trailingstop to current StopLoss. Setting auto MinProfit Multiplier to 1 will turn trailing off.
  • auto TrailingStop Multiplier: Multiplier multiplied by current minimum profit equals current trailing stop. Therefore, TrailingStop is always smaller than Minimum Profit which has shown good results and in turn simplifies optimization.
  • max auto MinProfit[pip]:Allows to set the max allowed auto MinProfit. Minprofit is calculated by multiplying Auto MinProfit Muliplier with Take Profit, which in turn is ATR dependent.Therefore in high volatile market calculated MinProfit might be
    undesirably high. Therefore, you can now set a limit. Default max is arbitrarily set to 100 (pips max MinProfit before trailing starts).
  • min Trailingstop [pip]:Similarly, in a flat market auto Trailingstop may become very low. To avoid it, a minimum Trailingstop in pips can now be set. Default is 10pips. (If SneakUp is used, Trailingstop is allowed to get lower than min Trailingstop at some point)
  • manual Minimum Profit: if UseAutoTrailingSettings is ‘false’, sets minimum profit in pips before trailing starts.
  • manual Trailing Stop: sets the trailing stop in pips
  • SneakUp: The closer the position gets to take profit (while trailing), the smaller the trailing stop becomes.
  • Trailing Step: sets the Trailing Steps in pips.

Risk Managment II (pips)

  • Auto ATRLotSize: Automatic lot calculation based on risk, account balance and stoploss.
  • Auto TakeProfit: if true Average True Range (ATR) is used to calculate TakeProfit.
  • Auto StopLoss: if true Average True Range (ATR) is used to calculate stoploss.
  • Block higher Risk trades: if true, if real risk per trade (in percent of balance) is higher than specified in the ‘Risk per trade’ setting, the trade gets blocked. Can happen on low balance accounts, if calculated lotsize is smaller than minimum Volume (0.01 lot).
  • Lower SL to Fit Risk: AutoStopLoss can be decreased to fit risk. Makes it possible to open trades with the set ‘risk per trade’ on low balance accounts, by lowering the SL to fit risk value. A lower SL may lead to early stop out by SL. Make sure to set a min SL.
  • Lower SL MaxDeviation: if ‘ Lower SL to Fit Risk’ is used, will set the max allowed deviation of ATR StopLoss if SL is lowered. If lowered SL is outside deviation, trade will not be sent.
  • min SL/TP: min allowed stoploss and takeprofit in pips.
  • max SL/TP: max allowed stoploss and takeprofit in pips.
  • fixed TakeProfit: if ‘UseAutoTakeProfit’   is set to false, fixed stoploss is used.
  • fixed StopLoss: if ‘UseAutoStopLoss’   is set to false, fixed stoploss is used.
  • fixed LotSize: only if UseAutoLotSize is turned off: sets fixed lot size per trade.
  • Use fixed money amount [Auto ATRLotSize must be true]: You can define how much money you want to risk per trade (may vary do to lotsteps).
  • fixed money amount to risk [currency]: Set the amount.
  • max LotSize: sets max allowed lot size.

DD-Guard (Risk Management III)

The DD-Guard is an additional risk management feature.
The DD-Guard is monitoring the current day for any DD. If the DD this day reaches a daily DD threshold (including potential DD of open positions), then the DD-Guard prevents the EA from opening more positions until the next day. The DD-Guard can also be set to “global”, then it checks any positions on the account (also non-MS specific trades). A new day starts at midnight. By default, the EA checks the server time. You can also use your local time. For that GMTlocal and GMTServer must be set in Time Settings. You can also simulate a different local time by setting the GMTLocal according to your wish. This might become useful for FTMO challenges, which uses CE(S)T time to monitor daily DD.
The DD-Guard cannot be deactivated. But default it is set to the same value as MaxTotalRisk. If DD today + the risk of open positions + risk new trade is higher than the max set value, than no new trade will open. In this case the time color will switch from green to red.

  • Use DD-Guard: DD Guard can be turned on and off.
  • Use Absolut numbers(currency instead of %):everything is in currency instead of %.
  • Use globally:If true, the DD-Guard will monitor the whole account (not just the chart).
  • Use local instead of server time (set Time Settings):to define the midnight detection.
  • Auto DDayMax (same as Max Total Risk):Uses whatever you have set for max Total Risk as Auto DDayMax: (if Use Absolut numbers is enabled, then DDayMax is calculated from MaxTotalRisk and current account balance.
  • max DD today in %: set the max % DD for the day.
  • max DD today in currency: set the max amount DD for the day.

Partial Closing Settings

  • Use Partial Closing: if true profitable trades get partially closed at certain level of profit.
  • Partial close only once: Partial closing will only occur once and not repeatedly per trade if turned on.
  • Auto MinProfit: if true, sets the profit as ratio to TakeProfit that has to be reached to do a partial close.
  • Auto MinProfit (TakeProfit-Ratio): Example: 0.5 means half of the potential profit at TakeProfit has to be reached to do a partial close.
  • Manual MinProfit in currency: if Auto MinProfit is false, it will set the minimum profit in currency to do a partial close. Example: 50: 50$ profit has to be reached to do a partial close.
  • Close-Keep-Ratio: Sets position size to be closed as ratio. Example: 0.75: 75% of the position gets closed and 25% of the position remains.
  • If set to  1: whole position gets closed as soon MinProfit is reached.
  • If lot size is too small to do the desired partial close, nothing will happen.

Close on Friday

  • hours before market closes: if ‘ Close Fridays’ is true, sets time when open trades are closed before market closes (server time) on Friday in hours. Does not care about GMTServer setting.

Weekday Filter

  • Use <weekday>: Optionally, you can disallow certain weekdays from opening trades.

Time tools (Only for T/E Hours, local time DD-Guard)
Only needs to be set if you use “Set Trading Hours” or “Exclude Hours”

  • UTCLocal: In order to use “UseTradingHours” or “UseExcludeTime”, your local UTChas to be set.
  • UTCServer: In Order to use “UseTradingHours” or “UseExcludeTime” set the correct UTCof your broker.

Newsfilter Filter

The Metatrader economic newsfilter is used for blocking new trades from opening during economic news.

  • Nontradable time before and after event, minutes
  • Disable trading during high impact news
  • Disable trading during medium impact news
  • Disable trading during low impact news
  • Server Winter UTC Shift, hours: Check the homepage of your broker to get this info. 
  • Server Daylight saving time location: Select the approprate DST location. 

Set Trading (T) Hours

  • Use Trading Hours: optional feature that allows to specify trading hours. New trades are only opened during this time, if turned on. If off, trading allowed around the clock. It is possible to span trading hours over midnight to the next day (e.g. 7am-1am).
  • Trading Start Hour: set hours of trading start.
  • Trading Start minute: set minutes of trading start.
  • Trading End hour: set hours of trading end time.
  • Trading End minute: set minutes of trading end time.

Exclude (E) Hours

  • Use Exclude Hours: optional feature that allows to specifically exclude a period of the day from trading (opening new trades). It is possible to span over midnight to the next day.
  • Exclude Start hour: set minutes of exclusion start.
  • Exclude Start minute: set minutes of exclusion start.
  • Exclude End hour: set hours of exclusion end time.
  • Trading End minute: set minutes of exclusion end time.

Custom Function (general info here; for optimization and strategyscanning).

The available custom max function uses several relevant normalized parameters to assist the genetic optimization / strategy scanning to find relevant settings. The weight of each parameter can be set. If weight set to 0, then this parameter will not be inclueded; default value 1.

  • Custom Function: Main custom function is available if 1 is entered.
  • Wins-Losses ratio weight
  • win trades per year weight
  • Profit % per year weight
  • DD weight
  • EquityDD weight
  • profit factor weight
  • sharp ratio weight
  • avg MFE weight 
  • avg MAE weight 
  • Linearity Weight
  • Regression Balance slope weight
  • Trade Holding Time weight: lower holding times are prefered.
  • Consecutive Losses weight: less consecutive losses are prefered. 
  • max profit factor (PF): it can be helpful to set a max PF. E.g. if PF is set to 2 than the PF of runs with higher PFs will treated as PF=2.
  • max sharp factor: see max profit factor (PF)
  • max win Trades

Genetic Filter (quick with ‚Open-Price-only’)

In order to use filters, please use “Fast genetic based algorithm” together with “Custom max”.
Use Open-price only for very quick scanning. Use 1min-OHLC/Real ticks for high accuracy. Always us “Forward” if optimizing. If you set Forward to “1/2” optimization will first be done using half of the time period set. The other half is used to test the optimization runs with the highest scores on the second half of the test period. Therefore the second half of the testing period is “out of sample’ data and helps to sort out curve fitted optimization runs. Another way to reduce the risk of curve fitting is to use rather big steps in optimization settings. Recommendations in optimizationTips.set

  • Min amount trades per year: If number of trades per run is lower the result score will be 0. Normalized to trades per year.
  • Min Profit factor: Min profit factor can be set.
  • Min WinRate: sets minimum win rate. 50 means at least 50% wins.
  • Max Balance DD: 20 means 20% drawdown. 100% means no limitation.
  • Max Equity DD: 20 means 20% drawdown. 100% means no limitation.
  • Min Profit %: profit in percent compared to initial deposit. 100% means the deposit has doubled at test end.
  • CustomFunction: Optional Custom Functions for optimizations are available. More info on request.
  • TP larger than SL: if set to true, then runs with a ATR SL multiplier < ATR TP multiplier will not be included.

Genetic Filter Single Strategy

Filters can also be applied to single strategies. Single strategy results are also always printed in the journal after every strategy tester run.

  • Use single strategy filter: turn on or off the single strategy filter settings.
  • Min amount trades per year: If number of trades per run is lower the result score will be 0.
  • Min Profit factor: Min profit factor can be set.
  • Min WinRate: sets minimum win rate. 50 means at least 50% wins.
  • Min Profit %: profit in percent compared to initial deposit. 100% means the deposit has doubled at test end.

Strategy Scanner (100-197) (see also here)

The new strategy scanning feature enables you to scan quickly for potentially successful trading strategies. Use genetic optimization and “forward” with open-price only/1min OHLC for very quick/quick scanning. Validate scans with real ticks. It is necessary to test new strategies  on demo accounts before using on real money account to avoid losses.

  • Scan Strategy: make sure to set to OFF is scanner is not used. If set Strategy[x] the corresponding strategy will be overruled by the preset settings in the Strategy scanner. Strategy scanner itself can be overruled by barcode strategy (see below).
  • Buy/Sell:You can force to allow only short or long trades while scanning.
  • PresetS_1-7: A preset is a predefined trading algorithm snippet that can be combined with presets. Currently 60 presets are available allowing billions of possible combinations. A barcode number is generated and printed at the end of the backtest in the journal. You can store the barcode in the barcode section.  Barcodes contain algo specific settings. The first digit encodes “allow long positions”: yes (1) or no (0). Second digit encodes: “allow short positions”.


Entering digits into the barcode line will overrule the strategy algo for the specific strategy. Therefore, you are able to combine provided strategies with new scanned strategies.

Barcodes are 26 digits long and contain algo specific settings. The first digit encodes “allow long positions”: yes (1) or no (0). Second digit encodes: “allow short positions”. The remaining digits code for strategy specific parameters for technical analysis for trade entry (trailing- , ATR-,SL/TP- settings excluded).

You can enter barcodes for each strategy provided or found using the strategy scanning feature.

  • Barcode Strategy [0-8]: You can store the 26-digit long barcode for trading. Barcode can be copied out of journal at the end of each run. Just mark line in journal, press CTRL+C and then paste in barcode line and delete anything but the barcode itself.
  • Make sure that Barcode left blank if not in use.Entering anything will active the strategy and overrule other strategies set for the specific strategy. This way you can also replace predefined strategies for EURUSD or GBPUSD. Barcodes for hardcoded EURUSD and GBPUSD strategies are not provided.

optional Exit Strategy

An Exit Strategy is a strategy that will close an open trade in profit before TP is reached. Can be scanned for using the Strategy Scanner.

  • Use Exit Strategy:
  • Barcode Exit Strategy:
  • MinProfit Exit Strategy[min 10 pips]:
  • Pause period after closing by Exit Strategy: Period before new trades are allowed if signal exists.


  • Pause after manual closing: If you close a trade manually, than the EA will pause from new trades for a set period of time.
  • Pause strategy after hitting SL/TP: The strategy takes a pause for a set period of time after a trade closed by reaching SL/TP.

An Exit Strategy is a strategy that will close an open trade in profit before TP is reached.
Min profit can be set and has to be above 10pips (spread will be automatically taken into account).

BootCamp Mode

With BootCamp Mode strategy developers are able to store all strategies (that passed the genetic filter criteria) of a single strategy scan to a barcode file. Those for example 100 strategies can then be tested with low risk/0.01 lot on a demo account (using a barcode file is limited to demo accounts, because in BootCamp Mode, a high number of trades might open). One on demo account, MultiStrategist EA records all trades for each strategy in a "statistics.csv" file. This way profitable strategies in BootCamp will be easily to identify over time. Those strategy barcodes can then be used for real money trading. Click here for a tutorial.


  • ON/OFF: BootCamp mode can be turned on and off. 
  • Name Subfolder [common folder]: barcode files are created in the 
  • Barcodes used [9999 means all]: select the number of barcodes to use from the file (from top to bottom). Default is all barcodes (9999), make sure to use demo account with high leverage and high deposit and low risk(0.1% or 0.01 lot).
  • BootCamp Mode:
    • Create raw files: creates barcodes_raw.csv file in the ‘common folder’ (see below).
    • Finalize barcode file: barcodes.csv will be created from barcodes_raw.csv.
    • Use barcode file: barcode file is being used.
    • Delete_all_files: barcodes.csv and barcodes_raw will be deleted. (You can also just delete them manually).

Share it with friends: