![Developing a Replay System (Part 31): Expert Advisor project — C_Mouse class (V)](https://c.mql5.com/2/59/sistema_de_Replay_up_600x314.jpg)
Developing a Replay System (Part 31): Expert Advisor project — C_Mouse class (V)
We need a timer that can show how much time is left till the end of the replay/simulation run. This may seem at first glance to be a simple and quick solution. Many simply try to adapt and use the same system that the trading server uses. But there's one thing that many people don't consider when thinking about this solution: with replay, and even m ore with simulation, the clock works differently. All this complicates the creation of such a system.
![Angle-based operations for traders](https://c.mql5.com/2/70/Corner_Operations_for_Traders_600x314.jpg)
Angle-based operations for traders
This article will cover angle-based operations. We will look at methods for constructing angles and using them in trading.
![Developing an MQL5 Reinforcement Learning agent with RestAPI integration (Part 1): How to use RestAPIs in MQL5](https://c.mql5.com/2/59/REST_600x314.jpg)
Developing an MQL5 Reinforcement Learning agent with RestAPI integration (Part 1): How to use RestAPIs in MQL5
In this article we will talk about the importance of APIs (Application Programming Interface) for interaction between different applications and software systems. We will see the role of APIs in simplifying interactions between applications, allowing them to efficiently share data and functionality.
![Developing a quality factor for Expert Advisors](https://c.mql5.com/2/55/Desenvolvendo_um_fator_de_qualidade_para_os_EAs_600x314.jpg)
Developing a quality factor for Expert Advisors
In this article, we will see how to develop a quality score that your Expert Advisor can display in the strategy tester. We will look at two well-known calculation methods – Van Tharp and Sunny Harris.
![Creating a Daily Drawdown Limiter EA in MQL5](https://c.mql5.com/2/83/Creating_a_Daily_Drawdown_Limiter_EA_in_MQL5_600x314.jpg)
Creating a Daily Drawdown Limiter EA in MQL5
The article discusses, from a detailed perspective, how to implement the creation of an Expert Advisor (EA) based on the trading algorithm. This helps to automate the system in the MQL5 and take control of the Daily Drawdown.
![GIT: What is it?](https://c.mql5.com/2/69/GIT__Mas_que_coisa_x_esta_600x314.jpg)
GIT: What is it?
In this article, I will introduce a very important tool for developers. If you are not familiar with GIT, read this article to get an idea of what it is and how to use it with MQL5.
![Modified Grid-Hedge EA in MQL5 (Part III): Optimizing Simple Hedge Strategy (I)](https://c.mql5.com/2/72/Modified_Grid-Hedge_EA_in_MQL5_Part_III_600x314.jpg)
Modified Grid-Hedge EA in MQL5 (Part III): Optimizing Simple Hedge Strategy (I)
In this third part, we revisit the Simple Hedge and Simple Grid Expert Advisors (EAs) developed earlier. Our focus shifts to refining the Simple Hedge EA through mathematical analysis and a brute force approach, aiming for optimal strategy usage. This article delves deep into the mathematical optimization of the strategy, setting the stage for future exploration of coding-based optimization in later installments.
![Example of Auto Optimized Take Profits and Indicator Parameters with SMA and EMA](https://c.mql5.com/2/88/Example_of_Auto_Optimized_TPs_and_Indicators_parameters_with_SMA_and_EMA__600x314.jpg)
Example of Auto Optimized Take Profits and Indicator Parameters with SMA and EMA
This article presents a sophisticated Expert Advisor for forex trading, combining machine learning with technical analysis. It focuses on trading Apple stock, featuring adaptive optimization, risk management, and multiple strategies. Backtesting shows promising results with high profitability but also significant drawdowns, indicating potential for further refinement.
![Developing a Replay System — Market simulation (Part 18): Ticks and more ticks (II)](https://c.mql5.com/2/56/replay-p18_600x314.jpg)
Developing a Replay System — Market simulation (Part 18): Ticks and more ticks (II)
Obviously the current metrics are very far from the ideal time for creating a 1-minute bar. That's the first thing we are going to fix. Fixing the synchronization problem is not difficult. This may seem hard, but it's actually quite simple. We did not make the required correction in the previous article since its purpose was to explain how to transfer the tick data that was used to create the 1-minute bars on the chart into the Market Watch window.
![Category Theory in MQL5 (Part 6): Monomorphic Pull-Backs and Epimorphic Push-Outs](https://c.mql5.com/2/53/Category-Theory-p6_600x314.jpg)
Category Theory in MQL5 (Part 6): Monomorphic Pull-Backs and Epimorphic Push-Outs
Category Theory is a diverse and expanding branch of Mathematics which is only recently getting some coverage in the MQL5 community. These series of articles look to explore and examine some of its concepts & axioms with the overall goal of establishing an open library that provides insight while also hopefully furthering the use of this remarkable field in Traders' strategy development.
![The case for using a Composite Data Set this Q4 in weighing SPDR XLY's next performance](https://c.mql5.com/2/61/Composite_Data_Set_this_Q4_in_weighing_SPDR_XLY_600x314.jpg)
The case for using a Composite Data Set this Q4 in weighing SPDR XLY's next performance
We consider XLY, SPDR’s consumer discretionary spending ETF and see if with tools in MetaTrader’s IDE we can sift through an array of data sets in selecting what could work with a forecasting model with a forward outlook of not more than a year.
![Developing a Replay System — Market simulation (Part 07): First improvements (II)](https://c.mql5.com/2/54/replay-p7_600x314.jpg)
Developing a Replay System — Market simulation (Part 07): First improvements (II)
In the previous article, we made some fixes and added tests to our replication system to ensure the best possible stability. We also started creating and using a configuration file for this system.
![MQL5 Wizard Techniques you should know (Part 28): GANs Revisited with a Primer on Learning Rates](https://c.mql5.com/2/85/MQL5_Wizard_Techniques_you_should_know_Part_28_600x314.jpg)
MQL5 Wizard Techniques you should know (Part 28): GANs Revisited with a Primer on Learning Rates
The Learning Rate, is a step size towards a training target in many machine learning algorithms’ training processes. We examine the impact its many schedules and formats can have on the performance of a Generative Adversarial Network, a type of neural network that we had examined in an earlier article.
![Developing a Replay System — Market simulation (Part 16): New class system](https://c.mql5.com/2/55/replay-p16_600x314.jpg)
Developing a Replay System — Market simulation (Part 16): New class system
We need to organize our work better. The code is growing, and if this is not done now, then it will become impossible. Let's divide and conquer. MQL5 allows the use of classes which will assist in implementing this task, but for this we need to have some knowledge about classes. Probably the thing that confuses beginners the most is inheritance. In this article, we will look at how to use these mechanisms in a practical and simple way.
![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.
![Neural networks made easy (Part 41): Hierarchical models](https://c.mql5.com/2/54/NN_Simple_Part_41_Hierarchical_Models_600x314.jpg)
Neural networks made easy (Part 41): Hierarchical models
The article describes hierarchical training models that offer an effective approach to solving complex machine learning problems. Hierarchical models consist of several levels, each of which is responsible for different aspects of the task.
![Developing a multi-currency Expert Advisor (Part 5): Variable position sizes](https://c.mql5.com/2/73/Developing_a_multi-currency_advisor_Part_5_Variable_position_sizes_600x314.jpg)
Developing a multi-currency Expert Advisor (Part 5): Variable position sizes
In the previous parts, the Expert Advisor (EA) under development was able to use only a fixed position size for trading. This is acceptable for testing, but is not advisable when trading on a real account. Let's make it possible to trade using variable position sizes.
![Building a Candlestick Trend Constraint Model (Part 8): Expert Advisor Development (I)](https://c.mql5.com/2/88/midjourney_image_15321_390_3753_3_600x314.jpg)
Building a Candlestick Trend Constraint Model (Part 8): Expert Advisor Development (I)
In this discussion, we will create our first Expert Advisor in MQL5 based on the indicator we made in the prior article. We will cover all the features required to make the process automatic, including risk management. This will extensively benefit the users to advance from manual execution of trades to automated systems.
![Cross-validation and basics of causal inference in CatBoost models, export to ONNX format](https://c.mql5.com/2/60/CatBoost_export_to_ONNX_format_600x314.jpg)
Cross-validation and basics of causal inference in CatBoost models, export to ONNX format
The article proposes the method of creating bots using machine learning.
![Developing a multi-currency Expert Advisor (Part 3): Architecture revision](https://c.mql5.com/2/70/Developing_a_multi-currency_advisor_6Part_3q__Architecture_review_600x314.jpg)
Developing a multi-currency Expert Advisor (Part 3): Architecture revision
We have already made some progress in developing a multi-currency EA with several strategies working in parallel. Considering the accumulated experience, let's review the architecture of our solution and try to improve it before we go too far ahead.
![Category Theory in MQL5 (Part 21): Natural Transformations with LDA](https://c.mql5.com/2/58/Category-Theory-p21_600x314.jpg)
Category Theory in MQL5 (Part 21): Natural Transformations with LDA
This article, the 21st in our series, continues with a look at Natural Transformations and how they can be implemented using linear discriminant analysis. We present applications of this in a signal class format, like in the previous article.
![MQL5 Wizard Techniques you should know (Part 22): Conditional GANs](https://c.mql5.com/2/80/MQL5_Wizard_Techniques_you_should_know_Part_22_600x314.jpg)
MQL5 Wizard Techniques you should know (Part 22): Conditional GANs
Generative Adversarial Networks are a pairing of Neural Networks that train off of each other for more accurate results. We adopt the conditional type of these networks as we look to possible application in forecasting Financial time series within an Expert Signal Class.
![Developing a multi-currency Expert Advisor (Part 3): Architecture revision](https://c.mql5.com/2/70/Developing_a_multi-currency_advisor_6Part_3q__Architecture_review_600x314.jpg)
Developing a multi-currency Expert Advisor (Part 3): Architecture revision
We have already made some progress in developing a multi-currency EA with several strategies working in parallel. Considering the accumulated experience, let's review the architecture of our solution and try to improve it before we go too far ahead.
![MQL5 Wizard Techniques you should know (Part 24): Moving Averages](https://c.mql5.com/2/82/MQL5_Wizard_Techniques_you_should_know_Part_24_600x314.jpg)
MQL5 Wizard Techniques you should know (Part 24): Moving Averages
Moving Averages are a very common indicator that are used and understood by most Traders. We explore possible use cases that may not be so common within MQL5 Wizard assembled Expert Advisors.
![Category Theory in MQL5 (Part 19): Naturality Square Induction](https://c.mql5.com/2/58/Category-Theory-p19_600x314.jpg)
Category Theory in MQL5 (Part 19): Naturality Square Induction
We continue our look at natural transformations by considering naturality square induction. Slight restraints on multicurrency implementation for experts assembled with the MQL5 wizard mean we are showcasing our data classification abilities with a script. Principle applications considered are price change classification and thus its forecasting.
![The base class of population algorithms as the backbone of efficient optimization](https://c.mql5.com/2/71/The_basic_class_of_population_algorithms__600x314.jpg)
The base class of population algorithms as the backbone of efficient optimization
The article represents a unique research attempt to combine a variety of population algorithms into a single class to simplify the application of optimization methods. This approach not only opens up opportunities for the development of new algorithms, including hybrid variants, but also creates a universal basic test stand. This stand becomes a key tool for choosing the optimal algorithm depending on a specific task.
![Creating an Interactive Graphical User Interface in MQL5 (Part 2): Adding Controls and Responsiveness](https://c.mql5.com/2/84/Creating_an_Interactive_Graphical_User_Interface_in_MQL5_Part_2_600x314.jpg)
Creating an Interactive Graphical User Interface in MQL5 (Part 2): Adding Controls and Responsiveness
Enhancing the MQL5 GUI panel with dynamic features can significantly improve the trading experience for users. By incorporating interactive elements, hover effects, and real-time data updates, the panel becomes a powerful tool for modern traders.
![Creating an MQL5-Telegram Integrated Expert Advisor (Part 1): Sending Messages from MQL5 to Telegram](https://c.mql5.com/2/88/Creating_an_MQL5-Telegram_Integrated_Expert_Advisor_tPart_1w_600x314.jpg)
Creating an MQL5-Telegram Integrated Expert Advisor (Part 1): Sending Messages from MQL5 to Telegram
In this article, we create an Expert Advisor (EA) in MQL5 to send messages to Telegram using a bot. We set up the necessary parameters, including the bot's API token and chat ID, and then perform an HTTP POST request to deliver the messages. Later, we handle the response to ensure successful delivery and troubleshoot any issues that arise in case of failure. This ensures we send messages from MQL5 to Telegram via the created bot.
![Practicing the development of trading strategies](https://c.mql5.com/2/73/Experience_in_developing_a_trading_strategy_600x314.jpg)
Practicing the development of trading strategies
In this article, we will make an attempt to develop our own trading strategy. Any trading strategy must be based on some kind of statistical advantage. Moreover, this advantage should exist for a long time.
![Neural networks made easy (Part 61): Optimism issue in offline reinforcement learning](https://c.mql5.com/2/59/NN_easy_61_SPLT_V2__600x314.jpg)
Neural networks made easy (Part 61): Optimism issue in offline reinforcement learning
During the offline learning, we optimize the Agent's policy based on the training sample data. The resulting strategy gives the Agent confidence in its actions. However, such optimism is not always justified and can cause increased risks during the model operation. Today we will look at one of the methods to reduce these risks.
![Population optimization algorithms: Simulated Isotropic Annealing (SIA) algorithm. Part II](https://c.mql5.com/2/62/midjourney_image_13870_45_399_2_600x314.jpg)
Population optimization algorithms: Simulated Isotropic Annealing (SIA) algorithm. Part II
The first part was devoted to the well-known and popular algorithm - simulated annealing. We have thoroughly considered its pros and cons. The second part of the article is devoted to the radical transformation of the algorithm, which turns it into a new optimization algorithm - Simulated Isotropic Annealing (SIA).
![Developing a multi-currency Expert Advisor (Part 6): Automating the selection of an instance group](https://c.mql5.com/2/74/Developing_a_multi-currency_advisor_Part_6_Automating_the_selection_of_a_group_of_instances_600x314.jpg)
Developing a multi-currency Expert Advisor (Part 6): Automating the selection of an instance group
After optimizing the trading strategy, we receive sets of parameters. We can use them to create several instances of trading strategies combined in one EA. Previously, we did this manually. Here we will try to automate this process.
![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.
![MQL5 Wizard Techniques you should know (Part 07): Dendrograms](https://c.mql5.com/2/59/Dendrograms_600x314.jpg)
MQL5 Wizard Techniques you should know (Part 07): Dendrograms
Data classification for purposes of analysis and forecasting is a very diverse arena within machine learning and it features a large number of approaches and methods. This piece looks at one such approach, namely Agglomerative Hierarchical Classification.
![Introduction to MQL5 (Part 8): Beginner's Guide to Building Expert Advisors (II)](https://c.mql5.com/2/84/Introduction_to_MQL5_Part_8_Beginners_Guide_to_Building_Expert_Advisors_600x314.jpg)
Introduction to MQL5 (Part 8): Beginner's Guide to Building Expert Advisors (II)
This article addresses common beginner questions from MQL5 forums and demonstrates practical solutions. Learn to perform essential tasks like buying and selling, obtaining candlestick prices, and managing automated trading aspects such as trade limits, trading periods, and profit/loss thresholds. Get step-by-step guidance to enhance your understanding and implementation of these concepts in MQL5.
![Indicator of historical positions on the chart as their profit/loss diagram](https://c.mql5.com/2/62/midjourney_image_13911_52_463_3_600x314.jpg)
Indicator of historical positions on the chart as their profit/loss diagram
In this article, I will consider the option of obtaining information about closed positions based on their trading history. Besides, I will create a simple indicator that displays the approximate profit/loss of positions on each bar as a diagram.
![GUI: Tips and Tricks for creating your own Graphic Library in MQL](https://c.mql5.com/2/58/gui_tips_and_tricks_600x314.jpg)
GUI: Tips and Tricks for creating your own Graphic Library in MQL
We'll go through the basics of GUI libraries so that you can understand how they work or even start making your own.
![Building A Candlestick Trend Constraint Model (Part 5): Notification System (Part II)](https://c.mql5.com/2/82/Building_A_Candlestick_Trend_Constraint_Model_Part_5_Next-7iSmtcwWt-transformed_600x314.jpg)
Building A Candlestick Trend Constraint Model (Part 5): Notification System (Part II)
Today, we are discussing a working Telegram integration for MetaTrader 5 Indicator notifications using the power of MQL5, in partnership with Python and the Telegram Bot API. We will explain everything in detail so that no one misses any point. By the end of this project, you will have gained valuable insights to apply in your projects.
![Reimagining Classic Strategies (Part V): Multiple Symbol Analysis on USDZAR](https://c.mql5.com/2/89/midjourney_image_15570_399_3853_600x314.jpg)
Reimagining Classic Strategies (Part V): Multiple Symbol Analysis on USDZAR
In this series of articles, we revisit classical strategies to see if we can improve the strategy using AI. In today's article, we will examine a popular strategy of multiple symbol analysis using a basket of correlated securities, we will focus on the exotic USDZAR currency pair.
![Developing a Replay System (Part 29): Expert Advisor project — C_Mouse class (III)](https://c.mql5.com/2/58/replay-p28_600x314.jpg)
Developing a Replay System (Part 29): Expert Advisor project — C_Mouse class (III)
After improving the C_Mouse class, we can focus on creating a class designed to create a completely new framework fr our analysis. We will not use inheritance or polymorphism to create this new class. Instead, we will change, or better said, add new objects to the price line. That's what we will do in this article. In the next one, we will look at how to change the analysis. All this will be done without changing the code of the C_Mouse class. Well, actually, it would be easier to achieve this using inheritance or polymorphism. However, there are other methods to achieve the same result.