After this date, older versions of desktop terminals will not be able to connect to broker servers. We strongly encourage users to update promptly, as each version of the platform introduces numerous features and performance improvements.
MetaTrader 5
In the past six months, we have released four MetaTrader 5 updates:
Build 4410: Fixed crashes in the desktop platform, improved browser compatibility checks, resolved demo account opening in the web version.
Build 4570: Added crosshair mode, line chart and the Market Watch customization in the web version, introduced OpenBLAS library for matrix computations and improved ONNX support in MQL5, implemented various enhancements in the desktop platform.
Build 4585: Fixed crashes during debugging and testing of MQL5 programs, as well as memory leaks during compilation.
Build 4620: Extended OpenBLAS support, fixed tick history queries.
MetaTrader 4
Each version of MetaTrader 4 comes with performance improvements, bug fixes, and enhanced security for the Market service.
In my previous article we looked at the main programs that are used by MQL5 programmers (and came to the conclusion that the MetaEditor IDE is well suited for beginner needs). In addition, we took a quick look at the concept of a function and created a simple script that prints a message in the system log. These messages can be viewed at the bottom of the terminal window in the Experts tab.
This article is a continuation of the series for beginners. Here I assume that the reader already has an understanding of the material from the previous two articles.
The first article is an introduction. It assumes that the reader has no prior experience with programming, and introduces the required tools for programmers, describes the main program types, and introduces some basic concepts, in particular, the concept of a "function".
The second article describes operations with data. It introduces the concepts of "literal", "variable", "data type", "operator", etc., and examines the main data modification operators: arithmetic, logical, bitwise, and others
Starting July 1, 2025, the minimum supported versions of the trading platforms will be:
MetaTrader 4 — Build 1440 released on February 21, 2025
MetaTrader 5 — Build 4755 released on December 13, 2024
After this date, older versions of desktop terminals will no longer be able to connect to broker servers. We strongly encourage you to update in a timely manner, as each version of the platform introduces numerous features and performance improvements.
MetaTrader 5
Over the past few months, three major updates have been released for MetaTrader 5:
Build 4620: Extended OpenBLAS support, fixed tick history queries.
Build 4730: Extended OpenBLAS support and general performance optimization.
Build 4755: Strategy Tester bug fixes and general improvements.
MetaTrader 4
Each new version of MetaTrader 4 delivers performance improvements, bug fixes, and enhanced security for the Market service.
Git is fully integrated into MetaEditor and there is no need to install a third-party Git.
For now, we only offer work with our Algo Forge platform, similar to GitHub. The main MQL5 root will always work with our storage, and in Shared Projects we may allow linking our external storage. To do this, you can specify an account in an external system in the settings.
For your information, new for machine learning in MQL5:
MQL5: Added matrix multiplication operator @ . It works according to the rules of linear algebra and allows you to multiply matrices and vectors, as well as perform the scalar product of vectors.
Matrix multiplication (matrix × matrix)
matrix A( 2 , 3 );
matrix B( 3 , 2 );
matrix C = A @ B; // Результат: матрица C размером [2,2]
Matrix multiplication (matrix × vector)
matrix M( 2 , 3 );
vector V( 3 );
vector R = M @ V; // Результат: вектор R из 2 элементов
Matrix multiplication (vector x matrix)
matrix M( 2 , 3 );
vector V( 1 , 2 );
vector R = V @ M; // Результат: вектор R из 3 элементов
MQL5: Added the ddof parameter to the Std , Var and Cov methods. It defines the number of degrees of freedom that are subtracted from the divisor when calculating the standard deviation. For Std and Var, the default parameter is 0, for Cov it is 1.
How does ddof affect:
By default ddof=0, and the standard deviation is calculated for the entire population (population standard deviation).
If ddof=1, then the sample standard deviation is used, which corrects the estimate for the final sample (used in statistics when working with a subset of data).
EigenTridiagonalDC - computes eigenvalues and eigenvectors of a symmetric tridiagonal matrix using a divide-and-conquer algorithm (LAPACK function STEVD).
EigenTridiagonalQR - computes eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the QR algorithm (LAPACK STEV function).
EigenTridiagonalRobust - computes the eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the MRRR (Multiple Relatively Robust Representations) algorithm (LAPACK function STEVR).
EigenTridiagonalBisect - computes the eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the bisection algorithm (LAPACK function STEVX).
ReduceToBidiagonal — reduces a general m×n real or complex matrix to upper or lower bidiagonal form B using the orthogonal transformation: Q**T * A * P = B. If m≥n, then B is upper bidiagonal, otherwise lower bidiagonal. (LAPACK function GEBRD).
ReflectBidiagonalToQP — generates orthogonal matrices Q and P**T (or P**H for complex types) defined by the ReduceToBidiagonal method when reducing a real or complex matrix A to bidiagonal form: A = Q * B * P**T. Q and P**T are products of elementary reflectors H(i) or G(i), respectively. (LAPACK functions ORGBR, UNGBR).
ReduceSymmetricToTridiagonal — reduces a real symmetric or complex Hermitian matrix A to tridiagonal form B using an orthogonal similarity transformation: Q**T * A * Q = B. (LAPACK functions SYTRD, HETRD).
ReflectTridiagonalToQ — generates an orthogonal matrix Q that is the product of n-1 elementary reflectors of order n returned by the ReduceSymmetricToTridiagonal function.
LinearEquationsSolution — calculates a system of linear equations with a square matrix of coefficients A and several right-hand sides.
LinearEquationsSolutionTriangular — calculates a system of linear equations with a square-triangular matrix of coefficients A and several right-hand sides.
LinearEquationsSolutionSy — computes a system of linear equations with a symmetric or Hermitian conjugate matrix A and several right-hand sides.
LinearEquationsSolutionComplexSy — calculates a system of linear equations with a complex symmetric matrix A and several right-hand sides.
LinearEquationsSolutionGeTrid — computes a system of linear equations with a symmetric or Hermitian conjugate positive definite matrix A and several right-hand sides.
LinearEquationsSolutionSyPD — calculates a system of linear equations with a common (non-symmetric) tridiagonal coefficient matrix A and several right-hand sides.
LinearEquationsSolutionSyTridPD — computes a system of linear equations with a symmetric tridiagonal positive definite matrix A and several right-hand sides.
FactorizationQR - computes the QR factorization of a general m-by-n matrix: A = Q * R (the LAPACK function of GEQRF).
FactorizationQRNonNeg — computes the QR factorization of a general m-by-n matrix: A = Q * R, where R is an upper triangular matrix with non-negative entries on the diagonal (LAPACK function GEQRFP).
FactorizationQRPivot - computes the QR factorization of a general m-by-n matrix with column permutation: A * P = Q * R (GEQP3 LAPACK function).
FactorizationLQ — performs the LQ factorization of a general m-by-n matrix: A = L * Q (LAPACK function of GELQF).
FactorizationQL - performs the QL factorization of a general m-by-n matrix: A = Q * L (the LAPACK function GEQLF).
FactorizationRQ - performs the RQ factorization of a general m-by-n matrix: A = R * Q (LAPACK function GERQF).
FactorizationPLU - Computes the LU factorization of a general m-by-n matrix A using partial pivot selection and row permutations (LAPACK function GETRF).
FactorizationPLUGeTrid - computes the LU factorization of a general (non-symmetric) n-by-n tridiagonal matrix A using partial pivot selection and row permutations (LAPACK function GTTRF).
FactorizationLDL — computes the factorization for a real symmetric or complex Hermitian matrix A using diagonal pivot selection according to the Bunch-Kaufman method (LAPACK functions SYTRF and HETRF).
FactorizationLDLSyTridPD — computes the factorization of a symmetric positive definite (for real data) or Hermitian positive definite (for complex data) tridiagonal matrix A (LAPACK PTTRF).
FactorizationCholesky — computes the factorization for a real symmetric or complex Hermitian positive-definite matrix A (LAPACK POTRF function).
FactorizationCholeskySyPS — computes the complete pivoting Cholesky factorization of a real symmetric (or complex Hermitian) positive semidefinite n-by-n matrix A (LAPACK function PSTRF).
MQL5: Added the Random function and method for filling vectors and matrices with random values. Random values are generated uniformly in a given range.
staticvectorvector ::Random(
constulong size, // длина вектораconstdouble min= 0.0 , // минимальное значениеconstdouble max= 1.0// максимальное значение
);
staticmatrixmatrix ::Random(
constulong rows, // количество строкconstulong cols // количество столбцовconstfloat min= 0.0 , // минимальное значениеconstfloat max= 1.0// максимальное значение
);
Forum on trading, automated trading systems and testing trading strategies
Support for older MetaTrader 4 and MetaTrader 5 versions to end on December 1
MetaQuotes, 2024.10.22 09:42
Starting December 1, 2024, the minimum supported versions of the trading platforms will be as follows:
After this date, older versions of desktop terminals will not be able to connect to broker servers. We strongly encourage users to update promptly, as each version of the platform introduces numerous features and performance improvements.
MetaTrader 5
In the past six months, we have released four MetaTrader 5 updates:
MetaTrader 4
Each version of MetaTrader 4 comes with performance improvements, bug fixes, and enhanced security for the Market service.
Download the latest platform version with new features
Forum on trading, automated trading systems and testing trading strategies
How to start with MQL5
Sergey Golubev, 2025.01.24 06:31
Master MQL5 from beginner to pro (Part II): Basic data types and use of variable
In my previous article we looked at the main programs that are used by MQL5 programmers (and came to the conclusion that the MetaEditor IDE is well suited for beginner needs). In addition, we took a quick look at the concept of a function and created a simple script that prints a message in the system log. These messages can be viewed at the bottom of the terminal window in the Experts tab.
Forum on trading, automated trading systems and testing trading strategies
How to start with MQL5
Sergey Golubev, 2025.01.24 06:35
Master MQL5 from Beginner to Pro (Part III): Complex Data Types and Include Files
This article is a continuation of the series for beginners. Here I assume that the reader already has an understanding of the material from the previous two articles.
The first article is an introduction. It assumes that the reader has no prior experience with programming, and introduces the required tools for programmers, describes the main program types, and introduces some basic concepts, in particular, the concept of a "function".
The second article describes operations with data. It introduces the concepts of "literal", "variable", "data type", "operator", etc., and examines the main data modification operators: arithmetic, logical, bitwise, and others
Forum on trading, automated trading systems and testing trading strategies
Where Do I start from?
Sergey Golubev, 2025.02.20 07:49
Master MQL5 from beginner to pro (Part IV): About Arrays, Functions and Global Terminal Variables
In this article I will cover three global topics:
Forum on trading, automated trading systems and testing trading strategies
Support for older versions of MetaTrader 4 and MetaTrader 5 to end on July 1
MetaQuotes, 2025.05.12 07:52
Starting July 1, 2025, the minimum supported versions of the trading platforms will be:
After this date, older versions of desktop terminals will no longer be able to connect to broker servers. We strongly encourage you to update in a timely manner, as each version of the platform introduces numerous features and performance improvements.
MetaTrader 5
Over the past few months, three major updates have been released for MetaTrader 5:
MetaTrader 4
Each new version of MetaTrader 4 delivers performance improvements, bug fixes, and enhanced security for the Market service.
Download the latest platform version with new features and improvements
Forum on trading, automated trading systems and testing of trading strategies
Are there any serious plans to upgrade MetaEditor to a professional-grade programming IDE?
Renat Fatkhullin , 2025.05.28 19:20
A beta will be released in the coming days, where the MT5 editor storage has been changed to Git.
We are launching a new collaboration project MQL5 Algo Forge: https://forge.mql5.io
Forum on trading, automated trading systems and testing of trading strategies
Are there any serious plans to upgrade MetaEditor to a professional-grade programming IDE?
Renat Fatkhullin , 2025.05.29 12:58
I have explained many times that only professional developers create products that are widely used. They need more and more features.
That's why we put so much effort into developing the MQL5 language. The new beta will feature a major upgrade of OpenBLAS mathematics.
We are also preparing a new compiler for release with a lot of new features. It will not be in beta yet.
For Low code and non-professional developers, we will later upgrade AI Assistant and offer our own MCP server.
Forum on trading, automated trading systems and testing of trading strategies
Are there any serious plans to upgrade MetaEditor to a professional-grade programming IDE?
Renat Fatkhullin , 2025.05.29 13:03
Git is fully integrated into MetaEditor and there is no need to install a third-party Git.
For now, we only offer work with our Algo Forge platform, similar to GitHub. The main MQL5 root will always work with our storage, and in Shared Projects we may allow linking our external storage. To do this, you can specify an account in an external system in the settings.
Our task is to restart joint projects .
Forum on trading, automated trading systems and testing of trading strategies
Are there any serious plans to upgrade MetaEditor to a professional-grade programming IDE?
Renat Fatkhullin , 2025.05.29 13:11
For the last six months we have been busy with server capabilities and have not spent much time on the terminal.
What was done for the terminal:
What we will do next in the terminal and editor:
This is very important announcement:
This is very important announcement:
Forum on trading, automated trading systems and testing of trading strategies
Machine learning in trading: theory, models, practice and algo trading
Renat Fatkhullin , 2025.06.09 14:15
For your information, new for machine learning in MQL5:
Matrix multiplication (matrix × matrix)
Matrix multiplication (matrix × vector)
Matrix multiplication (vector x matrix)
Dot product (vector × vector)
How does ddof affect:
Calculating eigenvalues and eigenvectors
Matrix Reduction
Orthogonal decompositions
Matrix decompositions