How to Start with MT5, a summary ! - page 9

 

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.

Support for older MetaTrader 4 and MetaTrader 5 versions to end on December 1


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.


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

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

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

Master MQL5 from beginner to pro (Part IV): About Arrays, Functions and Global Terminal Variables

In this article I will cover three global topics:

  • Data arrays, which complete the main part about the data inside the program.
  • Global terminal variables, allowing the exchange of simple data between different MQL5 programs. 
  • Some of the feature of functions and their interactions with variables.

 

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:

  • 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.

Support for older versions of MetaTrader 4 and MetaTrader 5 to end on June 1

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.


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:

  • Rewritten GUI libraries to support dark schemes
  • We have updated the visual interface
  • Developed a new compiler - not finished yet
  • Extended OpenBLAS and related math functions

What we will do next in the terminal and editor:

  • Change the chart graphics engine, abandoning the old GDI
  • Increase the chart capabilities by adding a combination of additional symbols on the main chart
  • We will expand the functionality of manual trading
  • Expand our joint work on projects
  • We will enable a new compiler with new intelligence
  • Expand projects
  • The compiler will be able to work with Visual Studio projects and natively compile C/C++ projects to create MQL5 modules/libraries
  • We will introduce a package manager for easy import of modules, they will be natively compiled into a single final EX5 file
  • We will enable native versions for the ARM64 platform, all other components of the system already work natively under ARM64

 
MetaTrader 5 Platform beta build 5050: Transition to Git and MQL5 Algo Forge developer hub, dark theme and interface improvements
MetaTrader 5 Platform beta build 5050: Transition to Git and MQL5 Algo Forge developer hub, dark theme and interface improvements
  • 2025.05.30
  • MetaQuotes
  • www.mql5.com
On Friday, May 30, 2025, an updated beta version of the MetaTrader 5 platform will be released...
 
 

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:

  • 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 элементов
    Dot product (vector × vector)
     vector V1( 1 , 3 ), V2( 1 , 3 );
    double r = V1 @ V2; // Результат: скаляр
  • 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).

  • MQL5: Added new OpenBLAS methods:

    Calculating eigenvalues and eigenvectors

    • 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.
     static vector vector ::Random(
       const ulong    size,       // длина вектора
       const double   min= 0.0 ,     // минимальное значение
       const double   max= 1.0      // максимальное значение
       );
    
    static matrix matrix ::Random(
       const ulong    rows,       // количество строк
       const ulong    cols         // количество столбцов
       const float    min= 0.0 ,     // минимальное значение
       const float    max= 1.0      // максимальное значение
       );