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.
Version for MetaTrader4: The xCustomEA version for MetaTrader 4 terminal
The functionality of the universal trading adviser The xCustomEA exactly duplicates all the parameters of our advisor The X except one:
- The xCustomEA works on a custom indicator and can program its trading strategy for MT5 terminals.
- 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!
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.
- SignalBuferforBUY, SignalBuferforSELL - 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!
How does it work?
Method of work of the Expert Advisor on the custom indicator without programming:
Thus, we do not need to program our indicator, for the adviser's work.
- 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:
- Be sure to write a double backslash \\
- Specify the type of SignalTypeIndicator = xArrow signals
- Specify the signal buffer for opening BUY SignalBuferforBUY(for example, buffer number 8)
- Specify the signal buffer for opening SELL SignalBuferforSELL (for example, buffer number 9)
AdditionalLots - An additional lot that will be added to each new deal based on a new signal
CoeficienteLots - Lot coefficient, by which the lot will be multiplied for each new deal on a new signal
(When the advisor is allowed to open more than one position for each signal ONlyOnePosbySignal = false / OnePosPerDirection = false)
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)
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.
Not Right: Expforex The X Set # 12345
- 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)
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.
- 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.
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:
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.
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!
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.
If the positions have a different take profit, then the expert sets a single total take profit.
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.
- 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;
- 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.
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
- 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
-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.