MetaTrader 5 Platform Build 4730: Extended OpenBLAS support and general performance optimization

What's new in MetaTrader 5

6 December 2024

Terminal

  1. Terminal: Changed calculations for the position, order and deal values. The value is now displayed in the account deposit currency rather than the base currency of the trading symbol:

    The value of positions, orders and trades is now displayed in the account deposit currency

  2. Terminal: Added field for entering date of birth when opening demo accounts.

    Added field for entering date of birth when opening demo accounts


  3. Terminal: Fixed scaling of indicators displayed in the chart subwindow. For some oscillators, the minimum and maximum scale values could previously be selected incorrectly.
  4. Terminal: Optimized and accelerated unpacking of tick data and price history, which will increase the chart loading speed.
  5. Terminal: Fixed text color editing in the internal email compose window.
  6. Terminal: Updated user interface translations.

MQL5

  1. Added new OpenBLAS methods:

    • EigenSolver2 – compute generalized eigenvalues and eigenvectors for a pair of ordinary square matrices (lapack function GGEV).
    • EigenSolverX – compute eigenvalues and eigenvectors of a regular square matrix in Expert mode, i.e. with the ability to influence the computation algorithm and the ability to obtain accompanying computation data (lapack function GEEVX).
    • EigenSolver2X – compute eigenvalues and eigenvectors for a pair of regular square matrices in Expert mode, i.e. with the ability to influence the computation algorithm and the ability to obtain accompanying computation data (lapack function GGEVX).
    • EigenSolverShur – compute eigenvalues, the upper triangular matrix in Schur form, and the matrix of Schur vectors (lapack function GEES).
    • EigenSolver2Shur – compute eigenvalues, generalized eigenvectors, generalized Schur forms, and left and right Schur vectors for a pair of regular square matrices (lapack function GGES).
    • EigenSolver2Blocked – compute generalized eigenvalues and eigenvectors for a pair of regular square matrices using a block algorithm (lapack function GGEV3).
    • EigenSolver2ShurBlocked – for a pair of regular square matrices, compute eigenvalues, generalized eigenvectors, generalized Schur forms, and left and right Schur vectors using a block algorithm (lapack function GGES3).
    • EigenSymmetricRobust – compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugate) matrix using the Multiple Relatively Robust Representations, MRRR algorithm (lapack functions SYEVR, HEEVR).
    • EigenSymmetricBisect – compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugate) matrix using the bisection algorithm (lapack functions SYEVX, HEEVX).

  2. Added new methods for complex matrices:

    • TransposeConjugate – create a conjugate-transposed matrix.
      matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;
      The method returns a new conjugate-transposed matrix in which the elements of the original matrix are transposed and converted to their complex conjugates.

      If an error occurs, an empty matrix is returned. Use the GetLastError function to get the error code.

    • CompareEqual – absolute comparison of two matrices.
      int matrix<T>::CompareEqual(const matrix<T>& mat) const
      The return values are:

      • -1 – if the element of matrix A is less than the corresponding element of matrix B.
      • 0 – if all elements of matrices A and B are identical.
      • 1 – if the element of matrix A is greater than the corresponding element of matrix B.

      The method can also return errors if the input data is invalid. To get the error code, use the GetLastError function.

  3. Added Python support up to version 3.13 for the corresponding integration package. To update the package, run the following command:

    pip install --upgrade MetaTrader5

  4. Fixed skipping of the first Timer event. An error occurred if a timer was started within the OnTimer handler.

MetaEditor

  • Fixed calculation of values for input variables in the debugger mode. In some cases, the message "unknown identifier" was displayed instead of the value.

Tester

  • Fixed search for required cross rates for currency conversion when testing applications using exchange instruments.

Web Terminal

  1. Added support for the Request execution type for large-volume orders.
  2. Added support for an extended description of the reason for requests rejected by a broker.
  3. Fixed account opening form. Information is now requested according to the broker settings.
  4. Fixed country detection during the registration of demo accounts.
  5. Fixed alignment in the dialog displaying the one-click trading warning.