• 概述
  • 评论 (7)
  • 评论 (233)
  • 新特性


Universal multi-currency Trading System with Averaging Function and 12 built-in trading strategies

This Expert Advisor includes all the useful functions that have been used in all the Expert Advisors including the function of averaging. It also allows using several (up to 12) currency pairs on a single chart and signals from 12 indicators included in MetaTrader 5 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. There is also a function of the additional positions with the trend

The martingale function allows using the standard martingale mode.

Trailing stop, break even, trading time, auto lot, closing by total profit/loss, and more in our expert.

You can also download the MetaTrader 4 version The X for MT4

Full description and EA settings

Attention! This EA is a strategy constructor. You should independently optimize and configure the Expert Advisor for your strategy.

The default settings show an example of using the Expert Advisor.

You can also purchase separate functionally independent Expert Advisors included in this Expert Advisor:

Key Advantages

  • Description of the parameters, functions and signals can be found here: Description of parameters and signals of THE X system
  • Autolot (calculation of volume based on the current balance), money management;
  • Work by time (limitation of trade time for the Expert Advisor);
  • Trailing Stop (standard one with the "Only profitable" algorithm);
  • MarketWatch ECN (work on ECN, NDD accounts);
  • Functions of error processing for real accounts;
  • Block of closing by total profit and loss with the ability to disable all the Expert Advisors on the account;
  • Break even (moving Stop Losses to the zero level);
  • Martingale (increasing the following lot after an unprofitable position);
  • Work by the indicator signals only (Signal for opening, Signal for closing an opposite order and opening);
  • Closing opposite orders when signal changes;
  • The "REVERSE" function that reverses the signals of your strategy.
  • The function of averaging a losing position bringing it to profit.
  • The function of position increase by the trend.

Indicators and Signals

  • Moving Average (MA) (Signal 1)
  • Moving Average Convergence/Divergence (MACD) (Signal 2)
  • Stochastic Oscillator (Signal 3)
  • The RSI indicator (Signal 4)
  • Commodity Channel Index (CCI) (Signal 5)
  • Williams Percent Range (WPR) (Signal 6)
  • Bollinger Bands (Signal 7)
  • The Envelopes indicator (Signal 8)
  • Alligator (Signal 9)
  • Moving Average of Oscillator (OsMA) (Signal 10)
  • Awesome Oscillator (AO) (Signal 11)
Kenneth Petersen
2017.03.24 11:46 

I have purchased quit a few EA here, but only 2 so far have made a profit for me, and this is the one, of cause it depends on the strategy,and this EA gives you the possibility to tailor your strategy precisely, and this EA are frequently update with new features that are requested from users.

get this as you first EA, and lets see if you need another.....

2017.01.18 18:25 

Vladislav, what I would Say on You is not enough. Professional, workaholic, perfectionist, and Humble genius.

the EA work perfectly due to your continuous interventions. Still working with me closely to find Quickly the solutions.

just to say I am still testing the EA Settings or things are Positive till this moment.

Tommaso Santarelli
2017.01.13 16:54 


2017.01.12 05:53 

Все работает как швейцарский хронограф. Если мощный комп то можно настроить бесчисленное количество окон с разными настойками на максимально зажатую работу индикаторов. Каждое окно в среднем дает одну сделку в день но качество ордера в среднем на уровне 87%. И у хорошего поставщика (от 100 и более торговых сигналов)происходит тоже самое как кинуть килограмм дрожжей в деревенски сортир в жаркий день, но только в хорошем смысле не оскорбляю автора и его творение.

Спустя годы работы с данным экспертом я решил скорректировать свой комментарий сделаный в начале 2015года. Я считаю это лучший эксперт с которым мне приходилось работать, а разработчик самый отзывчивый и расторопный.

2016.10.31 13:33   

For me its the best system for the money i have found by far...its very large set of parameters make this system almost impossible not to find the right combination for diferent kinds of markets !

2016.09.04 14:40 

Присоединяюсь к словам предыдущего автора. Советник обладает всеми необходимыми инструментами для успешной торговли. Ключевое слово - оптимизация. Особая благодарность разработчику за то, что он постоянно продолжает усовершенствовать советник.

Респект и так держать!

qwe trader
2016.05.03 00:31 

Very good and at an affordable price. It allows a multitude of configurations, and everything works perfectly. Congratulations to the author !!

版本 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
版本 17.224 - 2017.03.01
Update of the "Averaging" block for the Brazilian market
版本 17.201 - 2017.02.20
Fixed the error in displaying the autolot in EAPADPRO
Added output of the signal information to the journal when a trade is opened.
Fixed the multi-currency operation mode of the EA.

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, opening signals, etc.
版本 17.121 - 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
版本 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.
版本 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
版本 16.957 - 2016.11.10
Optimized the code to reduce the CPU load.
Added support for working on the Brazilian market.
Added the new variable:
SeveralTimeWork = EA working time via enumeration,
entry format:
start hour:start minute-end hour:end minute;start hour:start minute-end hour:end minute;
for example:
means that the EA works from 9:00 to 10:00, as well as from 12:00 to 13:00, as well as from 15:00 to 17:30
版本 16.955 - 2016.10.31
Fixed a bug in breakeven MovingInWLUSE, where stop loss of a trade could be ranging between breakeven and triggered trailing stop
版本 16.945 - 2016.10.24
Fixed the error with stops
Added the MinuteToOpenNextPosition parameter - the number of minutes for opening the next trade based on the indicator signals. This parameter counts the number of minutes elapsed from the last opened position. It allows to filter trades when using the ONlyOnePosbySignal=false
Added the OpenOppositePositionAfterStoploss parameter - opening an opposite position when closing the current position by stop loss. It allows to open an opposite trade right after the stop loss of the previous is triggered without using the indicator signals.
Added the MAX_BUY_POSITION and MAX_SELL_POSITION parameters for limiting the maximum number of trades.
版本 16.940 - 2016.10.14
Added support for EA operation on hedging accounts. The EA can work on Hedging and Netting accounts!
Added the Magic number
Fixed the error in balance calculation in the block of closing by profit for the accounts that use the day trading mode and equal to 0.

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";
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.

Improved the OnePosPerDirection parameter: Open 1 trade per 1 direction
For example:
if OnePosPerDirection=true and ONlyOnePosbySignal = false
then the EA can open 1 Buy according to signal and 1 Sell according to signal
if OnePosPerDirection=false and ONlyOnePosbySignal = true
then the EA can open only 1 trade according to signal, either Buy or Sell
if OnePosPerDirection=false and ONlyOnePosbySignal = false
then the EA can open any trade according to any signal of the indicators

Added the OnlyOnePositionPerMagic parameter: Opening 1 position per 1 magic,
The EA checks if there are open positions with the specified magic number on other currency pairs. If there are no positions - the EA opens a trade according to the signal, and other experts will wait for this trade to be completed.

Added the CloseChangeOnlyInProfit parameter - close trades in case of a reverse signal only when the current position is in profit.
版本 16.920 - 2016.09.23
New parameter Sounds - Use trade sounds
The parameters enables/disables sound for the operations of position opening, closure, modification, as well as sounds of errors returned by the server.
版本 16.909 - 2016.09.13
Updated the DistanceMartin parameter
版本 16.824 - 2016.08.29
Added new parameter to the 'Averaging' block - DistanceMartin - the ratio of averaging distance increase for each subsequent deal
版本 16.722 - 2016.07.26
Alert: This EA may not work on hedge account.
版本 16.601 - 2016.06.01
Returned the ReverseSignal parameter.
版本 16.526 - 2016.05.31
Added ability to select a timeframe for signals:
Added the parameters MaxSpreadToNotTrade and MinSpreadToNotTrade
MaxSpreadToNotTrade - maximum spread, at which EA can open a position
MinSpreadToNotTrade - minimum spread, at which EA can open a position
Note: The filter is used only to open a position by signal or averaging. All other functions work as usual.
版本 16.428 - 2016.05.06
Fixed the error with MaxOrders.
Added a parameter to select the type of opened positions:
版本 16.408 - 2016.04.12
Fixed making Journal entries at each tick in case of incorrect stops.
Added the SetMinStops variable:
In case of AutoSetMinLevel, stop levels are reduced to the minimum possible levels allowed on the server;
In case of ManualSet, a user receives a message that stop levels in the EA are less than the minimum allowed ones, and the EA stops operation.
版本 16.309 - 2016.03.23
Changed the procedure of lot calculation when using martingale.
Increases the last lot of the open position according to the last trade.
Fixed the time calculation for VPS.
Added Rounding parameter:
Without rounding - place stop orders without rounding
To 1 digit - rounding to 1 digit. For example, if Stoploss= 1.23456, the trade will be opened with a stop loss of 1.23450
To 2 digits - rounding to 2 digits. For example, if Stoploss= 1.23456, the trade will be opened with a stop loss of 1.23400
版本 16.226 - 2016.03.01
The updated version for the stock market:
- Fixed the error in the determination of the last lot, if the position was closed by several requests.
版本 16.105 - 2016.01.06
Redesigned the signals block when the IndSigToTrade and IndSigToTrade2 are selected.
Before: A trade opens only when the two signals match at the same time.
Now: If the IndSigToTrade signal appeared, then 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.
版本 15.994 - 2015.12.23
Added automatic detection of the order filling type.
版本 15.992 - 2015.12.17
Added separation of deals by parameters:
MaxOrders = maximum number of smoothing deals (deals against the main position);
MaxOrdersOpenAdditionalOpen = maximum number of additional deals (deals along the main position);
版本 15.991 - 2015.12.11
Fixed take profit calculation when opening an additional trend following trade from the 'Additional opening' unit
For an additionally opened trade, take profit is equal to the TakeProfit parameter
版本 15.981 - 2015.11.25
In signals of Stochastic RSI CCI WPR, added levels for the EA to count signals from.
版本 15.956 - 2015.10.28
New block in sets:

AdditionalOpen - use opening additional orders by trend;
DistanceAdditionalOpen - distance of opened grid positions, adding by trend;
LotsMartinAdditionalOpen - increase lot for a position grid;
MaxOrdersOpenAdditionalOpen - maximum additions, 0 - unlimited.

If you want to open additional positions by trend (for example, if you buy and the price goes up through DistanceAdditionalOpen points, a new position should be opened equal to "previous lot * LotsMartinAdditionalOpen"). The maximum amount of deals in a single position should not exceed MaxOrdersOpenAdditionalOpen deals.
版本 15.943 - 2015.10.26
Version of October 23:
added option CloseAllTradesByOutOfTime
When using the trading permission block:
input int OpenHour = 0;
input int OpenMinute = 0;
input int CloseHour = 23;
input int CloseMinute = 59;

If CloseAllTradesByOutOfTime open positions remain after the time is up - all positions are closed.
版本 15.821 - 2015.08.27
Now you can select an indicator by its name as a matter of convenience

- NO=0 - No signal
- Ma=1 - Moving Average
- MACD=2 - Moving Average Convergence/Divergence (MACD)
- STOCH=3 - Stochastic Oscillator
- RSI=4 - RSI
- CCI=5 - Commodity Channel Index (CCI)
- WPR=6 - Williams Percent Range (WPR)
- BB=7 - Bollinger Bands
- Envelopes=8 - Envelopes
- Alligator=9 - Alligator
- OsMA=10 - Moving Average of Oscillator (OsMA)
- AO=11 - Awesome Oscillator (AO)
- ISH=12 - Ichimoku
版本 15.618 - 2015.06.19
Updates for brokers using IOC order filling type.
Fixed averaging error.
版本 15.601 - 2015.06.02
The Expert Advisor has been updated to adjust to the new terminal build.
Removed the limitation on the minimum averaging distance.
版本 15.123 - 2015.01.26
Fill policy parameter has been added to the external parameters:

This fill policy means that an order can be executed only with the specified volume. If the required volume for a given financial instrument is currently unavailable in the market, the order will not be executed. The required volume can be filled using several offers currently available in the market.

This means that a trade will be executed with the maximum volume available in the market within the value indicated in the order. In case entire order volume is not available in the market at the moment, a partial fulfillment is possible, but any portion that cannot be filled immediately is canceled.

This fill policy is used for market, Limit and Stop Limit orders and only in the Market Execution and Exchange Execution modes. In case of partial filling a market or Limit order with remaining volume is not canceled but processed further.
When a Stop Limit order triggers, a relevant Limit order will be placed with the Return fill policy.
版本 14.409 - 2014.04.10
Works on ECN account - updates the list of orders using a delay.
Modifies stop loss and take profit after opening the position.
版本 14.116 - 2014.01.30
- Added check for errors.
- Added logging of actions of the EA.
- Fixed Martingale used for averaging.
版本 13.916 - 2013.09.25
After a deal is closed a new signal can be generated only for opening an opposite deal.
版本 13.820 - 2013.08.20
Amended the autolot function for brokers that have symbols with suffixes. For example, EURUSD.m.
版本 13.813 - 2013.08.13
Updated TrailingStop function.
When using initial trailing stop and a set of signals for modifying the stop loss, the initial stop loss is reset and the TrailingStop function starts working instead.