![Prices in DoEasy library (part 62): Updating tick series in real time, preparation for working with Depth of Market](https://c.mql5.com/2/42/MQL5-avatar-doeasy-library.png)
![Prices in DoEasy library (part 62): Updating tick series in real time, preparation for working with Depth of Market](https://c.mql5.com/i/articles/overlay.png)
Prices in DoEasy library (part 62): Updating tick series in real time, preparation for working with Depth of Market
In this article, I will implement updating tick data in real time and prepare the symbol object class for working with Depth of Market (DOM itself is to be implemented in the next article).
![Prices in DoEasy library (part 61): Collection of symbol tick series](https://c.mql5.com/2/41/MQL5-avatar-doeasy-library__5.png)
![Prices in DoEasy library (part 61): Collection of symbol tick series](https://c.mql5.com/i/articles/overlay.png)
Prices in DoEasy library (part 61): Collection of symbol tick series
Since a program may use different symbols in its work, a separate list should be created for each of them. In this article, I will combine such lists into a tick data collection. In fact, this will be a regular list based on the class of dynamic array of pointers to instances of CObject class and its descendants of the Standard library.
![Prices in DoEasy library (part 60): Series list of symbol tick data](https://c.mql5.com/2/41/MQL5-avatar-doeasy-library__4.png)
![Prices in DoEasy library (part 60): Series list of symbol tick data](https://c.mql5.com/i/articles/overlay.png)
Prices in DoEasy library (part 60): Series list of symbol tick data
In this article, I will create the list for storing tick data of a single symbol and check its creation and retrieval of required data in an EA. Tick data lists that are individual for each used symbol will further constitute a collection of tick data.
![Self-adapting algorithm (Part III): Abandoning optimization](https://c.mql5.com/2/41/50_percents__3.png)
![Self-adapting algorithm (Part III): Abandoning optimization](https://c.mql5.com/i/articles/overlay.png)
Self-adapting algorithm (Part III): Abandoning optimization
It is impossible to get a truly stable algorithm if we use optimization based on historical data to select parameters. A stable algorithm should be aware of what parameters are needed when working on any trading instrument at any time. It should not forecast or guess, it should know for sure.
![Neural networks made easy (Part 10): Multi-Head Attention](https://c.mql5.com/2/49/Neural_Networks_Easy_009_600x314.jpg)
Neural networks made easy (Part 10): Multi-Head Attention
We have previously considered the mechanism of self-attention in neural networks. In practice, modern neural network architectures use several parallel self-attention threads to find various dependencies between the elements of a sequence. Let us consider the implementation of such an approach and evaluate its impact on the overall network performance.
![Developing a self-adapting algorithm (Part II): Improving efficiency](https://c.mql5.com/2/41/50_percents__2.png)
![Developing a self-adapting algorithm (Part II): Improving efficiency](https://c.mql5.com/i/articles/overlay.png)
Developing a self-adapting algorithm (Part II): Improving efficiency
In this article, I will continue the development of the topic by improving the flexibility of the previously created algorithm. The algorithm became more stable with an increase in the number of candles in the analysis window or with an increase in the threshold percentage of the overweight of falling or growing candles. I had to make a compromise and set a larger sample size for analysis or a larger percentage of the prevailing candle excess.
![Brute force approach to pattern search (Part III): New horizons](https://c.mql5.com/2/49/Brute_force_approach_to_pattern_search_003_600x314.jpg)
Brute force approach to pattern search (Part III): New horizons
This article provides a continuation to the brute force topic, and it introduces new opportunities for market analysis into the program algorithm, thereby accelerating the speed of analysis and improving the quality of results. New additions enable the highest-quality view of global patterns within this approach.
![Finding seasonal patterns in the forex market using the CatBoost algorithm](https://c.mql5.com/2/49/finding_seasonal_patterns_catboost_600x314.jpg)
Finding seasonal patterns in the forex market using the CatBoost algorithm
The article considers the creation of machine learning models with time filters and discusses the effectiveness of this approach. The human factor can be eliminated now by simply instructing the model to trade at a certain hour of a certain day of the week. Pattern search can be provided by a separate algorithm.
![The market and the physics of its global patterns](https://c.mql5.com/2/40/5a55ed9f370f2c15608b457b.png)
![The market and the physics of its global patterns](https://c.mql5.com/i/articles/overlay.png)
The market and the physics of its global patterns
In this article, I will try to test the assumption that any system with even a small understanding of the market can operate on a global scale. I will not invent any theories or patterns, but I will only use known facts, gradually translating these facts into the language of mathematical analysis.
![Neural networks made easy (Part 9): Documenting the work](https://c.mql5.com/2/49/Neural_networks_made_easy_008_600x314.jpg)
Neural networks made easy (Part 9): Documenting the work
We have already passed a long way and the code in our library is becoming bigger and bigger. This makes it difficult to keep track of all connections and dependencies. Therefore, I suggest creating documentation for the earlier created code and to keep it updating with each new step. Properly prepared documentation will help us see the integrity of our work.
![Developing a self-adapting algorithm (Part I): Finding a basic pattern](https://c.mql5.com/2/41/50_percents__1.png)
![Developing a self-adapting algorithm (Part I): Finding a basic pattern](https://c.mql5.com/i/articles/overlay.png)
Developing a self-adapting algorithm (Part I): Finding a basic pattern
In the upcoming series of articles, I will demonstrate the development of self-adapting algorithms considering most market factors, as well as show how to systematize these situations, describe them in logic and take them into account in your trading activity. I will start with a very simple algorithm that will gradually acquire theory and evolve into a very complex project.
![Neural networks made easy (Part 8): Attention mechanisms](https://c.mql5.com/2/49/Neural_Networks_Easy_008_600x314.jpg)
Neural networks made easy (Part 8): Attention mechanisms
In previous articles, we have already tested various options for organizing neural networks. We also considered convolutional networks borrowed from image processing algorithms. In this article, I suggest considering Attention Mechanisms, the appearance of which gave impetus to the development of language models.
![Prices in DoEasy library (part 59): Object to store data of one tick](https://c.mql5.com/2/41/MQL5-avatar-doeasy-library__3.png)
![Prices in DoEasy library (part 59): Object to store data of one tick](https://c.mql5.com/i/articles/overlay.png)
Prices in DoEasy library (part 59): Object to store data of one tick
From this article on, start creating library functionality to work with price data. Today, create an object class which will store all price data which arrived with yet another tick.
![Using spreadsheets to build trading strategies](https://c.mql5.com/2/41/spread_sheets_strategy.png)
![Using spreadsheets to build trading strategies](https://c.mql5.com/i/articles/overlay.png)
Using spreadsheets to build trading strategies
The article describes the basic principles and methods that allow you to analyze any strategy using spreadsheets (Excel, Calc, Google). The obtained results are compared with MetaTrader 5 tester.
![Timeseries in DoEasy library (part 58): Timeseries of indicator buffer data](https://c.mql5.com/2/49/doeasy_058_600x314.jpg)
Timeseries in DoEasy library (part 58): Timeseries of indicator buffer data
In conclusion of the topic of working with timeseries organise storage, search and sort of data stored in indicator buffers which will allow to further perform the analysis based on values of the indicators to be created on the library basis in programs. The general concept of all collection classes of the library allows to easily find necessary data in the corresponding collection. Respectively, the same will be possible in the class created today.
![Manual charting and trading toolkit (Part II). Chart graphics drawing tools](https://c.mql5.com/2/49/7908_manual_charting_trading_toolkit_002_600x314.jpg)
Manual charting and trading toolkit (Part II). Chart graphics drawing tools
This is the next article within the series, in which I show how I created a convenient library for manual application of chart graphics by utilizing keyboard shortcuts. The tools used include straight lines and their combinations. In this part, we will view how the drawing tools are applied using the functions described in the first part. The library can be connected to any Expert Advisor or indicator which will greatly simplify the charting tasks. This solution DOES NOT use external dlls, while all the commands are implemented using built-in MQL tools.
![Brute force approach to pattern search (Part II): Immersion](https://c.mql5.com/2/49/Brute_force_approach_to_pattern_search_002_600x314.jpg)
Brute force approach to pattern search (Part II): Immersion
In this article we will continue discussing the brute force approach. I will try to provide a better explanation of the pattern using the new improved version of my application. I will also try to find the difference in stability using different time intervals and timeframes.
![How to make $1,000,000 off algorithmic trading? Use MQL5.com services!](https://c.mql5.com/2/68/earn-million_600x314.jpg)
How to make $1,000,000 off algorithmic trading? Use MQL5.com services!
All traders visit the market with the goal of earning their first million dollars. How to do that without excessive risk and start-up budget? MQL5 services provide such opportunity for developers and traders from around the world.
![Neural networks made easy (Part 7): Adaptive optimization methods](https://c.mql5.com/2/49/Neural_Networks_Easy_007_600x314.jpg)
Neural networks made easy (Part 7): Adaptive optimization methods
In previous articles, we used stochastic gradient descent to train a neural network using the same learning rate for all neurons within the network. In this article, I propose to look towards adaptive learning methods which enable changing of the learning rate for each neuron. We will also consider the pros and cons of this approach.
![Gradient boosting in transductive and active machine learning](https://c.mql5.com/2/49/gradient_boosting_catboost_ml_600x314.jpg)
Gradient boosting in transductive and active machine learning
In this article, we will consider active machine learning methods utilizing real data, as well discuss their pros and cons. Perhaps you will find these methods useful and will include them in your arsenal of machine learning models. Transduction was introduced by Vladimir Vapnik, who is the co-inventor of the Support-Vector Machine (SVM).
![Neural networks made easy (Part 6): Experimenting with the neural network learning rate](https://c.mql5.com/2/49/Neural_Networks_Easy_006_600x314.jpg)
Neural networks made easy (Part 6): Experimenting with the neural network learning rate
We have previously considered various types of neural networks along with their implementations. In all cases, the neural networks were trained using the gradient decent method, for which we need to choose a learning rate. In this article, I want to show the importance of a correctly selected rate and its impact on the neural network training, using examples.
![Optimal approach to the development and analysis of trading systems](https://c.mql5.com/2/40/optimal-approach.png)
![Optimal approach to the development and analysis of trading systems](https://c.mql5.com/i/articles/overlay.png)
Optimal approach to the development and analysis of trading systems
In this article, I will show the criteria to be used when selecting a system or a signal for investing your funds, as well as describe the optimal approach to the development of trading systems and highlight the importance of this matter in Forex trading.
![Timeseries in DoEasy library (part 57): Indicator buffer data object](https://c.mql5.com/2/49/doeasy_057_600x314.jpg)
Timeseries in DoEasy library (part 57): Indicator buffer data object
In the article, develop an object which will contain all data of one buffer for one indicator. Such objects will be necessary for storing serial data of indicator buffers. With their help, it will be possible to sort and compare buffer data of any indicators, as well as other similar data with each other.
![Neural networks made easy (Part 5): Multithreaded calculations in OpenCL](https://c.mql5.com/2/49/Neural_Networks_Easy_005_600x314.jpg)
Neural networks made easy (Part 5): Multithreaded calculations in OpenCL
We have earlier discussed some types of neural network implementations. In the considered networks, the same operations are repeated for each neuron. A logical further step is to utilize multithreaded computing capabilities provided by modern technology in an effort to speed up the neural network learning process. One of the possible implementations is described in this article.
![Timeseries in DoEasy library (part 55): Indicator collection class](https://c.mql5.com/2/49/doeasy_055_600x314.jpg)
Timeseries in DoEasy library (part 55): Indicator collection class
The article continues developing indicator object classes and their collections. For each indicator object create its description and correct collection class for error-free storage and getting indicator objects from the collection list.
![Neural networks made easy (Part 4): Recurrent networks](https://c.mql5.com/2/49/Neural_Networks_Easy_004_600x314.jpg)
Neural networks made easy (Part 4): Recurrent networks
We continue studying the world of neural networks. In this article, we will consider another type of neural networks, recurrent networks. This type is proposed for use with time series, which are represented in the MetaTrader 5 trading platform by price charts.
![Timeseries in DoEasy library (part 54): Descendant classes of abstract base indicator](https://c.mql5.com/2/49/doeasy_054_600x314.jpg)
Timeseries in DoEasy library (part 54): Descendant classes of abstract base indicator
The article considers creation of classes of descendant objects of base abstract indicator. Such objects will provide access to features of creating indicator EAs, collecting and getting data value statistics of various indicators and prices. Also, create indicator object collection from which getting access to properties and data of each indicator created in the program will be possible.
![Brute force approach to pattern search](https://c.mql5.com/2/49/Brute_force_approach_to_pattern_search_001_600x314.jpg)
Brute force approach to pattern search
In this article, we will search for market patterns, create Expert Advisors based on the identified patterns, and check how long these patterns remain valid, if they ever retain their validity.
![Timeseries in DoEasy library (part 53): Abstract base indicator class](https://c.mql5.com/2/49/doeasy_053_600x314.jpg)
Timeseries in DoEasy library (part 53): Abstract base indicator class
The article considers creation of an abstract indicator which further will be used as the base class to create objects of library’s standard and custom indicators.
![Parallel Particle Swarm Optimization](https://c.mql5.com/2/49/Parallel-Particle-Swarm-Optimization_600x314.jpg)
Parallel Particle Swarm Optimization
The article describes a method of fast optimization using the particle swarm algorithm. It also presents the method implementation in MQL, which is ready for use both in single-threaded mode inside an Expert Advisor and in a parallel multi-threaded mode as an add-on that runs on local tester agents.
![Neural networks made easy (Part 3): Convolutional networks](https://c.mql5.com/2/49/Neural_Networks_Easy_003_600x314.jpg)
Neural networks made easy (Part 3): Convolutional networks
As a continuation of the neural network topic, I propose considering convolutional neural networks. This type of neural network are usually applied to analyzing visual imagery. In this article, we will consider the application of these networks in the financial markets.
![Basic math behind Forex trading](https://c.mql5.com/2/40/56.png)
![Basic math behind Forex trading](https://c.mql5.com/i/articles/overlay.png)
Basic math behind Forex trading
The article aims to describe the main features of Forex trading as simply and quickly as possible, as well as share some basic ideas with beginners. It also attempts to answer the most tantalizing questions in the trading community along with showcasing the development of a simple indicator.
![Advanced resampling and selection of CatBoost models by brute-force method](https://c.mql5.com/2/49/Advanced-resampling-and-selection-of-CatBoost-models-by-brute-force-method_600x314.jpg)
Advanced resampling and selection of CatBoost models by brute-force method
This article describes one of the possible approaches to data transformation aimed at improving the generalizability of the model, and also discusses sampling and selection of CatBoost models.
![A scientific approach to the development of trading algorithms](https://c.mql5.com/2/40/algorithm_2.png)
![A scientific approach to the development of trading algorithms](https://c.mql5.com/i/articles/overlay.png)
A scientific approach to the development of trading algorithms
The article considers the methodology for developing trading algorithms, in which a consistent scientific approach is used to analyze possible price patterns and to build trading algorithms based on these patterns. Development ideals are demonstrated using examples.
![Timeseries in DoEasy library (part 50): Multi-period multi-symbol standard indicators with a shift](https://c.mql5.com/2/49/doeasy_050_600x314.jpg)
Timeseries in DoEasy library (part 50): Multi-period multi-symbol standard indicators with a shift
In the article, let’s improve library methods for correct display of multi-symbol multi-period standard indicators, which lines are displayed on the current symbol chart with a shift set in the settings. As well, let’s put things in order in methods of work with standard indicators and remove the redundant code to the library area in the final indicator program.
![Neural networks made easy (Part 2): Network training and testing](https://c.mql5.com/2/49/Neural_Networks_Easy_001_600x314.jpg)
Neural networks made easy (Part 2): Network training and testing
In this second article, we will continue to study neural networks and will consider an example of using our created CNet class in Expert Advisors. We will work with two neural network models, which show similar results both in terms of training time and prediction accuracy.
![What is a trend and is the market structure based on trend or flat?](https://c.mql5.com/2/39/unnamed.png)
![What is a trend and is the market structure based on trend or flat?](https://c.mql5.com/i/articles/overlay.png)
What is a trend and is the market structure based on trend or flat?
Traders often talk about trends and flats but very few of them really understand what a trend/flat really is and even fewer are able to clearly explain these concepts. Discussing these basic terms is often beset by a solid set of prejudices and misconceptions. However, if we want to make profit, we need to understand the mathematical and logical meaning of these concepts. In this article, I will take a closer look at the essence of trend and flat, as well as try to define whether the market structure is based on trend, flat or something else. I will also consider the most optimal strategies for making profit on trend and flat markets.
![Price series discretization, random component and noise](https://c.mql5.com/2/39/4qc92l.png)
![Price series discretization, random component and noise](https://c.mql5.com/i/articles/overlay.png)
Price series discretization, random component and noise
We usually analyze the market using candlesticks or bars that slice the price series into regular intervals. Doesn't such discretization method distort the real structure of market movements? Discretization of an audio signal at regular intervals is an acceptable solution because an audio signal is a function that changes over time. The signal itself is an amplitude which depends on time. This signal property is fundamental.
![Timeseries in DoEasy library (part 49): Multi-period multi-symbol multi-buffer standard indicators](https://c.mql5.com/2/49/doeasy_049_600x314.jpg)
Timeseries in DoEasy library (part 49): Multi-period multi-symbol multi-buffer standard indicators
In the current article, I will improve the library classes to implement the ability to develop multi-symbol multi-period standard indicators requiring several indicator buffers to display their data.
![Timeseries in DoEasy library (part 48): Multi-period multi-symbol indicators on one buffer in a subwindow](https://c.mql5.com/2/40/MQL5-avatar-doeasy-library.png)
![Timeseries in DoEasy library (part 48): Multi-period multi-symbol indicators on one buffer in a subwindow](https://c.mql5.com/i/articles/overlay.png)
Timeseries in DoEasy library (part 48): Multi-period multi-symbol indicators on one buffer in a subwindow
The article considers an example of creating multi-symbol multi-period standard indicators using a single indicator buffer for construction and working in the indicator subwindow. I am going to prepare the library classes for working with standard indicators working in the program main window and having more than one buffer for displaying their data.