![Library for easy and quick development of MetaTrader programs (part XXIII): Base trading class - verification of valid parameters](https://c.mql5.com/2/37/MQL5-avatar-doeasy__5.png)
![Library for easy and quick development of MetaTrader programs (part XXIII): Base trading class - verification of valid parameters](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXIII): Base trading class - verification of valid parameters
In the article, we continue the development of the trading class by implementing the control over incorrect trading order parameter values and voicing trading events.
![Studying candlestick analysis techniques (part IV): Updates and additions to Pattern Analyzer](https://c.mql5.com/2/35/Logo__3.png)
![Studying candlestick analysis techniques (part IV): Updates and additions to Pattern Analyzer](https://c.mql5.com/i/articles/overlay.png)
Studying candlestick analysis techniques (part IV): Updates and additions to Pattern Analyzer
The article presents a new version of the Pattern Analyzer application. This version provides bug fixes and new features, as well as the revised user interface. Comments and suggestions from previous article were taken into account when developing the new version. The resulting application is described in this article.
![Applying OLAP in trading (part 1): Online analysis of multidimensional data](https://c.mql5.com/2/36/OLAP_02.png)
![Applying OLAP in trading (part 1): Online analysis of multidimensional data](https://c.mql5.com/i/articles/overlay.png)
Applying OLAP in trading (part 1): Online analysis of multidimensional data
The article describes how to create a framework for the online analysis of multidimensional data (OLAP), as well as how to implement this in MQL and to apply such analysis in the MetaTrader environment using the example of trading account history processing.
![A Universal Channel with the Graphical Interface](https://c.mql5.com/2/26/MQL5-avatar-Universalni-oscilyator-001.png)
![A Universal Channel with the Graphical Interface](https://c.mql5.com/i/articles/overlay.png)
A Universal Channel with the Graphical Interface
All channel indicators are displayed as three lines, including central, top and bottom lines. The drawing principle of the central line is similar to a moving average, while the moving average indicator is mostly used for drawing channels. The top and bottom lines are located at equal distances from the central line. This distance can be determined in points, as percent of price (the Envelopes indicator), using a standard deviation value (Bollinger Bands), or an ATR value (Keltner channel).
![Custom presentation of trading history and creation of report diagrams](https://c.mql5.com/2/32/CreateCustomeReport.png)
![Custom presentation of trading history and creation of report diagrams](https://c.mql5.com/i/articles/overlay.png)
Custom presentation of trading history and creation of report diagrams
The article describes custom methods for assessing the trading history. Two classes have been written for downloading and analyzing history. The first of them collects the trading history and represents it as a summary table. The second one deals with statistics: it calculates a number of variables and builds charts for a more efficient evaluation of trading results.
![The power of ZigZag (part II). Examples of receiving, processing and displaying data](https://c.mql5.com/2/35/MQL5-avatar-zigzag_head__1.png)
![The power of ZigZag (part II). Examples of receiving, processing and displaying data](https://c.mql5.com/i/articles/overlay.png)
The power of ZigZag (part II). Examples of receiving, processing and displaying data
In the first part of the article, I have described a modified ZigZag indicator and a class for receiving data of that type of indicators. Here, I will show how to develop indicators based on these tools and write an EA for tests that features making deals according to signals formed by ZigZag indicator. As an addition, the article will introduce a new version of the EasyAndFast library for developing graphical user interfaces.
![Deep Neural Networks (Part VI). Ensemble of neural network classifiers: bagging](https://c.mql5.com/2/48/Deep_Neural_Networks_06.png)
![Deep Neural Networks (Part VI). Ensemble of neural network classifiers: bagging](https://c.mql5.com/i/articles/overlay.png)
Deep Neural Networks (Part VI). Ensemble of neural network classifiers: bagging
The article discusses the methods for building and training ensembles of neural networks with bagging structure. It also determines the peculiarities of hyperparameter optimization for individual neural network classifiers that make up the ensemble. The quality of the optimized neural network obtained in the previous article of the series is compared with the quality of the created ensemble of neural networks. Possibilities of further improving the quality of the ensemble's classification are considered.
![Universal Expert Advisor: Pending Orders and Hedging Support (Part 5)](https://c.mql5.com/2/22/xmz7zeb9vyt_ftv2.png)
![Universal Expert Advisor: Pending Orders and Hedging Support (Part 5)](https://c.mql5.com/i/articles/overlay.png)
Universal Expert Advisor: Pending Orders and Hedging Support (Part 5)
This article provides further description of the CStrategy trading engine. By popular demand of users, we have added pending order support functions to the trading engine. Also, the latest version of the MetaTrader 5 now supports accounts with the hedging option. The same support has been added to CStrategy. The article provides a detailed description of algorithms for the use of pending orders, as well as of CStrategy operation principles on accounts with the hedging option enabled.
![How to master Machine Learning](https://c.mql5.com/2/49/howtomaster_ml_600x314.jpg)
How to master Machine Learning
Check out this selection of useful materials which can assist traders in improving their algorithmic trading knowledge. The era of simple algorithms is passing, and it is becoming harder to succeed without the use of Machine Learning techniques and Neural Networks.
![Practical evaluation of the adaptive market following method](https://c.mql5.com/2/29/MQL5-avatar-adaptiveMethod-001.png)
![Practical evaluation of the adaptive market following method](https://c.mql5.com/i/articles/overlay.png)
Practical evaluation of the adaptive market following method
The main difference of the trading system proposed in the article is the use of mathematical tools for analyzing stock quotes. The system applies digital filtering and spectral estimation of discrete time series. The theoretical aspects of the strategy are described and a test Expert Advisor is created.
![Limitations and Verifications in Expert Advisors](https://c.mql5.com/2/0/restrictions_in_Experts_MQL5__1.png)
![Limitations and Verifications in Expert Advisors](https://c.mql5.com/i/articles/overlay.png)
Limitations and Verifications in Expert Advisors
Is it allowed to trade this symbol on Monday? Is there enough money to open position? How big is the loss if Stop Loss triggers? How to limit the number of pending orders? Was the trade operation executed at the current bar or at the previous one? If a trade robot cannot perform this kind of verifications, then any trade strategy can turn into a losing one. This article shows the examples of verifications that are useful in any Expert Advisor.
![Cross-Platform Expert Advisor: Orders](https://c.mql5.com/2/24/Expert_Advisor_Introduction__3.png)
![Cross-Platform Expert Advisor: Orders](https://c.mql5.com/i/articles/overlay.png)
Cross-Platform Expert Advisor: Orders
MetaTrader 4 and MetaTrader 5 uses different conventions in processing trade requests. This article discusses the possibility of using a class object that can be used to represent the trades processed by the server, in order for a cross-platform expert advisor to further work on them, regardless of the version of the trading platform and mode being used.
![A New Approach to Interpreting Classic and Hidden Divergence. Part II](https://c.mql5.com/2/37/new_approach_divergence.png)
![A New Approach to Interpreting Classic and Hidden Divergence. Part II](https://c.mql5.com/i/articles/overlay.png)
A New Approach to Interpreting Classic and Hidden Divergence. Part II
The article provides a critical examination of regular divergence and efficiency of various indicators. In addition, it contains filtering options for an increased analysis accuracy and features description of non-standard solutions. As a result, we will create a new tool for solving the technical task.
![Indicator for Kagi Charting](https://c.mql5.com/2/0/LOGO.png)
![Indicator for Kagi Charting](https://c.mql5.com/i/articles/overlay.png)
Indicator for Kagi Charting
The article proposes Kagi chart indicator with various charting options and additional functions. Also, indicator charting principle and its MQL5 implementation features are considered. The most popular cases of its implementation in trading are displayed - Yin/Yang exchange strategy, pushing away from the trend line and consistently increasing "shoulders"/decreasing "waists".
![Graphical Interfaces I: Animating the Graphical Interface (Chapter 3)](https://c.mql5.com/2/21/Graphic-interface__2.png)
![Graphical Interfaces I: Animating the Graphical Interface (Chapter 3)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces I: Animating the Graphical Interface (Chapter 3)
In the previous article, we started developing a form class for controls. In this article, we are going to continue doing that by filling this class with methods for moving a form over the chart area. We will then integrate this interface component into the core of the library. Also, we will ensure that the color of a form control changes when the mouse cursor is hovering over it.
![Learn how to design a trading system by Envelopes](https://c.mql5.com/2/45/why-and-how__3.png)
![Learn how to design a trading system by Envelopes](https://c.mql5.com/i/articles/overlay.png)
Learn how to design a trading system by Envelopes
In this article, I will share with you one of the methods of how to trade bands. This time we will consider Envelopes and will see how easy it is to create some strategies based on the Envelopes.
![Timeseries in DoEasy library (part 40): Library-based indicators - updating data in real time](https://c.mql5.com/2/38/MQL5-avatar-doeasy-library__5.png)
![Timeseries in DoEasy library (part 40): Library-based indicators - updating data in real time](https://c.mql5.com/i/articles/overlay.png)
Timeseries in DoEasy library (part 40): Library-based indicators - updating data in real time
The article considers the development of a simple multi-period indicator based on the DoEasy library. Let's improve the timeseries classes to receive data from any timeframes to display it on the current chart period.
![Creating a new trading strategy using a technology of resolving entries into indicators](https://c.mql5.com/2/30/MQL5-avatar-New_trade_system-002.png)
![Creating a new trading strategy using a technology of resolving entries into indicators](https://c.mql5.com/i/articles/overlay.png)
Creating a new trading strategy using a technology of resolving entries into indicators
The article suggests a technology helping everyone to create custom trading strategies by assembling an individual indicator set, as well as to develop custom market entry signals.
![The Simple Example of Creating an Indicator Using Fuzzy Logic](https://c.mql5.com/2/0/Fuzzy_logic_MQL5.png)
![The Simple Example of Creating an Indicator Using Fuzzy Logic](https://c.mql5.com/i/articles/overlay.png)
The Simple Example of Creating an Indicator Using Fuzzy Logic
The article is devoted to the practical application of the fuzzy logic concept for financial markets analysis. We propose the example of the indicator generating signals based on two fuzzy rules based on Envelopes indicator. The developed indicator uses several indicator buffers: 7 buffers for calculations, 5 buffers for the charts display and 2 color buffers.
![Cross-Platform Expert Advisor: Order Manager](https://c.mql5.com/2/28/Expert_Advisor_Introduction__2.png)
![Cross-Platform Expert Advisor: Order Manager](https://c.mql5.com/i/articles/overlay.png)
Cross-Platform Expert Advisor: Order Manager
This article discusses the creation of an order manager for a cross-platform expert advisor. The order manager is responsible for the entry and exit of orders or positions entered by the expert, as well as for keeping an independent record of such trades that is usable for both versions.
![Library for easy and quick development of MetaTrader programs (part IV): Trading events](https://c.mql5.com/2/35/MQL5-avatar-doeasy__3.png)
![Library for easy and quick development of MetaTrader programs (part IV): Trading events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part IV): Trading events
In the previous articles, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. We already have collections of historical orders and deals, market orders and positions, as well as the class for convenient selection and sorting of orders. In this part, we will continue the development of the base object and teach the Engine Library to track trading events on the account.
![Graphical Interfaces III: Simple and Multi-Functional Buttons (Chapter 1)](https://c.mql5.com/2/22/Graphic-interface_3__1.png)
![Graphical Interfaces III: Simple and Multi-Functional Buttons (Chapter 1)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces III: Simple and Multi-Functional Buttons (Chapter 1)
Let us consider the button control. We will discuss examples of several classes for creating a simple button, buttons with extended functionality (icon button and split button) and interconnected buttons (button groups and radio button). Added to that, we will introduce some additions to existing classes for controls to broaden their capability.
![How to earn money by fulfilling traders' orders in the Freelance service](https://c.mql5.com/2/80/How-to-MQL5-Freelance_600x314.jpg)
How to earn money by fulfilling traders' orders in the Freelance service
MQL5 Freelance is an online service where developers are paid to create trading applications for traders customers. The service has been successfully operating since 2010, with over 100,000 projects completed to date, totaling $7 million in value. As we can see, a substantial amount of money is involved here.
![MQL5 Cookbook: Using Indicators to Set Trading Conditions in Expert Advisors](https://c.mql5.com/2/0/Avatar__1.png)
![MQL5 Cookbook: Using Indicators to Set Trading Conditions in Expert Advisors](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Using Indicators to Set Trading Conditions in Expert Advisors
In this article, we will continue to modify the Expert Advisor we have been working on throughout the preceding articles of the MQL5 Cookbook series. This time, the Expert Advisor will be enhanced with indicators whose values will be used to check position opening conditions. To spice it up, we will create a drop-down list in the external parameters to be able to select one out of three trading indicators.
![MQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Price](https://c.mql5.com/2/0/Pending_Orders_Trading_MQ5_Wizard_signals.png)
![MQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Price](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Price
The article describes a method of modifying the code of a trading signal module for the implementation of the functionality allowing you to set pending orders at any distance from the current price: it may be the Close or Open price of the previous bar or the value of the moving average. There are plenty of options. Important is that you can set any opening price for a pending order. This article will be useful to traders who trade with pending orders.
![Use MQL5.community channels and group chats](https://c.mql5.com/2/43/chats.png)
![Use MQL5.community channels and group chats](https://c.mql5.com/i/articles/overlay.png)
Use MQL5.community channels and group chats
The MQL5.com website brings together traders from all over the world. Users publish articles, share free codes, sell products in the Market, perform Freelance orders and copy trading signals. You can communicate with them on the Forum, in trader chats and in MetaTrader channels.
![R-squared as an estimation of quality of the strategy balance curve](https://c.mql5.com/2/30/eoezuq_R-hwedkf3.png)
![R-squared as an estimation of quality of the strategy balance curve](https://c.mql5.com/i/articles/overlay.png)
R-squared as an estimation of quality of the strategy balance curve
This article describes the construction of the custom optimization criterion R-squared. This criterion can be used to estimate the quality of a strategy's balance curve and to select the most smoothly growing and stable strategies. The work discusses the principles of its construction and statistical methods used in estimation of properties and quality of this metric.
![Timeseries in DoEasy library (part 41): Sample multi-symbol multi-period indicator](https://c.mql5.com/2/38/MQL5-avatar-doeasy-library__6.png)
![Timeseries in DoEasy library (part 41): Sample multi-symbol multi-period indicator](https://c.mql5.com/i/articles/overlay.png)
Timeseries in DoEasy library (part 41): Sample multi-symbol multi-period indicator
In the article, we will consider a sample multi-symbol multi-period indicator using the timeseries classes of the DoEasy library displaying the chart of a selected currency pair on a selected timeframe as candles in a subwindow. I am going to modify the library classes a bit and create a separate file for storing enumerations for program inputs and selecting a compilation language.
![Practical application of neural networks in trading. It's time to practice](https://c.mql5.com/2/49/Practical_application_of_neural_networks_in_trading_002_600x314.jpg)
Practical application of neural networks in trading. It's time to practice
The article provides a description and instructions for the practical use of neural network modules on the Matlab platform. It also covers the main aspects of creation of a trading system using the neural network module. In order to be able to introduce the complex within one article, I had to modify it so as to combine several neural network module functions in one program.
![Visualizing optimization results using a selected criterion](https://c.mql5.com/2/32/VisualizeBest100.png)
![Visualizing optimization results using a selected criterion](https://c.mql5.com/i/articles/overlay.png)
Visualizing optimization results using a selected criterion
In the article, we continue to develop the MQL application for working with optimization results. This time, we will show how to form the table of the best results after optimizing the parameters by specifying another criterion via the graphical interface.
![Using OpenCL to test candlestick patterns](https://c.mql5.com/2/34/OpenCL_for_candle_patterns.png)
![Using OpenCL to test candlestick patterns](https://c.mql5.com/i/articles/overlay.png)
Using OpenCL to test candlestick patterns
The article describes the algorithm for implementing the OpenCL candlestick patterns tester in the "1 minute OHLC" mode. We will also compare its speed with the built-in strategy tester launched in the fast and slow optimization modes.
![An Example of a Trading Strategy Based on Timezone Differences on Different Continents](https://c.mql5.com/2/0/5g6ovfni.png)
![An Example of a Trading Strategy Based on Timezone Differences on Different Continents](https://c.mql5.com/i/articles/overlay.png)
An Example of a Trading Strategy Based on Timezone Differences on Different Continents
Surfing the Internet, it is easy to find many strategies, which will give you a number of various recommendations. Let’s take an insider’s approach and look into the process of strategy creation, based on the differences in timezones on different continents.
![MQL5 Wizard: How to Create a Risk and Money Management Module](https://c.mql5.com/2/0/CMoney_MQL5.png)
![MQL5 Wizard: How to Create a Risk and Money Management Module](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: How to Create a Risk and Money Management Module
The generator of trading strategies of the MQL5 Wizard greatly simplifies testing of trading ideas. The article describes how to develop a custom risk and money management module and enable it in the MQL5 Wizard. As an example we've considered a money management algorithm, in which the size of the trade volume is determined by the results of the previous deal. The structure and format of description of the created class for the MQL5 Wizard are also discussed in the article.
![Applying the probability theory to trading gaps](https://c.mql5.com/2/34/Gap_Probability.png)
![Applying the probability theory to trading gaps](https://c.mql5.com/i/articles/overlay.png)
Applying the probability theory to trading gaps
In this article, we will apply the probability theory and mathematical statistics methods to creating and testing trading strategies. We will also look for optimal trading risk using the differences between the price and the random walk. It is proved that if prices behave like a zero-drift random walk (with no directional trend), then profitable trading is impossible.
![Using WinInet in MQL5. Part 2: POST Requests and Files](https://c.mql5.com/2/0/Wininet_partII.png)
![Using WinInet in MQL5. Part 2: POST Requests and Files](https://c.mql5.com/i/articles/overlay.png)
Using WinInet in MQL5. Part 2: POST Requests and Files
In this article, we continue studying the principles of working with Internet using HTTP requests and exchange of information with server. It describes new functions of the CMqlNet class, methods of sending information from forms and sending of files using POST requests as well as authorization on websites under your login using Cookies.
![Time Series Forecasting Using Exponential Smoothing (continued)](https://c.mql5.com/2/0/Exponent_Smoothing2.png)
![Time Series Forecasting Using Exponential Smoothing (continued)](https://c.mql5.com/i/articles/overlay.png)
Time Series Forecasting Using Exponential Smoothing (continued)
This article seeks to upgrade the indicator created earlier on and briefly deals with a method for estimating forecast confidence intervals using bootstrapping and quantiles. As a result, we will get the forecast indicator and scripts to be used for estimation of the forecast accuracy.
![Library for easy and quick development of MetaTrader programs (part XXV): Handling errors returned by the trade server](https://c.mql5.com/2/37/MQL5-avatar-doeasy__12.png)
![Library for easy and quick development of MetaTrader programs (part XXV): Handling errors returned by the trade server](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXV): Handling errors returned by the trade server
After we send a trading order to the server, we need to check the error codes or the absence of errors. In this article, we will consider handling errors returned by the trade server and prepare for creating pending trading requests.
![How to Write a Good Description for a Market Product](https://c.mql5.com/2/0/avatar__27.png)
![How to Write a Good Description for a Market Product](https://c.mql5.com/i/articles/overlay.png)
How to Write a Good Description for a Market Product
MQL5 Market has many products for sale but some of their descriptions leave much to be desired. Many texts are obviously in need of improvement, as common traders are not able to comprehend them. This article will help you to put your product in a favorable light. Use our recommendations to write an eye-catching description that will easily show your customers what exactly you are selling.
![MQL5 Cookbook: Sound Notifications for MetaTrader 5 Trade Events](https://c.mql5.com/2/0/avatar__8.png)
![MQL5 Cookbook: Sound Notifications for MetaTrader 5 Trade Events](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Sound Notifications for MetaTrader 5 Trade Events
In this article, we will consider such issues as including sound files in the file of the Expert Advisor, and thus adding sound notifications to trade events. The fact that the files will be included means that the sound files will be located inside the Expert Advisor. So when giving the compiled version of the Expert Advisor (*.ex5) to another user, you will not have to also provide the sound files and explain where they need to be saved.
![Analyzing trading results using HTML reports](https://c.mql5.com/2/35/MQL5_html_trade_analyse.png)
![Analyzing trading results using HTML reports](https://c.mql5.com/i/articles/overlay.png)
Analyzing trading results using HTML reports
The MetaTrader 5 platform features functionality for saving trading reports, as well as Expert Advisor testing and optimization reports. Trading and testing reports can be saved in two formats: XLSX and HTML, while the optimization report can be saved in XML. In this article we consider the HTML testing report, the XML optimization report and the HTML trading history report.