• Overview
  • Reviews (7)
  • Comments (117)
  • What's new

Exp5 The xCustomEA for MT5

Universal trading adviser on custom indicators for MetaTrader 5.

Builder of strategy.

Write the name of your indicator with Arrow and signal buffers, and our EA xCustomEA trades on these signals.

You can also use many of our built-in functions.

The functionality of the universal trading adviser The xCustomEA exactly duplicates all the parameters of our advisor The X except one:

  1. The xCustomEA works on a custom indicator and can program its trading strategy for MT5 terminals.
  2. The xCustomEA has a link to custom indicators that can be downloaded from the Internet or the mql5 market.

 Our new advisor The xCustomEA is based on the adviser The X - Universal EA 

You can program your custom indicator and our advisor. The xCustomEA will open positions on signals.

By purchasing our Universal Trade Adviser The xCustomEA, you can program advisors on indicators every day!

Basic settings: 

You can program individual indicators and signals for: open, close, filter, stop loss, take profit.

All other settings are identical with the settings of The X and include more than 200 parameters.


  • SignalNameIndicator - The name of the custom indicator from which the main signals for opening positions will be received.
  • SignalTypeIndicator - Indicator type for signals.
    • There are two types of adviser's work:
    • xCustomEA - The work of an advisor on our indicator, in which you personally program your strategy.
    • xArrow - The EA works directly with a custom indicator that has buffers such as Arrow that can be used for the Expert Advisor.
  • TF_IndSigToTrade1 - Timeframe for 1 main indicator. You can select the Time Frame by which the indicator will receive signals.
  • OWNSIGNAL_shift - The bar number for the signal that the indicator will generate,
    • 1 = last closed bar, signals on such bar are considered complete.
    • 0 = Current open bar, signals on this bar are considered drawing.
  • SignalBuferforBUYSignalBuferforSELL - Buffer number in the custom indicator, to receive a signal to BUY and SELL
  • SIGNALStrategyInputs - External parameters for custom indicator,   You can specify external variables of the indicator as they are written in the settings table,    separated by commas!

Method of work of the Expert Advisor on the custom indicator without programming:

  1.  Specify the name of the custom indicator SignalNameIndicator ! If this indicator was downloaded from the MQL5 market, then you need to specify from the Market folder:
    • Market\\NameoftheIndicator
    • Be sure to write a double backslash \\
  2. Specify the type of SignalTypeIndicator = xArrow signals
  3. Specify the signal buffer for opening BUY SignalBuferforBUY(for example, buffer number 8)
  4. Specify the signal buffer for opening SELL SignalBuferforSELL (for example, buffer number 9)
Thus, we do not need to program our indicator, for the adviser's work.

Attention! By default, the Expert Advisor does not have a trading strategy and can not open positions!

Franco Alves
Franco Alves 2020.07.08 20:09 

Very good!!

Valter Oliveira
Valter Oliveira 2020.06.01 01:09 

Excellent product for implementing Expert Advisors (EA) using existing indicators in the MQL5 market. I thank the developer for making this tool available to us.

Vasil lupanov
Vasil lupanov 2020.01.16 19:45 

Friends, don't bother looking for experts and utilities. Look for Vladislav !!!! He has everything! Five gold stars for his products and 10 stars for him !!!

Victor Volovin
Victor Volovin 2019.12.23 11:52 

Советник с неограниченными возможностями.

Atila Recep Akdeniz
Atila Recep Akdeniz 2018.12.28 10:01 

I just bought the EA. I have been using The X Universal for a long time now, with great results.

This EA does everything TheX Universal does and much more, including integration of other EA's and signals and independent strategies etc.

I guess there will be a little bit of a learning curve to understand its full functionality and use it to its full power.

5 stars for such an innovative product from a great designer.

I will review this a few months later when I use the product and understand it better.

talha8877 2018.12.16 18:49 

I was using The X Universal EA and it was great, but it was missing the ability to add custom indicators.

Now the Author created this expert and it's possible to add those custom indicators or other Experts for signal triggers.

It requires a bit more effort to learn how to integrate those additional functions but thankfully the author has very detailed documentation about the EA.

mckingwo 2018.11.27 09:31 

This Ea is good !

Version 20.608 2020.06.08
Компиляция 2485
Version 20.220 2020.02.19

Dear friends!
We made a very important and difficult decision regarding The X/The xCustomEA for MetaTrader 5 and the use of the multi-currency mode (PAIR1-PAIR12)
Due to the fact that the use of different methods of multi-currency operation does not bring 100% accuracy in obtaining quotes,
we were forced to turn off this mode.
We explored many topics on the forum about the problem of using multi-currency mode in MetaTrader!
Each method of implementing a multi-currency trading mode has its pros and cons!
But in each of these methods there are Cons: Reward resources on computers, skipping ticks, looping the main trade flow.
We made the decision: Remove the multi-currency trading algorithm in The X/The xCustomEA to eliminate trading problems on real charts!
We apologize for any inconvenience caused.

IMPORTANT: As soon as we find the ideal solution for working in multi-currency mode (PAIR1-PAIR12) we will turn on these parameters again, for the convenience of taming and optimization.
IMPORTANT: On a real chart, I recommend installing an adviser on each chart of a currency pair separately from each other (do not use PAIR1-PAIR12)
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.
Right: ExpforexTheX
Not Right: Expforex The X Set # 12345
Version 20.212 2020.02.12
- Fixed the Work on time error if the advisor TF is greater than the Minutes of the time function.
(For example, closing at 22:49 and TF = H1)
Version 19.994 2019.12.05
Added parameter Send_Push_without_opening_positions:
Sending PUSH notifications to the phone instead of opening positions!
When this parameter is enabled, the adviser will not open a new position on a signal, but only notify the user that
that a new signal has appeared. At the same time, all other functions will work as usual.
Allows the user to open a position on their own if the EA gives a signal.
But the adviser does not make this transaction and does not open a position, but only notifies the user about the signal.
Version 19.905 2019.09.05
Исправлена ошибка алертов при открытии и закрытии позиций.
Version 19.903 2019.09.03
- 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.820 2019.08.20
-. Alert has been added if the specified indicator is not found!
The adviser will check the existence of the indicator and give a message stating that the indicator was not found with a request to check the correctness of the name!

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.816 2019.08.17
Fixed bug:
When two different directions BUY and SELL are in operation and averaging works, then BUY does not allow to modify the take profit for SELL positions!
Version 19.814 2019.08.14
Update Update
Version 19.808 2019.08.07
Added DistanceMartinAdditional - Coefficient of distance for additional order opening.
Added MinTimebeforenextAverage - Minimum time to the next averaging in minutes.

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.

Version 19.525 2019.05.25
Added function to check different take profit for the averaging function.
If the positions have a different take profit, then the expert sets a single total take profit.
Version 19.517 2019.05.17
Forced modification only when stop loss = 0 or take profit = 0
Version 19.514 2019.05.16
Fixed double opening of averaging deals on accounts with MARKET execution.
Version 19.123 2019.01.23
Indicator example file updated! + StrategyShift removed from indicator file !!!
Added operation mode for the current zero bar(Shift=0)!
Attention! The current bar only forms a signal, so we do not recommend using Bar # 0(Shift=0) to receive signals!
Attention! Some indicators forcibly do not draw a signal at 0 bar! - It is right. Therefore, the adviser will not open positions using Shift = 0.
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.110 2019.01.10
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 19.0 2018.12.29
Fix Fix Fix
Version 18.999 2018.12.28
- Optimization of the code, increasing the speed of testing.
- When you first start the advisor, an indicator template file is created for programming your strategy.
A file is created in your terminal \ Files folder with name "Ind - The xCustomEA TEMPLATE.mq*"
You can open this file and follow the programming instructions of your custom strategy.
Version 18.998 2018.12.28
- Optimization of the code, increasing the speed of testing.
Version 18.992 2018.12.23
- The ability to specify and fill in external variables (which can be configured from the advisor) has been added to the xCustom signal type
SIGNALStrategyInputs, CloseStrategyInputs, FILTERStrategyInputs can now be used with indicators written in our example (xCustomEA)
- In connection with the update of the sample files and our custom indicator Ind - The xCustomEA TEMPLATE, we updated all the variables of the adviser and added an additional type: to the SLTPTypeIndicator type xCustomEA, to call from our example indicator.
Also added is the variable SLTP_IndSigToSlTp to specify the strategy number in the Ind file - The xCustomEA TEMPLATE
Version 18.988 2018.12.10
- Fixed bugs according to user messages
- Reworked system for receiving signals
- Modified indicator indicator files for receiving signals for the operation of new functions and blocks! Be attentive!
================================================= ===============================
- Update EAPADPRO to version 23:
Added controls for speed testing and pause in the strategy tester;
Added a table of current open positions in the strategy tester;
================================================= ===============================

- Added block control signal closure for custom indicator.
This block allows you to close open positions by signals of a custom indicator.
It is used if a custom indicator provides signals for closing positions (separately from the signals for opening a new position).
If you need to tell the adviser signals to close positions, then you need to specify: the indicator name (may be identical with the indicator name for closing positions), a set of parameters (If they differ from the default indicator parameters), TimeFrame, Bar Shift, and number buffers to receive signals for closing. Separately for BUY and SELL positions.
Attention: If you want to close a position when receiving the opposite signals, then you do not need to use this block.

- External parameters Signal for Close options:

CloseNameIndicator = ""; // CloseNameIndicator -> Indicator name to get the signal to close pos
CloseTypeIndicator = xArrow; // CloseTypeIndicator -> Type of indicator signal to close
CloseTimeFrame = PERIOD_CURRENT; // CloseTimeFrame -> TimeFrame of signal to close
Close_shift = 1; // Close_shift -> Bar number to receive signal to close
CloseStrategyInputs = ""; // CloseStrategyInputs -> Inputs Of Ind, separated by commas
CloseBuferforBUY = 4; // CloseBuferforBUY -> Buffer number for close BUY
CloseBuferforSELL = 5; // CloseBuferforSELL -> Buffer number for close SELL
Close_IndSigToClose = 0; // Close_IndSigToClose -> Indicator number to get Close signal
================================================= ===============================

- Added Stop Loss and Take Profit control unit based on custom indicator signals.
This block allows you to set a stop loss or take profit when opening positions on the signal, which can be taken from the values ​​of the custom indicator buffers.
If the Custom Indicator has separate buffers for getting Stop Loss or Take Profit, you can use these values ​​when opening a new position.

Attention: Stoploss or take profit is set only when a new position is opened using a new signal. The functions of averaging, additional opening use the parameters of stop loss and take profit from past variables. Stoploss and take profit obtained from the custom indicator in Averaging and additional opening are not accepted.
Stop loss and take profit from a custom indicator is also set when using the ForcedModifySLTP function.

If you need to tell the adviser the stop loss and take profit values ​​from the custom indicator, then you need to specify: the indicator name
(may be identical with the name of the indicator for opening / closing positions), a set of parameters (If they differ from the parameters of the indicator by
default), TimeFrame, Shift bar, and the number of buffers to get values. Separately for BUY and SELL positions and separately for StopLoss and TakeProfit.

- External parameters Custom StopLoss and TakeProfit from Indicators options:

SLTPNameIndicator = ""; // SLTPNameIndicator -> Indicator name to get the signal of SL / TP
SLTPTypeIndicator = xPrice; // SLTPTypeIndicator -> Type of indicator signal of SL / TP
SLTPTimeFrame = PERIOD_CURRENT; // SLTPTimeFrame -> TimeFrame of signal of SL / TP
SLTP_shift = 1; // SLTP_shift -> Bar number to receive signal of SL / TP
SLTPStrategyInputs = ""; // SLTPStrategyInputs -> Inputs of the ind, separated by commas
SLTPBuferforBUY_StopLoss = -1; // SLTPBuferforBUY_StopLoss -> Buffer number of SL for BUY
SLTPBuferforSELL_StopLoss = -1; // SLTPBuferforSELL_StopLoss -> Buffer number of SL for SELL
SLTPBuferforBUY_TakeProfit = -1; // SLTPBuferforBUY_TakeProfit -> Buffer number of TP for BUY
SLTPBuferforSELL_TakeProfit = -1; // SLTPBuferforSELL_TakeProfit -> Buffer number of TP for SELL
================================================= ===============================
Version 18.970 2018.11.10
- Global update and improvement of the working code.
-Add EAPADPRO v21 panel
-Add short hints to external variables
-Add parameters for calling indicators SIGNALStrategyInputs, for indicators with the type SignalTypeIndicator = xArrow
Read more in our blog.