![MQL5 Cookbook: Processing of the TradeTransaction Event](https://c.mql5.com/2/11/MQL5_Recipes_OnTradeTransaction_MetaTrader5.png)
![MQL5 Cookbook: Processing of the TradeTransaction Event](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Processing of the TradeTransaction Event
This article considers capabilities of the MQL5 language from the point of view of the event-driven programming. The greatest advantage of this approach is that the program can receive information about phased implementation of a trade operation. The article also contains an example of receiving and processing information about ongoing trade operation using the TradeTransaction event handler. In my opinion, such an approach can be used for copying deals from one terminal to another.
![Library for easy and quick development of MetaTrader programs (part XII): Account object class and collection of account objects](https://c.mql5.com/2/36/MQL5-avatar-doeasy__7.png)
![Library for easy and quick development of MetaTrader programs (part XII): Account object class and collection of account objects](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XII): Account object class and collection of account objects
In the previous article, we defined position closure events for MQL4 in the library and got rid of the unused order properties. Here we will consider the creation of the Account object, develop the collection of account objects and prepare the functionality for tracking account events.
![Graphical Interfaces V: The Vertical and Horizontal Scrollbar (Chapter 1)](https://c.mql5.com/2/22/v-avatar__2.png)
![Graphical Interfaces V: The Vertical and Horizontal Scrollbar (Chapter 1)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces V: The Vertical and Horizontal Scrollbar (Chapter 1)
We are still discussing the development of the library for creating graphical interfaces in the MetaTrader environment. In the first article of the fifth part of the series, we will write classes for creating vertical and horizontal scrollbars.
![Learn how to design a trading system by Awesome Oscillator](https://c.mql5.com/2/49/Learn_how_to_design_a_trading_system_by_Awesome_Oscillator_600x314.jpg)
Learn how to design a trading system by Awesome Oscillator
In this new article in our series, we will learn about a new technical tool that may be useful in our trading. It is the Awesome Oscillator (AO) indicator. We will learn how to design a trading system by this indicator.
![Graphical Interfaces IX: The Progress Bar and Line Chart Controls (Chapter 2)](https://c.mql5.com/2/23/IX__1.png)
![Graphical Interfaces IX: The Progress Bar and Line Chart Controls (Chapter 2)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces IX: The Progress Bar and Line Chart Controls (Chapter 2)
The second chapter of the part nine is dedicated to the progress bar and line chart controls. As always, there will be detailed examples provided to reveal how these controls can be used in custom MQL applications.
![MQL5 Cookbook: ОСО Orders](https://c.mql5.com/2/17/OCO-Orders-MetaTrader5.png)
![MQL5 Cookbook: ОСО Orders](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: ОСО Orders
Any trader's trading activity involves various mechanisms and interrelationships including relations among orders. This article suggests a solution of OCO orders processing. Standard library classes are extensively involved, as well as new data types are created herein.
![Implementation of Indicators as Classes by Examples of Zigzag and ATR](https://c.mql5.com/2/0/indicator_boxed.png)
![Implementation of Indicators as Classes by Examples of Zigzag and ATR](https://c.mql5.com/i/articles/overlay.png)
Implementation of Indicators as Classes by Examples of Zigzag and ATR
Debate about an optimal way of calculating indicators is endless. Where should we calculate the indicator values - in the indicator itself or embed the entire logic in a Expert Advisor that uses it? The article describes one of the variants of moving the source code of a custom indicator iCustom right in the code of an Expert Advisor or script with optimization of calculations and modeling the prev_calculated value.
![How to Become a Successful Signal Provider on MQL5.com](https://c.mql5.com/2/55/How_to_Become_a_Successful_Signal_Provider-copy_600x314.jpg)
How to Become a Successful Signal Provider on MQL5.com
My main goal in this article is to provide you with a simple and accurate account of the steps that will help you become a top signal provider on MQL5.com. Drawing upon my knowledge and experience, I will explain what it takes to become a successful signal provider, including how to find, test, and optimize a good strategy. Additionally, I will provide tips on publishing your signal, writing a compelling description and effectively promoting and managing it.
![Developing a cross-platform grider EA (part III): Correction-based grid with martingale](https://c.mql5.com/2/36/mql5_ea_adviser_grid__1.png)
![Developing a cross-platform grider EA (part III): Correction-based grid with martingale](https://c.mql5.com/i/articles/overlay.png)
Developing a cross-platform grider EA (part III): Correction-based grid with martingale
In this article, we will make an attempt to develop the best possible grid-based EA. As usual, this will be a cross-platform EA capable of working both with MetaTrader 4 and MetaTrader 5. The first EA was good enough, except that it could not make a profit over a long period of time. The second EA could work at intervals of more than several years. Unfortunately, it was unable to yield more than 50% of profit per year with a maximum drawdown of less than 50%.
![CCI indicator. Upgrade and new features](https://c.mql5.com/2/49/cci_indicator_new_features_600x314.jpg)
CCI indicator. Upgrade and new features
In this article, I will consider the possibility of upgrading the CCI indicator. Besides, I will present a modification of the indicator.
![Graphical Interfaces IV: Informational Interface Elements (Chapter 1)](https://c.mql5.com/2/22/iv-avatar.png)
![Graphical Interfaces IV: Informational Interface Elements (Chapter 1)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces IV: Informational Interface Elements (Chapter 1)
At the current stage of development, the library for creating graphical interfaces contains a form and several controls that can be attached to it. It was mentioned before that one of the future articles would be dedicated to the multi-window mode. Now, we have everything ready for that and we will deal with it in the following chapter. In this chapter, we will write classes for creating the status bar and tooltip informational interface elements.
![Building a Social Technology Startup, Part II: Programming an MQL5 REST Client](https://c.mql5.com/2/10/tecla-twitter.png)
![Building a Social Technology Startup, Part II: Programming an MQL5 REST Client](https://c.mql5.com/i/articles/overlay.png)
Building a Social Technology Startup, Part II: Programming an MQL5 REST Client
Let's now shape the PHP-based Twitter idea which was introduced in the first part of this article. We are assembling the different parts of the SDSS. Regarding the client side of the system architecture, we are relying on the new MQL5 WebRequest() function for sending trading signals via HTTP.
![The Prototype of a Trading Robot](https://c.mql5.com/2/0/Prototype_Expert_Advisor_MQL5.png)
![The Prototype of a Trading Robot](https://c.mql5.com/i/articles/overlay.png)
The Prototype of a Trading Robot
This article summarizes and systematizes the principles of creating algorithms and elements of trading systems. The article considers designing of expert algorithm. As an example the CExpertAdvisor class is considered, which can be used for quick and easy development of trading systems.
![Graphical Interfaces VII: The Tabs Control (Chapter 2)](https://c.mql5.com/2/23/avatar-vii__1.png)
![Graphical Interfaces VII: The Tabs Control (Chapter 2)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces VII: The Tabs Control (Chapter 2)
The first chapter of seventh part introduced three classes of controls for creating tables: text label table (CLabelsTable), edit box table (CTable) and rendered table (CCanvasTable). In this article (chapter two) we are going to consider the Tabs control.
![DoEasy. Controls (Part 25): Tooltip WinForms object](https://c.mql5.com/2/50/doeasy_025_600x314.jpg)
DoEasy. Controls (Part 25): Tooltip WinForms object
In this article, I will start developing the Tooltip control, as well as new graphical primitives for the library. Naturally, not every element has a tooltip, but every graphical object has the ability to set it.
![Creating a comprehensive Owl trading strategy](https://c.mql5.com/2/0/Example_of_creating_a_comprehensive_trading_strategy_600x314.jpg)
Creating a comprehensive Owl trading strategy
My strategy is based on the classic trading fundamentals and the refinement of indicators that are widely used in all types of markets. This is a ready-made tool allowing you to follow the proposed new profitable trading strategy.
![Testing Performance of Moving Averages Calculation in MQL5](https://c.mql5.com/2/0/moving_averages_performance_MQL5__1.png)
![Testing Performance of Moving Averages Calculation in MQL5](https://c.mql5.com/i/articles/overlay.png)
Testing Performance of Moving Averages Calculation in MQL5
A number of indicators have appeared since the time of first Moving Average indicator creation. Many of them use the similar smoothing methods, but the performances of different moving averages algorithms have not been studied. In this article, we will consider possible ways of use the Moving Averages in MQL5 and compare their performance.
![How to Add New UI Languages to the MetaTrader 5 Platform](https://c.mql5.com/2/0/language.png)
![How to Add New UI Languages to the MetaTrader 5 Platform](https://c.mql5.com/i/articles/overlay.png)
How to Add New UI Languages to the MetaTrader 5 Platform
User interface of the MetaTrader 5 platform is translated into several languages. Don't worry if your native language is not among the supported ones. You can easily complete the translation using the special MetaTrader 5 MultiLanguage Pack utility, offered by MetaQuotes Software Corp. for free to all comers. In this article we will show some examples of how to add a new user interface languages to the MetaTrader 5 platform.
![Brute force approach to pattern search (Part IV): Minimal functionality](https://c.mql5.com/2/49/Brute_force_approach_to_pattern_search_004_600x314.jpg)
Brute force approach to pattern search (Part IV): Minimal functionality
The article presents an improved brute force version, based on the goals set in the previous article. I will try to cover this topic as broadly as possible using Expert Advisors with settings obtained using this method. A new program version is attached to this article.
![Interview with Alexey Masterov (ATC 2012)](https://c.mql5.com/2/0/avatar_reinhardf17.png)
![Interview with Alexey Masterov (ATC 2012)](https://c.mql5.com/i/articles/overlay.png)
Interview with Alexey Masterov (ATC 2012)
We do our best to introduce all the leading Championship Participants to our audience in reasonable time. To achieve that, we closely monitor the most promising contestants in our TOP-10 and arrange interviews with them. However, the sharp rise of Alexey Masterov (reinhard) up to the third place has become a real surprise!
![Econometric Approach to Analysis of Charts](https://c.mql5.com/2/0/econometrics.png)
![Econometric Approach to Analysis of Charts](https://c.mql5.com/i/articles/overlay.png)
Econometric Approach to Analysis of Charts
This article describes the econometric methods of analysis, the autocorrelation analysis and the analysis of conditional variance in particular. What is the benefit of the approach described here? Use of the non-linear GARCH models allows representing the analyzed series formally from the mathematical point of view and creating a forecast for a specified number of steps.
![Using cloud storage services for data exchange between terminals](https://c.mql5.com/2/28/7l8-fbt8.png)
![Using cloud storage services for data exchange between terminals](https://c.mql5.com/i/articles/overlay.png)
Using cloud storage services for data exchange between terminals
Cloud technologies are becoming more popular. Nowadays, we can choose between paid and free storage services. Is it possible to use them in trading? This article proposes a technology for exchanging data between terminals using cloud storage services.
![Connecting NeuroSolutions Neuronets](https://c.mql5.com/2/0/neural_DLL.png)
![Connecting NeuroSolutions Neuronets](https://c.mql5.com/i/articles/overlay.png)
Connecting NeuroSolutions Neuronets
In addition to creation of neuronets, the NeuroSolutions software suite allows exporting them as DLLs. This article describes the process of creating a neuronet, generating a DLL and connecting it to an Expert Advisor for trading in MetaTrader 5.
![Event handling in MQL5: Changing MA period on-the-fly](https://c.mql5.com/2/0/How_Change_Period_Moving_Average_on_the_fly_MQL5__1.png)
![Event handling in MQL5: Changing MA period on-the-fly](https://c.mql5.com/i/articles/overlay.png)
Event handling in MQL5: Changing MA period on-the-fly
Suppose that simple MA (Moving Average) indicator with period 13 is applied to a chart. And we want to change the period to 20, but we do not want to go to indicator properties dialog box and edit the number 13 to 20: simply tired of these tedious actions with mouse and keyboard. And especially we don't want to open indicator code and modify it. We want to do all this with a single press of a button - "up arrows" next to the numeric keypad. In this article I'll describe how to do it.
![Video: Simple automated trading – How to create a simple Expert Advisor with MQL5](https://c.mql5.com/2/46/simple-automated-trading.png)
![Video: Simple automated trading – How to create a simple Expert Advisor with MQL5](https://c.mql5.com/i/articles/overlay.png)
Video: Simple automated trading – How to create a simple Expert Advisor with MQL5
The majority of students in my courses felt that MQL5 was really difficult to understand. In addition to this, they were searching for a straightforward method to automate a few processes. Find out how to begin working with MQL5 right now by reading the information contained in this article. Even if you have never done any form of programming before. And even in the event that you are unable to comprehend the previous illustrations that you have observed.
![MQL5 Cookbook: Position Properties on the Custom Info Panel](https://c.mql5.com/2/0/Info-Panel-avatar.png)
![MQL5 Cookbook: Position Properties on the Custom Info Panel](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Position Properties on the Custom Info Panel
This time we will create a simple Expert Advisor that will get position properties on the current symbol and display them on the custom info panel during manual trading. The info panel will be created using graphical objects and displayed information will be refreshed at every tick. This is going to be much more convenient than all the time having to manually run the script described in the previous article of the series called "MQL5 Cookbook: Getting Position Properties".
![Library for easy and quick development of MetaTrader programs (part XI). Compatibility with MQL4 - Position closure events](https://c.mql5.com/2/36/MQL5-avatar-doeasy__6.png)
![Library for easy and quick development of MetaTrader programs (part XI). Compatibility with MQL4 - Position closure events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XI). Compatibility with MQL4 - Position closure events
We continue the development of a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. In the tenth part, we resumed our work on the library compatibility with MQL4 and defined the events of opening positions and activating pending orders. In this article, we will define the events of closing positions and get rid of the unused order properties.
![Statistical Probability Distributions in MQL5](https://c.mql5.com/2/0/MQL5_Probability_Distibutions.png)
![Statistical Probability Distributions in MQL5](https://c.mql5.com/i/articles/overlay.png)
Statistical Probability Distributions in MQL5
The article addresses probability distributions (normal, log-normal, binomial, logistic, exponential, Cauchy distribution, Student's t-distribution, Laplace distribution, Poisson distribution, Hyperbolic Secant distribution, Beta and Gamma distribution) of random variables used in Applied Statistics. It also features classes for handling these distributions.
![Combinatorics and probability for trading (Part IV): Bernoulli Logic](https://c.mql5.com/2/44/ieu9.png)
![Combinatorics and probability for trading (Part IV): Bernoulli Logic](https://c.mql5.com/i/articles/overlay.png)
Combinatorics and probability for trading (Part IV): Bernoulli Logic
In this article, I decided to highlight the well-known Bernoulli scheme and to show how it can be used to describe trading-related data arrays. All this will then be used to create a self-adapting trading system. We will also look for a more generic algorithm, a special case of which is the Bernoulli formula, and will find an application for it.
![Drawing Dial Gauges Using the CCanvas Class](https://c.mql5.com/2/19/gg_cases.png)
![Drawing Dial Gauges Using the CCanvas Class](https://c.mql5.com/i/articles/overlay.png)
Drawing Dial Gauges Using the CCanvas Class
We can find dial gauges in cars and airplanes, in industrial production and everyday life. They are used in all spheres which require quick response to behavior of a controlled value. This article describes the library of dial gauges for MetaTrader 5.
![MVC design pattern and its possible application](https://c.mql5.com/2/42/MVC.png)
![MVC design pattern and its possible application](https://c.mql5.com/i/articles/overlay.png)
MVC design pattern and its possible application
The article discusses a popular MVC pattern, as well as the possibilities, pros and cons of its usage in MQL programs. The idea is to split an existing code into three separate components: Model, View and Controller.
![Self-organizing feature maps (Kohonen maps) - revisiting the subject](https://c.mql5.com/2/20/jursbu_z7z.png)
![Self-organizing feature maps (Kohonen maps) - revisiting the subject](https://c.mql5.com/i/articles/overlay.png)
Self-organizing feature maps (Kohonen maps) - revisiting the subject
This article describes techniques of operating with Kohonen maps. The subject will be of interest to both market researchers with basic level of programing in MQL4 and MQL5 and experienced programmers that face difficulties with connecting Kohonen maps to their projects.
![How to Prepare MetaTrader 5 Quotes for Other Applications](https://c.mql5.com/2/0/ava__1.png)
![How to Prepare MetaTrader 5 Quotes for Other Applications](https://c.mql5.com/i/articles/overlay.png)
How to Prepare MetaTrader 5 Quotes for Other Applications
The article describes the examples of creating directories, copying data, filing, working with the symbols in Market Watch or the common list, as well as the examples of handling errors, etc. All these elements can eventually be gathered in a single script for filing the data in a user-defined format.
![Improve Your Trading Charts With Interactive GUI's in MQL5 (Part III): Simple Movable Trading GUI](https://c.mql5.com/2/57/movable_gui_003_600x314.jpg)
Improve Your Trading Charts With Interactive GUI's in MQL5 (Part III): Simple Movable Trading GUI
Join us in Part III of the "Improve Your Trading Charts With Interactive GUIs in MQL5" series as we explore the integration of interactive GUIs into movable trading dashboards in MQL5. This article builds on the foundations set in Parts I and II, guiding readers to transform static trading dashboards into dynamic, movable ones.
![MQL5 Wizard: How to Create a Module of Trailing of Open Positions](https://c.mql5.com/2/0/MQL5_Wizard_Trailing_Stop__1.png)
![MQL5 Wizard: How to Create a Module of Trailing of Open Positions](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: How to Create a Module of Trailing of Open Positions
The generator of trade strategies MQL5 Wizard greatly simplifies the testing of trading ideas. The article discusses how to write and connect to the generator of trade strategies MQL5 Wizard your own class of managing open positions by moving the Stop Loss level to a lossless zone when the price goes in the position direction, allowing to protect your profit decrease drawdowns when trading. It also tells about the structure and format of the description of the created class for the MQL5 Wizard.
![Other classes in DoEasy library (Part 66): MQL5.com Signals collection class](https://c.mql5.com/2/42/MQL5-avatar-doeasy-library__4.png)
![Other classes in DoEasy library (Part 66): MQL5.com Signals collection class](https://c.mql5.com/i/articles/overlay.png)
Other classes in DoEasy library (Part 66): MQL5.com Signals collection class
In this article, I will create the signal collection class of the MQL5.com Signals service with the functions for managing signals. Besides, I will improve the Depth of Market snapshot object class for displaying the total DOM buy and sell volumes.
![Separate optimization of a strategy on trend and flat conditions](https://c.mql5.com/2/35/Frame_2.png)
![Separate optimization of a strategy on trend and flat conditions](https://c.mql5.com/i/articles/overlay.png)
Separate optimization of a strategy on trend and flat conditions
The article considers applying the separate optimization method during various market conditions. Separate optimization means defining trading system's optimal parameters by optimizing for an uptrend and downtrend separately. To reduce the effect of false signals and improve profitability, the systems are made flexible, meaning they have some specific set of settings or input data, which is justified because the market behavior is constantly changing.
![Learn how to design a trading system by Relative Vigor Index](https://c.mql5.com/2/49/Learn-how-to-design-a-trading-system-by-Relative-Vigor-Index_600x314.jpg)
Learn how to design a trading system by Relative Vigor Index
A new article in our series about how to design a trading system by the most popular technical indicator. In this article, we will learn how to do that by the Relative Vigor Index indicator.
![Technical Indicators and Digital Filters](https://c.mql5.com/2/0/Indicators_as_digital_filters_MQL5.png)
![Technical Indicators and Digital Filters](https://c.mql5.com/i/articles/overlay.png)
Technical Indicators and Digital Filters
In this article, technical indicators are treated as digital filters. Operation principles and basic characteristics of digital filters are explained. Also, some practical ways of receiving the filter kernel in MetaTrader 5 terminal and integration with a ready-made spectrum analyzer proposed in the article "Building a Spectrum Analyzer" are considered. Pulse and spectrum characteristics of the typical digital filters are used as examples.
![Graphical Interfaces II: the Separation Line and Context Menu Elements (Chapter 2)](https://c.mql5.com/2/22/Graphic-interface-part2__1.png)
![Graphical Interfaces II: the Separation Line and Context Menu Elements (Chapter 2)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces II: the Separation Line and Context Menu Elements (Chapter 2)
In this article we will create the separation line element. It will be possible to use it not only as an independent interface element but also as a part of many other elements. After that, we will have everything required for the development of the context menu class, which will be also considered in this article in detail. Added to that, we will introduce all necessary additions to the class, which is the base for storing pointers to all the elements of the graphical interface of the application.