New MetaTrader 5 Platform Build 4350: More analytical objects in the Web platform and Welcome page in MetaEditor

 

The MetaTrader 5 platform update will be released on Friday, May 31, 2024.

In this update, we have introduced new analytical objects to the web platform. Now, you can utilize the ruler to measure time and prices, draw shapes (rectangle, ellipse, triangle, and circle), and add labels to your charts.

To assist trading app developers, we have included a welcome page in MetaEditor. It will help beginners to delve into a plethora of educational materials while assisting existing developers in staying informed with the latest news and in monitoring their sales.


In addition, Copilot's code completion feature now supports the latest ChatGPT model, GPT-4o.


MetaTrader 5 Client Terminal

  1. MetaEditor: Added Welcome page to assist users in starting their journey with algorithmic trading and application development.



    Materials for beginners
    The "Introduction" section presents educational materials available on MQL5.com: language documentation, books, articles, developer forums and code base library. It also introduces services where you can apply and monetize your knowledge: the applications market, freelance and trading signals.

    In the documentation and books sections, you can find a more detailed description of the available learning materials.

    Useful features for developers
    The "What's New" section offers a collection of essential information to keep developers up-to-date:


    Additionally, you will find here a list of recently opened files for quick access.



    For users actively selling their applications in the Market, the "My Sales" report offers an invaluable tool for assessing their performance. It provides access to:

    • Comprehensive sales and download statistics over time.
    • Sales geography, offering insights into regions where your products have the highest popularity. This can suggest ideas for further project expansion, such as localization into specific languages or targeted advertising campaigns in particular regions.
    • Data on top-selling products based on sales volume and revenue generated. The graph can be filtered based on license type: full or rental for a certain duration. Additionally, you can see here a graph with product price changes. All of this will help you understand your customers.
    • Detailed download and sales statistics for each product.




  2. MetaEditor: Improved built-in search. The top search bar is now used exclusively for searching text within the current document or in local files. For a global search through educational materials and codes, use a separate section in the Toolbox.



  3. MetaEditor: Added support for GPT-4o, the latest ChatGPT model, in Copilot. It can be used to automatically complete code and get hints. You can select the new model in the MetaEditor settings.



  4. MetaEditor: Updated user interface translations.
  5. Terminal: Increased precision in displaying the calculation price in the trading instrument specification.
  6. Terminal: Fixed MFE and MAE calculations in the trading report.
  7. Terminal: Fixed saving and restoring of economic calendar filtering settings by country and currency.
  8. Terminal: Fixed application of templates to charts. Now, if the display of trading history is enabled for the chart, the corresponding objects will not disappear after applying a template.
  9. Terminal: Fixed errors in the options board. The addition of symbols to the board could cause the platform to freeze under certain conditions.
  10. Terminal: Fixed error in the position editing dialog. In some cases, incorrect levels could be entered instead of the current Stop Loss and Take Profit values.
  11. Terminal: Updated user interface translations.
  12. MQL5: Optimized and accelerated the ArrayResize function. The function can be executed up to 40% faster under certain conditions.
  13. MQL5: Updated support for ONNX.
  14. MQL5: Fixed MessageBox function calls in service applications. Regardless of the button pressed by the user in the dialog, the function returned a null value.
  15. MQL5: Fixed error that, in some cases, caused incomplete initialization of MQL5 programs.
  16. MQL5: Fixed error parsing some macros. The error occurred when using a large number of constants.
  17. Fixed errors reported in crash logs.

MetaTrader 5 Web Terminal

  1. Extended list of available analytical objects. Now, you can utilize the ruler to measure time and prices, draw shapes (rectangle, ellipse, triangle, and circle), and add labels to your charts. All objects can be found in the left panel:



  2. Added ability to rename objects.
  3. Improved integration with the economic calendar. Optimized and accelerated data requests.
  4. Accelerated chart operations.
  5. Accelerated application start and connection to a trading account.
  6. Fixed setting that controls the display of trading operations on the chart.
  7. Fixed display of margin requirements in contract specifications.
  8. Fixed display of account statuses in the history section. Issues could occur on devices with narrow screens.
  9. Fixed display of the Depth of Market changes.


The update will be available through the Live Update system.

 
Updates are too frequently! It is annoying! It is possible to disable updates???
 
Dmitry Zhakov #:
Updates are too frequently! It is annoying! It is possible to disable updates???

I was going to say the opposite. I'd like to be able to find a bug, report it, and have it fixed as soon as possible.

 
Dmitry Zhakov #:
Updates are too frequently! It is annoying! It is possible to disable updates???
It's a beta version. If you are updating only to release versions, this won't affect you.
 
Andriy Moraru #:
It's a beta version. If you are updating only to release versions, this won't affect you.
Sorry, my bad! They announce it as beta build, but push it through the release update. That's interesting...
 

massive performance issue in MT5 still NOT fixed in this release!

after release 4232 Metertester have a very big performance issue in case of testing multiple symbols with local agents.

since then, backtesting takes tones of time - in another words:  backtesting is still unusable!! 

I agree, the releases commes to fast with less quality!!!

 
4info #:

massive performance issue in MT5 still NOT fixed in this release!

after release 4232 Metertester have a very big performance issue in case of testing multiple symbols with local agents.

since then, backtesting takes tones of time - in another words:  backtesting is still unusable!! 

I agree, the releases commes to fast with less quality!!!

I am using build 4330 and I have no issue at all with multiple symbols backtesting. On the contrary, it's faster than ever.
 

My MT5 just updated to version 4331 and now Metatrader 5 switches off "Use Local Network Farm" when the optimizer starts and that makes all "Local Network Farm: #agents"  agents go to "not used".  I can manually switch it back on and that puts all of the "local network farm: #agents" agents to ready but they remain in ready and their % never changes from ready.  All the local: #cores are still running normally. It just won't initialize any of my local network farm agents. I started by downloading the latest optimizer version 4330 from Metatrader website. It's not the firewalls and it happens even after I re-added them new using the "Scan Network" option.  Additionally, I've powered down and restarted everything and it still is non functional. Thanks for any assistance.

 

I found a bug in the latest Mt5 version. 

When you loop though deals in OnTester then deal open time ( HistoryDealGetInteger(deal_ticket, DEAL_TIME) ) is the only function that don't returns a value when called in OnTester. When I run the same loop in OnTick, then HistoryDealGetInteger(deal_ticket, DEAL_TIME)  returns the correct open time value. 


code:

 long position_ticket = HistoryDealGetInteger(selected_ticket, DEAL_POSITION_ID);
               HistorySelectByPosition(position_ticket);
               double order_open_price = 0.0;
               double order_close_price = 0.0;
               double order_lots = 0.0;
               int order_type = 0;
               datetime order_close_time = 0;
               datetime order_open_time = 0;
               double order_commission = 0.0;
               long order_magic_number = 0;
               double order_profit = 0.0;
               double order_stop_loss = 0.0;
               double order_swap = 0.0;
               string order_symbol = "";
               double order_take_profit = 0.0;
               ulong order_ticket = 0;
               string order_comment = "";

               for (int t = HistoryDealsTotal() - 1; t >= 0; t--)
               {
                  ulong deal_ticket = HistoryDealGetTicket(t);
                  if (HistoryDealGetInteger(deal_ticket, DEAL_ENTRY) == DEAL_ENTRY_IN)
                  {
                     order_open_price = HistoryDealGetDouble(deal_ticket, DEAL_PRICE);
                     order_type = trade_deal_hist.DealType();
                     // order_open_time = trade_deal_hist.TimeMsc();
                     order_open_time = (datetime)HistoryDealGetInteger(deal_ticket, DEAL_TIME);
                     order_magic_number = trade_deal_hist.Magic();
                     order_stop_loss = HistoryDealGetDouble(deal_ticket, DEAL_SL);
                     order_symbol = trade_deal_hist.Symbol();
                     order_ticket = position_ticket;
                     order_comment = HistoryDealGetString(deal_ticket, DEAL_COMMENT);
                  }
                  if (HistoryDealGetInteger(deal_ticket, DEAL_ENTRY) == DEAL_ENTRY_OUT)
                  {
                     order_close_price = trade_deal_hist.Price();
                     order_lots += trade_deal_hist.Volume();
                     order_close_time = trade_deal_hist.Time();
                     order_take_profit = HistoryDealGetDouble(deal_ticket, DEAL_TP);
                     order_profit += trade_deal_hist.Profit();
                  }
                  order_commission += trade_deal_hist.Commission();
                  order_swap += trade_deal_hist.Swap();
               }

 
Sven Jacobsen #:

I found a bug in the latest Mt5 version. 

When you loop though deals in OnTester then deal open time ( HistoryDealGetInteger(deal_ticket, DEAL_TIME) ) is the only function that don't returns a value when called in OnTester. When I run the same loop in OnTick, then HistoryDealGetInteger(deal_ticket, DEAL_TIME)  returns the correct open time value.

Please format your code properly when you post code.

Which build ?

 
Alain Verleyen #:

Please format your code properly when you post code.

Which build ?

sorry, I'm not sure what you mean by format properly.

Build 4330



Documentation on MQL5: Constants, Enumerations and Structures / Trade Constants / Deal Properties
Documentation on MQL5: Constants, Enumerations and Structures / Trade Constants / Deal Properties
  • www.mql5.com
A deal is the reflection of the fact of a trade operation execution based on an order that contains a trade request. Each trade is described by...