![Population optimization algorithms: Artificial Bee Colony (ABC)](https://c.mql5.com/2/50/artificial_bee_colony_600x314.jpg)
Population optimization algorithms: Artificial Bee Colony (ABC)
In this article, we will study the algorithm of an artificial bee colony and supplement our knowledge with new principles of studying functional spaces. In this article, I will showcase my interpretation of the classic version of the algorithm.
![Non-linear indicators](https://c.mql5.com/2/50/non_linear_indicators_600x314.jpg)
Non-linear indicators
In this article, I will make an attempt to consider some ways of building non-linear indicators and their use in trading. There are quite a few indicators in the MetaTrader trading platform that use non-linear approaches.
![DoEasy. Controls (Part 27): Working on ProgressBar WinForms object](https://c.mql5.com/2/50/doeasy_027_600x314.jpg)
DoEasy. Controls (Part 27): Working on ProgressBar WinForms object
In this article, I will continue the development of the ProgressBar control. In particular, I will create the functionality for managing the progress bar and visual effects.
![DoEasy. Controls (Part 26): Finalizing the ToolTip WinForms object and moving on to ProgressBar development](https://c.mql5.com/2/50/doeasy_026_600x314.jpg)
DoEasy. Controls (Part 26): Finalizing the ToolTip WinForms object and moving on to ProgressBar development
In this article, I will complete the development of the ToolTip control and start the development of the ProgressBar WinForms object. While working on objects, I will develop universal functionality for animating controls and their components.
![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.
![Population optimization algorithms: Ant Colony Optimization (ACO)](https://c.mql5.com/2/50/popular_algorithm_ant_colony_optimization_600x314.jpg)
Population optimization algorithms: Ant Colony Optimization (ACO)
This time I will analyze the Ant Colony optimization algorithm. The algorithm is very interesting and complex. In the article, I make an attempt to create a new type of ACO.
![DoEasy. Controls (Part 24): Hint auxiliary WinForms object](https://c.mql5.com/2/50/doeasy_024_600x314.jpg)
DoEasy. Controls (Part 24): Hint auxiliary WinForms object
In this article, I will revise the logic of specifying the base and main objects for all WinForms library objects, develop a new Hint base object and several of its derived classes to indicate the possible direction of moving the separator.
![Adaptive indicators](https://c.mql5.com/2/50/adaptive_indicators_600x314.jpg)
Adaptive indicators
In this article, I will consider several possible approaches to creating adaptive indicators. Adaptive indicators are distinguished by the presence of feedback between the values of the input and output signals. This feedback allows the indicator to independently adjust to the optimal processing of financial time series values.
![DoEasy. Controls (Part 23): Improving TabControl and SplitContainer WinForms objects](https://c.mql5.com/2/50/Do_Easy_Part_23_600x314.jpg)
DoEasy. Controls (Part 23): Improving TabControl and SplitContainer WinForms objects
In this article, I will add new mouse events relative to the boundaries of the working areas of WinForms objects and fix some shortcomings in the functioning of the TabControl and SplitContainer controls.
![DoEasy. Controls (Part 22): SplitContainer. Changing the properties of the created object](https://c.mql5.com/2/49/DoEasy_22_SplitContainer_600x314.jpg)
DoEasy. Controls (Part 22): SplitContainer. Changing the properties of the created object
In the current article, I will implement the ability to change the properties and appearance of the newly created SplitContainer control.
![Developing an Expert Advisor from scratch (Part 30): CHART TRADE as an indicator?](https://c.mql5.com/2/49/Developing_a_trading_Expert_Advisor_010_600x314.jpg)
Developing an Expert Advisor from scratch (Part 30): CHART TRADE as an indicator?
Today we are going to use Chart Trade again, but this time it will be an on-chart indicator which may or may not be present on the chart.
![Population optimization algorithms: Particle swarm (PSO)](https://c.mql5.com/2/49/cover_PSO_600x314.jpg)
Population optimization algorithms: Particle swarm (PSO)
In this article, I will consider the popular Particle Swarm Optimization (PSO) algorithm. Previously, we discussed such important characteristics of optimization algorithms as convergence, convergence rate, stability, scalability, as well as developed a test stand and considered the simplest RNG algorithm.
![DoEasy. Controls (Part 21): SplitContainer control. Panel separator](https://c.mql5.com/2/49/doeasy_021_600x314.jpg)
DoEasy. Controls (Part 21): SplitContainer control. Panel separator
In this article, I will create the class of an auxiliary panel separator object for the SplitContainer control.
![DoEasy. Controls (Part 20): SplitContainer WinForms object](https://c.mql5.com/2/49/doeasy_020_600x314.jpg)
DoEasy. Controls (Part 20): SplitContainer WinForms object
In the current article, I will start developing the SplitContainer control from the MS Visual Studio toolkit. This control consists of two panels separated by a vertical or horizontal movable separator.
![Developing a trading Expert Advisor from scratch (Part 29): The talking platform](https://c.mql5.com/2/49/Developing_a_trading_Expert_Advisor_009_600x314.jpg)
Developing a trading Expert Advisor from scratch (Part 29): The talking platform
In this article, we will learn how to make the MetaTrader 5 platform talk. What if we make the EA more fun? Financial market trading is often too boring and monotonous, but we can make this job less tiring. Please note that this project can be dangerous for those who experience problems such as addiction. However, in a general case, it just makes things less boring.
![DoEasy. Controls (Part 19): Scrolling tabs in TabControl, WinForms object events](https://c.mql5.com/2/49/doeasy_019_600x314.jpg)
DoEasy. Controls (Part 19): Scrolling tabs in TabControl, WinForms object events
In this article, I will create the functionality for scrolling tab headers in TabControl using scrolling buttons. The functionality is meant to place tab headers into a single line from either side of the control.
![DoEasy. Controls (Part 18): Functionality for scrolling tabs in TabControl](https://c.mql5.com/2/49/doeasy_018_600x314.jpg)
DoEasy. Controls (Part 18): Functionality for scrolling tabs in TabControl
In this article, I will place header scrolling control buttons in TabControl WinForms object in case the header bar does not fit the size of the control. Besides, I will implement the shift of the header bar when clicking on the cropped tab header.
![Developing a trading Expert Advisor from scratch (Part 28): Towards the future (III)](https://c.mql5.com/2/49/Developing_a_trading_Expert_Advisor_007_600x314.jpg)
Developing a trading Expert Advisor from scratch (Part 28): Towards the future (III)
There is still one task which our order system is not up to, but we will FINALLY figure it out. The MetaTrader 5 provides a system of tickets which allows creating and correcting order values. The idea is to have an Expert Advisor that would make the same ticket system faster and more efficient.
![DoEasy. Controls (Part 17): Cropping invisible object parts, auxiliary arrow buttons WinForms objects](https://c.mql5.com/2/49/doeasy_017_600x314.jpg)
DoEasy. Controls (Part 17): Cropping invisible object parts, auxiliary arrow buttons WinForms objects
In this article, I will create the functionality for hiding object sections located beyond their containers. Besides, I will create auxiliary arrow button objects to be used as part of other WinForms objects.
![DoEasy. Controls (Part 16): TabControl WinForms object — several rows of tab headers, stretching headers to fit the container](https://c.mql5.com/2/49/doeasy_016_600x314.jpg)
DoEasy. Controls (Part 16): TabControl WinForms object — several rows of tab headers, stretching headers to fit the container
In this article, I will continue the development of TabControl and implement the arrangement of tab headers on all four sides of the control for all modes of setting the size of headers: Normal, Fixed and Fill To Right.
![DIY technical indicator](https://c.mql5.com/2/48/drawing-indicator__1.png)
![DIY technical indicator](https://c.mql5.com/i/articles/overlay.png)
DIY technical indicator
In this article, I will consider the algorithms allowing you to create your own technical indicator. You will learn how to obtain pretty complex and interesting results with very simple initial assumptions.
![Market math: profit, loss and costs](https://c.mql5.com/2/48/z7jdvip34mo_2022-08-18_235145181.png)
![Market math: profit, loss and costs](https://c.mql5.com/i/articles/overlay.png)
Market math: profit, loss and costs
In this article, I will show you how to calculate the total profit or loss of any trade, including commission and swap. I will provide the most accurate mathematical model and use it to write the code and compare it with the standard. Besides, I will also try to get on the inside of the main MQL5 function to calculate profit and get to the bottom of all the necessary values from the specification.
![Developing a trading Expert Advisor from scratch (Part 27): Towards the future (II)](https://c.mql5.com/2/49/Developing_a_trading_Expert_Advisor_006_600x314.jpg)
Developing a trading Expert Advisor from scratch (Part 27): Towards the future (II)
Let's move on to a more complete order system directly on the chart. In this article, I will show a way to fix the order system, or rather, to make it more intuitive.
![DoEasy. Controls (Part 15): TabControl WinForms object — several rows of tab headers, tab handling methods](https://c.mql5.com/2/49/doeasy_015_600x314.jpg)
DoEasy. Controls (Part 15): TabControl WinForms object — several rows of tab headers, tab handling methods
In this article, I will continue working on the TabControl WinForm object — I will create a tab field object class, make it possible to arrange tab headers in several rows and add methods for handling object tabs.
![Developing a trading Expert Advisor from scratch (Part 26): Towards the future (I)](https://c.mql5.com/2/49/Developing_a_trading_Expert_Advisor_005_600x314.jpg)
Developing a trading Expert Advisor from scratch (Part 26): Towards the future (I)
Today we will take our order system to the next level. But before that, we need to solve a few problems. Now we have some questions that are related to how we want to work and what things we do during the trading day.
![Developing a trading Expert Advisor from scratch (Part 25): Providing system robustness (II)](https://c.mql5.com/2/49/Developing_a_trading_Expert_Advisor_004_600x314.jpg)
Developing a trading Expert Advisor from scratch (Part 25): Providing system robustness (II)
In this article, we will make the final step towards the EA's performance. So, be prepared for a long read. To make our Expert Advisor reliable, we will first remove everything from the code that is not part of the trading system.
![Population optimization algorithms](https://c.mql5.com/2/48/logo.png)
![Population optimization algorithms](https://c.mql5.com/i/articles/overlay.png)
Population optimization algorithms
This is an introductory article on optimization algorithm (OA) classification. The article attempts to create a test stand (a set of functions), which is to be used for comparing OAs and, perhaps, identifying the most universal algorithm out of all widely known ones.
![DoEasy. Controls (Part 14): New algorithm for naming graphical elements. Continuing work on the TabControl WinForms object](https://c.mql5.com/2/49/doeasy_014_600x314.jpg)
DoEasy. Controls (Part 14): New algorithm for naming graphical elements. Continuing work on the TabControl WinForms object
In this article, I will create a new algorithm for naming all graphical elements meant for building custom graphics, as well as continue developing the TabControl WinForms object.
![DoEasy. Controls (Part 13): Optimizing interaction of WinForms objects with the mouse, starting the development of the TabControl WinForms object](https://c.mql5.com/2/49/doeasy_013_600x314.jpg)
DoEasy. Controls (Part 13): Optimizing interaction of WinForms objects with the mouse, starting the development of the TabControl WinForms object
In this article, I will fix and optimize handling the appearance of WinForms objects after moving the mouse cursor away from the object, as well as start the development of the TabControl WinForms object.
![DoEasy. Controls (Part 12): Base list object, ListBox and ButtonListBox WinForms objects](https://c.mql5.com/2/49/doeasy_012_600x314.jpg)
DoEasy. Controls (Part 12): Base list object, ListBox and ButtonListBox WinForms objects
In this article, I am going to create the base object of WinForms object lists, as well as the two new objects: ListBox and ButtonListBox.
![DoEasy. Controls (Part 11): WinForms objects — groups, CheckedListBox WinForms object](https://c.mql5.com/2/49/doeasy_011_600x314.jpg)
DoEasy. Controls (Part 11): WinForms objects — groups, CheckedListBox WinForms object
The article considers grouping WinForms objects and creation of the CheckBox objects list object.
![DoEasy. Controls (Part 10): WinForms objects — Animating the interface](https://c.mql5.com/2/49/doeasy_010_600x314.jpg)
DoEasy. Controls (Part 10): WinForms objects — Animating the interface
It is time to animate the graphical interface by implementing the functionality for object interaction with users and objects. The new functionality will also be necessary to let more complex objects work correctly.
![Matrix and Vector operations in MQL5](https://c.mql5.com/2/49/Anons_600x314.jpg)
Matrix and Vector operations in MQL5
Matrices and vectors have been introduced in MQL5 for efficient operations with mathematical solutions. The new types offer built-in methods for creating concise and understandable code that is close to mathematical notation. Arrays provide extensive capabilities, but there are many cases in which matrices are much more efficient.
![DoEasy. Controls (Part 9): Re-arranging WinForms object methods, RadioButton and Button controls](https://c.mql5.com/2/49/doeasy_009_600x314.jpg)
DoEasy. Controls (Part 9): Re-arranging WinForms object methods, RadioButton and Button controls
In this article, I will fix the names of WinForms object class methods and create Button and RadioButton WinForms objects.
![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.
![DoEasy. Controls (Part 8): Base WinForms objects by categories, GroupBox and CheckBox controls](https://c.mql5.com/2/49/doeasy_008_600x314.jpg)
DoEasy. Controls (Part 8): Base WinForms objects by categories, GroupBox and CheckBox controls
The article considers creation of 'GroupBox' and 'CheckBox' WinForms objects, as well as the development of base objects for WinForms object categories. All created objects are still static, i.e. they are unable to interact with the mouse.
![Complex indicators made easy using objects](https://c.mql5.com/2/49/Complex-indicators-made-easy-using-objects_600x314.jpg)
Complex indicators made easy using objects
This article provides a method to create complex indicators while also avoiding the problems that arise when dealing with multiple plots, buffers and/or combining data from multiple sources.
![Developing a trading Expert Advisor from scratch (Part 17): Accessing data on the web (III)](https://c.mql5.com/2/49/Developing_a_trading_Expert_Advisor_from_scratch_008_600x314.jpg)
Developing a trading Expert Advisor from scratch (Part 17): Accessing data on the web (III)
In this article we continue considering how to obtain data from the web and to use it in an Expert Advisor. This time we will proceed to developing an alternative system.
![DoEasy. Controls (Part 7): Text label control](https://c.mql5.com/2/49/doeasy_007_600x314.jpg)
DoEasy. Controls (Part 7): Text label control
In the current article, I will create the class of the WinForms text label control object. Such an object will have the ability to position its container anywhere, while its own functionality will repeat the functionality of the MS Visual Studio text label. We will be able to set font parameters for a displayed text.
![DoEasy. Controls (Part 6): Panel control, auto resizing the container to fit inner content](https://c.mql5.com/2/49/doeasy_006_600x314.jpg)
DoEasy. Controls (Part 6): Panel control, auto resizing the container to fit inner content
In the article, I will continue my work on the Panel WinForms object and implement its auto resizing to fit the general size of Dock objects located inside the panel. Besides, I will add the new properties to the Symbol library object.