![Learn Why and How to Design Your Algorithmic Trading System](https://c.mql5.com/2/49/learnhow_your_trading_system_600x314.jpg)
Learn Why and How to Design Your Algorithmic Trading System
This article shows the basics of MQL for beginners to design their Algorithmic trading system (Expert Advisor) through designing a simple algorithmic trading system after mentioning some basics of MQL5
![WebSockets for MetaTrader 5 — Using the Windows API](https://c.mql5.com/2/49/websockets_mt5_winapi_600x314.jpg)
WebSockets for MetaTrader 5 — Using the Windows API
In this article, we will use the WinHttp.dll to create a WebSocket client for MetaTrader 5 programs. The client will ultimately be implemented as a class and also tested against the Deriv.com WebSocket API.
![An attempt at developing an EA constructor](https://c.mql5.com/2/49/An-attempt-at-developing-an-EA-constructor_600x314.jpg)
An attempt at developing an EA constructor
In this article, I offer my set of trading functions in the form of a ready-made EA. This method allows getting multiple trading strategies by simply adding indicators and changing inputs.
![Using AutoIt With MQL5](https://c.mql5.com/2/49/autoit_mql5_600x314.jpg)
Using AutoIt With MQL5
Short description. In this article we will explore scripting the MetraTrader 5 terminal by integrating MQL5 with AutoIt. In it we will cover how to automate various tasks by manipulating the terminals' user interface and also present a class that uses the AutoItX library.
![Fix PriceAction Stoploss or Fixed RSI (Smart StopLoss)](https://c.mql5.com/2/49/smart_stop_loss_600x314.jpg)
Fix PriceAction Stoploss or Fixed RSI (Smart StopLoss)
Stop-loss is a major tool when it comes to money management in trading. Effective use of stop-loss, take profit and lot size can make a trader more consistent in trading and overall more profitable. Although stop-loss is a great tool, there are challenges that are encountered when being used. The major one being stop-loss hunt. This article looks on how to reduce stop-loss hunt in trade and compare with the classical stop-loss usage to determine its profitability.
![Tips from a professional programmer (Part II): Storing and exchanging parameters between an Expert Advisor, scripts and external programs](https://c.mql5.com/2/42/tipstricks__1.png)
![Tips from a professional programmer (Part II): Storing and exchanging parameters between an Expert Advisor, scripts and external programs](https://c.mql5.com/i/articles/overlay.png)
Tips from a professional programmer (Part II): Storing and exchanging parameters between an Expert Advisor, scripts and external programs
These are some tips from a professional programmer about methods, techniques and auxiliary tools which can make programming easier. We will discuss parameters which can be restored after terminal restart (shutdown). All examples are real working code segments from my Cayman project.
![Other classes in DoEasy library (Part 71): Chart object collection events](https://c.mql5.com/2/42/MQL5-avatar-doeasy-library__9.png)
![Other classes in DoEasy library (Part 71): Chart object collection events](https://c.mql5.com/i/articles/overlay.png)
Other classes in DoEasy library (Part 71): Chart object collection events
In this article, I will create the functionality for tracking some chart object events — adding/removing symbol charts and chart subwindows, as well as adding/removing/changing indicators in chart windows.
![Other classes in DoEasy library (Part 68): Chart window object class and indicator object classes in the chart window](https://c.mql5.com/2/42/MQL5-avatar-doeasy-library__6.png)
![Other classes in DoEasy library (Part 68): Chart window object class and indicator object classes in the chart window](https://c.mql5.com/i/articles/overlay.png)
Other classes in DoEasy library (Part 68): Chart window object class and indicator object classes in the chart window
In this article, I will continue the development of the chart object class. I will add the list of chart window objects featuring the lists of available indicators.
![Neural networks made easy (Part 13): Batch Normalization](https://c.mql5.com/2/49/Neural_networks_made_easy_003_600x314.jpg)
Neural networks made easy (Part 13): Batch Normalization
In the previous article, we started considering methods aimed at improving neural network training quality. In this article, we will continue this topic and will consider another approach — batch data normalization.
![Other classes in DoEasy library (Part 67): Chart object class](https://c.mql5.com/2/42/MQL5-avatar-doeasy-library__5.png)
![Other classes in DoEasy library (Part 67): Chart object class](https://c.mql5.com/i/articles/overlay.png)
Other classes in DoEasy library (Part 67): Chart object class
In this article, I will create the chart object class (of a single trading instrument chart) and improve the collection class of MQL5 signal objects so that each signal object stored in the collection updates all its parameters when updating the list.
![Neural networks made easy (Part 12): Dropout](https://c.mql5.com/2/49/Neural_networks_made_easy_002_600x314.jpg)
Neural networks made easy (Part 12): Dropout
As the next step in studying neural networks, I suggest considering the methods of increasing convergence during neural network training. There are several such methods. In this article we will consider one of them entitled Dropout.
![Useful and exotic techniques for automated trading](https://c.mql5.com/2/49/exotic_techniques_automated_trading_600x314.jpg)
Useful and exotic techniques for automated trading
In this article I will demonstrate some very interesting and useful techniques for automated trading. Some of them may be familiar to you. I will try to cover the most interesting methods and will explain why they are worth using. Furthermore, I will show what these techniques are apt to in practice. We will create Expert Advisors and test all the described techniques using historic quotes.
![Prices in DoEasy library (part 63): Depth of Market and its abstract request class](https://c.mql5.com/2/42/MQL5-avatar-doeasy-library__1.png)
![Prices in DoEasy library (part 63): Depth of Market and its abstract request class](https://c.mql5.com/i/articles/overlay.png)
Prices in DoEasy library (part 63): Depth of Market and its abstract request class
In the article, I will start developing the functionality for working with the Depth of Market. I will also create the class of the Depth of Market abstract order object and its descendants.
![Neural networks made easy (Part 11): A take on GPT](https://c.mql5.com/2/49/Neural_networks_made_easy_001_600x314.jpg)
Neural networks made easy (Part 11): A take on GPT
Perhaps one of the most advanced models among currently existing language neural networks is GPT-3, the maximal variant of which contains 175 billion parameters. Of course, we are not going to create such a monster on our home PCs. However, we can view which architectural solutions can be used in our work and how we can benefit from them.
![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.
![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 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.
![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.
![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.
![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.
![Timeseries in DoEasy library (part 56): Custom indicator object, get data from indicator objects in the collection](https://c.mql5.com/2/49/doeasy_056_600x314.jpg)
Timeseries in DoEasy library (part 56): Custom indicator object, get data from indicator objects in the collection
The article considers creation of the custom indicator object for the use in EAs. Let’s slightly improve library classes and add methods to get data from indicator objects in EAs.
![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.
![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.
![Continuous walk-forward optimization (Part 8): Program improvements and fixes](https://c.mql5.com/2/49/Continuous-Walk-Forward-Optimization_008_600x314.jpg)
Continuous walk-forward optimization (Part 8): Program improvements and fixes
The program has been modified based on comments and requests from users and readers of this article series. This article contains a new version of the auto optimizer. This version implements requested features and provides other improvements, which I found when working with the program.
![CatBoost machine learning algorithm from Yandex with no Python or R knowledge required](https://c.mql5.com/2/49/CatBoost-machine-learning-algorithm-from-Yandex-with-no-Python-or-R-knowledge-required_600x314.jpg)
CatBoost machine learning algorithm from Yandex with no Python or R knowledge required
The article provides the code and the description of the main stages of the machine learning process using a specific example. To obtain the model, you do not need Python or R knowledge. Furthermore, basic MQL5 knowledge is enough — this is exactly my level. Therefore, I hope that the article will serve as a good tutorial for a broad audience, assisting those interested in evaluating machine learning capabilities and in implementing them in their programs.
![Websockets for MetaTrader 5](https://c.mql5.com/2/49/websockets_mt5_600x314.jpg)
Websockets for MetaTrader 5
Before the introduction of the network functionality provided with the updated MQL5 API, MetaTrader programs have been limited in their ability to connect and interface with websocket based services. But of course this has all changed, in this article we will explore the implementation of a websocket library in pure MQL5. A brief description of the websocket protocol will be given along with a step by step guide on how to use the resulting library.
![A system of voice notifications for trade events and signals](https://c.mql5.com/2/39/logo.png)
![A system of voice notifications for trade events and signals](https://c.mql5.com/i/articles/overlay.png)
A system of voice notifications for trade events and signals
Nowadays, voice assistants play a prominent role in human life, as we often use navigators, voice search and translators. In this article, I will try to develop a simple and user friendly system of voice notifications for various trade events, market states or signals generated by trading signals.
![Native Twitter Client for MT4 and MT5 without DLL](https://c.mql5.com/2/41/mql5_twitter__1.png)
![Native Twitter Client for MT4 and MT5 without DLL](https://c.mql5.com/i/articles/overlay.png)
Native Twitter Client for MT4 and MT5 without DLL
Ever wanted to access tweets and/or post your trade signals on Twitter ? Search no more, these on-going article series will show you how to do it without using any DLL. Enjoy the journey of implementing Twitter API using MQL. In this first part, we will follow the glory path of authentication and authorization in accessing Twitter API.
![Developing a cross-platform grid EA: testing a multi-currency EA](https://c.mql5.com/2/38/mql5_ea_adviser_grid.png)
![Developing a cross-platform grid EA: testing a multi-currency EA](https://c.mql5.com/i/articles/overlay.png)
Developing a cross-platform grid EA: testing a multi-currency EA
Markets dropped down by more that 30% within one month. It seems to be the best time for testing grid- and martingale-based Expert Advisors. This article is an unplanned continuation of the series "Creating a Cross-Platform Grid EA". The current market provides an opportunity to arrange a stress rest for the grid EA. So, let's use this opportunity and test our Expert Advisor.
![Projects assist in creating profitable trading robots! Or at least, so it seems](https://c.mql5.com/2/39/mql5-avatar-thumbs_up.png)
![Projects assist in creating profitable trading robots! Or at least, so it seems](https://c.mql5.com/i/articles/overlay.png)
Projects assist in creating profitable trading robots! Or at least, so it seems
A big program starts with a small file, which then grows in size as you keep adding more functions and objects. Most robot developers utilize include files to handle this problem. However, there is a better solution: start developing any trading application in a project. There are so many reasons to do so.
![Continuous Walk-Forward Optimization (Part 4): Optimization Manager (Auto Optimizer)](https://c.mql5.com/2/49/Continuous-Walk-Forward-Optimization_004_600x314.jpg)
Continuous Walk-Forward Optimization (Part 4): Optimization Manager (Auto Optimizer)
The main purpose of the article is to describe the mechanism of working with our application and its capabilities. Thus the article can be treated as an instruction on how to use the application. It covers all possible pitfalls and specifics of the application usage.
![How to create 3D graphics using DirectX in MetaTrader 5](https://c.mql5.com/2/68/directx_600x314.jpg)
How to create 3D graphics using DirectX in MetaTrader 5
3D graphics provide excellent means for analyzing huge amounts of data as they enable the visualization of hidden patterns. These tasks can be solved directly in MQL5, while DireсtX functions allow creating three-dimensional object. Thus, it is even possible to create programs of any complexity, even 3D games for MetaTrader 5. Start learning 3D graphics by drawing simple three-dimensional shapes.
![MQL5 Cookbook: Trading strategy stress testing using custom symbols](https://c.mql5.com/2/37/custom_stress_test.png)
![MQL5 Cookbook: Trading strategy stress testing using custom symbols](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Trading strategy stress testing using custom symbols
The article considers an approach to stress testing of a trading strategy using custom symbols. A custom symbol class is created for this purpose. This class is used to receive tick data from third-party sources, as well as to change symbol properties. Based on the results of the work done, we will consider several options for changing trading conditions, under which a trading strategy is being tested.
![Optimization management (Part II): Creating key objects and add-on logic](https://c.mql5.com/2/36/mql5-avatar-opt_control__1.png)
![Optimization management (Part II): Creating key objects and add-on logic](https://c.mql5.com/i/articles/overlay.png)
Optimization management (Part II): Creating key objects and add-on logic
This article is a continuation of the previous publication related to the creation of a graphical interface for optimization management. The article considers the logic of the add-on. A wrapper for the MetaTrader 5 terminal will be created: it will enable the running of the add-on as a managed process via C#. In addition, operation with configuration files and setup files is considered in this article. The application logic is divided into two parts: the first one describes the methods called after pressing a particular key, while the second part covers optimization launch and management.
![Optimization management (Part I): Creating a GUI](https://c.mql5.com/2/36/mql5-avatar-opt_control.png)
![Optimization management (Part I): Creating a GUI](https://c.mql5.com/i/articles/overlay.png)
Optimization management (Part I): Creating a GUI
This article describes the process of creating an extension for the MetaTrader terminal. The solution discussed helps to automate the optimization process by running optimizations in other terminals. A few more articles will be written concerning this topic. The extension has been developed using the C# language and design patterns, which additionally demonstrates the ability to expand the terminal capabilities by developing custom modules, as well as the ability to create custom graphical user interfaces using the functionality of a preferred programming language.
![Price velocity measurement methods](https://c.mql5.com/2/36/Article_Logo__1.png)
![Price velocity measurement methods](https://c.mql5.com/i/articles/overlay.png)
Price velocity measurement methods
There are multiple different approaches to market research and analysis. The main ones are technical and fundamental. In technical analysis, traders collect, process and analyze numerical data and parameters related to the market, including prices, volumes, etc. In fundamental analysis, traders analyze events and news affecting the markets directly or indirectly. The article deals with price velocity measurement methods and studies trading strategies based on that methods.