• Overview
  • Reviews (15)
  • Comments (954)
  • What's new

Exp4 THE X FULL Universal EA for MT4

This is a universal constructor Expert Advisor for MetaTrader 4 with a large set of functions working on standard indicator signalsUniversalEA

  • A lot of trading indicators from the standard MetaTrader set.
  • Ability to select 1 of 20 signals and 5 filters.
  • More than a hundred parameters for customization for your requirements.
  • At each signal, you can adjust the parameters of the indicator, select a timeframe, specify a signal bar.

You can also download The X EA for MetaTrader 5 (The X for MT5)

Attention! A new universal trading advisor Exp - The xCustomEA working on custom indicators:

The EA contains the following functions: 

  • counter-trend averaging,
  • additional opening in the direction of a trend,
  • trailing stop,
  • breakeven,
  • closing by total profit or loss,
  • virtual stoploss, takeprofits, and trailing stops,
  • ability to use positions or pending/limit orders,
  • martingale,
  • trailing stop by Parabolic,
  • drawdown limitation functions,
  • trading by time and weekdays
  • and many others.

Attention! This is a strategy constructor with a set of custom features. You should optimize the EA based on signals and enabled functions.

    • Dear friends and users of our EAs, please add your ratings in the Reviews section.
    • All updates to our forex software are free!
    • The developer of forex tools: Expforex

    Available signals and filters

    Note: The list of signals and indicators is updated continuously.

    1. MA
    2. MACD  
    3. STOCH
    4. RSI
    5. CCI
    6. WPR 
    7. BB
    8. Envelopes 
    9. Alligator
    10. OsMA
    11. AO - Awesome Oscillator 
    12. Ichimoku
    13. Accelerator/Decelerator 
    14. Bar
    15. ADX
    16. ZIGZAG
    17. ATR
    18. ADX Wilder
    19. Fractals

    Main Parameters

    Trading strategy

    • TypeTradeBUYSELL - the type of opened positions (BUYSELL, OnlyBuy, OnlySell);
    • SetMinStops - auto conversion of placed orders (stop loss, take profit, trailing stop, distance, breakeven) to the minimum possible level on the server;
    • OWNSIGNAL_shift - bar a signal is taken from 0 - from the current one, 1 - from the first closed one, 2 - from the second closed one.....;
    • IndSigToTrade - signal type;
    • TF_IndSigToTrade1 - signal timeframe;
    • FILTER_IndSigToTrade2 - FILTER_IndSigToTrade6 - signal type for filtration (five filters can be used simultaneously);
    • ReverseSignal - true - reverse a strategy signal.

    Main trading functions

    • VirtualStops - virtual stops instead of real ones: true - brokers do not see stop levels for all the EA functions!!!!;
    • StopOrderUSE - use pending or limit orders, virtual pending or virtual limit orders;
    • StopOrderDeltaifUSE - distance for pending orders;
    • Magic - magic number.
    • StopLoss - stop loss, 0 - not used;
    • TakeProfit - take profit, 0 - not used;
    • ClosePosifChange - close positions in case of an opposite signal;
    • ClosePosition_After_X_Minutes - close position after a specified number of minutes;
    • ONlyOnePosbySignal - use a single buy and/or sell position;
    • MinSpreadToNotTrade-MaxSpreadToNotTrade - minimum and maximum spreads, at which the EA opens new trades.
    • Include_Commission_Swap - automatic calculation of commission and negative swap when used in the breakeven, trailing stop, averaging functions;
    • Lots - a fixed lot;
    • DynamicLot - dynamic lot;
    • LotBalancePcnt - % of deposit;
    • MaxLot - a maximum lot for calculation;
    • Martin - if 1, then it is not used, Martin ratio for the next deal after a loss-making one.

    OTHER FUNCTIONS AND SETTINGS

    Attention! This is a universal trading strategy builder! You must optimize it for your requirements!

    If you wish to buy an automated trading adviser, check out our TickSniper!


    Evolve
    255
    Evolve 2020.06.16 10:45 
     

    500++ in 1 EA, Unlimited settings if u know how tune the various built-in indicators in the EA.

    Ramazan Turkhan
    979
    Ramazan Turkhan 2019.05.07 12:01 
     

    dangerous ,your account may blow up , i lost most money ,be careful ...

    jds12
    42
    jds12 2019.02.03 23:00 
     

    Its a great product, used it for awhile now and can set up time frames, stop orders, limited stop orders, close profit and many more combinations.

    Just finding the right combination and level you are comfortable with just takes time, so best to use demo account to test first before going live.

    Keep up the great work.

    Al Bundy
    293
    Al Bundy 2018.04.20 16:58 
     

    1. No good support, because one has to test the settings.

    I think, the minimum would be for a paid product, that the author delivers a setup with a minimal gain and explanation of basic functionallity.

    I asked for good parameters for EURUSD but Author wrote test, test, test for good settings.

    After dozens hours of testing, I have still not found, how combination of SL, trail, TP and so on brings profit. For now it is a loose maximizer!

    2. Lost much money, because parameter combinations are so complex and strategy tester showed only 20% draw back, but in real it was margin call.

    This is, because averaging is very dangerous in a market against trend and cannot win, if trend does not change.

    3. One option overrules others, without documentation.

    Log files don't show, why positions be closed or not opened.

    4. Explanations are often: dynamic Lot = dynamic Lot. It is not enough to bring the parameter name to a sentence.

    Rather should be explained, what will be done, why and which other modifiers are to be considered.

    5. Some Parameters are missing - seems, that the documentation is not actual.

    6. The documentation is a mixed version for MT4 and MT5, what leeds to mess or misunderstoods.

    7. The hint, VirtalStopLoss doesn't work in MT4 with strategy tester is not sufficient - how should one test with a broken product! This is a key feature for every broker which needs VirtualStopLoss!

    This I have to wrote, although I have translated the complete documentation.

    8. It is simply too complex...

    Luigi Vella
    274
    Luigi Vella 2018.01.06 18:33 
     

    The best universal ea of the market

    Atila Recep Akdeniz
    5120
    Atila Recep Akdeniz 2017.12.14 09:28 
     

    I have investigated dozens of Universal EA's in the market, and I came to the conclusion that this is by far the most superior product available, and excellent value for its price.

    It is not a simple product and you need to spend time to understand its details (otherwise you might end up complaining that you can't control the product, as the previous reviewer seems to have done), but it provides a far advanced functionality compared to other Universal EAs.

    If you want something simple to set up with limited functionality, there are many other EA's at a fraction of its price, but with those other EA's you will only get a fraction of the functionality that this product offers. (No, I am not paid by the designer to write this :))

    I rented the MT4 version for a month and bought the MT5 version as well (as I have both type of accounts), they both work very well and they are very reliable.

    Vladislav offers a very responsive service and excellent customer support. Yes there might be some language issues as he is not a native English speaker, but if you ask him the right question, you will always get the right answer and very quickly. He has updated the product a number of times, to fulfil requirements and requests from his clients (obviously there is a limit to that and you can't get free programmer services from a product designer).

    So in summary, 6 stars for the product and the customer support.

    Domi99
    443
    Domi99 2017.10.29 04:07   

    at first glance, this is an interesting program, so i bought it. However, for the following critical issues, i can not recommand to using it:

    1. the program has no systematic user manual/guide, the settings have no clear meaningful name and there is nowhere to find what means the settings. For this reason, one may get lost due to the banch of settings. Furthermore, some settings are conflict with eachother.

    2. there are bugs in the program, its behaviors can not be fully controlled by it's setting parameters, or, there are hidden settings which are not visible to the users and can override the visible settings.

    3. beside the issues above, the support from the author is poor. The author doesn't answer the questions correctly, or can not understand the question. it's possible that the author is also get lost with the confusing settings.

    Markkm
    15143
    Markkm 2017.10.27 15:29 
     

    Complete product with excellent support. 5 stars with no doubts.

    Manuel Angel Garcia Montoro
    449
    Manuel Angel Garcia Montoro 2017.08.31 12:54 
     

    For me the best EA in the market and more complete, good technical assistance solving doubts and errors.

    david mackay
    3892
    david mackay 2017.07.21 16:13   

    This product offers a multitude of excellent features, far too many to list here.

    One thing that is important to many people buying this product is the level of support..... and I have found support to be fast and excellent.

    It is easy to produce excellent strategies quickly using this tool.

    Andrey Souza
    738
    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!

    Dennis22779
    702
    Dennis22779 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.

    rpltrade
    107
    rpltrade 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
    134
    Vladimir Glazkov 2016.10.06 09:28 
     

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

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

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

    Alexander
    51
    Alexander 2016.06.13 17:51 
     

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

    Version 20.216 2020.02.16
    Forced modifying comment length CommentToOrder up to 12 characters!
    If the comment is longer than 12 characters, then the advisor will trim the extra characters.
    Attention! For the EA to work correctly, set a comment no longer than 12 characters.
    eg:
    Right: ExpforexTheX
    Not Right: Expforex The X Set # 12345
    Version 20.212 2020.02.12
    -- Исправлена ошибка Работы по времени, если ТФ советника больше, чем Минуты функции времени.
    (Например закрытие в 22:49 а ТФ = H1 )
    Version 20.211 2020.02.12
    -- EaPadPro v35;
    -- UPDATE: Bar - trade in the direction of the bar
    New Parametr Min_Points_of_Bar_OpenClose = 100
    If candle Close is above of 100 points the candle Open (Bullish candlestick) - BUY
    If candle Close is below of 100 points the candle Open (Bearish candlestick) - SELL
    if Min_Points_of_Bar_OpenClose 0 same old version
    Version 19.903 2019.09.03
    IfProfTrail:
    - if true, the Advisor starts the modification only when the position is gaining profit to Breakeven (setting stop loss on the break-even point) + TrailingStop profit points.
    - if false - TrailingStop starts working immediately after opening a position and making a profit of 0 points and leaving a position as a profit.
    In other words: IfProfTrail = false, then the trailing stop starts working immediately after the position is in profit.
    Version 19.821 2019.08.20
    Recompilation in the new BUILD of the terminal MT4.
    Version 19.820 2019.08.19
    An important update for those using the MQL5 VPS!
    Due to the fact that the hosting location folder has changed and MetaQuotes added a new variable TERMINAL_VPS, new edits were applied to all experts.!
    Version 19.817 2019.08.17
    1. Function ControlNewBarforSIGNAL Changed:
    Added values:
    ControlNewBarforSIGNALType = 1 = True smallest TF of the settings: New mode!
    The EA selects the smallest TimeFrame, which was set by the parameters TF_IndSigToTrade1, FILTER_TF_IndSigToTrade1, FILTER_TF_IndSigToTrade2 ....
    In this mode, the EA does not check the signal on the currently set TimeFrame, but on the TimeFrame for receiving a signal from indicators!
    This mode is useful for those who use TF_IndSigToTrade1, FILTER_TF_IndSigToTrade1, FILTER_TF_IndSigToTrade2, other than Current.
    ControlNewBarforSIGNALType = 2 = True current bar of the current TF: Old mode!
    In this mode, the EA checks signals every new bar of the current TimeFrame!
    If you use TF_IndSigToTrade1, FILTER_TF_IndSigToTrade1, FILTER_TF_IndSigToTrade2 other than Current, the results on each TimeFrame may be

    different.
    We advise you to install the adviser on the TimeFrame M1!
    ControlNewBarforSIGNALType = 1 = False: Do not use the control of the new bar to determine the signal!
    Attention: When off, the EA checks signals every new tick! There may be delays in tapping and optimization!


    2. Added variable ControlNewBarforOpenbySignal:
    ControlNewBarforOpenbySignal = true: Old mode! Open positions on a signal only every new current bar of the current TimeFrame!
    The EA opens positions, if there is a signal, only when a new bar of the current TimeFrame arrives!
    ControlNewBarforOpenbySignal = false: New mode! Open positions on a signal every new bar from the signal Timeframe!
    The EA opens positions, if there is a signal, immediately upon detection of a signal.
    This mode is useful for those who use TF_IndSigToTrade1, FILTER_TF_IndSigToTrade1, FILTER_TF_IndSigToTrade2, other than Current.
    Version 19.808 2019.08.07
    Code optimization, increased testing speed and optimization.
    Starting the calculation of the average spread only when the user uses at least one parameter for the average spread.
    Added DistanceMartinAdditional - Coefficient of distance for additional order opening.
    Added MinTimebeforenextAverage - Minimum time to the next averaging in minutes.
    EAPADPRO v31.
    Version 19.111 2019.01.10
    The SaveTPafterTrailingStop function has been updated to work in virtual stop loss / take profit mode with VirtualStops = true
    Version 19.107 2019.01.07
    - The ClosePositionifChangeOWNSignal parameter is divided into 3 values: False (disabled), True (enabled), OnlyifProfit (Only if the positions are in profit);
    - EAPADPRO v25 update
    - Additional languages added to the panel: Spanish, Portuguese (Brazil), German, Chinese, Japanese;
    The translation was made using the GOOGLE Translator + MQL + Terminal site!
    If you find an error in your language, please report it in messages. Thank!
    - Increase the speed of the panel;
    Version 18.991 2018.12.12
    - Update EAPADPRO panel to v23 version
    - Added a control unit and control the speed of the quotes and the speed of testing.
    - Added block output table open deals and positions.

    Added new variables:
    - LotAdditional - additional lot for averaging a position for opening against the trend.
    - LotAdditionalOpening - additional lot for an additional position for an additional opening by trend.
    Version 18.951 2018.10.23
    For your convenience, we have added a short description of the parameters in the table of external variables and expert settings.

    Update panel EAPAPDPRO v21:
    -Graphics improvements
    -Add tooltips
    -Add information about the ban on trade for various reasons
    Version 18.945 2018.10.19
    Changing the type of the OnlyOnePositionPerMagic parameter from Bool to Integer

    Now you can set the maximum number of positions by magic number on the entire account.
    For example, OnlyOnePositionPerMagic = 5 - means that a maximum of 5 positions can be opened on the account by the magic number.
    Version 18.927 2018.09.27
    Fixed bug:
    When you turn off signals and filters, the Expert Advisor only accompanies the open positions and does not open new positions.
    Version 18.921 2018.09.20
    UPDATING
    Version 18.920 2018.09.20
    Added function for displaying information about parameters when modifying positions!
    Version 18.910 2018.09.10
    In the calculation of CloseALL when Profit or LOSS options and type TypeofClose = Points, a swap was added.

    Added option SeparateBuySell - Separate calculation and closing of positions in two different directions BUY and SELL.
    This function separately closes two directions for total profit or loss.
    Actual, If ONlyOnePosbySignal = false and OnePosPerDirection = false.
    Or any settings that allow you to open more than one direction and more than one position in the direction.
    Version 18.905 2018.09.04

    The function of automatic determination of parameters by the average spread has been added.
    The algorithm for the function is taken from our automated tickSniper scalper sales advisor.
    Added parameters to the Stops options block:
    - TimeToCheckAverageSpread The number (milliseconds, 20,000 = 20 seconds) for determining the average spread
    - AutoCheckLowSpread Auto-determination of the low spread.
    Automatically determines the spread too low (Less than 1 point) and leads all system settings to the lowest possible spread.
    Allows you to protect the system from reducing the spread on the broker.

    How to use:
    In order for the parameter calculated in points to be calculated from the average spread of the currency pair, you need to specify the parameter with sign -
    For example:
    StopLoss = 2000 means that StopLoss of each position will be 2000 points!
    StopLoss = -100 means that StopLoss of each position will be equal to 100 * Average spread, which was calculated by the advisor for TimeToCheckAverageSpread milliseconds.

    If the spread is 20 points, then stop loss at the time of opening will be 2000 points.
    With a floating spread, this value always changes.

    The parameters available for setting in the spread mode: Distance, DistanceAdditionalOpening, StopOrderDeltaifUSE, StopLoss, TakeProfit, TrailingStop, TakeProfitALL, StopLossALL, LevelWLoss, LevelProfit.

    The average and current spread, as well as the level of the Auto Spread Low spread will be displayed in our panel in the section Strategy Info
    =================================================================================

    In the Limiting losses and profits block, a new type NOTIME was added to the LimitFor parameter , when using this type, the adviser checks the limits during the time from the last close!
    Attention: works only when using ClosebyLIMITING = true!
    This type allows you to take into account closed positions and current positions since the last closing of the total limit. It does not count for a day, a week, but for the period between the last closing according to the terms of this block and the current time. When closing by Limits, the counter sets the current time.
    Version 18.830 2018.08.30
    Update EAPADPRO v20
    Version 18.828 2018.08.28
    New
    Version 18.820 2018.08.20
    Upgrade the EAPADPRO to version 20.

    Block Limiting losses and profits updated:
    Parameters LimitForLosses and LimitForProfits changed by type to double
    A new CUSTOM mode has been added to the LimitType type. You can specify your monitoring values ??in minutes, the LimitForCustom_Minutes parameter.
    Version 18.808 2018.08.16
    In the DrawDown block new parameters for the drawdown tracking are added to the Type_CurAllCA function:
    Only_Current_Symbol_Magic - Counts the drawdown by the current symbol and the current magic number;
    Only_Current_Symbol_ALLMagic - Counts the drawdown by the current symbol and any magic number;
    All_Account - Allows for drawdown of the entire account.

    In the indicator Mooving Average, the selection of the price type and the averaging method for the two MAs

    Parameter TypeTradeBUYSELL was updated.
    Now this parameter participates in functions, including: "Closing on the total profit and loss", averaging, additional opening, trailing stop,break-even.


    The filter parameters are added to the averaging and additional trend opening blocks.
    The Expert Advisor checks the indications of the selected indicator (Filter) and allows or forbids the opening of new positions of a averaging or additional opening on a trend.
    The following options are available: Selection of the indicator for the filter, Timeframe, Reverse signals
    Version 18.8 2018.05.29
    - Optimized the code

    - Added the data to the information panel:
    When using the "CloseALL when Profit or LOSS options" block, the panel will display the data on the current profit and loss, as well as the values of the total trailing, if enabled.

    - When opening a position, the information on the signal is output to the log!

    =====================================================================================
    Attention!!!! The parameters have been renamed!
    Update and check your *.set files
    These are forced measures:
    1. to make the setting files uniform for the two terminals.
    2. to make the instruction the same for the two versions.
    Sorry for inconvenience!

    - МТ5 version:
    lot=Lots
    UseAverage=AverageUSE
    MaxOrders=MaxOrdersOpen
    LotsMartinAverager=LotsMartin
    AdditionalOpen=AdditionalOpening
    DistanceAdditionalOpen=DistanceAdditionalOpening
    LotsMartinAdditionalOpen=LotsMartinAdditionalOpening
    MaxOrdersOpenAdditionalOpen=MaxOrdersOpenAdditionalOpening
    periodma1=MAFastPeriod
    periodma1=MASlowPeriod
    FastMACD=MACDFast
    MACDSMA=MACDSignal
    SOPeriodK=StochK
    SOPeriodD=StochD
    SOslowing=StochSlowing
    SOmethod=StochMethod
    SOpricefield=StochPrice
    RSIprice=RSIPrice
    BBPeriod=BandsPeriod
    BBdeviation=BandsDeviation
    BBprice=BandsPrice
    ALjawperiod=JawPeriod
    ALteethperiod=TeethPeriod
    ALlipsperiod=LipsPeriod
    ALmethod=AlligatorMethod
    ALprice=AlligatorPrice
    OsMAperiod=OsMASignal
    OsMAfastperiod=OsMAFast
    OsMAslowperiod=OsMASlow
    OsMAprice=OsMAPrice



    - МТ4 version:
    LotBalancePcnt=LotBalancePercent
    RSILowLevel=Rsi_BUYLEVEL
    RSIHighLevel=Rsi_SELLLEVEL
    CCIHighLevel=CCI_SELLLEVEL
    CCILowLevel=CCI_BUYLEVEL
    WPRLowLevel=WPR_BUYLEVEL
    WPRHighLevel=WPR_SELLLEVEL
    EnvPeriod=ENVPeriod
    EnvMethod=ENVmethod
    EnvPrice=ENVprice
    EnvDeviation=ENVdeviation
    Version 18.7 2018.04.20
    The VirtualSLTP function:
    - When using OpenBarControlOnly, the virtual stop loss and take profit will be executed on each tick.
    - Added the check of conditions for setting stop loss and tale profit to the function:
    Stop loss for BUY orders can be placed only below the current price.
    Take profit for BUY orders can be placed only above the current price.
    Stop loss for SELL orders can be placed only above the current price.
    Take profit for SELL orders can be placed only below the current price.

    The CloseAllTradesByOutOfTime function:
    Division into type of closing by expiration of trading time:
    - Not Use = do not use the function
    - Positions and Orders = close positions and pending orders
    - Only Positions = close only positions
    - Only Orders = close only pending orders

    Added new signals:

    20: Trading based on Money Flow Index
    Money Flow Index (MFI) indicates the rate at which money is invested into a security and then withdrawn from it. Construction and interpretation of the indicator is similar to Relative Strength Index with the only difference that volume is important to MFI.
    The indicator signals are similar to signals from the RSI indicator;
    21: Trading based on Fractals
    Signal for opening positions is generated when the level of the last fractal is crossed:
    When the price crosses the last upper fractal upwards, a BUY position is opened;
    When the price crosses the last lower fractal downwards, a SELL position is opened;
    Filter: similar to the main signal:
    If the price is higher than the last upper fractal, only BUY positions;
    If the price is lower than the last lower fractal, only SELL positions;
    Attention! A fractal can be drawn at least on the 2 closed bar and can be drawn in the past in an unlimited number of bars back. Consider this when analyzing the signal!
    Version 18.5 2018.04.04
    Update New Feature:
    Include_Commission_Swap
    Use the original calculation of commission and swap when enabling the functions: Breakeven, Trailing Stop, Averaging.

    The original commission calculation is based on the formula for calculating the value of 1 point from the open positions on a given symbol and magic number. Negative swap and commission are taken into account during calculations. The function returns the value of the negative swap and commission in points, and considers this when working with breakeven and trailing stop.

    Note: if your broker has a floating spread, commission is calculated and set during the operation of the breakeven and trailing stop functions, but the spread may increase, leading to additional loss points. This is not a calculation error!
    Also, note that when a swap occurs, the EA recalculates the breakeven line and sets new stop loss levels is the server allows it (restriction on the minimum Stop Level of your broker). If the server does not allow setting breakeven and returns the minimum stop level error, the EA will be unable to modify the position and additional loss points may be received.

    In order to avoid losses when using accounts with commission and when receiving a negative swap, it is recommended to increase the distance of the breakeven or trailing stop.

    The breakeven level (LevelWLoss) can be calculated manually, taking the commission into account.
    For example: commission for opening and closing position = 2 USD (EURUSD) per 1 lot. So, in order to cover the loss on the commission, it is necessary to set LevelWLoss = 2 (points) + 1 (confirming) = 3 points.
    Thus, the EA sets breakeven to +3 points, which in turn will cover the loss on the commission.

    =============================================================================================================
    - Added a special mode to the breakeven function through the LevelWLoss parameter
    When LevelWLoss = 0, the breakeven point is calculated based on the current spread. This allows making the breakeven level dynamic and closing with the minimum profit of 1 spread. If the position's profit increases, trailing stop comes into play.
    (This mode worked in previous versions of the expert)
    If LevelWLoss = 1, the EA will set breakeven to 1 point!
    Version 18.4 2018.03.28
    General code improvements
    Added the ability to set stop loss and take profit for positions opened from the EAPADPRO control panel
    Version 18.3 2018.03.13
    - Updated EAPADPRO v2.0 info panel;
    - Optimized the EA code;
    - Increased the EA operation speed;
    - Updated the averaging;
    - Updated the commission calculation algorithm;
    - ControlNewBarforSIGNAL: check for indicator signals at each new bar only (without checking on each tick), the parameter works only if OWNSIGNAL_shift>=1 and IndSigToTrade!=NoSignal (if NoSignal, the EA checks the filter values at each tick)
    If ControlNewBarforSIGNAL=true, the optimization speed is increased 1.5 times.
    - Added the ClosePosition_After_X_Minutes parameter: close position after a specified amount of minutes.
    The EA also checks the enabled CloseChangeOnlyInProfit parameter: close only profitable positions.
    - Added the OnTester_Custom_max variable to the Tester block allowing you to write your own genetic optimization criterion.
    More on test results: https://www.mql5.com/en/docs/constants/environment_state/statistics
    The entry is made as an equation. For example: OnTester_Custom_max="STAT_PROFIT*STAT_TRADES/STAT_EQUITY_DD"
    The variable names should match the ones in the documentation!

    - Added two types of virtual pending orders to order type selection (Positions, StopOrders, LimitOrders):
    Use Virtual Stop Orders: set a virtual pending stop order at a distance of StopOrderDeltaifUSE points;
    Use Virtual Limit Orders: set a virtual pending limit order at a distance of StopOrderDeltaifUSE points;
    Note: It works only in Visualization mode or real chart only when the terminal is enabled.
    It does not work in optimization mode!
    Version 17.977 2017.12.07
    Note: We placed some secondary EA parameters to the bottom of the internal variables list.

    Added the new parameter ReInstallStopOrdersNewSignalAppears - re-set pending orders if a new indicator signal arrives. This allows removing the current BUYSTOP pending order and place a new BUYSTOP on a new level after indicators have informed of a new signal.

    Added No Signal to the main signal. If selected, the EA ignores the main signal and trades by filters.
    When using the main indicator, the signal is generated 'as is' on the current bar.
    This means the open signal is regarded a signal completion. If a signal arrives, while the filter does not allow opening a position, the signal is ignored.
    When using No Signal, you can ignore the fact of the main signal completion and follow the filters.
    When using the filters, the current position of indicators is regarded as a signal.

    Added the OnlyAlternateSignals parameter.
    It allows opening positions one by one only.
    If the last closed position is SELL, the next one can be only BUY!
    It is needed to let the main indicator trade in No Signal mode.

    Updated ADX filter.
    ADX shows the trend strength.
    If ADXLevel is 0, DI- > DI+ is used as a permission to sell
    If ADXLevel is 0, DI+ > DI- is used as a permission to buy
    If ADXLevel is not 0, DI- > DI+ и DI- > ADXLevel is used as a permission to sell
    If ADXLevel is not 0, DI+ > DI- и DI+ > ADXLevel is used as a permission to buy

    Added new ATR filter.
    ATR shows the market volatility.
    Trading strategies applying ATR as a filter confirm the current trend.
    When ATR grows, this means high market volatility.
    Low ATR values means low market volatility.
    External settings:
    ATR_period=14 - ATR calculation period
    ATRprice=PRICE_CLOSE - price type used to calculate the filter (Close, Open, High, Low...)
    ATR_MA_period=1 - number of candles for calculating the Middle line (MA), 1 - the indicator calculates the signal direction from the current and previous bar (depending on the 'shift' parameters)
    ATR_MULTIPLIER=1 - ATR ratio, for example EURUSD ATR=0.0020, when using ATR_MULTIPLIER=2. ATR=0.0040 is included into the calculation.
    Filter ATR logic:
    The price(ATRprice) of the current bar exceeds the price(ATRprice) of the previous bar + (ATR*ATR_MULTIPLIER) = high volatility BUY filter
    The price(ATRprice) of the current bar is lower than the price(ATRprice) of the previous bar - (ATR*ATR_MULTIPLIER) = high volatility SELL filter
    Version 17.956 2017.11.13
    Updated on 27.10.2017
    Added the StopOrderDayToExpiration and StopOrderBarToExpiration parameters
    StopOrderDayToExpiration= order expiration time in days.
    0 - ORDER_TIME_GTC - the order will stay in the queue until it is manually canceled
    1 - ORDER_TIME_DAY - the order will be valid only during the current trading day
    2...X - ORDER_TIME_SPECIFIED - the order will be valid until the specified date

    StopOrderBarToExpiration - pending order expiration time in bars.
    If StopOrderBarToExpiration=10, and TF = М1, the pending order will be canceled 10 minutes after it is placed.
    Attention: each broker has custom minimal parameter for expiration time.

    ===============================================================================
    Added the parameters of total stop loss and take profit to the averaging block.
    The stop loss/take profit level is calculated based on the middle line.

    TakeProfitALL - the total take profit distance when opening averaging trades.
    This option is useful only when AverageUSE is activated.
    StopLossALL - the total stop loss distance when opening averaging trades.
    This option is useful only when AdditionalOpening is activated.

    ===============================================================================
    When opening additional trades or averaging trades, the algorithm for breakeven and trailing stop is activated based on the middle line. The entire series of positions in one direction is calculated from the average level.

    ===============================================================================
    VirtualStops - enable the virtual (hidden) levels of stop loss/take profit/trailing stop/breakeven
    Completely revised the algorithm of virtual stop loss\take profit\trailing stop\breakeven.
    Now all virtual stops are displayed on the chart and are the key level for closing positions.
    Data are displayed in the form of lines and written in global variables.
    Note: if the stop line is removed from the chart along with the global variables, the virtual closure for this line will not work.
    Note: check if your experts and indicators delete lines from the chart and global variables!
    Attention: virtual levels are triggered at the current price, after which the closure occurs.
    During closing, there may be a few points of slippage!
    Note for МТ4: in optimization mode, the virtual stop loss/take profit does not work.
    Note: enabling VirtualStops significantly reduces the speed of testing.
    ===============================================================================
    FIFO
    When closing all positions, the EA closes the positions starting from the first opened one.
    ===============================================================================
    Added selection of the pending stop/limit order type in StopOrderUSE
    Version 17.943 2017.10.17
    Added the signal bar number for the main signal and filter
    OWNSIGNAL_shift - signal bar shift for the main signal.
    FILTERSIGNAL1_shift - signal bar shift for the filter.

    Added a parameter to disable opening positions instead of notifying the user of a new signal.
    Show_alert_without_opening_positions - when enabled, the EA will not open a new position based on the signal, but will only notify the user that a new signal has appeared. In this case, all other functions will work in the normal mode.
    Version 17.933 2017.10.12
    Optimized the signal generation algorithm. Significantly increased the EA testing and optimization speed.

    Added the SaveTPafterTrailingStop option. When enabled, take profit of the modified positions will be saved in its place.
    For example:
    SaveTPafterTrailingStop = false: when trailing stop is active, take profit of the modified position is deleted.
    SaveTPafterTrailingStop = true: when trailing stop is active, take profit of the modified position is saved.


    Updated the Extra BUY and Extra SELL buttons. The stop loss/take profit specified in the EA settings is now also considered when opening positions.

    Updated the MACD filter
    When using the MACD filter, the location of the MACD lines relative to the MACD_BUYLEVEL and MACD_SELLLEVEL levels is now taken into account, similar to the signal.


    Added ZIGZAG signals
    Intersections of ZIGZAG extremums serve as position opening signals.
    When using these signals, it is important to configure the shift parameter.
    If set to 0, a position is immediately opened towards the intersection of the current Bid price and the latest ZIGZAG extremum.
    If set to 1, a position is opened when the intersection is registered on 1 closed bar.
    The last extremum is the fixed extremum 1, when a new ZIGZAG segment is plotted starting from that extremum. Intersection of the maximum and minimum point is a signal for opening a position.
    The direction of the last ZIGZAG 0 segment is considered to be the ZIGZAG filter.
    Version 17.828 2017.09.04
    Fixed averaging when using the same magic number on several currency pairs simultaneously.
    Version 17.703 2017.07.06
    In the check of the OnlyOnePositionPerMagic function added the check if the OnePosPerDirection function is enabled:
    If OnePosPerDirection= false, then OnlyOnePositionPerMagic=true works like this: 1 position per magic number is allowed;
    If OnePosPerDirection= true, then OnlyOnePositionPerMagic=true works like this: 1 position in each direction per magic number is allowed;

    Added signals:
    - ADX
    strategy of signals from the reference: https://www.metatrader5.com/en/terminal/help/indicators/trend_indicators/admi
    this signal can take two types of signals for opening
    if ADXLevel =0, then this strategy is used:
    Wilder suggests buying when +DI crosses -DI upward and selling when +DI crosses -DI downward.
    if ADXLevel !=0, then this strategy is used:
    Wilder suggests buying when +DI crosses -DI upward with +DI above ADXLevel, and selling when +DI crosses -DI downward -DI above ADXLevel.
    When using ADX as a filter, it uses the position of lines +DI>-DI = only BUY, +DI<-DI = only SELL, ADXLevel is not used.
    Version 17.525 2017.05.30
    - Added parameter ClosePositionifChangeOWNSignal - closing opposite positions when the main!! signal changes.

    The difference from ClosePosifChange is that when using ClosePosifChange, a change in the signal in considered for all filters + the main signal.
    And when using ClosePositionifChangeOWNSignal - a change in the signal is considered only according to the main indicator.
    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
    BUY
    Middle line - Blue
    Take Profit - Green
    Stop loss - Red
    Trailing stop - Blue dotted

    Sell
    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.
    CloseAllTradesByOutOfTime


    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;
    then:
    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
    then:
    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;
    then:
    Buy is opened, if WPR crosses WPRHighLevel (-80) downwards
    SELL is opened, if WPR crosses WPRLowLevel (-20) upwards

    - added parameters for the MACD signal
    MACD_BUYLEVEL=0;
    MACD_SELLLEVEL=0;
    Which are involved in determining the signal.
    for example: MACD_BUYLEVEL=3,MACD_SELLLEVEL=-3
    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,
    If TENKANSEN is above KIJUNSEN - BUY
    If TENKANSEN is below KIJUNSEN - SELL
    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
    OpenHour=0;
    OpenMinute=0;
    and ClosePeriod_Minute=60, then
    CloseHour=1;
    CloseMinute=0;

    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:
    TF_IndSigToTrade1
    TF_IndSigToTrade2
    TF_IndSigToTrade3

    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;