MetaTrader 5 Trading Terminal build 630

Implemented skipping of graphical objects create by MQL5 programs when deleting objects using the Backspace key

11 April 2012

Trading Terminal

  1. Implemented skipping of graphical objects create by MQL5 programs when deleting objects using the Backspace key.

    Through the OBJPROP_HIDDEN property set only from MQL5 programs, graphical objects are divided into manually created and automatically created objects. By default, the list shows only the manually created objects to keep the window well organized. To see all objects, click "List All".

    Implemented skipping of graphical objects

    Now objects created by programs are not deleted by the command "Delete last (Backspace)".
    This prevents accidental removal of interface objects. They can be deleted programmatically or through the List of Objects (Ctrl + B) window.

  2. Added display of the beginning and end of symbol trading in the symbol settings dialog:

    Added display of the beginning and end of symbol trading in the symbol settings dialog

MQL5

  1. In the MQL5 language added support for operation overloading.

    Overloading of operations allows to describe operations with the meaning equivalent to those already existing in the language and apply them to the types of data created by the programmer. For example, overloading of operator "[]" allows you to implement a class with the behavior of an array. Overloading arithmetic operators allows to implement classes for working with complex numbers. In the above cases, overloading of operations allows to use of familiar syntax and avoid creation of numerous functions like ComplexPlusComplex, IntegerPlusComplex, ComplexMinusFloat, etc.

    In addition, support for operator overloading in MQL5 provides compatibility with general-purpose programming languages ​​(particularly with C++), facilitating the translation of previously written code (software libraries) into MQL5.

  2. In MQL5 added support for static fields and methods of classes and structures.

    Static fields and methods are the property of the class, so there is no need to create class instances to access its static fields. Use of static fields and methods in the language improves its flexibility and expressiveness. For example, using these methods you can easily implement control over the number of class instances (objects).

    Like with the support of operator overloading, support for operator overloading in MQL5 provides compatibility with general-purpose programming languages ​​(particularly with C++), facilitating the translation of previously written code (software libraries) into MQL5.

  3. Added a new property of the "Edit" graphical object - OBJPROP_ALIGN that denotes the alignment of text within the edit field. The property is set and read by methods ObjectSetInteger\ObjectGetInteger.
  4. Fixed the behavior of the ArrayIsDynamic function. When initializing a dynamic array with the initialization list, the ArrayIsDynamic function defined the array as static.
  5. Fixed an error in an implicit conversion of double to bool, which could lead to the error "invalid ex5".
  6. Updated the Standard Library - implemented minor bug fixes and improvements.

Strategy Tester

  1. Expanded the set of characteristics in testing results - added new features and diagrams:

    Expanded the set of characteristics in testing results

  2. Fixed loop of testing in the cases of absence of price history.
  3. Fixed refusal to modify pending orders approaching the order expiration time.

    Previously, if there were less than 5 minutes to the time of pending order deletion, an incorrect error TRADE_RETCODE_INVALID_EXPIRATION was returned at the attempt of correct order modification.

  4. Fixed generation of a negative spread when tested on open prices.
  5. Optimized transmission of testing results using the FrameAdd function.

    When you run an Expert Advisor in the strategy tester, you can create your own data array based on the simple types or simple structures. This data set can be saved using the FrameAdd() function in a special structure called a frame. During the optimization of an Expert Advisor, each agent can send a series of frames to the terminal. All the received frames are written in the file *.MQD in the folder terminal_directory/MQL5/Files/Tester expert named as the Expert Advisor. They are written in the order they are received from the agents.

    Optimize passing of frames from the tester to the client terminal and increased the speed of access to the frames received from the Expert Advisor at the entry points OnTesterPass.

  6. Fixed the context menu in the tabs of testing results.
  7. Fixed initialization of AccountInfo during optimization of strategies (the code exactly corresponds with a single test). This error could lead to the difference between the testing results and single tests with the same parameters.

MetaEditor

  1. Removed default highlighting the current line. In the previous versions, during the initial installation of MetaEditor highlighting of the current line was enabled by default.

    Removed default highlighting the current line

    Removed default highlighting the current line. In the previous versions, during the initial installation of MetaEditor highlighting of the current line was enabled by default

  2. In the MQL5 Wizard added support for the OnTester* entry points.

    In the MQL5 Wizard added support for the OnTester* entry points

    These entry points are handlers of events that are automatically generated by the strategy tester during testing (OnTester) and optimization (OnTesterInit, OnTesterPass, OnTesterDeinit) of Expert Advisors. Use of these functions in the EA allows to implement custom handling of testing and optimization results.

  3. Added snippets for the OnTester* entry points.

    For ease of writing code, MetaEditor provides the possibility to insert snippets — small template fragments of source code describing a particular construction of the MQL5 language. Insertion of a snippet is initialized by typing the keyword. After you type the keyword the cursor is changed to "Snippet available". To insert a snippet, you should press "Tab". For more information about working with snippets please read the MetaEditor Help.

    The keywords for the entry points OnTester, OnTesterInit, OnTesterPass and OnTesterDeinit are OnTester, OnTesterInit, OnTesterPass and OnTesterDeinit.

  4. Enhanced the features of MetaAssist for supporting operator overloading.

    For ease of programming, MetaEditor provides various tools from auto substitutions of names and tips to the functions to anchors and hot keys - MetaAssist. These tools allow you to speed up the process of code writing, make navigation easier and help prevent errors.

  5. Added the window displaying the differences between a source text local file and a version stored in MQL5 Storage:

    Added the window displaying the differences between a source text local file and a version stored in MQL5 Storage

    Added the window displaying the differences between a source text local file

  6. Fixed errors reported in crash logs.
    Updated documentation.

    The live update is available through the LiveUpdate system.

    The MetaTrader 5 Trading Terminal can be downloaded at https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com