MetaTrader 5 Platform Build 3950: Deposits/withdrawals in the terminal and updated trading report

 

The updated version of the MetaTrader 5 platform will be released on Thursday, September 14, 2023.

The new version features the balance operation commands allowing traders to deposit and withdraw funds from their trading account directly in the terminal. Integration of payment systems into MetaTrader 5 provides traders with the opportunity to manage funds in one click without leaving the client terminal.


We have also completely revised the account trading history report. Now it features several sections with many parameters: trading result graphs, distribution of trades by symbols and profitability, general statistics and much more. Now it will be even easier and more convenient for you to analyze trading results.

In addition, we have added support for AVX/AVX2/AVX512 instructions to the MQL5 compiler and to the client terminal itself. Now developers of trading robots can develop programs taking into account the advanced capabilities of modern processors. This speeds up vector calculations and mathematical operations.

Also, starting with build 3930, the MetaTrader 5 client terminal itself will be installed and updated to match the architecture of the CPU it is installed on.

All installers, including the versions for MetaTrader 4, are of only 64-bit type now. The release of 32-bit installers has been discontinued.
Previously installed 32-bit platform versions will work until January 1, 2024.

The new version also adds improvements to the web terminal - added a custom period for trading history, accelerated the initial loading of the terminal, as well as added the ability to change/delete and save the password.


  1. Terminal: Added support for balance operations for depositing/withdrawing funds from a trading account directly in the client terminal.

    We have added integration of the most popular payment systems directly into the MetaTrader 5 platform, which allows brokers to provide traders with a new level of service. When depositing or topping up, simply select the method that suits you best and complete the transaction. For more convenience, traders can save selected cards so as not to enter card details each time. Brokers do not store payment details and card numbers. The payment data entered by a user is sent over a secure channel to the user-selected payment system.

    The new functionality provides traders with the opportunity to manage funds in one click without leaving the client terminal.



  2. Terminal: Completely revamped the trading history report. Now it is more easy to view. We have revised the approach to presenting information and converted dry statistical reports into interactive graphs and diagrams. The work is still in progress, but you can evaluate the changes already.

    To view trading statistics, click Reports in the View menu.








    The report is divided into four tabs, each containing aggregated information:

    1. Summary — trading summary: account data, overall profit and loss, deposits and withdrawals, balance, growth and dividends graphs and others.
    2. Profit/Lost — data on profitable and losing trades. The parameter is divided by types of trading (manual, algorithmic and copying trades). The results can be analyzed in terms of trades or money by months and years.
    3. Long/Short — dynamic ratio of purchases and sales at specified periods of time, as well as Buy and Sell profitability.
    4. Symbols — analysis of trades by financial instruments. Here you will see which symbols you earn or lose on, how often you trade them, graphs of trades and monetary volumes for them.

    New reports allow you to visually evaluate trading results in a variety of aspects by simply clicking on the tabs. Histograms, graphs and diagrams are interactive and provide additional information when hovering the mouse cursor. Our designers have put much effort into making reports as simple and clear as possible. Just give them a try!


  3. Terminal: Added the usage of AVX2 instructions in case they are supported by CPU. This allows for more efficient use of CPU capabilities the terminal is launched on. Now, when installing or updating, the terminal determines the CPU architecture on its own and installs the most optimal version. During the launch, the terminal sends a message (AVX/AVX2) to the log displaying the set of instructions the terminal is built for.
    Terminal	MetaTrader 5 x64 build 3914 started for MetaQuotes Software Corp.
    Terminal	Windows 10 build 19045, 20 x Intel Xeon  E5-2630 v4 @ 2.20GHz, AVX, 41 / 63 Gb memory, 58 / 280 Gb disk, UAC, GMT+2
    

    Advanced Vector Extensions (AVX) is an extension of the x86 instruction set for Intel and AMD microprocessors proposed back in 2008. Further development has led to the appearance of AVX2 and AVX-512 (2013).

  4. Terminal: In addition to the two versions of MetaTrader 5 terminals on X64 and AVX, we have released the third version of the desktop terminal compiled with direct support for AVX2 commands. At the same time, ONNX models now also work with support for AVX2 commands.
  5. Terminal: Added display of links to the broker's necessary regulatory documents. You can now obtain all the necessary legal information from your broker directly in the client terminal in Help / Terms & Conditions.





  6. Terminal: Fixed 2FA authorization in case of the additional use of the extended authorization using certificates.
  7. Terminal: Fixed display of internal mail messages when working on MacOS.
  8. Terminal: Fixed display of the Signals window when working in Wine.
  9. Terminal: Released new MetaTrader 4 and 5 installers for Linux.
  10. Terminal: Added commands for visiting Linux and Mac terminal version download pages in Help. For traders' convenience, we have created a special section of the website with terminal versions for all platforms, as well as for trading in a browser.





  11. Terminal: Fixed embedding images into internal mail.
  12. Terminal: Released new MetaTrader 5 terminal installers for Mac with support for M1/M2 processors. Due to the transition to Wine 8.0.1, we strongly recommend that you remove old versions and install new ones. When using Wine versions older than 8.0.0, a message about the need for an update is displayed in the terminal log.
  13. Terminal: Added "VPS Hosting Speed Up" in the network scan menu indicating the ping to your trading server. This allows you to clearly see how your network delays decrease when renting a built-in VPS.




  14. Terminal: Strengthened the requirements for minimum password complexity, namely:

    • password length — at least 8 characters
    • the password must contain at least 1 character in upper and lower case, at least 1 digit and at least 1 special character.

  15. Terminal: Usable links in terminal logs. Now when double-clicking on lines with https links, users are sent to their browsers and the link is opened.
  16. Terminal: Fixed search for trading instruments in Market Watch. Now the symbol is first searched by name, and then by other fields: description, ISIN, etc.
  17. Terminal: Fixed accounting for profit on trades when calculating the balance in account trading history reports. In some cases, the instrument type was not taken into account in the calculations.
  18. VPS Hosting: Added the ability to send and run EX5 programs compiled under the x64/AVX/AVX2 command set. Programs for AVX512 are not supported on the built-in VPS.
  19. VPS Hosting: Increased the number of locations for renting the built-in VPS up to 27. Now the selection of the closest server has become even wider.
  20. MQL5: Added control of compilation settings, including selection of extended processor instruction sets — AVX, AVX2, AVX512 and FMA3.

    Modern CPUs have a set of advanced instructions that significantly speed up mathematical calculations, but the vast majority of modern programs do not use these capabilities. We have added support for these instructions to the MQL5 language compiler, which allows for more efficient and faster code generation.

    We have also added the ability to choose which type of instructions to compile an MQL5 program with. You can specify both general settings for single programs in MetaEditor Options, and apply personal ones in project settings:




  21. MQL5: Added the ENUM_AVERAGE_MODE and ENUM_CLASSIFICATION_METRIC enumerations to the Matrix and Vector Methods.
  22. MQL5: Added Set method for vectors.
  23. MQL5: Revised OpenCL initialization - now it is initialized by the first actual use, not by loading an MQL5 program containing OpenCL functions.
  24. MQL5: Fixed an error when calling the SocketIsConnected function.
  25. MQL5: Fixed delay in calling the OnDeinit method when unloading custom indicators.
  26. MQL5: Fixed a compiler error, which caused incorrect calculation of the string length in the indicator_label property leading to incorrect display of tooltips for graphical objects.
  27. MQL5: Fixed the use of multi-line comments in the macro body. An example of a macro where the error occurred:
    #define MACRO1 /*
    #define MACRO2 */
    void OnStart()
    {
    #ifdef MACRO2
        Print( 2 );
    #else
        Print( 1 );
    #endif
    }
  28. MQL5: Fixed the order of parameters of the MathAtan2 function. The order now matches the similar function in C++.
  29. MQL5: Added the new TERMINAL_CPU_ARCHITECTURE value to the ENUM_TERMINAL_INFO_STRING enumeration. Also, added the  __CPU_ARCHITECTURE__ macro — obtaining the CPU architecture of the computer the terminal is running on. Example of use:
    void OnStart()
      {
       Print("CPU name:         ",TerminalInfoString(TERMINAL_CPU_NAME));
       Print("CPU cores:        ",TerminalInfoInteger(TERMINAL_CPU_CORES));
       Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE));  
       Print("");
       Print("EX5 architecture: ",__CPU_ARCHITECTURE__);                            
      }
    
    CPU name:         12th Gen Intel Core i9-12900K
    CPU cores:        24
    CPU architecture: AVX2 + FMA3
    
    EX5 architecture: AVX

  30. MQL5: Changed the extern modifier behavior. Now declaration of a variable with the extern modifier is a variable pre-declaration.

    New restrictions:
    1. The variable pre-declaration should not contain initialization. For example, when compiling the code below, we get the error "X - extern variable initialization is not allowed":
      extern int X=0;
      
      void OnStart()
        {
        }

    2. The 'extern' variable should be declared in the program without the 'extern' keyword. For example, when compiling the code below, we get the error "unresolved extern variable X":
      extern int X;
      
      void OnStart()
        {
        }

    3. When using 'extern', it is important to pay attention to the initialization order, because a variable can be accessed before it is initialized. For example, the following code will yield "Y=0 X=5" in the log since initialization of variable Y occurs before initialization of variable X:
      extern int X;
      int        Y=X;
      
      void OnStart(void)
        {
         Print("Y=",Y," X=",X);
        }
        
      int X=_Digits;

  31. Updated the ALGLIB library up to 3.19. ALGLIB is a high-performance numerical analysis library designed to work with numerical methods and data analysis algorithms.

    We have revised existing library classes to use matrices and vectors, and also added new functionality from ALGLIB 3.19. All source code has been revised and brought to a single design style. The source code of the ALGLIB library is located in <terminal data directory>\MQL5\Include\Math\Alglib. Test scripts are located in MQL5\Scripts\UnitTests\Alglib.

    Unfortunately, the changes in the ALGLIB library version 3.19 for MQL5 were quite significant, so there is no backward compatibility. If your codes use the ALGLIB library for MQL5 version 3.5, you need to explicitly check your programs and make the necessary changes.

    In addition to the library itself, test scripts were also updated - the number of tests increased from 62 to 91 for classes and from 143 to 152 for interfaces. Thus, MetaTrader 5 platform developers provide traders with the most efficient solutions:

    • MQL5 language, which is as good as C++ in terms of speed;
    • built-in processing of SQLite databases, OpenCL calculations, DirectX support and integration with Python;
    • mathematical libraries, including Fuzzy logicStatistics and updated ALGLIB.

  32. MetaEditor: Added the usage of AVX2 instructions in case they are supported by CPU.
  33. MetaEditor: Fixed an error occasionally causing freezes during compilation.
  34. MetaEditor: Improved display of local variables when debugging.
  35. Tester: Added the usage of AVX2 instructions in case they are supported by CPU.
  36. Updated user interface translations.
  37. Fixed errors reported in crash logs.


MetaTrader 5 Web Terminal build 3950

  1. Added display of the Ask price to the chart settings.




  2. Accelerated initial terminal loading.
  3. Added the ability to change the password.
  4. Added the ability to delete and save the password.
  5. Added a custom period for displaying trading history.
  6. Fixed forced password change.
  7. Fixed calculation of diff — the distance between the open price and TP/SL levels.





  8. Fixed ticks stop error when closing all orders/deals.
  9. Fixed display of Economic calendar events. Sometimes, they were not displayed on the chart despite the option being enabled.
  10. Fixed indicator reset when changing a chart symbol.
  11. Fixed an error in the form of opening a real account when confirming the phone/email.
  12. Added new translations and corrected existing ones.

The update will be available through the Live Update system.

 

Why is this not compiling now ? It was compiling up to build 3815 and it compiles fine in C++

#define ID(x)                  x##4CC91BD6
 
Alain Verleyen #: Why is this not compiling now ? It was compiling up to build 3815 and it compiles fine in C++

What error does it give?

I hope it is not a new "feature". I have a lot of code that is dependant on using the "##" combining operator in macros.

 
Fernando Carreiro #:

What error does it give?

I hope it is not a new "feature". I have a lot of code that is dependant on using the "##" combining operator in macros.

Error due to the leading "4".

 
Alain Verleyen #:

Error due to the leading "4".

Does it work when using a substitution macro?

Like this:

#define M_CONCAT(x, y)         x##y
#define
ID(x)                  M_CONCAT(x, 4CC91BD6)
 
Dominik Egert #:
#define M_CONCAT(x, y) x##y
#define
ID(x)                  M_CONCAT(x, 4CC91BD6)

No. Same issue.

They have broken what was previously working. Without a workaround. And it is working in C++. Instead of adding features, they removed them :-(

 
Alain Verleyen #:

No. Same issue.

They have broken what was previously working. Without a workaround. And it is working in C++. Instead of adding features, they removed them :-(

Dont feel so pesimistic, its still beta, and probably just an unfixed bug.

EDIT: And they finally added AVX extensions. - Although it would be nice, if it were directly available in MQL, not just by guessing and using certain data types, like vectors.

 
Temporary solution.
#define ID(x) x##4##CC91BD6
 
fxsaber #:
Temporary solution.
Thank you.
 

You can only use what your CPU provides otherwise you'll see in the journal log of your terminal:

2023.09.15 09:22:20.494    MQL5    your CPU architecture does not allow to run the file 'ETE 08.ex5': AVX512 required, you have AVX2 only
It compiles but won't run.
 
The question -

Forum on trading, automated trading systems and testing trading strategies

New version of the MetaTrader 5 platform build 3950: Withdrawal/deposit in the terminal and updated trading report

lynxntech , 2023.09.15 12:03

I don't understand how the window works

right-click on "Trade" or "History" -> "Report" -> "Review" and the "Reports" window opens, just a white screen and everything is bild 3950

and the reply -

Forum on trading, automated trading systems and testing trading strategies

New version of the MetaTrader 5 platform build 3950: Withdrawal/deposit in the terminal and updated trading report

Renat Fatkhullin , 2023.09.15 13:48

If the operating system is lower than Windows 10 or under Wine (LInix/Mac), then the report will not be drawn. It needs WebView2.

That's it, Windows 7's time is up - need to update.

And finally -

----------------------

It was about WebView2