• Overview
  • Reviews (6)
  • Comments (382)
  • What's new

Exp4 THE X FULL Universal EA for MT4

Universal Multicurrency Trading System with Averaging Function for MT4

This Expert Advisor includes all the useful functions that have been used in all the Expert Advisors including the function of averaging.

Uses signals from 11 standard indicators included in MetaTrader 4 package.

The function of averaging allows bringing an unprofitable position to profit by creating a grid of positions in the price movement direction. If the price moves against a position, the averager will open additional positions on the basis of your settings, thus it increases the volume and sets a common take profit for all positions by the given symbol.

The martingale function allows using the standard martingale mode.

Trailing stop, break even, trading time, auto lot, closing by total profit/loss. All these function are available in the full version of the Expert Advisor.

You can also download the MetaTrader 5 version The X for MT5

Attention! This EA - strategy constructor. You should independently optimize and customize your adviser on strategy.

The default setting is an example of using an Expert Advisor.

EA Signals

  1. Ma - Moving Average
  2. MACD - Moving Average Convergence/Divergence (MACD)
  3. STOCH - Stochastic Oscillator
  4. RSI - RSI
  5. CCI - Commodity Channel Index (CCI)
  6. WPR - Williams Percent Range (WPR)
  7. BB - Bollinger Bands
  8. Envelopes - Envelopes
  9. Alligator - Alligator
  10. OsMA - Moving Average of Oscillator (OsMA)
  11. AO - Awesome Oscillator (AO)

Main Parameters

Settings for trading strategies

  • TypeFilling - type of order filling according to the broker regulations. Auto - auto-detect the filling type;
  • TypeTradeBUYSELL - Select the type of position to open (BUYSELL, OnlyBuy, OnlySell);
  • RoundingDigits - Rounding the Open and Stop loss, Take profit prices - for certain symbols;
  • SetMinStops - Automatic reduction of the specified stops (stop loss, take profit, trailing stop, distance, breakeven)
  • shift - The bar to take signal from, 0 - current, 1 - closed;
  • IndSigToTrade - Select the signal type;
  • TF_IndSigToTrade1 - Select the timeframe for the signal;
  • FILTER_IndSigToTrade2 - Select the signal type for filtering;
  • TF_IndSigToTrade2 - Select the timeframe for the filter;
  • FILTER_IndSigToTrade3 - Select the signal type for filtering;
  • TF_IndSigToTrade3 - Select the timeframe for the filter;
  • ReverseSignal - true - Reverse the signal of the strategy;

Main trading functions

  • VirtualStops - Virtual stops instead of real ones; true - broker can not see the stop loss and take profit of trades for all the EA functions!!!!;
  • StopOrderUSE - Use pending orders;
  • StopOrderDeltaifUSE - Distance for pending orders;
  • Magic - magic number;
  • StopLoss - Stop loss, 0 - disabled;
  • TakeProfit - Take profit, 0 - disabled;
  • Slippage - slippage;
  • MarketWatch - MarketWatch trading mode; true = positions/orders without stops are placed first, then they are modified - for certain brokers.
  • ClosePosifChange - close positions in case of an opposite signal;
  • ONlyOnePosbySignal - Place only 1 position for Buy and/or Sell;
  • MaxSpreadToNotTrade - Maximum spread, at which the EA is allowed to open new trades;
  • MinSpreadToNotTrade - Minimum spread, at which the EA is allowed to open new trades;

Autolot and Martingale settings

  • Lots - Fixed lot;
  • DynamicLot - Dynamic lot;
  • LotBalancePcnt - percentage of the deposit;
  • MaxLot - Maximum lot for calculation;
  • Martin - if 1, then it is not used, Martin ratio for the next deal after a loss-making one;

Operation time settings

  • Work_SETTINGS - = on, off. If 'on' then:
  • OpenHourMonday - Hour to start trading on Monday;
  • OpenMinuteMonday - Minute to start trading on Monday;
  • OpenHour - trading start hour;
  • OpenMinute - trading start minute;
  • CloseHour - trading end hour;
  • CloseMinute - trading end minute;
  • Days - Selection of trading days, separated by commas;
  • TradeStartStop - on, off;
  • TradeStartStopFriday - on, off (if on - then according to the Trade Friday and CloseFriday, if off then acording to the TradeStartStopHour, if Days is set to 5, if);
  • OpenHourFriday - Hour to start trading on Friday;
  • OpenMinuteFriday - Minute to start trading on Friday;
  • CloseHourFriday - Hour to end trading on Friday;
  • CloseMinuteFriday - Minute to end trading on Friday;
  • CloseFriday - on, off (if 'on', then close regardless of the state (in profit or loss); if 'off', then the open positions are closed according to the algorithm);

Trailing Stop

  • TrailingStopUSE - use trailing stop;
  • IfProfTrail - use only for profit positions - break even mode;
  • TrailingStop - Trailing distance, 0 is the minimum allowed;
  • TrailingStep - Trailing step;

Trailing Stop based on Parabolic

  • TrailingStopSAR - use trailing stop;
  • step - Stop level increment, usually 0.02;
  • maximum - Maximum stop level, usually 0.2;

Closure by total profit and loss

  • TypeofClose - Type of closing by profit;
  • CloseProfit - Close if +;
  • prifitessss - number of units (depending on TypeofClose) for closing profit;
  • CloseLoss - Close if -;
  • lossss - number of units (depending on TypeofClose) for closing loss;

Breakeven settings

  • MovingInWLUSE - Move position to breakeven;
  • LevelWLoss - Move the stop loss to +LevelWLoss points;
  • LevelProfit - When the trade is in LevelProfit points of profit;


  • UseAverAdditionalOpeningOrderinOne - true, the number of orders is calculated as a total, along with scaling and averaging;
  • AverageUSE - Use averaging, open additional orders against the trend;
  • Distance - Distance between positions opened in the grid;
  • LotsMartin - volume increase for the grid of positions;
  • MaxOrdersOpen - the maximum number of opened orders, 0 - unlimited;
  • TakeProfitALL - total take profit for modification;
  • AverTrailingStopUSE - use trailing stop;
  • AverTrailingStop - Trailing distance, 0 is the minimum allowed;
  • AverTrailingStep - Trailing step;

Scaling by trend

  • AdditionalOpening - Open additional orders in the direction of the trend;
  • DistanceAdditionalOpening - Distance between positions opened in the grid for scaling in the direction of the trend;
  • LotsMartinAdditionalOpening - volume increase for the grid of positions;
  • MAXLOT - Maximum lot for additional orders;
  • MaxOrdersOpenAdditionalOpening - the maximum number of opened orders, 0 - unlimited;
Luigi Vella
2017.04.05 04:53 

True universal EA. You can build your own strategy and choose up to 15 different indicator filters working in multi frame mode simultaneously. Martingale averaging and trail functions. The strategy combinations is endless. Good money management and time trade options; closing deal function at trigger profit or loss; closing at time etc. Drawdown protections are very useful for save your account balance and to avoid stop out.

Andrey Souza
2017.01.20 00:08 

Top! O EA funciona perfeitamente.. basta cada um saber montar seu set. adequadamente! /// Top! EA works perfectly .. just let everyone know how to set up your set. Properly!

2016.12.01 13:27 

I can recommend this top EA. The EA works very well and is high profitable. You can change a lot of settings and you can optimize the EA for every market that you like to trade. Of course you have to backtest and to try the new setting before you will use the EA on a live Account. And in this case you have also to choose the right Lotsize in depend of your Account.

The EA is running on my live Account in multi currency pairs with different Settings and in different Timeframes. I tried a lot of Settings for every market because market is not like market

and the price which i paid ( 100 USD ) i got back already. For me it`s a very good EA and the rest is up to you! Also the price is really unbelievable and amazing.

2016.11.23 09:46 

Your EA doesnt use SL and I lost half of my money.

In EUR USD, the EA keeps on buying positions from 1.18xx level and the lowest is 1.09xxx. It should have cut loss much earlier but it didnt. Up to now the 1.18 has not been reached. I could have lost more but I seeked help and exited when the market surged to 1.08xxx.

Vladimir Glazkov
2016.10.06 09:28 

Советник хороший, работает четко по имеющейся стратегии, но если стратегии нет - я бы сказал бесполезен. Настроек просто дико много и искать свою стратегию на основе этого конструктора будет очень долго. Пока все наладишь в "производство" - рынок сменится. Я вот, например, свою еще не нашел, поэтому прошу разработчика дополнить данный советник еще парой функций. Нужно добавить функцию разворота позиции по отложенным ордерам при неудачной сделке. Т.е. открывается ордер по сигналу одного из индикаторов в базе и одновременно выставляется отложенный ордер в противоположном направлении на уровне СЛ сработавшего с возможностью использования мартингейла. И так до бесконечности до ТП. Еще нужно ограничить время действия или количество баров для отложенных ордеров. Проблема в том, что однажды его выставив, советник больше их не убирает, пока не появится сигнал на другой отложенный ордер или ордер не откроется по этому. Также в функции "открывать несколько ордеров по каждому сигналу" их открывается просто дикое количество, особенно если использовать Alligator. Поэтому предлагаю их ограничить количеством открываемых ордеров и/или открывать следующий ордер по времени, например, минут через 5 или 30, если будет сигнал, можно открыться...

А так это идеальное решение для тех, кто постоянно генерирует и тестирует свои стратегии. С помощью данного советника не нужно долго тестировать в ручном режиме свои стратегии или периодически оплачивать программистов на написание бесполезных советников, с тем условием, что он позволяет не просто искать стратегии и обкатывать их, но ещё и работать по ним!

PS. можно вообще продавать/покупать рабочие и прибыльные сеты к этому роботу))

2016.06.13 17:51 

Мне понравился. Тестил по разному. Очень гибкие настройки. Он один заменяет несколько сов. Алгоритм работы супер. Автору огромная благодарность.

Version 17.404 - 2017.04.05
- Added the SecondsToRefresh parameter to the EAPADPRO block - refresh rate of the information on the chart (default is 10 seconds). This is done to reduce the CPU load.

- Fixed the error of the virtual trailing stop for SAR and averaging.

- Added support for the deposit currencies for the Autolot function, which are different from EUR USD RUB

- Added the RiskRate parameter - the exchange rate of your currency against the USD. The default RiskRate = 0 means that the EA will attempt to find the correct exchange rate in the "Market Watch". For the autolot to work adequately with all currency pair, it is necessary to "Show all" currency pairs in the "Market Watch".

- Added the drawdown management block - DrawDown options. This block prevents the EA from opening new deals by new signals from the algorithm, or closes all deals on the account and stops trading after a certain drawdown.

DrawDown_Level - enable the drawdown management block
Type_DrawDownHR - type of the drawdown calculation based on the deals in history and current deals
DrawDown_Level_One - the first drawdown level in percent
Type_Deal_Level_One - action when passing the first drawdown level (disable new signals \ disable averaging deals or additional opening \ disable all deals \ output a message)
DrawDown_Level_Two - the second drawdown level in percent
Type_Deal_Level_Two - action when passing the second drawdown level (close all profitable positions \ close all unprofitable positions \ close all \ output a message)

For example:
DrawDown_Level=true, DrawDown_Level_One=50,Type_Deal_Level_One=No_NewDeal, DrawDown_Level_Two=90, Type_Deal_Level_Two=Close_All. With these settings, once the current drawdown of deals in history and current deals exceeds the level of 50% of the current deposit, the EA is not allowed to open new deals by new signals. At the same time, the averaging functions will work. Once the drawdown exceeds 90%, the EA immediately closes all deals.
Version 17.307 - 2017.03.13
Added block for virtual money withdrawal in the strategy tester:
testerwd="========= Tester Withdrawal =========";
Withdrawal - enable virtual withdrawal in the Strategy Tester;
Withdrawal_mode - in deposit currency or percent of the current balance (currency/percentage);
Withdrawal_amount - amount of money to withdraw;
Withdrawal_periodicity_days - distance between withdrawals as a number of days;
Withdrawal_Max - maximum withdrawal amount;
Withdrawal_EndOfTest - money withdrawal after the end of testing;

Fixed errors based on user reports
Version 17.216 - 2017.02.20
Removed the check for the free margin
Version 17.201 - 2017.02.14
Optimization of the EA operation.

Changed the line colors for the middle line and virtual stop loss/tale profit
Middle line - Blue
Take Profit - Green
Stop loss - Red
Trailing stop - Blue dotted

Middle line - Orange
Take Profit - Green
Stop loss - Red
Trailing stop - Orange dotted

Operation by time feature

Attention: Trading by time involves only filtering for opening new deals based on new signals.
All other functions: Trailing stop, Breakeven, Averaging, Scaling up along the trend and other works around the clock.
Attention: All parameters for trading by time can be optimized in the tester.

If TradeStartStopbyTime = false, the EA trades around the clock.

If TradeStartStopbyTime = true, the trading by time is activated:
The trading by time period starts on Monday.
The EA starts working on Monday at OpenHourMonday:OpenMinuteMonday if TradeStartbyTimeMonday=true
For example, OpenHourMonday=3 and OpenMinuteMonday=40, then the EA starts trading on Monday at 03:40 server time
(time of your broker, indicated in the Market Watch).

Next, the EA checks the trading time according to the parameters: OpenHour:OpenMinute - trading start and CloseHour:CloseMinute - trading end time for one day.
For example: OpenHour=5 and OpenMinute=0, as well as CloseHour=18 and CloseMinute=59, then the EA will trade every day from 5:00 to 18:59.

To set a trading period from the starting time, set the ClosePeriod_Minute parameter - period in minutes.
For example, OpenHour=6 and OpenMinute=0 and ClosePeriod_Minute=180, then the EA sets the trading time from 6:00 to 9:00(6+180 minutes = 9 hours).

You can also set multiple time intervals for trading in the SeveralTimeWork parameter. Entry format: HH:MM-HH:MM;
where: Hour to start trading:Minute to start trading - Hour to stop trading: Minute to stop trading.
For example, SeveralTimeWork=3:00-5:00;7:30-8:50;12:00-15:00;
then the EA will trade during 3 time intervals. from 3:00 to 5:00, from 7:30 to 8:50 and from 12:00 to 15:00. The EA will not open order during the remaining time.

You can also close all open deals and pending orders outside the trading time, CloseAllTradesByOutOfTime=true.
The EA will trade during the time specified above, and when the trading time ends, the EA will close all open positions and orders.

TradeStartStopbyTimeFriday - Trading time for Friday.
This EA allows the users to set the trading time for the EA on Friday.
Time parameters for Friday: OpenHourFriday:OpenMinuteFriday - CloseHourFriday:CloseMinuteFriday
For example, the EA should not open new deals on Friday after 18:00, set:
OpenHourFriday=0:OpenMinuteFriday=0 - CloseHourFriday=18:CloseMinuteFriday=0
In this case, the EA will not open new deals after 18:00

It is also possible to close all open deals and pending orders on Friday at the specified time - 18:00, CloseFriday=true.

The block for operation by time allows to set the trading days: TradeByDays
For example, TradeByDays=true Days=1,2,3 - in this case, the EA will trade only on Monday, Tuesday and Wednesday during the time specified above. Or it will trade around the clock those 3 days, if the time is not specified.
If you set Days=1,2,3,4,5 but with TradeStartStopbyTimeFriday=false, the EA will not trade on Friday.

It is also possible to set 1 day for optimization in the DayForOptimization parameter.
This option is useful to determine the most profitable days in optimization.
For example, DayForOptimization = 3, then the EA will trade only on Wednesdays.

You can set the trading to start on Monday and to stop on Friday, while the EA trades around the clock on the remaining days.
You can set the start on Monday and specific hours on other days.

-Added parameter:
OpenBarControlOnly - the EA operation on opened bars only. This mode allows to model the EA operation at the opening of bars (as in the strategy tester).
When this mode is enabled, the EA will trade just like in the OpenPriceOnly testing mode.
All! functions of the EA will be executed 1!! time at the opening of the bar (depending on the TF), including Modification, Trailing stop, Averaging, openng signals, etc.
Version 17.126 - 2017.01.27
Fixed error when testing with the AutoTrading button enabled
Fixed working with long tickets

Added 3 additional filters

- Added the EAPADPRO information panel
Details on the panel in our blog:
or https://www.mql5.com/ru/blogs/post/687140

The following data has been moved to the Strategy Info block:
OWN Signal = Name of the signal + Timeframe of the signal + Reverse
Current Signal = Current signal from the main indicator
Filter 1/2 - Name of the filter 1/2
Current Filter - Current signal from filters 1/2
BUY Average/Lot - Next averaging in points for BUY / Next averaging lot
SELL Average/Lot - Next averaging in points for SELL / Next averaging lot
Buy Additional/Lot - Next additional opening in points for BUY / Next lot for additional opening
Sell Additional/Lot - Next additional opening in points for SELL / Next lot for additional opening
Average Price Buy - Average price for BUY deals
Price Sell - Average price for SELL deals
Version 17.110 - 2017.01.13
Block of Averaging
-Fixed error with the DistanceMartin

Block of Parabolic SAR based trailing stop
-Added parameter TrailingStopSAR_TimeFrame - Timeframe of the SAR indicator for the trailing stop.
-To the МТ5 version: Added Parabolic SAR based trailing stop
TrailingStopSAR (true - false) step and maximum (parameters of the Parabolic SAR)
These parameters allow the modification of stop loss based on the specified Parabolic
The stop loss will be modified at every new value of the Parabolic SAR.
Accordingly, Buy is modified when the Parabolic SAR is below the price, Sell is modified when the Parabolic is above the price.

Block of signals
-Added parameter Signal_Reverse,Filter1_Reverse,Filter2_Reverse - they allow to inverse signals
based on specific indicators (Main signal, Filter 1 and Filter 2)
-Changed the MinuteToOpenNextPosition parameter (Allow opening the next signal after the last opened position),
if there are no open positions, the EA considers the time since the last closed position.
The time is considered for the same type. If the signal is BUY, the time is calculated from the last opened \ closed BUY....
-Changed the function for receiving signal when using signal inversion.
For example:

*If you use WPR as signal source, with the levels:
WPRHighLevel= -20;
WPRLowLevel = -80;
Buy is opened, if WPR crosses WPRLowLevel (-80) upwards
SELL is opened, if WPR crosses WPRHighLevel (-20) downwards

*If you enable the option: Signal_Reverse=true
SELL is opened, if WPR crosses WPRLowLevel (-80) upwards
Buy is opened, if WPR crosses WPRHighLevel (-20) downwards

*If you enable the option: Signal_Reverse=true and set the parameters:
WPRHighLevel= -80;
WPRLowLevel = -20;
Buy is opened, if WPR crosses WPRHighLevel (-80) downwards
SELL is opened, if WPR crosses WPRLowLevel (-20) upwards

- added parameters for the MACD signal
Which are involved in determining the signal.
For the long trade, the signal crosses the MACD line and at the end of that candle the MACD is greater than 0 and MACD is less than 3,0 (the signal line and MACD line must be both above the origin and less than 3.0).
For the short trade, the signal crosses the MACD line and at the end of that candle the MACD is less than 0 and MACD is greater than -3,0 (the signal line and MACD line must be both below the origin and greater than 3.0).

-Added automatic checking and normalization for all stops to tick size on the current currency pair.
For example, if the tick size on the WING17 symbol is 5 points, then all stop loss and take profit values will be normalized.
For example, the contract price is 58840 and the automatic stop loss calculation resulted in 1211 points, the final stop loss will be normalized to 1210 points.
Version 16.995 - 2016.12.22
Automated calculation of commission and swap has been added to the Trailing Stop and Breakeven functions.
Now trailing stop only triggers after a position covers the commission amount.

Added limit of losses over 1 day\week\month
Limiting LimitFor - limit type day\week\month
LimitForLosses - profit based limit
LimitForProfits- loss based limit
LimitType - limit type on dollars, points, percent of deposit
ClosebyLIMITING - close EA;s trades when exceeding the limit
UseCurrentProfit - when calculating the limit, take into account current loss/profit

This feature can disable the EA operation, if it reaches a certain profit\loss in the deposit currency during one day\month\week. The EA will resume working on the next day/week/month
Example: LimitFor=DAY LimitForProfits=1 Close at a total profit of $10
You can also set LimitType for calculations. In dollars, points, percentage of the account balance.
If you need to close and delete all trades of the Expert Advisor once the limit is exceeded, you can set ClosebyLIMITING = true
UseCurrentProfit enables/disables the inclusion of current floating profit/loss into limit calculation

New signals:
AC - similar to the AO indicator
Ichimoku - crossover of TENKANSEN and KIJUNSEN lines,
Bar - trade in the direction of the bar
If candle Close is above the candle Open (Bullish candlestick) - BUY
If candle Close is below the candle Open (Bearish candlestick) - сигнал SELL

New filters:
AC - operation similar to AO
Ichimoku - positions of TENKANSEN and KIJUNSEN lines,
Bar - bar direction
Bar relatively MA - signals are filtered using the bar close price and the fast/slow MA
If the bar close price is above MAfast and MAslow - only BUY
If the bar close price is below MAfast and MAslow - only SELL

Bug fixes
Version 16.973 - 2016.11.18
Changed the comment order of the opened deals
Added information on the indicators values when opening deals
Version 16.940 - 2016.11.02
Added the CloseChangeOnlyInProfit parameter - close trades at an opposite signal only when the current position is in profit.

Added the MinuteToOpenNextPosition parameter - number of minutes for opening the next trade by the indicators' signals. The parameter counts the number of minutes passed from the last open position. Trades can be sorted if ONlyOnePosbySignal=false.

Added the OpenOppositePositionAfterStoploss parameter - open an opposite position when closing the current one by stop loss. An opposite position can be opened immediately after the previous position's stop loss activation without using the indicator signals.

Added the MAX_BUY_POSITION MAX_SELL_POSITION parameter - limit the maximum number of trades.
Version 16.823 - 2016.08.31
Added new parameter to the 'Averaging' block - DistanceMartin - the distance increase ratio when averaging for each subsequent deal

Added new functions to the 'Profit or Loss' block:
TrailOptions - The number of profit "units", after which profit trailing is activated;
TrailOptionsStep - Trailing step in "units";
BalanceStart - Starting balance of the calculation for 4 item of PercentBalance;
ForcedClose - force close all positions of this EA on the account by profit;
MailSend - Send push and mail notification when closing by profit or loss;
Orderdelete - Delete pending orders after closing by profit or loss;
CloseTerminalAfterClosePROF - Close the terminal after closing by profit;
CloseTerminalAfterCloseLOSS - Close the terminal after closing by loss;

Trailing Stop at Closing
A new function for trailing profits has been implemented on user demand. In this case, the profit is fixed with some correction. As soon as the profit reaches the specified value, the Expert Advisor saves the current profit level and starts trailing the profit. If you made settings for closing at the profit of 10 dollars:

CloseProfit - Close in profit.
prifitessss - The amount to close in profit.
TrailOptions - the distance from prifitessss, when reached the profit trailing is activated.
If prifitesss is set to 10 and TrailOptions is set to 5, the Trailing Stop will be set at 5 dollars. The Trailing Stop will come into play when the Expert Advisor passes the 10 dollar line and start moving following the profit. The Journal will show entries about the current profit status.
When the total profit falls below the last fixed level, TrailOptions, the Expert Advisor will perform forced closing of all positions.
Version 16.720 - 2016.08.08
Fixed printing error messages to the log each tick in case of incorrect stops.
Added the SetMinStops variable:
In case of AutoSetMinLevel, the stop levels are reduced to the minimum possible levels, allowed on the server;
In case of ManualSet, user receives a message that the stop levels in the EA are less than the minimum allowed ones, and the EA stops operation.
Version 16.614 - 2016.06.15
Added stop loss when using the Averaging block and Scaling by trend.
Before: When placing an averaging trade, the stop loss of the trades was reset to 0.
Now: An individual stop loss is set for each trade based on the StopLoss parameter
Version 16.516 - 2016.05.26
Fixed the error of virtual stops for averaging.

Added parameter of trading session duration from the initial time, ClosePeriod_Minute to the operation time block:
If you set
and ClosePeriod_Minute=60, then

Added parameter TypeTradeBUYSELL - trading direction:
Buy and Sell
Only Buy
Only Sell
At that: If trading is performed using pending orders and only in 1 direction: every time at new signal the old pending order will be deleted and moved to a new price.

Added parameter for selecting the timeframe for the signals:

Added parameter for optimization at a certain day of the week - DayForOptimization
If optimization is in progress, the EA trades only on the specified DayForOptimization day
If DayForOptimization!=0 the EA trades only on the specified DayForOptimization day

Added parameter for outputting the trade comment - CommentToOrder

Added parameters MaxSpreadToNotTrade and MinSpreadToNotTrade
MaxSpreadToNotTrade - maximum spread with which the EA will open a position
MinSpreadToNotTrade - minimum spread with which the EA will open a position
Attention: This filter is used only! for opening positions by signal, averaging, refilling. All other functions operate normally

Added parameter OnePosPerDirection: Opens 1 trade per 1 direction
For example:
If OnePosPerDirection=true and ONlyOnePosbySignal = false
then the EA can open 1 Buy trade by signal and 1 Sell trade by signal
if OnePosPerDirection=false and ONlyOnePosbySignal = true
then the EA can open only 1 trade by signal, either Buy or Sell
if OnePosPerDirection=false and ONlyOnePosbySignal = false
then the EA can open any trades by each signal of the indicators

Added parameter OnlyOnePositionPerMagic: Opens 1 parameter per 1 magic,
The EA checks of there are open positions with this magic on other currency pairs. If there is no such position, the EA opens a trade by signal, and the other experts will be waiting for this trade to be complete.
Version 16.309 - 2016.03.17
Fixed the time calculation for VPS.
Version 16.105 - 2016.01.08
Redesigned the signal block when the IndSigToTrade and IndSigToTrade2 variables are selected
Before: The trade is opened only if both signals match at the same time
Now: If the IndSigToTrade signal appears, the FILTER_IndSigToTrade2 and FILTER_IndSigToTrade3 indicators are checked. If their signals go on, the trade is opened.
I.e. If the IndSigToTrade is selected as the main signal, then the FILTER_IndSigToTrade2 and FILTER_IndSigToTrade3 parameters only trigger as filters
Added the trailing stop by Parabolic to the averaging module.
If there are averaging deals opened and the Parabolic crosses the mean line, then the stop loss is placed at the level of the Parabolic
The TakeProfitAll parameter in the averaging module is replaced with general TakeProfit
The AverTrailingStop parameter in the averaging module is replaced with general TrailingStop
Version 15.991 - 2015.12.16
PROFITLOSS_EXTRASETS4 - limiting profit and loss in the deposit currency.

If you want to limit losses for the current EA, use this new block.
Example: you want to restrict trade opening after a loss of -100 USD for 1 day (week, month). Use the following parameters:

- LimitFor=0;
- LimitForLosses=-100;
- LimitForProfits=0;

Once the loss for this magic and symbol reaches -100 USD for one day, new trades will not be opened on this EA. All other functions will keep working.

The next day this parameter is reset to 0.

Adjustable parameter LimitFor=DAY;WEEK;MONTH;ALLTIME;