MetaTrader 5 build 3300: Fast compilation and improved code navigation in MetaEditor

Added command for quick program compilation. This mode skips code optimization, which significantly speeds up the creation of an EX5 executable file. Use this mode during the active development stage, when you need to quickly check the written code

20 May 2022

Terminal

  1. Added ability to resize the Rectangle graphical object by dragging any of its four corners.


    Modify the rectangle by dragging any of its corners


  2. Faster GUI rendering.
  3. Improved support for IPv6 addresses.
  4. Fixed height calculation for the lower date field and width calculation for the right-hand side price field on the first platform launch.

MQL5

  1. Added function for working with matrices and vectors —  RegressionMetric. It sets the metric for regression evaluation.
     double vector.RegressionError(const enum lr_error);
     double matrix.RegressionError(const enum lr_error);
     vector matrix.RegressionError(const enum lr_error,const int axis);
    The following variables can be used as metrics:
    enum REGRESSION_ERROR
      {
       REGRESSION_MAE,     // Mean absolute error
       REGRESSION_MSE,     // Mean square error
       REGRESSION_RMSE,    // Root mean square error
       REGRESSION_R2,      // R squared
       REGRESSION_MAPE,    // Mean absolute percentage error
       REGRESSION_MSPE,    // Mean square percentage error
       REGRESSION_RMSLE    // Root mean square logarithmic error
      };
  2. Added ability to write arrays with data size greater than INT_MAX (arrays of structures).

MetaEditor

  1. Tab bar improvements:

    • The panel is not hidden even if only one window is open. Thus, the tab context menu commands are always visible to the user.
    • The 'X' closing button has been added to each tab. In addition, tabs can be closed using the middle mouse button or via the context menu.

    Tab bar improvements


  2. Added command for quick program compilation. This mode skips code optimization, which significantly speeds up the creation of an EX5 executable file. Use this mode during the active development stage, when you need to quickly check the written code. During the final program compilation, turn on the maximum optimization mode for enhanced performance.


    Use unoptimized compilation for quick code verification


    The "Maximum optimization" parameter in the project settings performs the same function.

    All compilation-relation operations are available under the "Build" menu.

  3. Code management improvements:

    • Separate commands have been implemented for jumping to definitions and to declarations. Previously, the menu had one command which opened a selection sub-menu. The new commands enable faster switch to necessary code parts.
    • Added substitution of recognized keywords by the "Tab" key, in addition to "Enter".


    Jump to method declaration


  4. Added ability to automatically display local variables in the debugger watch list. The display can be enabled by the "Local" context menu command. As the debugger operation proceeds through the code, variables from the current scope are automatically displayed in the list.


    Display of local variables in the Watch List

  5. Debugger watch list improvements for vectors and matrices.
  6. Fixed paths in project files. An error could cause files to disappear from projects.

Tester

  1. Improved stopping of tester agents at platform shutdown.
  2. The fifth MQL5 Cloud Network node has been added. It is located in Hong Kong. The new node speeds up the optimization of robots via the network in the nearest regions.

Fixed errors reported in crash logs.