EA The xCustomEA: Universal Trading Advisor for iCustom Indicators. Custom Strategy Builder

TickSniper Automatic Expert Advisor for Metatrader. Tick scalper
Copylot – Forex copier for trade deals for MetaTrader. Copier between terminals
TickSniper Automatic Expert Advisor for Metatrader. Tick scalper
Copylot – Forex copier for trade deals for MetaTrader. Copier between terminals

EA The xCustomEA: Universal Trading Advisor for iCustom Indicators. Custom Strategy Builder Video Thumbnail

  • Main
  • Documentation
  • Settings
  • FAQ
  • Changelog
  • Reviews
  • Comments
  • Extra

About xCustomEA

Universal Trading Advisor for Custom Indicators on MetaTrader

Looking for a customizable trading solution for MetaTrader 4 and MetaTrader 5? Introducing Exp – The xCustomEA, a universal trading advisor that works seamlessly with custom indicators through the iCustom function on MT4 and MT5.

Our latest trading advisor, The xCustomEA, is built upon the proven foundation of The X – Universal EA, with a key improvement: full integration with custom indicators, giving traders the ability to automate personalized trading strategies.

Why Choose The xCustomEA?

The xCustomEA offers all the features of our widely-used advisor The X, but with the added ability to connect and trade using any custom indicator. Whether you’re working with indicators from the MQL5 Market or those downloaded from the internet, the xCustomEA empowers you to design and execute tailored trading strategies for MetaTrader 4 and MetaTrader 5.

How Does The xCustomEA Work?

  1. Compatibility with Custom Indicators. The xCustomEA integrates with any custom indicator available online or through the MQL5 Market, enabling fully automated trading based on indicator signals. This makes it a versatile tool for traders looking to customize their trading strategies.
  2. Easy Strategy Builder. By simply inputting the name of your chosen indicator along with its arrow and signal buffers, the xCustomEA takes care of the rest, automating trades based on the signals generated by the indicator.
  3. Advanced Trading Features. In addition to custom indicators, the xCustomEA offers a wide range of built-in functions to enhance and optimize your trading strategy. You have full control to customize trade execution, stop loss, take profit, and more.

Benefits of The xCustomEA

  • Works with Any Custom Indicator. Whether downloaded from the MQL5 Market or from any other source on the internet, the xCustomEA reads and trades based on signal buffers from your chosen custom indicators.
  • Fully Automated Trading. With the xCustomEA, you can automate your strategy on both MetaTrader 4 and MetaTrader 5 platforms, ensuring trades are executed precisely and efficiently.
  • Complete Strategy Control. Customize your trading strategy with ease using the xCustomEA’s comprehensive feature set, including risk management tools and advanced trading logic.
  • Supports MetaTrader 4 and MetaTrader 5. Whether you’re using MT4 or MT5, the xCustomEA offers seamless compatibility, providing traders with flexibility across platforms.

The xCustomEA is the perfect solution for traders seeking customizable trading advisors that work with MetaTrader 4 and MetaTrader 5. Maximize your trading potential with the power to connect any custom indicator and create automated strategies tailored to your needs.

How Does xCustomEA Work?

New EA based on iCustom indicators

You can test iCustom indicators from market for free

You can program strategy in 5 minutes

All Metatraders terminals, All account type, All symbols

(xColorArrow with 1 Buffer and 2 Colors), for which the signal arrows have two different colors (DRAW_COLOR_ARROW).

xArrow – The EA works directly with a custom indicator that has Arrow-type buffers that can be used by the EA.

Signal and Filter Definition

You can use signals from standard indicators! Strategies of signals from standard indicators are added from The X Advisor Expert

An example of dividing a custom indicator into the Advisor settings

Example: Pipfinite Trend Pro + xCustomEA

Example of strategy programming for our xCustomEA

What do people write about xCustomEA?

  • Deniz90
    Excellent EA, providing endless opportunities. The author is very helpful and responsive, definitely recommended.
    Deniz90
    ⭐⭐⭐⭐⭐
  • julia-Tkachenko
    Супер навороченный комбайн на стандартных индюках. Класс!
    julia-Tkachenko
    ⭐⭐⭐⭐⭐
  • leachimk
    Присоединяюсь к словам предыдущего автора. Советник обладает всеми необходимыми инструментами для успешной торговли. Ключевое слово - оптимизация. Особая благодарность разработчику за то, что он постоянно продолжает усовершенствовать советник. Респект и так держать!
    leachimk
    ⭐⭐⭐⭐⭐
  • ROBERT URBANSKI
    I rent this EA for one month for testing. I give 5 stars in begin for Suport. After month I will update info about EA but now I can tell. It have many interesting settings. I tried work with many custom indicator (not build). Works very impresive.
    ROBERT URBANSKI
    ⭐⭐⭐⭐⭐
  • DadeSubandryo
    Great support for consumers. still learning stage & EA started to work as i want. I will update the stars & comments if necessary. Thank you
    DadeSubandryo
    ⭐⭐⭐⭐⭐
  • Stanimir Stanchev
    I am using xCustomEA for two months and i am extreamly happy with it and the support i'd received from Vladislav. His Exp4 Tester PAD for Strategy Tester is also very useful when it comes to test a strategy in visual mode. My favorite developer as of now!
    Stanimir Stanchev
    ⭐⭐⭐⭐⭐
  • Hanxyork
    I purchased the xCustomEA few days ago, Vladislav answered all my questions quickly, he is very professional, responsible, knowledgeable, honest and dedicated, he helped me to start up my xCustomEA in a VPS. I am buying more of his products, definitely. Thank you very much Vladislav.
    Hanxyork
    ⭐⭐⭐⭐⭐
  • 189114nickynomates
    This has opened up a whole new world to my trading. The concept is pure brilliant. The forums very informative and you always get help to questions detailed in the correct way. The biggest gain I have received is widening my understanding of the scope that can be achieved in cleaver trading with this ea. Keep up the good work.
    189114nickynomates
    ⭐⭐⭐⭐⭐
  • Sammy Boy
    Excellent EA. Vladislav has put in great effort to come up with such sophisticated EA
    Sammy Boy
    ⭐⭐⭐⭐⭐
  • Franco Alves
    Very good!!
    Franco Alves
    ⭐⭐⭐⭐⭐
  • Valter Oliveira
    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.
    Valter Oliveira
    ⭐⭐⭐⭐⭐
  • Atila R Akdeniz
    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.
    Atila R Akdeniz
    ⭐⭐⭐⭐⭐
  • Manuel Sanchez
    Great EA. Just do your homework and you will find a good strategy. I love the interface panel. 5 start. Thanks to the programmer.
    Manuel Sanchez
    ⭐⭐⭐⭐⭐

You can Download free xCustomEA

Get started for FREE!

You can download and install our program for free!

And you can test it on your DEMO account without time limits!
And you can also test our program for free on a REAL account using the USDJPY symbol!

You can Buy full version of xCustomEA

MetaTrader

Time Use

Trade Accounts

Computers / Activations

Functions

Support

FULL MT4 version


For MetaTrader 4

250 $

MT 4

Lifetime

Unlimited

10

Full

24/7

FULL MT5 version


For MetaTrader 5

250 $

MT 5

Lifetime

Unlimited

10

Full

24/7

RENT for 3 months


For MetaTrader 4

60 $

MT 4

3 months

Unlimited

10

Full

24/7

RENT for 3 months


For MetaTrader 5

60 $

MT 5

3 months

Unlimited

10

Full

24/7

Before making a purchase, we highly recommend reviewing our instructions and FAQ section to ensure a smooth experience.



The X and The xCustomEA : Testing and Optimization

Useful links


Download MetaTrader

How to Buy How to Install Strategy Tester VPS MetaQuotes MT4 Log Files MT5 Log Files


Description xCustomEA

Exp – The xCustomEA, a universal trading advisor for custom indicators.

Forex Builder for your strategy with iCustom.

Our new advisor, The xCustomEA, is based on the advisor The X – Universal EA.

The functionality of the universal trading advisor, The xCustomEA, exactly replicates all the parameters of our advisor, The X, except for one key difference:

The xCustomEA operates using a custom indicator iCustom and can program its trading strategy for both MT5 and MT4 terminals.

In other words, The xCustomEA is connected to custom indicators iCustom that can be downloaded from the Internet or the mql5 market.

Any custom indicator iCustom from the Internet!


Optimization and Testing of The X and The xCustomEA

The X and The xCustomEA: Testing and Optimization


Foreword

The xCustomEA: A Flexible Solution for Custom Indicator Trading

When programming Expert Advisors (EAs) through freelance orders, we noticed that 90% of requests were based on strategies built around indicators. To meet this demand, our initial focus was on embedding custom indicators into our template for writing an advisor for developing advisors.

However, the cost of creating such a system—including the template, development time, and providing open-source access—often proved to be too high. Many traders found it costly to create an advisor for a single custom indicator, especially if the indicator turned out to be unprofitable. In such cases, they’d have to pay for a completely new advisor based on a different indicator, leading to repeated expenses.

The Solution: The xCustomEA – A Universal Trading Advisor

To solve this problem, we developed The xCustomEA, a universal trading advisor that works with custom indicators and can be fully customized to trade based on signals from any indicator of your choice.

Unlike traditional EAs, The xCustomEA doesn’t come with pre-set strategies. Instead, it allows you to:

  • Program your own custom indicators and automate trading based on their signals.
  • Use The xCustomEA to open positions based on signals from your chosen indicators, making it a versatile tool for traders who want to test and use different strategies.

The Benefits of The xCustomEA

By purchasing The xCustomEA, you gain the flexibility to:

  • Program and modify Expert Advisors for new indicators daily, without needing to hire a developer for each new strategy.
  • Avoid the high costs associated with creating new EAs for every custom indicator.
  • The xCustomEA can be adapted to work with any indicator, saving time and money.

With The xCustomEA, you can trade based on signals from any custom indicator, giving you complete control over your strategies on MetaTrader 4 and MetaTrader 5. It’s the ideal solution for traders who want to test, refine, and adapt their trading systems with ease, all from a single, universal advisor.

iCustom xCustomEA Example.

Attention: You are not required to buy an indicator to test an Expert Advisor in the strategy tester.

You can download the indicator in the strategy tester and test our advisor with this indicator in the strategy tester.

Only after obtaining profitable results in the strategy tester can you purchase a custom indicator and run the advisor on this indicator in a real or demo account!

Article: Optimization and Testing! Search for Advisor Settings!

Video Thumbnail for xCustomEA Strategy Testing

What is the difference between The X and The xCustomEA?

The X and The xCustomEA: Two Advisors, One Powerful Foundation

Both The X and The xCustomEA are built on the same robust MQL code and share many of the same functions, providing a reliable and flexible trading solution. However, they differ in their approach to indicators, giving you the choice between standard and custom strategies.

The X – Universal EA

  • The X is a universal trading advisor designed to work with standard indicators available in the MetaTrader 4 and MetaTrader 5 terminals.
  • It offers approximately 20 built-in trading strategies based on standard indicators such as Moving Averages, MACD, RSI, Bollinger Bands, and more. List of indicators and filters
  • Ideal for traders who prefer to use the familiar, trusted indicators that come pre-installed in MetaTrader platforms.

The xCustomEA – Universal Advisor for Custom Indicators

  • The xCustomEA builds on the foundation of The X but is designed to work with custom indicators. This gives traders the flexibility to implement any indicator they choose from the Internet or the mql5 market.
  • In addition to custom indicator compatibility, The xCustomEA includes the 20 standard strategies from The X, offering the best of both worlds: pre-built strategies with standard indicators and the option to customize with your own indicators.
  • This makes The xCustomEA perfect for traders who want to personalize their trading strategies using custom indicators while still having access to proven strategies.
  • Latest version of The xCustomEA: It offers approximately 20 built-in trading strategies based on standard indicators such as Moving Averages, MACD, RSI, Bollinger Bands, and more. List of indicators and filters

Whether you choose The X for standard MetaTrader indicators or The xCustomEA for custom indicator flexibility, both advisors provide you with powerful, customizable trading strategies on MetaTrader 4 and MetaTrader 5.

Benefits of xCustomEA

  1. The xCustomEA: Tailored Trading Without Built-In Strategies
  2. Unlike traditional trading advisors, The xCustomEA does not come with built-in strategies. Instead, it gives you the flexibility to implement custom indicators for MetaTrader 4 and MetaTrader 5, offering full control over your trading system.
  3. Custom Indicator Integration
  4. With The xCustomEA, you can choose any custom indicator that provides signals, such as arrows, and trade directly based on those signals. This allows you to tailor your trading to your specific needs by integrating custom indicators available on the Internet or the mql5 market.
  5. Create and Program Your Own Trading Strategies
  6. The xCustomEA is designed for traders who prefer to create their own strategies. You can program your custom trading strategy based on any indicator you find online, giving you unlimited options to build a system that fits your trading style.
  7. Access Ready-Made Strategies
  8. In addition to programming your own strategies, you can download ready-made strategies that are compatible with The xCustomEA. This growing list of pre-programmed strategies is updated regularly, allowing you to easily incorporate new ideas and techniques into your trading.
  9. Leverage The X Strategies
  10. Already using strategies from The X – Universal EA? You can import all the signals from The X strategies and apply your own custom modifications. This offers even greater flexibility to refine your approach while using familiar, proven strategies.

If you do not know how and do not want to learn programming and you are satisfied with standard indicators, your choice is The X.

If you know how to program and are interested in studying other indicators, your choice is The xCustomEA.

Functions of these advisors are equal!

Basic Functions and Parameter Description

We will not dwell on the detailed description of the main parameters of the advisor because 99% of the settings correspond to our system, The X.

A full description of all the basic parameters and functions is provided in the instructions for The X. Parameter Description Exp The xCustomEA.

The xCustomEA trading advisor offers a comprehensive range of powerful functions designed to enhance your trading experience on MetaTrader 4 (MT4) and MetaTrader 5 (MT5). Whether you are seeking advanced money management, automated strategies, or precise trade execution, xCustomEA has you covered.

In The xCustomEA, there are functions such as:

  1. Autolot Calculation and Money Management: Automatically calculate lot sizes based on your current balance, optimizing your risk management.
  2. Fixed Lot Option: Set a fixed lot size for consistent position sizing.
  3. Trading Time Control: Limit the operation of the advisor to specific trading hours, giving you greater control over your strategy.
  4. Trailing Stop Functions:
  5. Standard Trailing Stop with the option to use the “Only Profitable” algorithm.
  6. Parabolic SAR Trailing Stop: For dynamic trade management based on price action.
  7. Error Handling for Real Accounts: Ensures smooth operation on live trading accounts with built-in error recovery mechanisms.
  8. Block Closure on Total Profit or Loss: Automatically close all trades when a specific profit or loss threshold is reached, with the option to disable the advisor on the account.
  9. Breakeven Functionality: Move your stop loss to the breakeven point (zero) to protect profits once the trade moves in your favor.
  10. Martingale Strategy: Increase the lot size after a losing trade to recover losses, with customizable parameters.
  11. Indicator-Driven Trading:
  12. Open and close positions based on indicator signals.
  13. Trigger opposite orders upon receiving reverse signals.
  14. Automatically close positions when the signal changes.
  15. Signal Reversal (REVERSE) Function: Flip your strategy’s signals for a reverse trading approach.
  16. Averaging Unprofitable Positions: Manage risk by averaging down unprofitable positions to improve the overall break-even point.
  17. Additional Position Openings:
  18. Open positions in the direction of the trend.
  19. Open positions against the trend for counter-trend strategies.
  20. Virtual Stop Loss, Take Profit, and Trailing Stop: Protect your positions with virtual levels, keeping them hidden from brokers for enhanced discretion.
  21. Comprehensive Order Management:
  22. Execute market positions, pending orders, and limit orders with ease.
  23. Drawdown Management: Actively monitor and manage drawdown levels to protect your account balance.
  24. Profit and Loss Limits: Set limits for maximum allowable profit or loss on each trade or across all open positions.
  25. Work with Test Results: Backtest and optimize your strategy using historical data to improve performance.
  26. Semi-Automatic Mode with Alerts: Receive on-screen notifications (ALERT) when the strategy signals an opportunity, allowing you to confirm trade entries manually without automatic execution.

A full description of all the basic parameters and functions is provided in the instructions for The X. Parameter Description Exp The xCustomEA

Signal and Filter Definition

Signal

  1. Signal – occurs when all conditions for the signal are met, for example, the crossing of MA lines or the appearance of a new point in ZigZag.
  2. Signal – what appears at the moment of signal receipt, is fixed on the bar. The advisor recognizes that a signal has been made.
    • For example: A light turns on. This is a signal because the light has just turned on. When the light turns on, a person wakes up. This is a signal.
    • Opening positions occur after the signal is made. The lines are crossed, and then the position is opened. If the lines were crossed before, this is not a signal. The signal has passed.
    • Added 20 standard strategies from The X List of indicators and filters

    Filter

    1. Filter – the current position of the indicator, such as the current position of the MA lines relative to each other or the current last vertex of ZigZag.
    2. The filter is what the indicator is currently showing. This is not a signal; it is the indicator’s current position.
      • For example: The light is on. This is a filter because the light has already been turned on and is currently on. When the light is on, the person is no longer asleep. This is a filter.
      • The current value of the indicator filters the signals.
      • If a Fast MA is above a Slow MA, then this is a filter that only BUY orders should be opened.
      • Added 20 standard strategies from The X List of indicators and filters

      Easy Installation of the Custom Indicator in Signals and Filters

      There are three types of Expert Advisors:

      xCustomEA Advisors work with our indicator, in which you program your strategy.

      If you need to program the advisor to work with the indicator, proceed to the next section: Programming Your Strategy.

      xArrow:


      xArrow – The EA works directly with a custom indicator that has Arrow-type buffers that can be used by the EA.

      For example, a buffer with indicator signals to BUY and a buffer with indicator signals to SELL.

      Such buffers must be of the Arrow type.
      Our Expert Advisor determines the signal by type: The buffer value must be above 0 and not equal to an empty value.


      // — We check the conditions and set the value for sig

      if (xCustom_SIGNAL_BUY_buffer[OWNSIGNAL_shift] != EMPTY_VALUE && xCustom_SIGNAL_BUY_buffer[OWNSIGNAL_shift] > 0) sig = 1;
      else if (xCustom_SIGNAL_SELL_buffer[OWNSIGNAL_shift] != EMPTY_VALUE && xCustom_SIGNAL_SELL_buffer[OWNSIGNAL_shift] > 0) sig = -1;
      xArrow – The EA works directly with a custom indicator that has Arrow-type buffers that can be used by the EA.

      Example of code in the indicator for drawing arrows:

      Example of code in the indicator for drawing arrows:

      xColorArrow:


      Type of indicator signals (xColorArrow with 1 Buffer and 2 Colors), for which the signal arrows have two different colors (DRAW_COLOR_ARROW).

      Type of indicator signals (xColorArrow with 1 Buffer and 2 Colors), for which the signal arrows have two different colors (DRAW_COLOR_ARROW).

      Example of code in the indicator for drawing color arrows:

      Example of code in the indicator for drawing color arrows:

      List of Indicators:

      You can use signals from standard indicators! Strategies of signals from standard indicators are added from The X Advisor Expert

      • NoSignal=100, // No Signal To Open Position
      • MA=101, // Moving Average
      • MACD=102, // Moving Average Convergence/Divergence (MACD)
      • STOCH=103, // Stochastic Oscillator
      • RSI=104, // Relative Strength Index (RSI)
      • CCI=105, // Commodity Channel Index (CCI)
      • WPR=106, // Williams Percent Range (WPR)
      • BB=107, // Bollinger Bands
      • Envelopes=108, // Envelopes
      • Alligator=109, // Alligator
      • OsMA=110, // Moving Average of Oscillator (OsMA)
      • AO=111, // Awesome Oscillator (AO)
      • ISH=112, // Ichimoku
      • AC=113, // AC
      • BAR=114, // Bar BEAR/BULL
      • ADX=115, // Average Directional Index (ADX)
      • ZigZag=117, // ZigZag
      • MFI=120, // Money Flow Index (MFI)
      • Fractals=121, // Fractals
      You can use signals from standard indicators! Strategies of signals from standard indicators are added from The X Advisor Expert

      Easy Install iCustom Indicator to the Input of Our xCustomEA

      If you do not want to program your strategy and your custom indicator allows you to work directly with the advisor, you can specify the name of the indicator and set buffers for its work on the BUY and SELL signals.

      For example:

      iCustom xCustomEA Configuration

      1. Write the name of the custom indicator! If this indicator was downloaded from the MQL5 market, then you need to specify the path from the Market folder:

      Market\\PipFinite Trend PRO MT5

      Be sure to use a double backslash \\

      2. Specify the type of xArrow signals.

      3. Specify the number of signal buffers for opening BUY (in this example, buffer number 8).

      4. Specify the number of signal buffers for opening SELL (in this example, buffer number 9).

      How to Find Buffer Numbers

      Finding Buffer Numbers in iCustom xCustomEA

      Thus, we do not need to program our indicator for the advisor to work.

      Our example of a custom indicator contains buffers for the advisor’s work, and we can use it directly!

      In our section, The xCustomEA Strategy Examples, we will post examples of programming strategies and advisors using indicators known in the market!

      Example: Pipfinite Trend Pro + xCustomEA

      An Example of an Advisor on the PipFinite Trend PRO Indicator

      iCustom xCustomEA Example Easy Installation

      PipFinite

      iCustom xCustomEA PipFinite Example

      Indicator Template File

      For ease of use with the advisor:

      When you first start the advisor, an indicator template file will be created in your terminal’s Files folder.

      Indicator Template File for xCustomEA

      This file can be used as a template for writing an indicator strategy.

      To find the file, click in your terminal menu File → Open Data Folder.

      Open Data Folder in MetaTrader

      Open this file with your MQL editor.

      MQL Editor Interface for xCustomEA

      In the file, you will see examples of how to use and program a strategy.

      After creating an indicator strategy, save this file in your terminal’s Indicators/ folder.

      After creating an indicator strategy, save this file in your terminal's Indicators/ folder.
      xCustomEA Indicator Setup

      After that, specify this file in the settings of the SignalNameIndicator advisor.

      After that, specify this file in the settings of the SignalNameIndicator advisor.

      Programming Your Strategy with xCustomEA

      You should know the basic programming rules to write your strategy.

      Or add a ready-made strategy using indicators from an existing file (indicators from the Internet, for example).

      Programming advisors for MetaTrader 5 (MT5) is more complex than programming for MetaTrader 4 (MT4).

      However, the MT5 terminal allows you to create more powerful strategies and also has a more advanced strategy tester.

      xCustomEA MQL4 Programming
      xCustomEA MQL5 Programming

      For ease of programming

      1. Open our indicator source code Ind – The xCustomEA or Ind – The xCustomEA Example TheX.
      2. Press the key combination Ctrl + F to open the search bar.
      3. Enter the name Step – In our source code, you can navigate and quickly write your strategy based on this keyword.
        • Search for Step in MQL Editor
        • Each step is commented and contains an example.
        • To learn how to program your strategy, you can gradually uncomment the lines marked with an asterisk // *.
        Each step is commented and contains an example.

        We will analyze each step in detail!

        MetaTrader 4: Programming Your Strategy Using a Custom Indicator in MT4

        Programming an advisor with a custom indicator in MT4 consists of four steps:

        MetaTrader 4 Step 1: Loading Indicators into Resources

        // Step 
        // This part of the code is for programming your strategy in open source
        //
        // To include the indicator in the advisor during compilation, you need to load it into the advisor's resources
        // For example:
        // * #resource "IndicatorsMACD.ex4"

        Here, we must add the required indicators to the resources.

        This allows us to compile the indicator for the market and avoids issues where the compiled advisor cannot find the indicator on another computer.

        Rules for writing the name of the indicator: Use the full path starting with Indicators!

        Folder denoted by

        For example:

        If the path to your indicator looks like this:

        C:\ROBO\MT4\MQL4\Indicators\Examples\MACD.ex4

        Then, the path to this indicator in the programming language is written as:

        Indicators\Examples\MACD.ex4

        MetaTrader 4 Step 2: Creating Strategies and Signals for Opening Positions

        // Step 
        // This part of the code is for programming your strategy in open source
        //
        // Here we create our signal for opening positions by filling data buffers
        //
        // For example:
        // * if (sigInd == 1)
        // * {
        // 
        // Fill in the data
        //
        // * double CustomMain = iCustom(StrategySymbol, StrategyTimeFrame, "::IndicatorsMACD", periodma1, periodma2, 9, MAprice,
        // * MODE_MAIN, StartCopyI + ShiftIndicator);
        // * double CustomSig = iCustom(StrategySymbol, StrategyTimeFrame, "::IndicatorsMACD", periodma1, periodma2, 9, MAprice,
        // * MODE_SIGNAL, StartCopyI + ShiftIndicator + 1);
        //
        // Here we write our strategy, in this example, it is the intersection of two lines
        //
        // * if (CustomMain > CustomSig && CustomMain2 < CustomSig2)
        // *   sig = 1;
        // * if (CustomMain < CustomSig && CustomMain2 > CustomSig2)
        // *   sig = -1; //
        // 
        // Write the data that will be displayed in the log when opening positions on the signal
        //
        // * InfoAboutSignal = "InfoAboutSignal sigInd =" + (string)sigInd + " sig =" + (string)sig
        // * + " CustomMain =" + CustomMain
        // * + " CustomSig =" + CustomSig
        // * + " CustomMain2 =" + CustomMain2
        // * + " CustomSig2 =" + CustomSig2
        // *;
        // 
        // --- return the trading signal
        // * return sig;
        // *} 

        This step is crucial for the advisor. Although all other steps are required, the advisor will not function properly without this.

        I have added comments in the code to guide you!

        1. Program the strategy and signal code individually. It depends on the chosen strategy and indicators.
        2. Retrieve strategy buffers.
        3. Note that in this block, you can specify any strategy.
        xCustomEA Signal Example
        1. Programming the strategy, such as the intersection of two lines.
        2. Important: The signal for BUY is 1, and for SELL it is -1.

        I will post examples of strategies on our forum!

        MetaTrader 4 Step 3: Specifying Filters from Your Indicators or Using Your Indicator as a Filter for a Strategy

        // Step 
        // This part of the code is for programming your strategy in open source
        //
        // Here we create our filter to filter the signals by filling data buffers
        //
        // For example:
        // * if (sigInd == 1)
        // * {
        // 
        // Fill in the data
        //
        // * double CustomMain = iCustom(StrategySymbol, StrategyTimeFrame, "::IndicatorsMACD", periodma1, periodma2, 9, MAprice,
        // * MODE_MAIN, shift);
        // * double CustomSig = iCustom(StrategySymbol, StrategyTimeFrame, "::IndicatorsMACD", periodma1, periodma2, 9, MAprice,
        // * MODE_SIGNAL, shift);
        //
        // Here we write our strategy, in this example, it is the intersection of two lines
        //
        // * if (CustomMain > CustomSig)
        // *   sig = 1;
        // * if (CustomMain < CustomSig)
        // *   sig = -1; //
        // 
        // Write the data that will be displayed in the log when opening positions on the signal
        //
        // * InfoAboutSignal = "InfoAboutSignal sigInd =" + (string)sigInd + " sig =" + (string)sig
        // * + " CustomMain =" + CustomMain
        // * + " CustomSig =" + CustomSig
        // *;
        // 
        // --- return the trading signal
        // * return sig;
        // *} 

        Programming the code in this step is straightforward and similar to the previous step.

        The only difference is that in this step, you are programming your indicators as a filter.

        You cannot specify signals on the indicator and use it as a filter simultaneously. It all depends on the strategy.

        MetaTrader 5: Programming Your Strategy on a Custom Indicator in MT5

        MetaTrader 5 Step 1: Loading Indicators into Resources

        // Step 
        // This part of the code is for programming your strategy in open source
        //
        // To include the indicator in the advisor during compilation, you need to load it into the advisor's resources
        // For example:
        // * #resource "IndicatorsExamplesMACD.ex5"

        Here, we must add the required indicators to the resources.

        This allows us to compile the advisor for the market and avoids issues where the compiled advisor cannot find the indicator on another computer.

        Rules for writing the name of the indicator: Use the full path starting with Indicators!

        Folder denoted by

        For example:

        If the path to your indicator looks like this:

        C:\ROBO\MT5\MQL5\Indicators\Examples\MACD.ex5

        Then, the path to this indicator in the programming language is written as:

        Indicators\Examples\MACD.ex5

        MetaTrader 5 Step 2: Declare Variables for Storing the Handles of Strategy Indicators

        // Step 
        // This part of the code is for programming your strategy in open source
        //
        // Declare the array variable to handle
        //
        // For example:
        // * int h_custom;
        // * int h_custom2;

        Here, we specify the names of our handles that were created above!

        There is nothing complicated here.

        Handles are created as arrays to enable multi-currency use in the advisor and the ability to specify up to six signals or filters simultaneously!

        MetaTrader 5 Step 3: Variable Declaration for Storing Indicator Data

        // Step ###
        // This part of the code is for programming your strategy in open source
        //
        // Declare an array variable for indicator values
        //
        // For example:
        // * double custom1_buffer[];
        // * double custom2_buffer[];

        Here, we specify the names of our data buffers!

        There is nothing complicated here.

        The indicator values for each bar will be stored in these arrays. If you need to use multiple buffers, you can create multiple variables.

        In our case, for example, we need two buffers for the signal and main lines of the MACD indicator.

        xCustomEA Indicator Buffers

        MetaTrader 5 Step 4: Creating Handles of Indicators for Downloading to the Advisor

        // Step 4 
        // This part of the code is for programming your strategy in open source
        //
        // Create a record in the array so that the advisor assigns the handle of the indicator during initialization
        //
        // For example:
        // * case 1: h_custom = iCustom(StrategySymbolString, StrategyTimeFrame, "::IndicatorsExamplesMoving AverageMoving Average", MAFastPeriod, MAmethod, MAprice);
        // * h_custom2 = iCustom(StrategySymbolString, StrategyTimeFrame, "::IndicatorsExamplesMoving AverageMoving Average", MASlowPeriod, MAmethod, MAprice);
        // * if (h_custom == INVALID_HANDLE)
        // * {
        // *   Print("Failed to get the handle of the Moving Average indicator");
        // *   return(INIT_FAILED);
        // * }
        // * if (h_custom2 == INVALID_HANDLE)
        // * {
        // *   Print("Failed to get the handle of the Moving Average indicator");
        // *   return(INIT_FAILED);
        // * }
        // * break;

        This step is necessary for our indicators to load once during the advisor’s initialization. In MetaTrader 5, it is not necessary to continually load the indicator on the chart.

        When creating a handle, we reference the handle of an already open indicator and use it for further operations.

        You need to be very attentive here. When creating a handle, you must specify all external variables of the indicator and use the correct name. Otherwise, the advisor will not be able to load the indicator.

        Remember that we uploaded the indicator to the advisor’s resources. Therefore, we will call the indicator from resources!

        You can read help on calling indicators via iCustom

        We also need a strategy number to write this code. If you have several indicators in one strategy, then you need to specify multiple indicators but with the same number to ensure the advisor correctly loads your strategy.

        In our examples above, we need to do the following:

        h_custom = iCustom(StrategySymbolString, StrategyTimeFrame, "::IndicatorsExamplesMoving AverageMoving Average");
        h_custom2 = iCustom(StrategySymbolString, StrategyTimeFrame, "::IndicatorsExamplesMoving AverageMoving Average");
        if (h_custom == INVALID_HANDLE)
        {
            Print("Failed to get the handle of the Moving Average indicator");
            return;
        }
        if (h_custom2 == INVALID_HANDLE)
        {
            Print("Failed to get the handle of the Moving Average indicator");
            return;
        }
        break;

        By analogy above, you can add several indicators and handles.

        Also, add other strategies that you want to integrate into the advisor!

        MetaTrader 5 Step 5: Creating Strategies and Signals for Opening Positions

        // Step 5
        // This part of the code is for programming your strategy in open source
        //
        // Here we create our signal for opening positions by filling data buffers
        //
        // For example:
        // * if (sigInd == 1)
        // * {
        // 
        // Fill in the data
        //
        // * if (CopyBuffer(h_custom, 0, 0, 3 + ShiftIndicator, custom1_buffer) < 3 + ShiftIndicator)
        // *   return(0);
        // * if (!ArraySetAsSeries(custom1_buffer, true))
        // *   return(0);
        // * if (CopyBuffer(h_custom2, 0, 0, 2 + ShiftIndicator, custom2_buffer) < 2 + ShiftIndicator)
        // *   return(0);
        // * if (!ArraySetAsSeries(custom2_buffer, true))
        // *   return(0);
        //
        // Here we write our strategy, in this example, it is the intersection of two lines
        //
        // * if (custom1_buffer[ShiftIndicator + 1] < custom2_buffer[ShiftIndicator + 1] && custom1_buffer[ShiftIndicator] > custom2_buffer[ShiftIndicator])
        // *   sig = 1;
        // * else if (custom1_buffer[ShiftIndicator + 1] > custom2_buffer[ShiftIndicator + 1] && custom1_buffer[ShiftIndicator] < custom2_buffer[ShiftIndicator])
        // *   sig = -1;
        // * else
        // *   sig = 0;
        //
        // Write the data that will be displayed in the log when opening positions on the signal
        //
        // * InfoAboutSignal = "InfoAboutSignal sigInd =" + (string)sigInd + " TF =" + (string)TF + " Symbol =" + symToWork3 + " sig =" + (string)sig + " FUNCTION "
        // * + " custom1_buffer[ShiftIndicator + 1] =" + (string)custom1_buffer[ShiftIndicator + 1]
        // * + " custom2_buffer[ShiftIndicator + 1] =" + (string)custom2_buffer[ShiftIndicator + 1]
        // * + " custom1_buffer[ShiftIndicator] =" + (string)custom1_buffer[ShiftIndicator]
        // * + " custom2_buffer[ShiftIndicator] =" + (string)custom2_buffer[ShiftIndicator];
        // 
        // --- return the trading signal
        // * return sig;
        // *}

        This step is essential for the advisor.

        Although all other steps are required, the advisor will not function properly without this.

        I have added comments in the code to guide you!

        Our strategy number is the same as in the previous steps!

        1. Program the strategy and signal code individually. It depends on the chosen strategy and indicators.
        2. Retrieve strategy buffers.
        3. Note that in this block, you can specify any strategy.
        4. All indicators that we declared in handles will be loaded into memory and used to build the strategy.
        xCustomEA Strategy Programming

        This step can be divided into two substeps:

        1. 1. We must copy the data buffers into our data arrays. In the copy settings, we must specify the line numbers (in our case, these are the MACD indicator lines).
        2. We use two lines: MAIN and SIGNAL.
        3. You can read CopyBuffer help
        4. 2. Programming the strategy. In this case, the intersection of two lines.
        5. Important: The signal for BUY is 1, and for SELL it is -1.

        MetaTrader 5 Step 6: Specifying Filters from Your Indicators or Using Your Indicator as a Filter for a Strategy

        // Step 6 ###
        // This part of the code is for programming your strategy in open source
        //
        // Here we create our filter to filter the signals by filling data buffers
        //
        // For example:
        // * if (sigInd == 1)
        // * {
        // 
        // Fill in the data
        //
        // * if (CopyBuffer(h_custom, 0, 0, 3 + ShiftIndicator, custom1_buffer) < 3 + ShiftIndicator)
        // *   return(0);
        // * if (!ArraySetAsSeries(custom1_buffer, true))
        // *   return(0);
        // * if (CopyBuffer(h_custom2, 0, 0, 2 + ShiftIndicator, custom2_buffer) < 2 + ShiftIndicator)
        // *   return(0);
        // * if (!ArraySetAsSeries(custom2_buffer, true))
        // *   return(0);
        //
        // Here we write our strategy, in this example, it is the intersection of two lines
        //
        // * if (custom1_buffer[ShiftIndicator] != 0 && custom2_buffer[ShiftIndicator] != 0)
        // * {
        // *   Alert("Congratulations! You have completed a lesson that demonstrates programming your strategy!");
        // * }
        //
        // * if (custom1_buffer[ShiftIndicator] > custom2_buffer[ShiftIndicator])
        // *   sig = 1;
        // * else if (custom1_buffer[ShiftIndicator] < custom2_buffer[ShiftIndicator])
        // *   sig = -1;
        // * else
        // *   sig = 0;
        //
        // Write the data that will be displayed in the log when opening positions on the signal
        //
        // * InfoAboutSignal = InfoAboutSignal + "" + "sigInd =" + (string)sigInd + " TF =" + (string)TF + " Symbol =" + symToWork3 + " sig =" + (string)sig + "" + __FUNCTION__ + ""
        // * + " custom1_buffer[ShiftIndicator] =" + (string)custom1_buffer[ShiftIndicator]
        // * + " custom2_buffer[ShiftIndicator] =" + (string)custom2_buffer[ShiftIndicator];
        // 
        // --- return the trading signal
        // * return sig;
        // *}

        Programming the code in this step is straightforward and similar to the previous step.

        The only difference is that in this step, you are programming your indicators as a filter.

        You cannot specify signals on the indicator and use it as a filter simultaneously. It all depends on the strategy.

        Settings xCustomEA

        You can download our optimization files for EA.

        Block Connecting a Custom Indicator (Custom Strategy) to Our Expert Advisor (EA)

        A new block for a custom strategy/indicator has been included in our updated Expert Advisor (EA).

        ParameterDescription

        OWN Signal Options

        SignalNameIndicatorThe name of the custom indicator from which the main signals for opening positions are received.

        Default: “Ind – The xCustomEA
        This is a standard empty indicator where you can program your strategy following our example!

        We have also created an example of a custom indicator based on The X signals.

        Ind – The xCustomEA Example The X
        You can use our example to receive signals using standard indicators.
        Description of The X Standard Strategies
        SignalTypeIndicatorThe type of indicator for signals.

        There are three types of Expert Advisors (EAs) and twenty standard indicators from The X:
        xCustomEA – An Expert Advisor (EA) that works with our indicator, where you can program your strategy.

        xArrow – The EA works directly with a custom indicator that has Arrow-type buffers, which can be utilized by the EA.

        For example, a buffer with indicator signals to BUY and a buffer with indicator signals to SELL;

        Such buffers must be of the Arrow type.
        Our Expert Advisor (EA) determines the signal by type: The buffer value is not equal to an empty value and is above 0.
        // — We check the conditions and set the value for sig
        if (xCustom_SIGNAL_BUY_buffer[OWNSIGNAL_shift] != EMPTY_VALUE && xCustom_SIGNAL_BUY_buffer[OWNSIGNAL_shift] > 0) sig = 1;
        else if (xCustom_SIGNAL_SELL_buffer[OWNSIGNAL_shift] != EMPTY_VALUE && xCustom_SIGNAL_SELL_buffer[OWNSIGNAL_shift] > 0) sig = -1;

        xColorArrow – Added the type of indicator signals (xColorArrow with 1 Buffer and 2 colors), where the signal arrows have two different colors (DRAW_COLOR_ARROW).

        When using the xColorArrow signal type, you need to set the following values:
        SignalBufferForBUY = Buffer number for arrows (Check with the author of your indicator) or by calculating this buffer number.
        SignalBufferForSELL = Number of the color buffer for these arrows (Check with the author), usually following the arrow buffer.

        Attention! This type supports two colors where:

        0 (the first color of the arrow) is a signal to open a BUY;
        1 (the second color of the arrow) is a signal to open a SELL;

        If your indicator has these colors reversed, you can additionally use the Signal_Reverse parameter.
        For more information, we have provided an example of using such an indicator with a DRAW_COLOR_ARROW buffer!

        Added 20 standard strategies from The X List of Indicators and Filters
        List of Indicators:

        NoSignal = 100, // No Signal To Open Position
        Ma = 101, // Moving Average
        MACD = 102, // Moving Average Convergence/Divergence (MACD)
        STOCH = 103, // Stochastic Oscillator
        RSI = 104, // Relative Strength Index (RSI)
        CCI = 105, // Commodity Channel Index (CCI)
        WPR = 106, // Williams Percent Range (WPR)
        BB = 107, // Bollinger Bands
        Envelopes = 108, // Envelopes
        Alligator = 109, // Alligator
        OsMA = 110, // Moving Average of Oscillator (OsMA)
        AO = 111, // Awesome Oscillator (AO)
        ISH = 112, // Ichimoku
        AC = 113, // AC
        BAR = 114, // Bar BEAR/BULL
        ADX = 115, // Average Directional Movement Index (ADX)
        ZigZag = 117, // ZigZag
        MFI = 120, // Money Flow Index (MFI)
        Fractals = 121, // Fractals
        IndSigToTrade Select the indicator and signal for opening the first and main positions.

        Strategy number from custom indicator SignalNameIndicator.

        If the specified strategy is not found in the indicator, the Expert Advisor (EA) will be unloaded from the chart with an error!

        If set to 0, strategy signals are not used, and only filters are applied!

        When using the main indicator, the signal is generated as is on the current bar!
        This means that the signal for opening appears as a result of executing a signal.
        If there is a signal and the filter does not allow opening the position, the signal is ignored.

        No Signal: When selected, the advisor ignores the main signal and trades based on filters.
        When using NoSignal, the EA can ignore the main signal execution and operate on filters.
        When using filters, the Expert Advisor (EA) opens a position based on the current data of the selected indicator.
        TF_IndSigToTrade1 The Time Frame for the first main indicator.

        You can select the Time Frame by which the indicator will receive signals.
        Period_Current – the current Time Frame.

        The larger the Time Frame, the longer you need to wait for the main signal!
        The smaller the Time Frame, the faster positions (deals) are opened.
        SIGNALStrategyInputs External parameters for the custom indicator,
        in SignalTypeIndicator = xArrow mode!

        You can specify the external variables of the indicator as they are written in the settings table , separated by commas!

        Important: You must respect the order and type of variables.

        Type int: as is;
        Type double: as is;
        Type boolean: true or false;
        Type datetime: D’year.month.day’ (mandatory indication of D and single quotes).
        If you need to write without a specific date, write as a string: “00:00” or “23:59” D’2018.11.08′ ‘D’2015.01.01’ “00:00” “23:59”
        Type color: C’red/green/blue’ (mandatory indication of C and single quotes).
        Example: C’0/128/128′ or C’0/256/0′
        Type enum (list, enumeration): x (digit)
        If your indicator has a list (selecting a parameter from the list), you need to write a number!
        Type string: Ensure to specify the string (not numbers), e.g., “X”.
        In MT4: Attention! In the version for MetaTrader 4, it is forbidden to transfer string parameters!
        When passing string parameters, the indicator may not load correctly!
        Custom Indicator Settings Example


        For example,
        If your indicator has the following input parameters:
        int InpCCIPeriod = 1;
        double InpCCIPeriod2 = 2.0;
        color InpCCIPeriod3 = clrGreen;
        string InpCCIPeriod6 = “text”;
        datetime InpCCIPeriod4 = D’2018.11.08′;
        bool InpCCIPeriod5 = false;
        Written as:
        SIGNALStrategyInputs = 1,2.0,C’0/128/0′,”text”,D’2018.11.08′,false
        Signal_Reverse Reverse the signals of this main indicator.

        This option reverses only the signals of the main indicator.

        If the signal is to open a Buy, the Expert Advisor (EA) opens a Sell!
        If the signal is to open a Sell, the Expert Advisor (EA) opens a Buy!
        ClosePositionifChangeOWNSignal Enable/Disable closing of positions on the opposite signal of the main indicator without the participation of other filters and parameters.

        The ClosePositionifChangeOWNSignal parameter is divided into three values:
        False (off)
        True (on)
        OnlyifProfit (Only if positions are in profit)
        OWNSIGNAL_shiftThe Number of BAR for the signal that the indicator will generate.

        1 = Last closed bar; signals on this bar are considered closed.
        0 = Current open bar; signals on this bar are considered drawings; be careful.

        More about this parameter: Detailed Article on Signal Bars
        SignalBufferforBUYSignalBufferforSELL The buffer number in the custom indicator for receiving a signal to BUY and SELL.
        Do not change for Ind – The xCustomEA and Ind – The xCustomEA Example The X.

        Close Options

          This block allows you to close open positions based on signals from a custom indicator.

        You can use this if a custom indicator provides signals for closing positions (separately from the signals for opening new positions).

        If you need to configure signals to close positions in the advisor, you must specify the indicator name (which may be identical to the indicator name for closing positions), a set of parameters (if they differ from the default indicator parameters), Time Frame, Bar Shift, and buffer numbers to receive signals for closing. This should be done separately for BUY and SELL positions.

        Attention: If you want to close a position upon receiving opposite signals, you do not need to use this block.
        CloseNameIndicatorThe name of the custom indicator from which the main signals for closing positions will be received.
        CloseTypeIndicator The type of indicator for signals.
        There are two types of advisor operations:

        xCustomEA – Advisors work with our indicator, where you can program your filter strategy.

        xArrow – The EA works directly with a custom indicator that has Arrow-type buffers, which can be utilized by the EA.

        For example:
        Buffers with indicator signals for closing BUY and SELL positions.
        Such buffers must be of the Arrow type.
        Our Expert Advisor (EA) determines the signal by type: The buffer value is not equal to an empty value and is above 0.

        // — We check the conditions and set the value for sig
        if (xCustom_SIGNAL_BUY_buffer[OWNSIGNAL_shift] != EMPTY_VALUE && xCustom_SIGNAL_BUY_buffer[OWNSIGNAL_shift] > 0) sig = 1;
        else if (xCustom_SIGNAL_SELL_buffer[OWNSIGNAL_shift] != EMPTY_VALUE && xCustom_SIGNAL_SELL_buffer[OWNSIGNAL_shift] > 0) sig = -1;
        CloseTimeFrame
        Close_shift
        CloseStrategyInputs
        CloseBufferforBUY
        CloseBufferforSELL
        Close_IndSigToClose
         

        Filter Options

        FilterNameIndicator The name of the custom indicator from which the filters will be obtained when opening positions.

        Default:Ind – The xCustomEA“.
        This is a standard empty indicator where you can program your strategy following our example!
        FilterTypeIndicator The type of indicator for the filter.
        There are two types of advisor operations:

        xCustomEA – Advisors work with our indicator, where you can program your filter strategy.
        xArrow – The Expert Advisor (EA) works directly with a custom indicator that has Arrow-type buffers or a non-empty buffer value that can be utilized by the advisor.

        For example:
        Buffers with indicator filters for BUY and SELL.
        Such buffers must be of the Arrow type.
        Our Expert Advisor (EA) defines a filter by type: The buffer value is not equal to an empty value and is above 0.

        // — We check the conditions and set the value for sig
        if (xCustom_FILTER_BUY_buffer[shift] != EMPTY_VALUE && xCustom_FILTER_BUY_buffer[shift] > 0) sig = 1;
        else if (xCustom_FILTER_SELL_buffer[shift] != EMPTY_VALUE && xCustom_FILTER_SELL_buffer[shift] > 0) sig = -1;

        Or you can use our standard strategies from The X
        FILTER List of Indicators:

        FILTERMa = 101, // Moving Average
        FILTERMACD = 102, // Moving Average Convergence/Divergence (MACD)
        FILTERSTOCH = 103, // Stochastic Oscillator
        FILTERRSI = 104, // Relative Strength Index (RSI)
        FILTERCCI = 105, // Commodity Channel Index (CCI)
        FILTERWPR = 106, // Williams Percent Range (WPR)
        FILTERBB = 107, // Bollinger Bands
        FILTEREnvelopes = 108, // Envelopes
        FILTERAlligator = 109, // Alligator
        FILTEROsMA = 1010, // Moving Average of Oscillator (OsMA)
        FILTERAO = 111, // Awesome Oscillator (AO)
        FILTERISH = 112, // Ichimoku
        FILTERAC = 113, // AC
        FILTERBAR = 114, // Bar BEAR/BULL
        FILTERADX = 115, // Average Directional Movement Index (ADX)
        FILTERBARrelativelyMA = 116, // Bar relatively MA
        FILTERZigZag = 117, // ZigZag
        FILTERATR = 118, // Average True Range (ATR)
        FILTERMFI = 120, // Money Flow Index (MFI)
        FILTERFractals = 121, // Fractals
        FILTER_IndSigToTrade Select the indicator and filter to refine the main signal.

        Strategy number from custom indicator FilterNameIndicator.

        If the specified strategy is not found in the indicator, the Expert Advisor (EA) will be unloaded from the chart with an error!

        If IndSigToTrade is set to 0, the advisor will operate solely based on filters!
        FILTER_TF_IndSigToTrade Time Frame for the filter.
        You can select the Time Frame by which the indicator will receive filter signals.
        Period_Current – the current Time Frame.

        For example:
        When using MA as the main signal with TF = M30, you can enable filtering on the higher MA with TF = H4.
        Filter_Reverse Reverse the signals of this filter.

        This option reverses only the signals of this filter.
        For example:
        The main indicator MA shows BUY, but the older MA indicator shows SELL;
        When using this function, the signals of the older MA are reversed, resulting in an aggregate signal of BUY.
        FILTERSIGNAL_shiftThe bar number for the signal that the indicator will generate.

        1 = Last closed bar; signals on this bar are considered closed.
        0 = Current open bar; signals on this bar are considered drawings; be careful.

        More about this parameter: Detailed Article on Signal Bars
        FilterBufferforBUYFilterBufferforSELL Use the buffer number in the custom indicator to receive the filter signals for BUY and SELL.

        Do not change for Ind – The xCustomEA and Ind – The xCustomEA Example The X.

        SLTP Options

          This block allows you to set a Stop Loss (SL) or Take Profit (TP) when opening positions based on signals, which can be derived from the values of the custom indicator buffers.

        If the custom indicator has separate buffers for obtaining Stop Loss (SL) or Take Profit (TP), you can use these values when opening a new position.

        Attention: Stop Loss (SL) or Take Profit (TP) is set only when a new position is opened using a new signal.

        The functions of averaging and additional opening use the parameters of Stop Loss (SL) and Take Profit (TP) from past variables.
        Stop Loss (SL) and Take Profit (TP) obtained from the custom indicator in averaging and additional opening are not accepted.
        Stop Loss (SL) and Take Profit (TP) from a custom indicator are also set when using the ForcedModifySLTP function.

        You need to input the Stop Loss (SL) and Take Profit (TP) values from the custom indicator in the advisor. Then, specify the indicator name
        (must be identical to the name of the indicator for opening/closing positions), a set of parameters (if they differ from the default indicator settings), Time Frame, Shift bar, and buffer numbers to retrieve values.

        This should be done separately for BUY and SELL positions and separately for Stop Loss (SL) and Take Profit (TP).
        SLTPNameIndicatorThe name of the custom indicator from which Stop Loss (SL) and Take Profit (TP) values will be obtained.
        SLTPTypeIndicator Type of indicator.
        xPrice – Price value that will be derived from the variable (Stop Loss (SL), Take Profit (TP)).
        SLTPTimeFrame 
        SLTP_shift 
        SLTPStrategyInputs 
        SLTPBufferforBUY_StopLoss The buffer number to retrieve the Stop Loss (SL) value for BUY positions.
        -1 means that this option is disabled.
        SLTPBufferforSELL_StopLoss The buffer number to retrieve the Stop Loss (SL) value for SELL positions.
        -1 means that this option is disabled.
        SLTPBufferforBUY_TakeProfit The buffer number to retrieve the Take Profit (TP) value for BUY positions.
        -1 means that this option is disabled.
        SLTPBufferforSELL_TakeProfit The buffer number to retrieve the Take Profit (TP) value for SELL positions.
        -1 means that this option is disabled.

        Function and Parameters



        Parameter
        Description

        Signal Options: Additional Signal Processing Unit

        Show_alert_without_opening_positions Alert

        If this option is enabled (TRUE), the Expert Advisor will not open a new position (Deal) on the signal but will only notify the user that a new signal has appeared.
        In this case, all other functions will operate normally.

        This allows the user to open a position (Deal) on their own if the advisor has issued (created) a signal.
        However, the EA does not create this deal (Position) and does not open the position (Deal) but only alerts the user about the signal.
        Send_Push_without_opening_positions Push Notification

        If this option is enabled (TRUE), the Expert Advisor will not open a new position (Deal) on the signal but will only notify the user by phone that a new signal has appeared.
        In this case, all other functions will operate normally.

        This allows the user to open a position (Deal) on their own if the advisor has issued (created) a signal.
        However, the EA does not create this deal (Position) and does not open the position (Deal) but only sends a Push Notification to the user about the signal.
        OpenBarControlOnly The Advisor Operates Only on Open Bars (Start of New BAR).

        This mode simulates the Advisor’s operation on bar opening (as in the strategy tester).
        When this mode is enabled (True), the Expert Advisor will trade exactly as in OpenPriceOnly testing mode.

        All Advisor functions will execute once at the opening of a new bar (depending on the selected timeframe), including Modification, Trailing Stop, Averaging, opening deals by signal, etc.
        ControlNewBarforSIGNALCheck the Indicator Signal Only for Each New Bar (Without Checking on Each Tick).

        Works only when OWNSIGNAL_shift ≥ 1 and IndSigToTrade ≠ NoSignal (with NoSignal, the Expert Advisor checks the filter values with each tick).
        When ControlNewBarforSIGNAL = true, the optimization speed increases by 1.5 times!

        1. ControlNewBarforSIGNALType = 1True, smallest TF of the settings: New mode!

        The EA selects the smallest TimeFrame set by the parameters TF_IndSigToTrade1, FILTER_TF_IndSigToTrade1, FILTER_TF_IndSigToTrade2, etc.

        In this mode, the EA does not check the signal on the current 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 the Current TimeFrame.

        2. ControlNewBarforSIGNALType = 2True, current bar of the current TF: Old mode!

        In this mode, the EA checks every new bar of the current TimeFrame for new signals!
        If you use TF_IndSigToTrade1, FILTER_TF_IndSigToTrade1, FILTER_TF_IndSigToTrade2 other than the Current TimeFrame, the results on each TimeFrame may differ.
        We recommend installing the Expert Advisor on the TimeFrame M1!

        3. ControlNewBarforSIGNALType = 0False:
        Do not use the new bar control to determine the signal!
        Attention: When this is off (false), the EA checks the signal every tick! There may be delays in testing and optimization!
        ControlNewBarforOpenbySignal:ControlNewBarforOpenbySignal = true: Old mode!
        The EA opens positions (Deals) on a signal only on every new current bar of the current TimeFrame!
        The EA opens positions (Deals) if there is a signal, only when a new bar of the current TimeFrame arrives!

        ControlNewBarforOpenbySignal = falseNew mode!
        The EA opens positions (Deals) on a signal every new bar from the signal TimeFrame!
        The EA opens positions (Deals), if there is a signal, immediately upon detection of the signal.

        This mode is useful for those who use TF_IndSigToTrade1, FILTER_TF_IndSigToTrade1, and FILTER_TF_IndSigToTrade2, other than the Current TimeFrame.
        ReverseSignal Flipping (Reverse) the Overall Strategy Signal Received from the Main Indicator + Filters!

        If the common signal is to open a Buy, then the Expert Advisor opens a Sell!
        If the common signal is to open a Sell, then the Expert Advisor opens a Buy!

        Opening Filter Options

        TypeTradeBUYSELLTrade Direction:

        – Buy and Sell
        – Only Buy
        – Only Sell

        Attention: If you use pending orders (instead of positions) and operate in only one direction, every time a new signal is received, the old pending order will be deleted and a new one will be set at a new price.
        MinuteToOpenNextPosition Permission to Open the Next Signal After the Last Open Position

        If there are no open positions (Deals), the Expert Advisor (EA) considers the time (in minutes) since the last closed position.

        Time is considered of the same type. 
        If the BUY signal: Time since the last opened/closed BUY
        If the SELL signal: Time since the last opened/closed SELL

        The number of minutes to open the next Deal on the signals of indicators.
        It allows you to filter deals when using OnlyOnePosbySignal = false.
        DistanceToOpenNextPosition Minimum Distance to Open the Next Position on the Main Signal

        (If OnlyOnePosbySignal = false and OnePosPerDirection = false).

        If DistanceToOpenNextPosition is above 0, then the next position (Deal) can be opened only when the previous position (Deal) on the signal has passed a DistanceToOpenNextPosition of profit points (Pips)!

        If DistanceToOpenNextPosition is below 0, then the next position (Deal) can be opened only when the previous position (Deal) on the signal is at a distance of DistanceToOpenNextPosition points (Pips) on both sides of profit or loss!
        OpenOppositePositionAfterStoploss EA Opens the Opposite Position When Closing the Current Stop Loss.

        Opens the opposite position (Deal) immediately after receiving the stop loss of the previous deal (position) without using indicator signals.
        If the last position was closed by stop loss, the Expert Advisor would immediately open the opposite position.
        OnlyOnePosbySignal Trade Only One Current Main Position in One Direction.

        If the Expert Advisor opens a SELL position, then all other SELL signals will be ignored.

        If the Expert Advisor opens a BUY position, then all other BUY signals will be ignored.
        OnePosPerDirection Opening One Deal in One Direction,

        e.g.:
        If OnePosPerDirection = true and OnlyOnePosbySignal = false, then the EA can open one Buy Deal (Position) on a signal and one Sell Deal (Position) on a signal;

        If OnePosPerDirection = false and OnlyOnePosbySignal = true, then the EA can only open one Deal (Position) per signal, either Buy or Sell;

        If OnePosPerDirection = false and OnlyOnePosbySignal = false, then the EA can open multiple Deals (Positions) for each new indicator signal;
        OnlyOnePositionPerMagic Opening One Position per Magic Number.

        The Expert Advisor checks whether there are open positions (Deals) for this magic number in other currency pairs.

        If there is no position, the advisor will open the deal at the signal, and the remaining advisors will wait for the completion of this deal.

        If OnePosPerDirection = false, then OnlyOnePositionPerMagic = true works as follows: One position per magic number is allowed;

        If OnePosPerDirection = true, then OnlyOnePositionPerMagic = true works as follows: One position of each direction (Buy and Sell) is allowed per magic number;
        OnlyAlternateSignals Allows Opening Positions Only One by One.

        If the last closed position was a SELL, the next can be opened only as a BUY!

        It is necessary to trade the main indicator in No Signal Mode (IndSigToTrade = No Signal).
        MAX_BUY_POSITION Parameter for Limiting the Maximum Number of BUY Deals (Positions).

        The positions opened by signals of indicators are taken into account.
        The averaging and additional positions are not taken into account.
        MAX_SELL_POSITION Parameter for Limiting the Maximum Number of SELL Deals (Positions).

        The positions opened by signals of indicators are taken into account.
        The averaging and additional positions are not taken into account.
        MaxSpreadToNotTrade The Maximum Spread at Which the Advisor Can Open a Position.

        If the current spread at the time of receiving the signal is greater than the specified value, the indicator signal is ignored until the spread is less than the specified value.
        MinSpreadToNotTradeMinimum Spread in Which the Advisor Can Open a Position.

        Warning: This filter is only used to open positions by signal, averaging, and additional opening.

        All other functions operate normally.

        Warning: This filter applies only to Positions!

        For Pending Orders, this filter does not apply.
        Therefore, the filter works only when you use Positions.
        Include_Commission_SwapConsider the Author’s Calculation of Commission and Swap When Functions Are Enabled: BreakEven (Stop Loss at Breakeven Point), Trailing Stop, Averaging.

        The author’s calculation of the Commission is based on the formula for calculating the value of 1 Point (Pip) from the open positions for this symbol and the magic number; a negative swap and Commission are included in the calculation.
        The function returns the cost of a negative swap and Commission in Points (Pips) and takes this into account when working with the BreakEven functions (Stop Loss at the Breakeven Point) and Trailing Stop.

        Attention: If you have a floating spread with your broker, the settlement of the Commission is executed and set at the moment of operating the BreakEven functions (Stop Loss at the Breakeven Point) and Trailing Stop, but the spread may increase, incurring additional loss points (Pips).

        This is not a calculation error! Also, consider that when a swap occurs, the advisor recalculates the BreakEven line (Stop Loss at the Breakeven Point) and sets new stops if the server allows it (restriction to the minimum stop level for your broker’s StopLevel). If the server does not allow setting a BreakEven and returns a minimum stop level error, the EA will not be able to modify the position, and you may incur additional loss points (Pips).

        To avoid incurring a loss when using Commission with a negative swap, we recommend increasing the distance between BreakEven (Stop Loss at Breakeven Point) or Trailing Stop. The level of BreakEven (Stop Loss at Breakeven Point) (LevelWLoss) can be calculated independently, considering the Commission.

        For example, if the Commission for opening and closing a position = 2 dollars (EURUSD) per 1 lot.
        To cover the loss from the Commission, set LevelWLoss = 2 (Pips) + 1 (control point) = 3 Pips.
        Thus, the advisor will set a BreakEven (Stop Loss at the Breakeven Point) at +3 Pips, covering the loss from the Commission.

        Closing Options

        ClosePosifChange Close Positions When the General Indicator Signal is Reversed.

        The difference between ClosePosifChange and ClosePositionifChangeOWNSignal is that with ClosePosifChange(true), a signal change is considered for all filters + the primary (Main) signal.

        When ClosePositionifChangeOWNSignal(true), the signal change is considered only on the Main Indicator (IndSigToTrade).

        It also works for pending orders.
        ClosePosition_After_X_Minutes EA Can Close the Position After the Set Number of Minutes.

        Additionally, the Expert Advisor checks the enabled CloseChangeOnlyInProfit parameter:
        The EA can close only profitable positions.
        CloseChangeOnlyInProfit The EA can close deals on a return signal (changing the direction of the signal) only when the current position is in profit.

        Pending Orders Option

        StopOrderUSEOpen Pending Orders or Limit Orders Instead of Positions.

        1. FALSE: Open Positions (BUY, SELL);

        2. TRUE: Allows you to open a pending or limit order for the received signal at a distance of StopOrderDeltaifUSE points (Pips).
        Thus, we recheck the signal for profitability.

        If the signal is aligned with the price movement, the pending order will execute through StopOrderDeltaifUSE points (Pips).

        3. Use Virtual Stop Orders: Places a virtual pending stop order at a distance of StopOrderDeltaifUSE points (Pips);

        4. Use Virtual Limit Orders: Places a virtual pending limit order at a distance of StopOrderDeltaifUSE points (Pips);

        Caution: (Use Virtual Stop Orders) and (Use Virtual Limit Orders) only work in visualization mode or on live charts when the terminal is running on your computer.
        They do not work in optimization mode!
        StopOrderDeltaifUSE Number of Points (Pips) for a stop or limit order.
        Distance from the current price.
        StopOrderDayToExpiration StopOrderDayToExpiration = Number of days until the order expires.

        – 0 – ORDER_TIME_GTC: The order remains in the queue until it is removed;
        – 1 – ORDER_TIME_DAY: The order is valid only for the current trading day;
        – X – ORDER_TIME_SPECIFIED: The order remains valid until the expiry date.

        If you receive a Rejected error and hover over the order in history, you see: (Incomplete FOK information of the order),
        If you have a BCS broker or Open broker, then you need to set:
        TypeFilling = ImmediateOrCancel or TypeFilling = Return
        DayToExpiration = 1
        StopOrderBarToExpirationThe Expiration of the Pending Order in Bars.

        If StopOrderBarToExpiration = 10 and TF = M1, then the pending order will be removed after 10 minutes after installation.

        Attention: Each broker has its minimum time parameter for expiration time.
        ReInstallStopOrdersNewSignalAppears Reset Pending Orders if a New Signal from the Indicators is Created.

        Allows you to delete the current BUYSTOP pending order and install a new BUYSTOP at a new level when the indicators generate a new signal.

        Trading Options

        Magic The Magic Number of the Positions Opened by the Advisor EA.
        Slippage The Maximum Possible Price Deviation When Opening and Closing Positions (in Points).

        Example:
        Slippage = 1
        Maximum price deviation when opening a position = Opening price ± 1 point (Pip).
        Slippage = 100
        Maximum price deviation when opening a position = Opening price ± 100 points (Pips).
        For example, if the opening price is 1.12345,
        but during the time of sending and opening the position (Deal), the price changes within 100 points (Requote), then the position (Deal) will open at a price within 1.12245 – 1.12445.
        MarketWatch For Opened Positions with Stop-Loss / Take-Profit on an Account with MARKET Execution.

        First, the EA can open the position (Deal), and after the successful opening, the levels of StopLoss and TakeProfit are modified in this position (Deal).

        If your account is in the ECN or NDD group, you must set this option to true.
        CommentToOrder Additional Comments on the Opened Positions.

        You can specify an additional comment here that will be added to the opened position to differentiate the settings, for example.
        Standard comment: “The X” + CommentToOrder
        RoundingDigits EA Can Round All Prices When Opening and Modifying Orders and Positions (Deals).
        Options:
        – No rounding,
        – Rounding up to 1 digit,
        – Rounding up to 2 digits.

        The function is created for Gold and Silver, as well as for brokers that require a specified tick accuracy.

        Example:
        Deal open price = 1.12345
        Rounding to 1 digit = 1.12340
        Rounding up to 2 digits = 1.12300
        TypeFilling The Type of Fill for Positions and Orders.
        Used for the MT5 terminal.
        In AUTO mode, the Expert Advisor tries to determine the fill type automatically.
        However, in some situations, you need to set the fill type manually.

        If you receive an error when opening a position: 10030 TRADE_RETCODE_INVALID_FILL, An unsupported type of execution,
        set the fill type according to your broker’s rules.

        Example:
        FillOrKill
        This execution policy means that the order can be executed only in the specified amount. If the market does not currently have a sufficient amount of a financial instrument, the order will not be executed. The required volume can be made up of several offers available at the moment in the market.

        ImmediateOrCancel
        This means agreeing to execute the deal on the maximum available volume in the market within the specified limits. If full execution is not possible, the order will be executed for the accessible volume, and the unexecuted order volume will be canceled.

        Return
        This mode is used for market, limit, and stop-limit orders and only in the “Market Execution” and “Stock Execution” modes. In case of partial execution, a market or limit order with a residual volume is not withdrawn but continues to operate.
        For stop-limit orders, a corresponding limit order with the execution type Return will be created upon activation.

        Stops Options

        VirtualStopsEnable Virtual Stop Loss / TakeProfit / Trailing Stop Instead of Real Ones.

        Uses virtual (invisible) levels for StopLoss/TakeProfit/TrailingStop/BreakEven (Stop Loss at Breakeven).

        We have completely redesigned the algorithm for Virtual StopLoss/TakeProfit/TrailingStop/BreakEven (installing stop loss at the breakeven point).

        Now, all virtual stops are displayed on the chart and are key when closing positions at these levels.
        All data about virtual levels is added in the form of lines on the chart and global variables.

        Note: If you delete a stop line on the chart and global variables, virtual closing on this line will not work.

        Attention: Check your experts and indicators to remove lines from the chart and global variables!
        Attention: Virtual levels are triggered at the current price, after which the closing occurs.
        During the closing, there may be slippage of a couple of points!
        Attention: In MT4, VirtualStops do not work in optimization mode.
        Attention: When you enable VirtualStops, the testing speed is significantly reduced.
        Attention: Virtual SL/TP/TS do not have restrictions and server prohibitions. Therefore, they can be set at the current price, resulting in immediate closure.
        SetMinStops Automatically Normalize All Parameters of the Expert Advisor to the Minimum Acceptable Stop Levels.

        With Virtual Stops – this parameter does not affect.

        With AutoSetMinLevel, stop levels will be adjusted to the lowest possible levels allowed by the server;

        If Stop Loss or Take Profit level is less than the minimum stop level on the server, then Stop Loss/Take Profit level = Minimum Stop Level (Spread*2 or fixed level on the server) + Spread.

        When using ManualSet, the user will receive a message that the EA’s stop levels are below the minimum, and the EA will receive an error from the server.

        If the stop level on the server is floating, then the minimum stop level is automatically calculated as Spread*2.
        StopLoss StopLoss of each position (Deal) you open in Pips.
        TakeProfit TakeProfit of each open position (Deal) in Pips.
        ForcedModifySLTP Forced Modification of Positions: Set Stop Loss and Take Profit.

        The Expert Advisor will forcibly modify the StopLoss and TakeProfit for all its positions.

        For example:
        If the broker’s server opened a Deal but did not return its ticket, then the expert will forcibly check all its positions.
        If the EA finds that the StopLoss or TakeProfit of the position is 0, the Expert Advisor will force the modification of StopLoss and TakeProfit.
        TimeToCheckAverageSpreadThe Algorithm for This Function is Taken from Our Automated TickSniper Scalper Sales Advisor.

        Added parameters to the Stops (SL TP TS) Options block:
        TimeToCheckAverageSpread: The number (milliseconds, 20,000 = 20 seconds) for determining the average spread
        AutoCheckLowSpread: Auto-determination of the low spread.
        Automatically determines if the spread is too low (less than 1 point (Pip)) and sets all system settings to the lowest possible spread.
        This protects the system from the broker’s spread reduction.

        How to Use:
        For the parameter calculated in Pips based on the average spread of the currency pair, specify the setting with a “” sign.

        For example:
        StopLoss = 2000 means that the StopLoss of each position will be 2000 points (Pips)!
        StopLoss = -100 means that the StopLoss of each position will be equal to 100 * Average Spread, calculated by the Expert Advisor over TimeToCheckAverageSpread milliseconds.

        If the spread is 20 points (Pips), then the StopLoss at the time of opening will be 2000 points (Pips).
        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.

        Lots Options

        Lots A Fixed Lot (Volume) is Used to Open a Position (Deal) or Order.
        AdditionalLots – An additional lot (Volume) that will be added to each new deal based on a new signal.

        CoefficientLots – Lot coefficient, by which the lot will be multiplied for each new deal on a new signal.

        Work Only (When the advisor is allowed to open more than one position for each signal OnlyOnePosbySignal = false / OnePosPerDirection = false)
        DynamicLot A Dynamic Lot, AutoLot, for an Open Position.
        You can enable dynamic lot calculation based on the percentage of free margin and other factors.
        Calculation of Our AutoLot.

        AutoLot Calculation Type:
        BALANCE – AutoLot is calculated from the current balance. Lot calculation based on account balance! If there are open positions on the account, the next lot will be approximately the same because the balance does not decrease from the number of current open positions!
        FREEMARGIN – The standard lot calculation from the current free margin is that the more open positions on the account, the smaller the lot calculated for the next position. Because when opening a position, the free margin decreases, respectively, each new open position has a smaller lot when calculating the AutoLot.
        DynamicLotStopLossRisk from SL – Calculates the automatic lot, taking into account Stop Loss.
        The maximum loss in percentage of the balance when closing a Deal at StopLoss.
        When calculating the lot, our Expert Advisor will take into account the Stop Loss (at the moment of opening the Deal).
        If the Deal closes at the Stop Loss, the loss of this Deal will be equal to % of the balance (at the time of opening the Deal).
        Important: If your Stop Loss was changed after the Deal was opened, the lot of the Deal cannot be changed. At closing the Deal, the loss can be more or less.
        Important: If you use a Trailing Stop, the Stop Loss changes with each tick, but the lot cannot be changed.

        Formula and code: https://expforex.com/my-autolot-secrets-dynamiclot-autolot/#eb-table-content-5
        LotBalancePercent Percent for AutoLot.
        RiskRate The Rate of Your Currency Against the Dollar (Or Your Account Currency).

        By default, RiskRate = 0, which means that the Expert Advisor will try to find the correct rate in the Market Watch.
        For AutoLot to work well with all currency pairs, you need to enable “Show All Currency Pairs” in the Market Watch.
        All currency pairs displayed in Market Watch in MetaTrader
        MaxLot The Maximum Lot That an Expert Advisor Can Open When Calculating an AutoLot and Martingale for the First Main Position.
        Martin Martingale. The Standard Multiplication of the Lot of the Last Closed Position at a Loss.

        If Martin = 1, then Martingale is not enabled (Fixed lots Volumes).
        If Martin = 0, then the Expert Advisor cannot open the next position.
        If Martin = 2, then the first lot = 0.1, the second lot = 0.2, and so on: 0.4 – 0.8 – 1.6 – 3.2 – 6.4…
        If Martin = 0.5, then the first lot = 1, the second lot = 0.5, and so on: 0.25 – 0.125.

        Averager Options: The Block of Functions for Averaging Positions, Opening Positions Against the Trend

        Read More: Exp – Averager. Averaging Trading Positions. Opening Deals Against the Trend and On the Trend!
        UseAverAdditionalOpeningOrderinOneThe number of positions (Deals) is considered common for both Additional Deals and Averaging Deals.
        Attention! Only for the MT4 version!
        AverageUSEEnable the Averaging Function.
        If the Main position is lost by a certain number of points (Pips), our Expert Advisor opens a position of the same type (against the trend).
        Thus, averaging the first position.
        All functions of the Expert Advisor (Trailing Stop, Breakeven (Stop Loss at the Breakeven Point)) will work from the Average (middle) line of positions, which is calculated from all positions (Deals) of the same type.

        For example:
        You open a BUY position at a price of 1.600;
        The price goes down to 1.500, and the current loss is -100 points;
        Breakeven point (Average Price) = 1.600;
        To modify Stop Loss to the Breakeven level, we need to rise 100 points up trend;
        If we open the BUY position at the price of 1.500, then our position is averaged, and the Breakeven can be set to 1.550;
        To close two deals, the price must move up 50 points, not 100 points.
        The Expert Advisor (EA) activates the Trailing Stop, and two positions gain profit to increase it.

        Attention: For different lot sizes (Volumes) of positions, the average price is calculated using a mathematical formula.
        TakeProfitALL Total Take-Profit for All Positions.
        TakeProfit, which will be set at a distance of TakeProfitALL points from the average price of opening positions.
        If you set TakeProfitALL = 5 points, this means that take profit will be set from the middle line at a distance of 5 points.
        Distance The Distance of the Open Positions of the Averaging Grid.

        After how many points against the trend to open the next averaging position (Deal) from the last open position of one type for averaging.

        You can set 100 points (Pips).
        Then, each new averaging position will be opened after 100 points of loss from the last open position.

        You can set 50 points (Pips).
        Then, each new additional position (Deal) will be opened after 100 + 50 loss points from the last open position (100, 150, 200, 250, 300).
        DistanceMartin The Increase Factor for the Distance from the Average for Each Deal.

        You can set it to 1.5.
        Then, each new averaging position will be opened after 100 + 50 (100*1.5) loss points (Pips) from the last open position (100, 150, 225, 337, 506).
        LotsMartinCoefficient: Increase the Lot (Volume) for the Grid Positions.
        The coefficient by which the lot will be multiplied for each next averaging position.
        For example:
        Starting Lot (Volume) of the main position = 0.1
        LotsMartin = 2, then
        The next lot (Volume) of the opened averaging position will be 0.2, 0.4, 0.8, and so on.

        Attention: The middle line will be calculated using the formula based on lots.
        This allows you to bring the BreakEven level (middle line) closer to the current price.


        However, Martingale can be dangerous to your account.
        Please calculate this parameter so that your deposit can withstand such a load.
        LotAdditional Additional Lot (Volume) for the Next Averaging Position.
        For example:
        Starting lot (Volume) of the main position = 0.1;
        LotAdditional = 0.05, then
        The next lot of the opened averaging position will be 0.15, 0.2, 0.25, and so on.
        MaxOrdersOpen Maximum Number of Positions for This Currency Pair in One Direction (Separately for BUY and SELL).

        If the position grid reaches MaxOrdersOpen, then subsequent averaging deals are ignored.

        Additional Opening: Block of Functions for Additional Opening of Positions on a Trend

        Read More: Exp – Averager. Averaging Trading Positions. Opening Deals Against the Trend and On the Trend!
        AdditionalOpeningEnable the Opening of Additional Deals.
        If the Main position becomes profitable by a certain number of Deals, our advisor opens a position of the same type. 
        Thus, averaging the first position.
        This helps to capitalize on a lucrative signal.
        All functions of the Expert Advisor (Trailing Stop, Breakeven …) will work from the middle line of positions, calculated from all positions (Deals) of the same type.

        For example:
        You open a BUY position at a price of 1.600;
        The price goes up to 1.700, and the current profit is +100 points;
        Breakeven point (Average Price) = 1.600;
        If we open the BUY position at the price of 1.700, then our position is averaged, and the Breakeven can be set to 1.650;
        The Expert Advisor opens 3 additional positions (Deals).
        Price rollback.
        The Expert Advisor (EA) activates the Trailing Stop, and 5 positions gain profit to increase it.

        Attention: For different lot sizes (Volumes) of positions, the average price is calculated using a mathematical formula.
        StopLossALL Total Stop-Loss for All Positions.
        StopLoss that will be set at a distance of StopLossALL points from the average price of opening positions.
        If you set StopLossALL = 5 points, this means that StopLoss will be set from the middle line at a distance of 5 points.
        DistanceAdditionalOpening The Distance for Opening Additional Grid Positions.

        After how many points on the trend to open the next additional position (Deal)

        You can set 50 points (Pips).
        Then, each new additional position (Deal) will be opened after 100 + 50 loss points from the last open position (100, 150, 200, 250, 300).
        LotsMartinAdditionalOpeningCoefficient: Increase the Lot (Volume) for the Grid Positions.
        The coefficient by which the lot will be multiplied for each next additional position.
        For example:
        Starting Lot (Volume) of the main position = 0.1
        LotsMartinAdditionalOpening = 2, then
        The next lot (Volume) of the opened additional position will be 0.2, 0.4, 0.8, and so on.

        Attention: The middle line will be calculated using the formula based on lots.
        This allows you to bring the BreakEven level (middle line) closer to the current price.


        However, Martingale can be dangerous to your account.
        Please calculate this parameter so that your deposit can withstand such a load.
        LotAdditionalOpening Additional Lot (Volume) for the Next Additional Position.
        For example:
        Starting lot (Volume) of the main position = 0.1;
        LotAdditionalOpening = 0.05, then
        The next lot of the opened additional position will be 0.15, 0.2, 0.25, and so on.
        MaxOrdersOpenAdditionalOpening Maximum Number of Positions for This Currency Pair in One Direction (Separately for BUY and SELL).

        If the grid positions reach MaxOrdersOpenAdditionalOpening, then subsequent additional positions are ignored.

        Time Trade Options: The Block for Managing Trade Time and Time Limits

        TradeStartStopbyTime TradeStartStopbyTime is the function for enabling the EA to operate within specified time limits.

        If TradeStartStopbyTime = false, then the Expert Advisor trades around the clock.
        If TradeStartStopbyTime = true, then the trading time limit is enabled:
        SeveralTimeWork You Can Also Specify Several Time Slots for Trading in the SeveralTimeWork Parameter.

        Recording format: HH:MM-HH:MM;
        where:
        Hour Start Trading: Minute Start Trading – Hour Stop Trading: Minute Stop Trading.

        For example,

        SeveralTimeWork = 3:00-5:00;7:30-8:50;12:00-15:00;
        Then the Expert Advisor will trade during these time slots:
        From 3:00 to 5:00;
        From 7:30 to 8:50;
        And from 12:00 to 15:00.

        The Advisor will not open new deals at other times.
        OpenHour OpenMinute The Expert Advisor Checks the Trading Time According to the Parameters:

        OpenHour: OpenMinute – the beginning of trading;
        CloseHour: CloseMinute – the end of trading for one day.

        For example:
        OpenHour = 5 and OpenMinute = 0, and also CloseHour = 18 and CloseMinute = 59,
        Then, the EA will trade every day from 5:00 to 18:59.
        ClosePeriod_Minute If you want to specify the trading period from the start time, you can set the ClosePeriod_Minute parameter, which is the period in minutes.

        For example: OpenHour = 6, OpenMinute = 0, and ClosePeriod_Minute = 180.
        Then, the advisor sets the trading time from 6:00 to 9:00 (6 + 180 minutes = 9:00).
        CloseAllTradesByOutOfTime Close All Open Trades and Pending Orders During Non-Business Hours if CloseAllTradesByOutOfTime = true.

        In this case, the Expert Advisor will trade during the specified times, and when trading time is over, the advisor will close all open positions and orders.

        Not Use = Do not use the function;
        Positions and Orders = Close positions and pending orders;
        Only Positions = Close only positions (BUY and SELL);
        Only Orders = Close only pending orders (BUYSTOP, SELLSTOP, BUYLIMIT, and SELLLIMIT).
        TradeByDays In this block, you can specify Trading Days for trading: TradeByDays.

        For example,
        TradeByDays = true and Days = 1,2,3
        – In this case, the Expert Advisor will trade only on Monday, Tuesday, and Wednesday, according to the time set above.

        Or trade around the clock for these 3 days if time is not set.

        If you set Days = 1,2,3,4,5 but the parameter TradeStartStopbyTimeFriday = false, the Expert Advisor will not trade on Friday.
        DayForOptimization Set One Day for Optimization in the DayForOptimization Parameter.

        This option is useful to determine which days during optimization were the most profitable.

        For example,
        If DayForOptimization = 3, then the EA will only trade on Wednesdays.
        TradeStartbyTimeMonday The Expert Advisor starts working on Monday if set by TradeStartbyTimeMonday = true at the time OpenHourMonday: OpenMinuteMonday.

        For example,
        OpenHourMonday = 3 and OpenMinuteMonday = 40, then the EA starts trading on Monday at 03:40 server time.

        (The time of your broker, as indicated in the Market Watch).
        TradeStartStopbyTimeFriday TradeStartStopbyTimeFriday – Trading Time for Friday.

        In our Expert Advisor, you can set the trading time for Friday.

        Time options for Friday: OpenHourFriday: OpenMinuteFridayCloseHourFriday: CloseMinuteFriday

        For example, if you need the advisor not to open new deals on Friday after 18:00, set:
        OpenHourFriday = 0: OpenMinuteFriday = 0
        CloseHourFriday = 18: CloseMinuteFriday = 0
        In this case, the advisor will not open new deals after 18:00.
        CloseFriday You can also close all open trades and pending orders on Friday at the set time of 18:00 if CloseFriday = true.

        BreakEven Without LOSS Options: Block of Functions for Breakeven (Set Stop Loss to Break-Even at a Specific Moment)

        MovingInWLUSEEnable the Break-Even Function.

        The function modifies the Stop Loss by LevelWLoss points when the position reaches LevelProfit points of profit.
        Functional Features of Experts from www.expforex.com

        Example:
        LevelWLoss = 50, LevelProfit = 200
        As soon as the position accumulates 200 points of profit, the Stop Loss of the position will be modified to the opening price of the position (+ spread) + 50 points.

        Example:
        LevelWLoss = 0, LevelProfit = 100
        As soon as the position accumulates 100 points of profit, the Stop Loss of the position will be modified to the opening price of the position (+ spread).

        Attention: If the averaging or additional function is enabled (true):
        Then, when you open 2 or more positions, the advisor enables the BreakEven function from the middle line and not from the opening price of positions.
        LevelWLoss The level of profit (LevelWLoss) in points at which the Stop Loss is set when this function is enabled.

        1 = 1 point of profit;
        0 = Automatic minimum profit mode.
        If it is 0, then the number of points of profit for the BreakEven (Stop Loss at the Breakeven Point) = Spread of the current currency pair.
        LevelProfit The number of profit points (LevelProfit) gained by the position to set a Stop Loss at LevelWLoss points (Pips).
        LevelProfit must be greater than LevelWLoss.

        Standard Trailing Options

        (Trailing Positions by Modifying Stop Loss into Profit!)

        TrailingStopUSEEnable the Standard Trailing Stop Function.

        Note: If the averaging or additional function is enabled, and you open 2 or more positions, the Expert Advisor enables the trailing stop function from the middle line and not from the open position price.
        The average price is displayed on the chart.

        Trailing Stop on Parabolic SAR Indicator
        IfProfTrail If “true” – the Expert Advisor starts modifying only from the moment the position reaches the Breakeven (Stop Loss at Breakeven Point) + TrailingStop of profit points (Pips).

        If “false”, the Trailing Stop works immediately after the position is opened, and the position is set to profit and pulled after the price moves.
        TrailingStop Distance in Points from the Current Price to the Stop-Loss.
        If the current profit is 200 points (Pips), and TrailingStop = 100, then the Stop Loss will be set at +100 points.

        Thus, the price has the possibility of a rollback of up to 100 points (Pips).
        Otherwise, the StopLoss will activate, and the position will be closed at +100 points (Pips).
        TrailingStep The Step of StopLoss When the Trailing Stop Function is Enabled.
        SaveTPafterTrailingStop When enabled, the Take Profit of the modified positions will not be altered after activating the Trailing Stop.

        For example:
        SaveTPafterTrailingStop = false:
        When running a Trailing Stop, the TakeProfit of the modified position will be deleted (set to 0);

        SaveTPafterTrailingStop = true:
        When the Trailing Stop is active, the TakeProfit of the modified position will be preserved.

        TrailingStop by SAR: Parabolic SAR

        (Set and Modify Stop Loss on the Parabolic SAR Indicator)

        TrailingStopSAR You can enable (true) the Trailing Stop function based on the Parabolic SAR indicator.

        Attention: If the indicator is at a loss for the position, the Expert Advisor (EA) waits until the parabolic point is profitable for the position.

        If you have 2 or more averaging positions, then the BreakEven (Stop Loss at Breakeven Point) is considered from the Average Price of the positions.
        TrailingStopSAR_TimeFrame Timeframe for the Parabolic SAR Indicator.
        maximum Parabolic SAR Indicator Settings.

        CloseALL When Profit or LOSS Options

        Closing Positions in MetaTrader Upon Reaching Total Profit/Loss with the Profit Trailing Function.
        This function is part of CloseIfProfitorLoss with Trailing. Control the total profit or loss with profit trailing.

        TypeofClose Type of Closing on Total Profit or Loss, in dollars (deposit currency), points (Pips), percent of the balance, or percent of equity.

        This block allows you to close all positions on this symbol if the total profit or loss of all positions reaches the set value.
        SeparateBuySell Separate Calculation and Closing of Positions in Two Different Directions: BUY and SELL.

        If SeparateBuySell = true, then the Expert Advisor (EA) separately closes BUY and SELL directions for total profit or loss.

        If SeparateBuySell = false, then the Expert Advisor (EA) closes BUY and SELL directions together for total profit or loss.
        For the Expert Advisor to close both types of positions (Deals, BUY and SELL), the total profit of these two positions must exceed the set value.

        Note: If OnlyOnePosbySignal = false and OnePosPerDirection = false, or any settings that allow you to open multiple directions and multiple positions in each direction.
        CloseProfit Close Positions with Total Profit.
        True – Enable,
        False – Disable.
        prifitessss The Number of Units (Dollars (or Deposit Currency), Points (Pips), and Percent) for Closing.

        If the total profit on the positions of the currency pair is greater than or equal to the value of prifitessss, then all positions will be closed.
        CloseLoss Close Positions at a Total Loss.
        True – Enable,
        False – Disable.
        lossss The Number of Units (Dollars (or Deposit Currency), Points (Pips), and Percent) for Closing.

        If the total loss on the positions of the currency pair is greater than or equal to the value of lossss, then all positions will be closed.
        TrailOptions Enable Trailing the Total Profit When Exceeding prifitessss Units.

        This option defines the distance from the prifitessss parameter to enable Profit Trailing.

        For example,
        prifitessss = $100 (deposit currency), TrailOptions = $10.
        Then, when the position gains a profit of $100, the Expert Advisor will not close these positions but will set a profit level of $90.
        Further, if the profit increases by $1 and becomes $101, the profit level will be fixed at $91.
        If the profit decreases and reaches $91, all positions will close at this level.
        TrailOptionsStep The Step of Increasing the Fixed Profit Level.
        BalanceStart The Starting Balance, from which the percentage of the balance will be calculated.

        If set to 0, then the current account balance is used.
        ForcedClose Forced Closure of All Positions (Deals) after the Price Reaches a Total Profit or Loss.
        MailSend Send Email when closing positions (Deals) due to Total Profit or Loss.
        Orderdelete Delete Pending Orders when closing positions (Deals) due to Total Profit or Loss.
        OFFAfterClosePROF Disable the Expert Advisor (EA) After Closing on Total Profit.

        The Expert Advisor will stop its operation and will not open new positions (Deals) and orders!
        OFFAfterCloseLOSS Disable the Expert Advisor (EA) After Closing for Total Loss.

        The Expert Advisor will stop its operation and will not open new positions (Deals) and orders!
        CloseTerminalAfterClosePROF Close the Terminal After Closing on Total Profit.
        CloseTerminalAfterCloseLOSS Close the Terminal After Closing for Total Loss.

        Limiting Losses and Profits


        Limitation of losses and profits for a certain period. Limit loss and profit for 1 day/week/month.

        Limiting LimitFor – Limit type day/week/month;
        LimitForLosses – Limit on loss;
        LimitForProfits – Limit on profit;
        LimitType – Limit type by Dollars, Points, Deposit Interest;
        ClosebyLIMITING – Close the advisor’s Deals when the limit is exceeded;
        UseCurrentProfit – Take into account the current profit/loss when calculating the limit;

        This function can turn off the operation of the Expert Advisor if it has gained a certain profit/loss in the deposit currency for the day/month/week.
        The next operation of the Expert Advisor will be the following day, week, or month.

        For example, LimitFor = DAY, LimitForProfits = 10 dollars;
        You can also select the LimitType for calculations (in dollars, points, percent of the account balance).

        If you need to close and delete all Deals for this Expert Advisor when limits are exceeded, set ClosebyLIMITING = true.

        UseCurrentProfit enables/disables the calculation of the current floating profit/loss for this Expert Advisor.

        Drawdown Options


        The block for controlling the opening of positions in drawdown.

        DrawDown_Level – Enable the drawdown control block;
        Type_DrawDownHR – The type of drawdown calculation based on deals in history and current deals;
        DrawDown_Level_One – The first level of drawdown in percent;
        Type_Deal_Level_One – Action when passing the first level of drawdown (turn off new signals, turn off averaging of deals or additional opening, close all deals);
        DrawDown_Level_Two – The second level of drawdown in percent;
        Type_Deal_Level_Two – Action when passing the second level of drawdown (close all profitable positions, close all loss-making positions, close all).

        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, as soon as the current drawdown of Deals in history and current Deals exceeds 50% of the current deposit, the EA cannot open new Deals on new signals.
        At the same time, the averaging functions will operate.

        When the drawdown exceeds 90%, the EA immediately closes all Deals.

        Virtual Withdrawal



        A virtual withdrawal tool is used in strategy testing to simulate deposit operations (Deposit Top-Up, Deposit Withdrawal).
        Added virtual withdrawal of funds in the tester:

        Withdrawal – Enable virtual withdrawal of funds when testing in the strategy tester;
        Withdrawal_mode – Withdrawal mode, in the deposit currency or as a percentage of the current balance;
        Withdrawal_amount – Number of withdrawals;
        Withdrawal_periodicity_days – Frequency of withdrawal in days;
        Withdrawal_Max – Maximum withdrawal amount;
        Withdrawal_EndOfTest – Withdrawal after the end of testing;

        OnTester_Custom



        In the Tester block, the variable OnTester_Custom_max is added, in which you can define your criterion for genetic optimization.
        More details about the test results: Statistics
        A record in the form of a formula.
        For example:
        OnTester_Custom_max = “STAT_PROFIT * STAT_TRADES / STAT_EQUITY_DD”
        It is mandatory to specify the names of variables, as in the reference documentation!

        You can set minimum values at which the optimization will consider the result during genetic enumeration!
        In other words, you can set a condition: “the minimum number of Deals” (or other parameters), upon which this run will be counted as a result.
        If, during selection, the advisor opens fewer Deals than specified in the settings, then this run of the optimizer will not be counted as a result!
        Attention! For advanced users only.
        OnTester_Min_Trades = 0; // Min Deals for optimization
        OnTester_Min_Profit = 0; // Min Profit for optimization
        OnTester_Min_ProfitFactor = 0; // Min ProfitFactor for optimization
        OnTester_Min_Balance = 0; // Min Balance for optimization
        OnTester_Min_Equity = 0; // Min Equity for optimization
        OnTester_Max_Balance_DD = 0; // Max Balance DD% for optimization
        OnTester_Max_Equity_DD = 0; // Max Equity DD% for optimization
        Detailed USER GUIDE for This

        FAQ xCustomEA

        Our General FAQ

        FAQ Answers to the most popular questions

        Which indicator should I use?

        Which filter will match my indicator?

        Where can I find a good indicator?

        Can you create a strategy?

        Do you offer custom programming?

        Hello.

        I will try to respond to your comment in more detail:

        Fifteen years ago, I started doing custom programming. Clients sent me their specifications, and I developed an Expert Advisor for their needs.

        I have completed numerous programming projects.

        Many projects were similar to each other.

        They had the same functional requirements.

        Eventually, I became tired of programming because each task was similar to the previous one.

        So, I created the xCustomEA Expert Advisor to allow users to customize it themselves.

        The most important aspect is that the EA has no trading strategy. It is purely a tool.

        Its main function is to trade based on your indicators. It executes your strategy.

        I do not have any specific indicator filters that cover “all indicators from the market.”

        Why do I say “ALL“?

        Because it is a universal Expert Advisor with no built-in strategy. It trades based on the signals from your indicator, which you will configure in its settings.

        I stopped offering custom programming because I no longer had the capacity to take on bespoke projects.

        Now, I only develop my own tools and trading programs.

        Is your indicator, which provides signals, not profitable enough?

        If so, you need to find indicators that are profitable and generate satisfactory returns.

        I do not offer such indicators.

        This advisor is a universal trading tool that operates based on your indicators.

        This is a template for a trading robot.

        In the video, I explained the most important aspect: why I created this program.

        I will answer your questions and assist you with programming your indicators.

        But please do not ask me which filter indicator to use for your signal.

        I cannot determine which filter to use for your specific signal.

        These are your signals.

        I can explain the functions of my Expert Advisor.

        I can try to help you program your strategy.

        However, if you want to use my signals, it is better to utilize my strategy, TickSniper – A Fully Automatic Trading Robot.

        What do the values in the parameters represent in points or pips?

        They are in points! The value is taken from the Point variable.

        • If you have a 5 or 3-digit broker, then 1 point = 0.00001 or 0.001
        • If you have a 4 or 2-digit broker, then 1 point = 0.0001 or 0.01

        Enter the value (in the field) that corresponds to your specific broker.

        There is much debate about what constitutes a point versus a pip.
        I use universal values (Point = Pip).

        These values match those of your broker.

        Do you have the kits and settings for this Expert Advisor?

        No, I developed the Expert Advisor as a Builder.

        This EA requires your own optimization.

        Customize it according to your strategy and capabilities, using our functions.

        More on Optimizing and Testing The X Advisor

        Don’t want to optimize? Download my beginner advisor: Tick Hamster or TickSniper.

        Why are the test results different between MT4 and MT5 terminals?

        Because they are different terminals with distinct quotation histories and different principles in the strategy tester.

        What settings do you use for your signals?

        Default settings.
        I only test the functionality and not the profitability of this advisor.

        Why?

        Because this advisor was created as a Builder, each user must develop their own strategy.
        Want my strategy? TickSniper already sets up an automatic trading robot.

        Why are the results with Virtual Stop Loss and real Stop Loss very different?

        A virtual stop loss cannot encounter order modification errors due to spread increases, stop level increases, or price changes.
        It always adjusts to the required level in any situation.
        All advisor entries are written to global variables.
        A real stop loss can encounter modification errors due to spread increases, minimum stop level increases, and price changes. Therefore, it can only adjust to the level allowed by the server.
        Due to this shift, when closing such positions, virtual closures can have entirely different time intervals. Real stop loss can be closed at other times, disrupting the entire logic of opening and closing positions.
        For example, while one position is open, a second one does not open!

        Why are the results of the new version different from the older version?

        We are updating our program to correct minor errors and refine the functionality.

        Changing a single function and fixing an error can cause the results between the old version and the new version to differ.

        However, the purpose of our update is to fix bugs and enhance the functionality.

        We regret that the results of the old version may differ from the new version. Nonetheless, we will continue to update our program.

        I want you to make several changes to the EA

        I carefully consider new functions only when they will benefit the majority of system users.

        Unfortunately, I cannot program each function separately for every user.
        I can add a few functions only when I see their value. Sorry.

        When will you add more indicators?

        I add only the indicators that I believe are necessary.

        Unfortunately,

        I cannot add all indicators to the Expert Advisor.

        The advisor is already overloaded with external parameters.

        This function does not work for me!

        I can help you only if you provide a complete error report.

        Can I use the SET file with advisor settings between the MT4 and MT5 terminals? Why don’t the settings work from MT5 to MT4?

        Yes, you can use SET files with settings between the two terminals. All variables are the same.

        But there is one issue:

        The MT5 terminal supports any encoding, whereas MT4 only supports ANSI text.

        Therefore, a settings file saved in the MetaTrader 5 terminal will not open correctly in the MetaTrader 4 terminal.

        To use a settings file from the MT5 terminal in MT4, you need to open the SET file and save it in ANSI encoding.

        MetaTrader Encoding Settings

        What is xCustomEA?

        xCustomEA is a universal trading advisor designed to work with custom indicators. It allows traders to program and automate their trading strategies for both MT4 and MT5 terminals using any custom indicator.

        How does xCustomEA differ from The X?

        xCustomEA replicates all the parameters of The X advisor but adds the ability to use custom indicators via iCustom. This provides greater flexibility in creating and testing trading strategies.

        Which trading platforms are supported by xCustomEA?

        xCustomEA is compatible with both MetaTrader 4 (MT4) and MetaTrader 5 (MT5) terminals, allowing traders to use it across different platforms.

        Can xCustomEA work with any custom indicator?

        Yes, xCustomEA can integrate with any custom indicator that is compatible with MetaTrader platforms. You can download indicators from the Internet or the mql5 market and use them with xCustomEA.

        How do I install a custom indicator in xCustomEA?

        To install a custom indicator, specify the indicator’s name and buffer numbers in the xCustomEA settings. Ensure the indicator is placed in the correct Indicators folder of your MetaTrader terminal.

        What are the benefits of using xCustomEA?

        xCustomEA offers flexibility to program and modify advisors for new indicators without additional costs. It supports both standard and custom strategies, saving time and money for traders.

        How do I program a trading strategy using xCustomEA?

        You can program your own strategies by integrating custom indicators with xCustomEA. Follow the provided programming steps for MT4 or MT5 to define signals, filters, and trading logic.

        Is programming required to use xCustomEA?

        Basic usage of xCustomEA does not require programming, as it includes pre-built strategies. However, to fully utilize custom indicators and create personalized strategies, some programming knowledge is beneficial.

        Can I use xCustomEA with MetaTrader 4 and 5?

        Yes, xCustomEA is fully compatible with both MetaTrader 4 (MT4) and MetaTrader 5 (MT5) platforms, allowing seamless integration and strategy implementation.

        How does xCustomEA handle money management?

        xCustomEA includes features like Autolot Calculation and Fixed Lot Options to automatically calculate lot sizes based on your balance and ensure consistent position sizing.

        What built-in strategies does xCustomEA offer?

        xCustomEA includes approximately 20 built-in trading strategies based on standard indicators like Moving Averages, MACD, RSI, and Bollinger Bands.

        How does xCustomEA perform optimization and testing?

        xCustomEA allows for comprehensive backtesting and optimization using historical data to enhance strategy performance and ensure reliability before live trading.

        What is the difference between signals and filters in xCustomEA?

        Signals trigger trade actions based on indicator conditions, while filters refine these signals by applying additional criteria to enhance trading accuracy.

        How do I specify buffer numbers in xCustomEA?

        Specify buffer numbers in the xCustomEA settings by identifying the appropriate indicator buffers that correspond to BUY and SELL signals, ensuring accurate signal recognition.

        Can I use xCustomEA in semi-automatic mode?

        Yes, xCustomEA offers a semi-automatic mode where you receive alerts for trading opportunities and can manually confirm trade entries, providing greater control over your trades.

        What is Autolot calculation in xCustomEA?

        Autolot Calculation automatically determines the appropriate lot size based on your current account balance, optimizing risk management for each trade.

        How does the Martingale strategy work in xCustomEA?

        The Martingale Strategy in xCustomEA increases the lot size after a losing trade to recover losses, with customizable parameters to manage risk and enhance potential profitability.

        How does xCustomEA manage trailing stops?

        xCustomEA offers various Trailing Stop functions, including Standard Trailing Stop and Parabolic SAR Trailing Stop, to dynamically manage trades based on price movements.

        How do I handle errors with xCustomEA on real accounts?

        xCustomEA includes Error Handling mechanisms to ensure smooth operation on live accounts by automatically recovering from common trading errors and issues.

        Can I import strategies from The X to xCustomEA?

        Yes, you can import strategies from The X into xCustomEA, allowing you to apply proven strategies while adding your own custom modifications for enhanced flexibility.

        What are the steps to program a strategy in MT4 with xCustomEA?

        Programming a strategy in MT4 with xCustomEA involves loading indicators into resources, creating strategies and signals, specifying filters, and defining trading logic through the provided programming steps.

        How do I create handles for indicators in MT5 with xCustomEA?

        In MT5, create handles by declaring variables for indicator handles and initializing them using the iCustom function. This allows xCustomEA to interact with the custom indicators during strategy execution.

        Does xCustomEA come with pre-set trading strategies?

        Yes, xCustomEA includes approximately 20 pre-set trading strategies based on standard indicators, which can be used immediately or customized further according to your trading preferences.

        How can I backtest my strategy with xCustomEA?

        xCustomEA supports backtesting by allowing you to run your trading strategies against historical data in the MetaTrader strategy tester, helping you evaluate and optimize performance before live trading.

        What support resources are available for xCustomEA users?

        Users of xCustomEA can access comprehensive documentation, programming guides, and strategy examples on the official forum, along with customer support for troubleshooting and assistance.

        Risk Warning:


        Past trading performance does not guarantee future results.

        Trading foreign exchange on margin carries a high degree of risk and may not be suitable for all investors.

        Be aware that using trading robots involves substantial risk, and you could lose more than your initial investment.

        Please proceed with caution, assess your financial situation carefully, and consider seeking advice from a qualified professional.

        Changelog xCustomEA

        Version 24.934 2024.10.04

        Fixed a bug in the parameters:
        input double AdditionalLots=0; //AdditionalLots –> Additional lot for each new Signal
        input double CoeficienteLots=1; //CoeficienteLots –> Coeficiente lot for each new Signal

        At the first launch and in the absence of open transactions – Expert Advisor set the minimum lot. – Fixed.

        Version 24.918 2024.09.18

        EAPADPRO v59

        –Enhanced Graphical Interface Translation

        We have completely revamped and updated the translations across all elements of the graphical interface. This ensures a more accurate and natural localization, allowing the interface to better reflect the linguistic and cultural nuances of our diverse user base. As a result, interacting with the application is now even more seamless and intuitive, providing a more personalized and comfortable user experience.

        –Introduced Informative Tooltips for Panel Elements

        To elevate user convenience, we’ve added descriptive tooltips to various panel components. When you hover over buttons and icons, informative explanations about each element’s functionality will appear instantly. This enhancement significantly simplifies navigation and interaction within the application, making it easier for both new and experienced users to utilize all features effectively.

        –Resolved Minor Bugs and Boosted Stability

        In this update, we’ve addressed and fixed several minor bugs that were affecting the application’s performance. These corrections enhance the overall stability and reliability of the program, ensuring a smoother and more consistent user experience. By eliminating these small issues, we’ve laid the groundwork for a more robust and efficient application.

        Version 24.805 2024.08.05

        Last build compilation MetaTrader
        Fixed error in profit/price/time of closed position in notifications.
        Fixed INFOBOX error when deleting the EAPADPRO window.
        EAPADPRO v58

        Version 24.728 2024.07.29

        EAPADPRO v57
        Compiled in the last version of MT4

        Version 24.404 2024.04.04

        Global Update EAPADPRO v55

        Attention! Support of visual Graph Elements (Buttons, input line, Edit Box, CheckBox) is no longer supported by VPS server from MetaQuotes!!!!

         

        Added: information about profit from closed positions to the chart.

        The information is displayed for each bar of the current timeframe.

        You can change the timeframe to see the result of trading on a certain bar of the current timeframe.

        If several positions/deals are closed on one bar of the current timeframe, the trading result is summarized, and the total information for a certain bar is displayed.

        The information is updated when the next position/deal is closed.

        You can turn off showing history in the panel settings.

        EA xCustomEA: Universal Trading Advisor for iCustom Indicators - Image 60

        ===========================================================================================

        Added: The status of the Expert Advisor operation if it was launched on the server from “VPS MQL MetaQuotes”.

        When Expert Advisor is running on the server from MetaQuotes, a message will be created on the home computer that Expert Advisors are running on the server “VPS MQL MetaQuotes”. The smiley face is blue.

        Attention: If an Expert Advisor is launched on both the server and the home computer, it can trade in parallel on 2 terminals (server “VPS MQL MetaQuotes” + home computer); there may be conflicts.

        Attention: If the Expert Advisor is launched on the server “VPS MQL MetaQuotes”, do not Turn it on work on the home computer to avoid conflicts.

        Frequency of polling the status of work on the server = 1 day.

        After deinitialization of the Expert Advisor on the server – It will get the status – stopped.

        To test the work on the server from “VPS MQL MetaQuotes”, pending orders are created!

        EA xCustomEA: Universal Trading Advisor for iCustom Indicators - Image 61

        ===========================================================================================

        Added: The error status of the Expert Advisor operation can now be read on the EAPADPRO panel.

        You can click on the Smile or the Expert Advisor operation status bar and you will be shown a message about current errors of Expert Advisor operation.

        If you click on the Smile button on the panel, you will be shown the causes and errors and their solutions with pictures.

        EA xCustomEA: Universal Trading Advisor for iCustom Indicators - Image 62

        ===========================================================================================

        Added: Notification of errors and opening/closing of trades to the chart in the form of InfoBox.

        Notification is shown for 4 types:

        —Opening a new trade;

        —Closing a deal;

        —Modification of a trade;

        —Error received by Expert Advisor from the server;

        In the EAPADPRO panel settings, you can turn on or off the notification type you need.

        Notifications can be viewed as they arrive in the notification queue.

        Notifications are accumulated in a data array each time you install/reinstall/change Expert Advisor settings.

        In the EAPADPRO header you can also enable disable INFOBOX.

        EA xCustomEA: Universal Trading Advisor for iCustom Indicators - Image 63

        ===========================================================================================

        Added: Working with Telegram (Beta version)

        For Expert Advisor to work with the Telegram bot, you need to set up the bot on your phone and create a “public” or “private” channel.

        To receive notifications from your account, you need to assign your bot as an administrator of your “public” or “private” channel.

        Attention! Sending notifications and working with commands takes computer resources! Use the Telegram bot only for your own needs.

        How To set Telegram bot:

        New settings for working with Telegram:

        EAPadPRO2=” =============== Telegram bot “;

        ==input ENUM_UPDATE_MODE TG_UpdateMode=UPDATE_SLOW –> Update Mode. Timer speed, to receive commands from Telegram bot. The faster the timer runs, the more computer resources will be used! Please do not change it unnecessarily. 2sec,3sec,10sec

        ==TG_PRIORITY=TG_HOME_VPS –> Priority of work. This is the priority mode when the Telegram bot works on the MetaQuotes VPS server and your home computer.

        TG_HOME_ONLY=1, // Only the HOME bot. The Telegram bot works only on the home computer.

        TG_VPS_ONLY=2, // Only the VPS bot. The Telegram bot works only on the MetaQuotes VPS server.

        TG_VPS_HOME=3, // First VPS bot, second HOME bot. The Telegram bot works on the MetaQuotes VPS server if you upload it to the server. If not, it will work on your home terminal. Check the work on the VPS server every 10 minutes.

        TG_HOME_VPS=4, // First HOME bot, second VPS bot. The Telegram bot works on a home computer, but if the home computer/terminal is turned off, it will work on the VPS server from MetaQuotes. Check the VPS server’s work every 10 minutes.

        Attention! Screenshots are not available on the VPS server from MetaQuotes!

        ==TG_Token=”” –> Token bot. Token (unique code) of the bot that will send notifications and receive commands

        ==TG_ChannelName=”” –> –> Public Channel Name @. Or “private” ID starts -100 of the private channel. That will send notifications about opening/closing/modification/errors and screenshots from the terminal.

        ==TG_UserNameFilter=”” –> Whitelist Usernames. List of users, starting with @, who can use the bot.

        Attention! Sending notifications and working with commands takes computer resources! Use the Telegram bot only for your own needs.

        ==TG_UseBotTimer=false;//TG_UseBotTimer –> Working with the bot from the phone

        New notification type added to EAPADPRO panel settings:

        ==Notice Open TG – Send a notification to the Telegram channel if a trade is open;

        ==Notice Close TG – Send a notification to the Telegram channel if a trade is closed;

        ==Notice Modify TG – Send a notification to the Telegram channel if a trade is modified;

        ==Notice Error TG – Send a notification to the Telegram channel if an error is received;

        ==ScreenShot TG – Send a screenshot to the Telegram channel if a trade is opened or closed;

        Attention! This is a beta version of working with the Telegram bot. We are working on improving and adding new features.

        If you have any suggestions, please write in the “Comments” section.

        EA xCustomEA: Universal Trading Advisor for iCustom Indicators - Image 64

        ===========================================================================================

        Improvement: Code optimization to increase speed.

        Improvement: The speed of the panel update in the strategy tester is now calculated automatically depending on the speed of quotes arrival.

        This is done to increase the speed of the program in the strategy tester.

        Information update is now equal to 1 real second.

        Improvement: The speed of the program running EAPADPRO in the strategy tester.

        Attention! Events in the strategy tester are processed only when a new tick is created.

        If a new tick (minimum price movement) is not created, then the panel waits for the next tick.

        With Visualization:

        Version 48: 390sec (TickSniper 2024-2024)

        Version 55: 244sec >>159% (TickSniper 2024-2024)

        w/o Visualization:

        Version 48: 363sec (TickSniper 2020-2024)

        Version 55: 220sec >>165% (TickSniper 2020-2024)

        with Visualization:

        Version 48: 15750sec (TickSniper 2020-2024)

        Version 55: 6220sec >>253% (TickSniper 2020-2024)

        Improvement: The color of the button to close a position on the chart changes depending on the current profit of this position.

        Improvement: Graphic improvements to optimize the Expert Advisor’s performance

        Improvement: The account deposit Symbol is cent ¢, USD $, or eur €. All others are the first letter of the deposit currency name.

        Improvement: When visual testing is completed, objects are not removed from the graph.

        Improvement: When creating screenshots after opening/closing positions, the EAPAPDPRO Control Panel will be expanded to show full information.

        This is done in order to study the trading history of Expert Advisor on the visualization graph after testing is completed.

        Fixed: Managing positions and orders from the chart when the panel is minimized.

        Fixed: Corrected the error of clearing the chart from unused order labels.

        Fixed: AutoSize when switching charts.

        Fixed: Drawing errors to Print when the Expert Advisor runs on “VPS MQL MetaQuotes”

         

         

        Version 24.126 2024.01.26

        EAPADPRO v47
        DynamicLot for Non-Currency Symbols fixed

        New inputs:
        Commission_Coefficient –> Commission coefficient (default 2)
        DynamicLotStopLoss –> The calculation lot from StopLoss and free margin

        Version 23.913 2023.09.19

        -EAPADPRO v44
        ——————————
        -Last Build Compilation

        Version 23.101 2023.01.08

        -EAPADPRO v43 (Added new languages)
        -Last Build Compilation

        Version 22.130 2022.01.30

        Обновление индикатора ZigZag

        Version 22.110 2022.01.12

        Fixed a bug with drawing objects for new versions of MT5 terminal

        Version 21.971 2021.11.10

        Update EAPADPRO

        Version 21.958 2021.10.28

        -EAPADPRO v42 (Added new languages, Added Auto-pause when opening a new bar in the Strategy Tester)
        -MT5:
        Added the type of indicator signals (xColorArrow with 1 Buffer and 2 colors), for which the signal arrows have 2 different colors (DRAW_COLOR_ARROW)
        When using the xColorArrow signal type, you need to set the following values:
        SignalBuferforBUY = Buffer number for arrows (Check with the author) or by empirically calculating this buffer number.
        SignalBuferforSELL = The number of the color buffer for these arrows (Check with the author), usually following the arrow buffer.
        Attention! This type supports 2 colors, where:
        0 (the first color of the arrow) is a signal to open a BUY;
        1 (the first color of the arrow) is a signal to open SELL;
        If your indicator has these colors reversed, then you can additionally use the Signal_Reverse parameter
        For more information, we have made an example of using such an indicator with a DRAW_COLOR_ARROW buffer!
        An example of using: https://www.mql5.com/ru/market/product/32116#!tab=comments&page=13&comment=25503972

        Version 21.953 2021.10.23

        -Модернизация сигнала от xArrow для некоторых индикаторов.

        Version 21.923 2021.09.24

        Recompiling in the latest version of the terminal

        Version 21.904 2021.09.04

        Recompiled in the latest version of the MetaTrader terminal

        Version 21.813 2021.08.13

        –Global update of The xCustomEA!
        In the block for selecting the type of signal / filter SignalTypeIndicator / FilterTypeIndicator:
        Added signals and filters for standard indicators from our Expert Advisor The X!
        $$$ THE X MT4: https://www.mql5.com/en/market/product/11536
        $$$ THE X MT5: https://www.mql5.com/en/market/product/1230
        All 20 standard signals and filters have been added as the main signal / Filter / Signal to close positions!
        You can use the standard indicator signals and filters from our The X along with your custom indicator signals.
        This means that you can filter custom indicator signals from the market or the Internet using our standard filters.
        And also use our standard strategies from The X as the main signal and apply a custom indicator as a filter!
        A description of each signal and filter can be found in the user manual for The X: https://www.mql5.com/en/blogs/post/680043
        Attention: when you select Standard Indicators, the SignalNameIndicator / SIGNALStrategyInputs / SignalBuferforBUY / SignalBuferforSELL fields do not work!
        Attention: when you select Standard Indicators, the FilterNameIndicator / FilterStrategyInputs / FilterBuferforBUY / FilterBuferforSELL fields do not work!

        – Added the TrailingStart = Starting point for the start of the Trailing function to the Trailingstop block.
        The Expert Advisor will turn on the TrailingStop function when the position gains TrailingStart profit points.
        If TrailingStart = 0 then TrailingStart = TrailingStop !!!

        Version 21.724 2021.07.24

        Added handling of SIGNALStrategyInputs settings for .wav and .bmp files

        Version 21.616 2021.06.16

        Update for Update

        Version 21.612 2021.06.12

        EAPADPRO v40 update, according to the new rules for using the MQL5 Market

        Version 21.527 2021.05.27

        Исправлена работа ClosePositionifChangeOWNSignal = OnlyIfProfit при работе с TypeTradeBUYSELL = Only Sell

        Version 21.520 2021.05.21

        A new parameter has been added to the “Averaging” block:

        — CloseFirstAfterMaxAverage – Close the first averaging deal (the very first of the currently open averaging deals),

        when the advisor has opened the maximum number of deals with the MaxOrdersOpen parameter.

        If you want to keep a fixed number of Averager grid items (e.g. 5 grid items),

        the smallest element must be closed with a loss when the 6th element is opened.

        For example:

        CloseFirstAfterMaxAverage = false MaxOrdersOpen = 5:

        If the EA opens the maximum number of averaging deals, which is set by MaxOrdersOpen = 5,

        then the next averaging deal cannot be opened.

        CloseFirstAfterMaxAverage = true MaxOrdersOpen = 5:

        If the EA opens the maximum number of averaging deals, which is set by MaxOrdersOpen = 5,

        then the first averaging trade is closed and the next trade is opened.

        ================================================== ================================================== ======================

        – A new parameter has been added to the “Additional opening” block:

        — CloseFirstAfterMaxAdd – Close the first additional opening deal along the trend (the very first of the current open deals),

        when the EA opened the maximum number of deals with the MaxOrdersOpenAdditionalOpening parameter.

        Same as CloseFirstAfterMaxAverage Paramter.

        Version 21.517 2021.05.17

        — EAPADPRO v39

        — Added custom optimization criteria in genetic mode when choosing the Custom Max optimization mode.
        You can set the minimum values ??at which the optimization will take into account the result during genetic enumeration!

        In other words: You can set a condition: “the minimum number of deals” (or other parameters),
        upon which this run will be counted as a result.

        If during selection the advisor opens fewer deals than specified in the settings, then this run of the optimizer will not be counted as a result!

        –Attention! For advanced users only.

        OnTester_Min_Trades = 0; // Min Deals for optimization
        OnTester_Min_Profit = 0; // Min Profit for optimization
        OnTester_Min_ProfitFactor = 0; // Min ProfitFactor for optimization
        OnTester_Min_Balance = 0; // Min Balance for optimization
        OnTester_Min_Equity = 0; // Min Equity for optimization
        OnTester_Max_Balance_DD = 0; // Max Balance DD% for optimization
        OnTester_Max_Equity_DD = 0; // Max Equity DD% for optimization

        – You can find a detailed description of this block of settings in the user manual!

        Version 21.425 2021.04.25

        Work with the StopTrading button has been modernized. Fixed a bug with random permission of signals to open positions when minimizing the panel.

        Version 21.313 2021.03.13

        EAPADPRO v38
        –Fixed the main signal reversal error when using the Signal_Reverse (true) and ClosePositionifChangeOWNSignal (OnyProfit) functions.

        Version 21.216 2021.02.16

        Added new parameters of Lots when opening a position by signals:
        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)

        Version 20.731 2020.07.31

        MT5: Fixed the conflict of the Additional Opening when using a common stop loss (StopLossALL) and a common trailing stop.

        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.
        eg:
        Right: ExpforexTheX
        Not Right: Expforex The X Set # 12345

        Version 20.212 2020.02.12

        – EAPADPRO v35
        – 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

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

        EAPADPRO v31.

        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

        ReloadReload

        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.

        Reviews about xCustomEA

        Atila R Akdeniz

        ⭐⭐⭐⭐⭐


        Atila R Akdeniz
        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.

        Deniz90

        ⭐⭐⭐⭐⭐


        Deniz90
        Excellent EA, providing endless opportunities. The author is very helpful and responsive, definitely recommended.

        Manuel Sanchez

        ⭐⭐⭐⭐⭐


        Manuel Sanchez
        Great EA. Just do your homework and you will find a good strategy. I love the interface panel. 5 start. Thanks to the programmer.

        leachimk

        ⭐⭐⭐⭐⭐


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

        ROBERT URBANSKI

        ⭐⭐⭐⭐⭐


        ROBERT URBANSKI
        I rent this EA for one month for testing. I give 5 stars in begin for Suport. After month I will update info about EA but now I can tell. It have many interesting settings. I tried work with many custom indicator (not build). Works very impresive.

        DadeSubandryo

        ⭐⭐⭐⭐⭐


        DadeSubandryo
        Great support for consumers. still learning stage & EA started to work as i want. I will update the stars & comments if necessary. Thank you

        julia-Tkachenko

        ⭐⭐⭐⭐⭐


        julia-Tkachenko
        Супер навороченный комбайн на стандартных индюках. Класс!

        189114nickynomates

        ⭐⭐⭐⭐⭐


        189114nickynomates
        This has opened up a whole new world to my trading. The concept is pure brilliant. The forums very informative and you always get help to questions detailed in the correct way. The biggest gain I have received is widening my understanding of the scope that can be achieved in cleaver trading with this ea. Keep up the good work.

        Sammy Boy

        ⭐⭐⭐⭐⭐


        Sammy Boy
        Excellent EA. Vladislav has put in great effort to come up with such sophisticated EA

        Pia Basson


        Pia Basson 2022.08.23 18:17
        I bought this EA hoping to convert my indicators into trading EAs. No luck, it does not work, and the instructions are incomplete and half translated from Russian , and when I requested support, I followed their instructions to provide full descriptions of problem together with screen shots, they then replied and wrote that they don't support this product - they don't support users to even get started or learn to make their software work - how useless. I strongly do not recommend this product. It shows promise but does not deliver. I am sure that just a proper user manual would solve this problem - I checked all their links, blogs, etc. I am now $129 out of pocket a week of time wasted trying to make it work.
        Vladislav Andruschenko
        Reply from developer Vladislav 2022.08.23 20:20
        I don't have the technical ability to help. before buying, you can use the product for free. until we have peace, I cannot work. sorry.

        Franco Alves

        ⭐⭐⭐⭐⭐


        Franco Alves
        Very good!!

        Stanimir Stanchev

        ⭐⭐⭐⭐⭐


        Stanimir Stanchev
        I am using xCustomEA for two months and i am extreamly happy with it and the support i'd received from Vladislav. His Exp4 Tester PAD for Strategy Tester is also very useful when it comes to test a strategy in visual mode. My favorite developer as of now!

        Valter Oliveira

        ⭐⭐⭐⭐⭐


        Valter Oliveira
        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.

        Hanxyork

        ⭐⭐⭐⭐⭐


        Hanxyork
        I purchased the xCustomEA few days ago, Vladislav answered all my questions quickly, he is very professional, responsible, knowledgeable, honest and dedicated, he helped me to start up my xCustomEA in a VPS. I am buying more of his products, definitely. Thank you very much Vladislav.

        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
        Советник с неограниченными возможностями.

        Mohamed Irushad Rasheed

        ⭐⭐⭐⭐⭐


        Mohamed Irushad Rasheed 2019.10.14 22:54
        looks promising . i will update the review after a month.

        Al Bundy


        Al Bundy 2021.08.14 09:26 ==================================================================================================================== ***** Very best EA on market. With new update, you are topping yourself :-)) ! Congratulations! I am very ambitious, but it's so rich with features for grid, averaging, ... I can only be satisfied. Technically I just have one wish: one (or a few) of parameters for custom indicators in separate fields, for iterations of strategy tester. (1. Field for custom indicator, 2. Replaces {with comma separated} custom parameter x) If I will be unsuccessful in trading, it is certainly not due to this advisor! Al Bundy
        Update 3.4.2022 Zero stars Complete useless EA... Meanwhile I programmed my own EA and so I know, how easy my suggestions could have been implemented. The indicators are worthless, because no good parameters to set. Some are buggy. Even a single moving average trend filter is not possible to set. Update 18.11.2021 Issue 7 solved. Stars upgraded. My wish for hedging same pair in direction of trend is also obsolete. I studied the mathematical theory and it can gain nothing. (+1 -1 = 0) (+1 -1.1 = -0.1) == (+0 -0.1 = -0.1) but additional spread,slip,commission, lower equity, margin. This understanding has burst my illusion... ======================================================================= Update 17.11.2021 *---- Not one single issue is solved so long - very bad support. Mainly Gold for 10.000 sells - I'm so proud of you - this should only given for 10.000 succesful traders or solutions... Meanwhile my real account is 25% in draw down, because this expert has only very risky averaging martingale against the trend. EA can nothing do to solve this big issue! I have to solve it with another EA or manually. Shame it! Till there is no function for opening a position with the trend when reaching stop loss (instead of closing position), this EA is NOT to recommend. For instance ADX is not usable for me without two additional fields: 1. Time frame (I want to filter with W1) 2. ADX minimum level. The standard (25) is not good. Many thanks for your advise to use strategy tester with cloud network (in your manuals and web page of your expert advisor). There is no negative balance protection and this is not communicated. So my test run 45 minutes and I'm billed with $812,- I would like this advisor, but all these issues reduces my score again. Maybe eventually I get support or this EA will be better, than I think of better rating again. I'm tired to read always why something doesn't work. Best regards ========================================================================================================== Update 14. Oct 2021 ***-- Next star is gone, because an EA without a good indicator is useless... It seems, that many functions are not possible to function if one uses a custom indicator with this EA. See following issue number 7. Since it is not possible to optimize parameters (see 16) and others are too complex, it lacks of at least four major functions. So it seems better to use an EA with integrated indicator signals. ========================================================== 14.10.2021 Addition to issue 6. Sometimes the calculated values of my indicator are changed or not used. My indicator delivers stop loss. I check stop level but nonetheless xCustom uses SL=0 !!!!! This is a NO GO! Journal: 2021.10.14 22:01:12.612 2021.09.20 21:24:03 OPEN DEAL sy=EURUSD op=1 ll=0.16 sl=-1 tp=-1 But I have set an Indicator and a buffer number for stop loss! Issue 18. In strategy tester virtual stop loss doesn't work! ==================================================================================================================== 7.10.2021 BUMP - When are you willing to answer all my questions? Seems as there is no support... ==================================================================================================================== 2021-09-27 ****- Meanwhile there are several inconsistencies, which I recognized. It is possible, that the causes are elsewhere, but so long I can't find out. 5. I have written an indicator with arrow buffers, but not all arrows are caught - what can be wrong? (Some can bet got with OWNSIGNAL_shift=0!) 6. I deliver SL and TP, but they are sometimes not set. I have included spread and corrected the values against stoplevel. In journal there is no error. 7. With another indicator I use iCustom with a second indicator to convert non-arrow buffers to arrow buffers. My indicator receives the signal at bar 1. The bar number to receive the signal in xCustomEA can't be lower than 2 to get the signals - is this a fact? If so, double indis are not usable. 8. Some times there are errors related to the parameter without error number and metatrader freezes. They are gone if SignalStrategyInputs="". 9. in Strategy Tester visual mode it trades normal, in non visual I get a flat line. How comes? 10. If I set OnTester_custom_max = STAT_PROFIT_TRADES_PERCENT I always get 0. 11. I want to filter trades with FilterTypeIndicator = "Moving Average". If SMA200 goes up it should allow buy, if it goes down it should allow sell. Other should be prohibited. How can I do this? 12. I want the simplest setup: Indicator with up/down arrows, SL=50, TP=50, no other confounding factors. I couldn't find out since 3 months! Is this not possible? That just can't be true! 13. Documentation lacks at a few places - TrailingStart, standard indicators. 14. I can't find out how to set parameters so, that trailing starts at 0. It is too complex for me to understand MovingInWLUse + LevelWLoss + LevelProfit + TrailingStart + TrailingStep. There should be a few examples in documentation for different usage. I need 3 cases: Trailing starts at SL, Trailing starts at 0, Trailing starts at 50. Rest is ballasted. 15. I need a solution for stopping multiple consecutive stop losses like written before (2021-09-20)! 16. It is awfully well to make fields for parameters and to optimize them. I have written an EA with 60 int, 60 double and 60 bool parameters, which are compound to 60 and delivered to iCustom. They can be optimized. After 3 months 12 hours per day 7 times the week learning trading, learning MQL5, coding, testing, trying, I have no satisfying combination from bought or self made indicators with xCustomEA. Either no/poor profits or large draw downs. Maybe this is forex...   ================================================== 2021.09.20 00:10 #237 DE - copy from comments ***-- Hi, after heavy strategy testing I have a few wishes: 1. Your EA has "Open Opposite Position After Stop Loss" - I'm missing "Open Opposite Position After Close Pos If Change". 2. I can't get rid of cascades of Stop Loss losses (eg.: March 2020, Feb 2021, July 2021 , which egalize all previous profits. So I wish "Minutes Pause from Trading After (multiple/heavy) Stop Loss", to wait till the time of worst trading is over. 3. Withdrawal in tester: starting balance 1000. If balance greater than 1100 withdraw to 1000. I think this is how many trader are doing. 4. Don't trade during important news. I hope you can see the importance of these enhancements. Many thanks in advance BUMP, because of long time no response!
        Vladislav Andruschenko
        Reply from developer Vladislav 2021.11.18 15:38
        Hello, thank you. Unfortunately this is not possible. Optimization of indicator parameters in the Expert Advisor is not available. Because the advisor does not initially know the number and type of parameters. Parameters are filled in as a string and passed as variables to the indicator. there are many nuances here. You're lying! I answer every question you have. First, you gave me 5, then you started to lower the grade for not answering you, but this is not true! I answer every question you have! https://www.mql5.com/en/market/product/32116#!tab=comments&page=13&comment=25238753 next Answer: https://www.mql5.com/ru/market/product/32116#!tab=comments&page=14&comment=25950119 next answer: https://www.mql5.com/en/market/product/32116#!tab=comments&page=13&comment=25822275

        jewboy


        jewboy 2019.07.22 17:50
        i bought this EA yesterday and with the help of Vladislav, it is working smoothly. I will make it work on different fx pairs. Thanks again for your time Vladislav

        talha8877

        ⭐⭐⭐⭐⭐


        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

        ⭐⭐⭐⭐⭐


        mckingwo 2018.11.27 09:31
        This Ea is good !

        Comments about xCustomEA

        Leave a Reply

        Your email address will not be published. Required fields are marked *

        Extra

        Navigation by tabs

        This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어

        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


           

          Risk Warning:


          Past trading performance does not guarantee future results.

          Trading foreign exchange on margin carries a high degree of risk and may not be suitable for all investors.

          Be aware that using trading robots involves substantial risk, and you could lose more than your initial investment.

          Please proceed with caution, assess your financial situation carefully, and consider seeking advice from a qualified professional.

          Disclaimer

          This website uses cookies to improve your experience. By using this website you agree to our Data Protection Policy and Disclaimer.
          Read More