New MetaTrader 5 platform build 2615: Fundamental analysis and complex criteria in the Strategy Tester

 

The updated version of the MetaTrader 5 platform will be released on Thursday, September 17, 2020. The new version features the following changes:

  1. Terminal: Expanded fundamental analysis facilities.

    Added new trading instrument properties, which enable a more accurate categorization of symbols:

    • Sector — the sector of the economy which the asset belongs to, such as energy, finance, healthcare and others.
    • Industry — the industry type which the asset belongs to, such as sportswear, accessories, car manufacturing, restaurant business and others.
    • Country — the country of the company whose shares are traded on the stock exchange.

    Based on these properties, a separate system has been implemented in Market Watch, enabling efficient operations with symbols. Select a category from the menu, and all available instruments will be added to a list for in-depth analysis:



    Relevant properties have been added to contract specifications:



    Furthermore, fundamental data on trading symbols can now be opened directly from the platform. Links to the largest aggregators have been added to the Market Watch context menu:



    The availability of extended data is controlled by the broker. However, we have ensured the default availability of the advanced information for the maximum number of instruments. As soon as brokers update their servers to the new version, the appropriate country, sector and industry data will appear in your platforms.
  2. Terminal: Improved Signals and Market showcases. Rental and subscription buttons have been added to the left-side panel:



    Further improvements concern the section design. This includes brighter button colors, larger MQL5 login buttons and other improvements.

  3. Terminal: Fixed potential profit/loss calculation for Stop Loss and Take Profit chart levels.



  4. Terminal: Fixed errors in the calculation of synthetic instruments. The errors could occasionally cause the platform to freeze at startup.
  5. Terminal: Fixed display of built-in Fractals indicator values in the Data Window.
  6. Terminal: All icons in the platform toolbars have been updated to support HiDPI monitors.
  7. Terminal: Fixed position volume adjustment for copied trading signals. The adjustment operation could sometimes fail due to incorrectly applied stop levels, which caused the "invalid stops" error.
  8. Terminal: Optimized price history rebuilding after relevant changes on the server.
  9. Terminal: Fixed display of trade level tooltips on charts. In some cases, tooltips were shown on charts even if the display of trade levels was disabled.
  10. Terminal: Fixed option "Show on Charts \ Auto Update" in the context menu of orders an d positions under the "Toolbox\ Trade" section. Now, if this option is unchecked, trading history display will be disabled for all open charts.
  11. MQL5: Added MathClassify function. It determines the type of a real number and returns a result as a value from the new ENUM_FP_CLASS enumeration.
    ENUM_FP_CLASS  MathClassify(
       double  value      // real number
       );
    The enumeration contains the following values:

    • FP_SUBNORMAL — a subnormal number which is closer to zero than the smallest representable normal number DBL_MIN — 2.2250738585072014e-308.
    • FP_NORMAL — a normal number in the range between 2.2250738585072014e-308 and 1.7976931348623158e+308.
    • FP_ZERO — a positive or a negative zero.
    • FP_INFINITE — a number which cannot be represented by the appropriate type, positive or negative infinity.
    • FP_NAN is not a number.

    Use the following code to check the real number validity:
    if(MathClassify(value)>FP_ZERO)
      {
       Print("value is not a valid number");
      }
  12. MQL5: Added symbol properties which can be obtained using SymbolInfoString functions:

    • SYMBOL_COUNTRY — the country of the company whose shares are traded on the stock exchange.
    • SYMBOL_SECTOR_NAME — the sector of the economy which the asset belongs to, such as energy, finance, healthcare and others.
    • SYMBOL_INDUSTRY_NAME — the industry which the asset belongs to, such as sportswear, accessories, car manufacturing, restaurant business and others.

    The properties are returned as a string.

    The sector and the industry which the instrument belongs to can be obtained as an enumeration value. This can be done by requesting the following properties using the SymbolInfoInteger function:

    • SYMBOL_SECTOR
    • SYMBOL_INDUSTRY

    The ENUM_SYMBOL_SECTOR and ENUM_SYMBOL_INDUSTRY enumerations have been added for working with these properties.

  13. MQL5: A new memory management mechanism has been implemented in MQL5 programs. It enables up to 3 times faster memory allocation and avoids potential memory access errors.
  14. MQL5: Optimized and accelerated operations with the account tick history via History* functions.
  15. MQL5: Fixed WebRequest call from the OnDeinit entry point. In earlier versions, the function call could not be implemented in the case of an Expert Advisor stop.
  16. MQL5: Fixed WebRequest function calls from services. Previously, a function call could fail after service restart.
  17. MQL5: Added check for double type support on a device when using OpenCL. The float type cannot be used in financial calculations due to excessive rounding. Therefore, the platform explicitly requires double-support for calculations. If the double type is not supported, an appropriate message will be written to the platform log: device '<name>' does not support type 'double'. Previously, a common error message was shown in such cases.
  18. MQL5: Significantly accelerated execution of the AccountInfoDouble function with the ACCOUNT_EQUITY and ACCOUNT_BALANCE parameters.
  19. MQL5: Fixed application of templates to a chart through the ChartApplyTemplate function.
  20. MQL5: Fixed ChartSetInteger function call with the CHART_BRING_TO_TOP parameter.
  21. MQL5: A new Conjugate method has been added to the built-in Alglib library. This method enables conjugate number calculation for complex numbers. The library is located at MQL5\Include\Math\Alglib.
  22. MQL5: Completely revised code profiler. The new profiler operates with a higher accuracy and at a higher speed.

    • The analysis is now based on the code which is optimized similarly to the compilation of a program's release version. This enables a more accurate determination of code execution speed, as exactly the same code will be used during program execution.
    • The new profiler uses the "Sampling" profiling method. This lightweight and accurate method collects application performance statistics by collecting call stack data and by calculating performance at regular intervals.
    • Unlike the previous versions, the new profiler does not make any changes to the analyzed code. The previously used Instrumentation method added certain constructs to the code, which were used to measure the function speed. This could affect the final code speed.

    The development of the profiler will continue. Further improvements will become available in upcoming platform releases.

  23. Tester: Optimized operations with MQL5 Cloud Network. Fixed loading of Expert Advisors on agents.
  24. Tester: Added new optimization criterion "Complex Criterion max". This is an integral and complex measure of a test pass quality. It measures multiple parameters:

    • Number of Deals
    • Drawdown
    • Recovery Factor
    • Expected Payoff
    • Sharpe Ratio

    The highest value of one parameter (for example the profit) is not always the best option in terms of the complex analysis. The complex criterion gradually selects the best passes: firstly, by the number of deals, then by the Expected Payoff, Recovery Factor, and so on. The new option allows reception of the best optimization passes according to all parameters. Furthermore, you can select the optimal pass based on the desired parameter, such as the highest profit.

    Select the new criterion in the strategy tester settings and start optimization.



    The "Complex Criterion max" value will be displayed in a separate "Result" tab in optimization results. Passes can be sorted by this column. The new criterion supports color-coded lighting to visually highlight the best passes. Values below 20 are highlighted in red, and values above 80 are shown in dark green.



  25. Tester: Fixed calculation of custom commissions in the Strategy Tester.
  26. MetaEditor: We have initiated the global revision of smart code management functions (IntelliSense).

    • Hints now show the full function signature in addition to its name.
    • The font for the hints is now set in accordance with MetaEditor settings.

    Further improvements will become available in upcoming platform releases.

  27. Updated documentation.

The update will be available through the Live Update system.

 

My Metatrader 5 was already updated today:

 

I am not sure that this is how MathRound is supposed to work.

Build 2605:

Print("MathRound(0.01) = ", MathRound(0.01));
2020.09.15 13:34:03.224 PositionSizeCalculator (USDCAD,H1)      MathRound(0.01) = 0.01

Build 2560:

Print("MathRound(0.01) = ", MathRound(0.01));
2020.09.15 13:33:03.585 PositionSizeCalculator (USDCAD,H1)      MathRound(0.01) = 0.0
 
I have this Bug in MetaEditor 
please find attached Image


when typing functions the suggestion box is partially displayed on my screen  look at line 420
Files:
 

MetaTrader 5 beta build 2606 is available with some fixing (for example, something with MathRound was fixed and more; the discussion is going on this thread).

 
MetaQuotes:

The updated version of the MetaTrader 5 platform will be released on Thursday, September 17, 2020. The new version features the following changes:

...

Updated -

 
Please, add TimeFrames button toolbar to undocked charts!
 
Could you please add percent number to Stop Loss and Take Profit chart levels(or their tooltips)
 

MetaTester 2615 vs. 2560

I have performance problems with the new version 2615, the old version 2560 is 3 times faster as the 2615 version. Please can u help and fix this?

 
antony23:
Please, add TimeFrames button toolbar to undocked charts!
I second that!
 

Dear MetaQuotes software developers!

In the MQL programming language the `typedef' operates only with function pointer types.
Currently it does not operate with simple type alias declarations as in C++. This is a must
for more complex template programming and metaprogramming. Please implement this
feature because it is needed for complex programming with templates. Even in the company's
MQL documentation there is a section about this `typedef' feature but the feature does
not operating. There is always a compiler generated error message of "unexpected token".

https://www.mql5.com/en/docs/basis/types/typedef


>>>>

User-defined types

The typedef keyword in C++ allows creating user-defined data types. To do this, simply specify a new data type name for an already existing data type. The new data type is not created. A new name for the existing type is defined instead. User-defined types make applications more flexible: sometimes, it is enough to change typedef instructions using substitution macros (#define). User-defined types also improve code readability since it is possible to apply custom names to standard data types using typedef. The general format of the entry for creating a user-defined type:

   typedef type new_name;

Here, type means any acceptable data type, while new_name is a new name of the type. A new name is set only as an addition (not as a replacement) to an existing type name. MQL5 allows creating pointers to functions using typedef.

<<<<

Please implement this feature!

Many thanks for considering my request!

Yours sincerely: László Müller, Hungary.

Documentation on MQL5: Language Basics / Data Types / User-defined Types
Documentation on MQL5: Language Basics / Data Types / User-defined Types
  • www.mql5.com
//|                                                Panel_Buttons.mq5 | //|                        Copyright 2017, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| defines                                                          |  INDENT_LEFT                         (11)      ...
Reason: