New MetaTrader 5 platform build 4230: More built-in applications and expanded ONNX support

 

The MetaTrader 5 platform update will be released on Thursday, March 7, 2024.

In the new version, the standard terminal includes 28 new trading robots and 12 technical indicators. They will assist in learning the MQL5 language and developing your own trading strategies. Also, this build provides improvements to the display of margin requirements in symbol specifications. Another innovation is the ability to automatically shut down the platform upon completion of script operations using configuration files. This allows the execution of various one-time tasks without using extra computer resources.

New functions for working with ONNX machine learning models have been added to MQL5. With these functions, you can input Float16 and Float8 parameters to models.

New MetaTrader 5 platform build 4230: More built-in applications and expanded ONNX support


MetaEditor features improved built-in search. Online and local search results are now displayed in different tabs for convenience. We have also added a search option for the recently released book "MQL5 Programming for Traders".


MetaTrader 5 Client Terminal

  1. Terminal: Added 28 new Expert Advisors and 12 new indicators to the standard platform package. The applications are available in the Expert Advisors\Free Robots and Indicators\Free Indicators sections in the Navigator. Each program is available as source code with detailed comments to assist you in learning the MQL5 language.

    The robots implement trading strategies based on technical indicators and candlestick patterns, such as 3 Black Crows – 3 White Soldiers, Bullish Engulfing – Bearish Engulfing, Bullish Harami – Bearish Harami and others. New indicators are implementations of popular channels: Camarilla, DeMark, Donchian, Fibonacci and Keltner, among others.


    Added 28 new Expert Advisors and 12 new indicators in the standard platform package.


  2. Terminal: Preparations are underway for the launch of Nasdaq market data subscriptions. Right from the platform, traders will be able to access real-time quotes and deep price histories for hundreds of financial instruments from one of the largest exchanges. Subscriptions will be available to any user having a demo account on the MetaQuotes-Demo server and an MQL5.community account.


    Nasdaq Market Data Subscription


    To get started, you only need to purchase a subscription and add the relevant symbols to your Market Watch. You can use these symbols as regular instruments: open charts, analyze them using objects and indicators, and run Expert Advisors in the strategy tester. Access to all information is implemented as for ordinary financial instruments with which you work with a broker.

  3. Terminal: Improved margin section in the instrument specification. The section now features margin rates and calculated values for each instrument.


    Improved margin section in the instrument specification


    Fixed errors in margin display for certain types of symbols.

  4. Terminal: Added link to the MQL5 Telegram channel in the Help menu. Interesting content for developers is regularly shared in the channel, including reviews of new programming articles and free robots and indicators from the Code Base. Subscribe to the channel and ensure you don't miss out on important information.


    Added link to the MQL5 Telegram channel in the Help menu.


  5. Terminal: Added support for the ShutdownTerminal parameter in the [StartUp] section of custom configuration files. Use this parameter to launch the platform to execute one-off tasks using scripts. For example, you have a script that takes a screenshot of the chart. You can create a configuration file that launches this script along with the platform. If you add ShutdownTerminal set to 'Yes' to this file, the platform will automatically shut down immediately after the script completes.
  6. Terminal: Enhanced protection of network protocols and Market products.
  7. Terminal: Disabled support for the Signals service for demo accounts. To access enhanced statistics on your training accounts, use the new trading report. It features a plethora of metrics characterizing your strategy profitability and risks, including growth, balance and equity graphs, diagrams of trade distribution by direction and instruments, and much more.
  8. Terminal: Fixed display of broker agreement links in the Help menu.
  9. Terminal: Improved selection of the best server when renting VPSs.
  10. Terminal: Fixed refreshing of the subscriptions page when switching between sections in the Navigator.
  11. Terminal: Fixed updating of the list of agreements when opening a preliminary account.
  12. Terminal: Updated translations of the user interface.
  13. MQL5: Added MQL_STARTED_FROM_CONFIG property in the ENUM_MQL_INFO_INTEGER enumeration. Returns true if the script/Expert Advisor was launched from the StartUp section of the configuration file. This means that the script/Expert Advisor had been specified in the configuration file with which the terminal was launched.
  14. MQL5: We continue expanding support for ONNX models.

    Machine learning tasks do not always require greater computational accuracy. To speed up calculations, some models use lower-precision data types such as Float16 and even Float8. To allow users to input the relevant data into models, the following functions have been added to MQL5:
    bool ArrayToFP16(ushort &dst_array[],const float &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP16(ushort &dst_array[],const double &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const float &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const double &src_array[],ENUM_FLOAT8_FORMAT fmt);
    
    bool ArrayFromFP16(float &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP16(double &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP8(float &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayFromFP8(double &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    Since real number formats for 16 and 8 bits may differ, the "fmt" parameter in the conversion functions must indicate which number format needs to be processed. For 16-bit versions, the new enumeration NUM_FLOAT16_FORMAT is used, which currently has the following values:

    • FLOAT_FP16 – standard 16-bit format also referred to as half.
    • FLOAT_BFP16 – special brain float point format.

    For 8-bit versions, the new ENUM_FLOAT8_FORMAT enumeration is used, which currently has the following values:

    • FLOAT_FP8_E4M3FN – 8-bit floating point number, 4 bits for the exponent and 3 bits for the mantissa. Typically used as coefficients.
    • FLOAT_FP8_E4M3FNUZ — 8-bit floating point number, 4 bits for the exponent and 3 bits for the mantissa. Supports NaN, does not support negative zero and Inf. Typically used as coefficients.
    • FLOAT_FP8_E5M2FN – 8-bit floating point number, 5 bits for the exponent and 2 bits for the mantissa. Supports NaN and Inf. Typically used for gradients.
    • FLOAT_FP8_E5M2FNUZ — 8-bit floating point number, 5 bits for the exponent and 2 bits for the mantissa. Supports NaN, does not support negative zero and Inf. Also used for gradients.

  15. MQL5: Added new matrix and vector methods used in machine learning:

    • PrecisionRecall computes values to construct a precision-recall curve. Similarly to ClassificationScore, this method is applied to a vector of true values.
    • ReceiverOperatingCharacteristic — computes values to construct the Receiver Operating Characteristic (ROC) curve. Similarly to ClassificationScore, this method is applied to a vector of true values.

  16. MQL5: ONNX Runtime updated to version 1.17. For release details, please see GitHub.
  17. MQL5: Python integration package updated to version 5.0.4200, added support for Python 3.12. Update your package using the command "pip install --upgrade MetaTrader5" to get the latest changes.
  18. MQL5: Added DEAL_REASON_CORPORATE_ACTION property in the ENUM_DEAL_REASON enumeration. It indicates a deal executed as a result of a corporate action: merging or renaming a security, transferring a client to another account, etc.
  19. MQL5: Added support for comparing complex vectors and matrices for the Compare method. The comparison involves estimating the distance between complex numbers. The distance is calculated as sqrt(pow(r1-r2, 2) + pow(i1-i2, 2)) and is a real number that can already be compared with epsilon.
  20. MQL5: Fixed conversion of color type variables to text in RGB format.
  21. MQL5: Fixed returning of the result of obtaining eigenvectors in the Eig method in the case of a complex eigenvalue. Added method overload for complex evaluation.
  22. MQL5: Fixed OrderCalcMargin function operation for certain cases.
  23. MetaEditor: Added link to the recently released book "MQL5 Programming for Traders" in the Help\MQL5.community menu. The book has also been added to the search system, and thus you can find the necessary information directly from MetaEditor:


    Added search for the book "MQL5 Programming for Traders"



  24. MetaEditor: Built-in search improvements:

    • The search results section in the Toolbox window has been divided into two tabs: "Search" for online search results (documentation, articles, book, etc.) and "Search in files" for local results.
    • A separate search string has been added to the results section. You can use it instead of the search bar in the main MetaEditor toolbar.

  25. MetaEditor: Added support for AVX, AVX2 and AVX512 modes when compiling commands from the command line. To compile, add one of the following keys to your command: /avx, /avx2 or /avx512.
  26. MetaEditor: SQLite engine for database operations updated to version 3.45.
  27. MetaEditor: Disabled support for Internet Explorer. Now only Microsoft Edge WebView2 is used to display HTML pages. Compared to the outdated MSHTML, the new component significantly expands content displaying capabilities by providing access to the latest technologies. The use of WebView2 improves the appearance of some MetaEditor sections, increases performance, and creates a more responsive interface.
  28. MetaEditor: Fixed freezing that occurred in rare cases on function autocompletion.
  29. Tester: Fixed calculations of triple swaps if the test start day falls on the triple-swap day.
  30. Fixed errors reported in crash logs.

MetaTrader 5 Web Terminal

  • Improved display of margin requirements in contract specifications. Now, in addition to ratios and initial parameters for calculations, specifications display the final margin values. If the margin amount depends on the position volume, the corresponding levels will be shown in the dialog.


    Improved display of margin requirements in contract specifications


    The margin is calculated based on the instrument price at the time the specification window opens and is not updated in real time. Therefore, the values should be considered indicative. To recalculate values based on current prices, reopen the instrument specification.


The update will be available through the Live Update system.

 
thank you, the onnx new update is really great!
 

Forum on trading, automated trading systems and testing trading strategies

Beta version of the MetaTrader 5 platform build 4210: more built-in applications and expanded support for ONNX

MetaQuotes , 2024.02.28 16:21

Beta 4205 available:

  • Terminal start has been accelerated
  • Removed brakes in ioport on a small number of cores
  • Fixed crash under Mac in previous betas


 

this update 4230 was pushed onto me today, and now my community login is not working. 0 errors and 0 messages in journal.

And when I put in community login in the little man, the circle just keeps going around and around. does not seem to be timing out -- even.

That circle has been doing this for 10 minutes now.

EDIT: it is working now, albeit it shows it had a delay of 4 minutes when in fact it the circle was still happening at 10 minutes, not 4, as it shows in the journal time. I will leave this post here to show others that it might just take awhile.

 

BUG? Build 4230

Fib tool not updating correctly -

Is anyone having this problem with the latest builds of MT5 Terminal ?

Adjustments to the Fibonacci tool, levels , colour etc, are not being updated as the new default to the main configuration, especially from un-docked chart windows. This was also the case for me with the last build and now also with build 4230


For example - Previously you could go to any historic customized Fib on a chart change a value and it would register as the default Fib to be used the next time the tool was deployed, Now you have to remember which fib on which chart is the only one updating itself.


Also additional problem on 4230 now. Right clicking on the toolbar to customize and add a tool causes the whole Terminal to lock up and freeze for 1 to 2 minutes.

 
SISKI TRADING #:

BUG? Build 4230

Fib tool not updating correctly -

Is anyone having this problem with the latest builds of MT5 Terminal ?

Adjustments to the Fibonacci tool, levels , colour etc, are not being updated as the new default to the main configuration, especially from un-docked chart windows. This was also the case for me with the last build and now also with build 4230


For example - Previously you could go to any historic customized Fib on a chart change a value and it would register as the default Fib to be used the next time the tool was deployed, Now you have to remember which fib on which chart is the only one updating itself.


Also additional problem on 4230 now. Right clicking on the toolbar to customize and add a tool causes the whole Terminal to lock up and freeze for 1 to 2 minutes.

Do you have any other objects on your chart besides fibo and what type?

I encountered a problem that when there are several objects on the chart, I cannot set the parameters of the new object. For example, I create an additional object of the OBJ_RECTANGLE_LABEL type:

    ObjectCreate(ChartID(), objName, OBJ_RECTANGLE_LABEL, 0, 0, 0);

    ObjectSetInteger(ChartID(), objName, OBJPROP_XDISTANCE, 5);

    ObjectSetInteger(ChartID(), objName, OBJPROP_YDISTANCE, 20);

    ObjectSetInteger(ChartID(), objName, OBJPROP_XSIZE, 150);

    ObjectSetInteger(ChartID(), objName, OBJPROP_YSIZE, 50);

and this object is created (visible in the list of chart objects) but is not visible in the chart. When I read the position and size of this rectangle with the ObjectGetInteger function, these values are always set to zero.

This problem occurs in version 4230 but unfortunately on specific computers (usually VPS). When I run this code on version 4150 it works fine.

 
Previous update made the Strategy Tester startup really slow.  It takes severals seconds.  Very annoying.
Latest update made MetaTrader5 startup extremely slow.  It hangs an AMD Ryzen 7 5800X 8 core 16 thread processor for more than 10 seconds.  This is abnormal.  You knew how to write a good program until recently.  Could you please fix this?
Also, could you please add some kind of e-mail security so users can send e-mails to Gmail, Hotmail and such from Expert Advisor?  It would be much appreciated.
 

With the new update (build 4231) the creation of a panel fails.

Error message:
CAppDialog: expert dialog create error


Code:

//+------------------------------------------------------------------+
//|                                              LearnCAppDialog.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Controls\Dialog.mqh>

CAppDialog AppWindow;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create application dialog
   if(!AppWindow.Create(0,"AppWindow",0,20,20,360,324))
      return(INIT_FAILED);
//--- run application
   AppWindow.Run();
//--- succeed
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy dialog
   AppWindow.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Expert chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // event ID  
                  const long& lparam,   // event parameter of the long type
                  const double& dparam, // event parameter of the double type
                  const string& sparam) // event parameter of the string type
  {
   AppWindow.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
 
Janusz Trojca #:

Do you have any other objects on your chart besides fibo and what type?

I encountered a problem that when there are several objects on the chart, I cannot set the parameters of the new object. For example, I create an additional object of the OBJ_RECTANGLE_LABEL type:

and this object is created (visible in the list of chart objects) but is not visible in the chart. When I read the position and size of this rectangle with the ObjectGetInteger function, these values are always set to zero.

This problem occurs in version 4230 but unfortunately on specific computers (usually VPS). When I run this code on version 4150 it works fine.

Just Fibs on the chart, but multiples instances across time as is normal. There's only one fib that updates and I keep having to search for it, you end up updating all the fibs individually, I checked the 'terminial.ini' file, wasn't updating,  deleted it, and then you get the yellow basic fib which then becomes the only one that updates, reinstalled a fresh terminal and same issue, definitely a MT5 new build generation bug, MT4 on my other local system works fine, you can update a value any old fib and it becomes the default, and trying to contact service desk is a complete nightmare, they only deal with financial issues and redirect you back to anyone of 10,000 fragmented user bug forums so who on earth is gate keeping the problems with the terminal at MQL5 now?


I't almost as if with this new generation MT5 build they managed to track down all the Microsoft programmers of Windows Millennium, put a team together to code MT5 then placed a support desk team in another dimension humans can't access. 

 
VikMorroHun #:
Previous update made the Strategy Tester startup really slow.  It takes severals seconds.  Very annoying.
Latest update made MetaTrader5 startup extremely slow.  It hangs an AMD Ryzen 7 5800X 8 core 16 thread processor for more than 10 seconds.  This is abnormal.  You knew how to write a good program until recently.  Could you please fix this?
Also, could you please add some kind of e-mail security so users can send e-mails to Gmail, Hotmail and such from Expert Advisor?  It would be much appreciated.

I'm also having this hanging problem, scrolling charts with the mouse is like it's controlled by an old step motor. On the last build I managed to get hold of service desk and asked if they have issues with the terminal compiler efficiency and they replied they didn't but clearly some part of it wasn't working properly and still isn't. Even bringing max bars to 1000 makes no difference.

I think they need to roll back both the last two builds to a stable version and beta test potential new builds properly "In-house" especially because this software is the main component of a live financial trading and management tool, who in their right mind is going to install a beta test version to trade, then add the fact there is no direct bug report access to the developers ? How they are doing this now is clearly flawed through some casual relationship with reality and culpability.

 
Tobias Christian Witzigmann #:

With the new update (build 4231) the creation of a panel fails.

Error message:
CAppDialog: expert dialog create error


Code:

A Windows update has fixed the problem.

Reason: