List of changes in MetaTrader 5 Client Terminal builds - page 23

You are missing trading opportunities:
- Free trading apps
- Free Forex VPS for 24 hours
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Forum on trading, automated trading systems and testing trading strategies
MetaTrader 5 Platform build 3390: Float in OpenCL and in mathematical functions, Activation and Loss methods for machine learning
MetaQuotes, 2022.07.14 17:28
The MetaTrader 5 platform update will be released on Thursday, August 4, 2022. The update will feature the following changes:

About 7,000 securities and more than 2,000 ETFs are listed on the global exchange market. Furthermore, exchanges provide futures and other derivatives. The MetaTrader 5 platform offers access to a huge database of exchange instruments. To access the relevant fundamental data, users can switch to the selected aggregator's website in one click directly from the Market Watch. For convenience, the platform includes a selection of information sources for each financial instrument.We continue expanding algorithmic trading and machine learning capabilities in the MetaTrader 5 platform. Previously, we have added new data types: matrices and vectors, which eliminate the need to use arrays for data processing. More than 70 methods have been added to MQL5 for operations with these data types. The new methods enable linear algebra and statistics calculations in a single operation. Multiplication, transformation and systems of equations can be implemented easily, without extra coding. The latest update includes mathematical functions.
Mathematical functions were originally designed to perform relevant operations on scalar values. From this build and onward, most of the functions can be applied to matrices and vectors. These include MathAbs, MathArccos, MathArcsin, MathArctan, MathCeil, MathCos, MathExp, MathFloor, MathLog, MathLog10, MathMod, MathPow, MathRound, MathSin, MathSqrt, MathTan, MathExpm1, MathLog1p, MathArccosh, MathArcsinh, MathArctanh, MathCosh, MathSinh, and MathTanh. Such operations imply element-wise handling of matrices and vectors. Example:
For MathMod and MathPow, the second element can be either a scalar or a matrix/vector of the appropriate size.
The following example shows how to calculate the standard deviation by applying math functions to a vector.
MQL5: Improved mathematical functions for operations with the float type. The newly implemented possibility to apply mathematical functions to 'float' matrix and vectors has enabled an improvement in mathematical functions applied to 'float' scalars. Previously, these function parameters were unconditionally cast to the 'double' type, then the corresponding implementation of the mathematical function was called, and the result was cast back to the 'float' type. Now the operations are implemented without extra type casting.
The following example shows the difference in the mathematical sine calculations:
The neural network activation function determines how the weighted input signal sum is converted into a node output signal at the network level. The selection of the activation function has a big impact on the neural network performance. Different parts of the model can use different activation functions. In addition to all known functions, MQL5 also offers derivatives. Derivative functions enable fast calculation of adjustments based on the error received in learning.
The loss function evaluates the quality of model predictions. The model construction targets the minimization of the function value at each stage. The approach depends on the specific dataset. Also, the loss function can depend on weight and offset. The loss function is one-dimensional and is not a vector since it provides a general evaluation of the neural network.
To set the mandatory use of GPUs with double support for specific tasks, use the CL_USE_GPU_DOUBLE_ONLY in the CLContextCreate call.
volume=-1 && volume_real=2 — volume_real=2 will be used,
volume=3 && volume_real=0 — volume=3 will be used.
Increased-precision volume MqlBookInfo.volume_real has a higher priority than MqlBookInfo.volume. Therefore, if both values are specified and are valid, volume_real will be used.
If any of the Market Depth elements is described incorrectly, the system will discard the transferred state completely.
The update will be available through the Live Update system.
Forum on trading, automated trading systems and testing trading strategies
New MetaTrader 5 platform build 3440: New trading account report
MetaQuotes, 2022.09.14 13:33
The MetaTrader 5 platform update will be released on Friday, September 16, 2022
We have implemented a new account trading report. The report reflects monthly growth rates, profit graphs, equity diagrams, radar charts for general account statuses and other metrics to help users in gauging trading performance.
In addition, we have implemented new MQL5 functions for working with matrices and vectors. All new features, fixes and performance improvements are described in detail below.
The report can be viewed directly in the platform, without the need to export it to a file. To open it, select Reports in the View menu.
Example:
The copied data type is specified in the rates_mask parameter using the ENUM_COPY_RATES enumeration. The following values are available:
COPY_RATES_HIGH
COPY_RATES_LOW
COPY_RATES_CLOSE
COPY_RATES_TIME
COPY_RATES_VOLUME_TICK
COPY_RATES_VOLUME_REAL
COPY_RATES_SPREAD
COPY_RATES_OHLC
COPY_RATES_OHLCT
If multiple data types are selected (only available for matrices), the order of the rows in the matrix will correspond to the order of values in the enumeration.
MQL5: Fixed error when changing a constant parameter which has been passed to a function as an object pointer reference.
The const specifier declares a variable as a constant to prevent it from being changed during program execution. It only allows one-time variable initialization during declaration. An example of constant variables in the OnCalculate function:
The below example contains a compiler error which allowed an implicit pointer casting for reference parameters:
The compiler will detect such illegal operations and will return the relevant error.The update will be available through the Live Update system.
New MetaTrader 5 Web Terminal
We have released a revised MetaTrader 5 Web Terminal which features an updated interface and a redesigned core. The new interface is similar to the terminal version for iPad:
It also features a plethora of new functions:
Try the new web terminal at www.mql5.com right now. It will soon become available for your brokers.
Forum on trading, automated trading systems and testing trading strategies
New MetaTrader 5 platform build 3490: Mobile Web Terminal version and new matrix methods in MQL5
MetaQuotes, 2022.10.14 16:29
The MetaTrader 5 platform update will be released on Friday, November 4, 2022.
The update introduces the new Web Terminal with full support for mobile devices. Now its interface automatically adapts to the user screen size.
In addition, we have improved the task manager for a more accurate monitoring of consumed resources and have added the OpenCL tab for managing available devices. The new OpenCL manager enables explicit specification of devices to be used for faster calculations.
We continue to expand platform capabilities in working with matrices and vectors. MQL5 features new functions for operations with price ticks and for data exchange between matrices and vectors. It also provides expanded assignment methods.
In addition, we have implemented multiple fixes and improvements in all platform components. All new features, fixes and performance improvements are described in detail below.
Mobile version of the web platform
The new Web Terminal provides full-featured support for mobile devices. The interface will automatically adapt to the screen size, enabling efficient operations from iOS and Android phones and tablets:
Also, the Web Terminal features a lot of fixes and improvements.
The new MetaTrader 5 Web Terminal supports the full set of trading functions. It enables users to:
MetaTrader 5 Client Terminal build 3490
According to the FIFO rule, positions for each instrument can only be closed in the same order in which they were opened. To ensure FIFO-compliant position closing by stop levels, the following logic has been implemented on the client terminal side:
If multiple positions exist for the same instrument, the placing of stop levels for any of the positions causes the same levels to be placed for all other positions as well. Accordingly, if a level triggers, all positions will be closed in a FIFO-compliant order.
Now, when the user opens the Depth of Market for an instrument which already has open positions for, the levels of existing positions (if any) are automatically specified in the Stop Loss and Take Profit fields.
The copied data type is specified in the 'flags' parameter using the ENUM_COPY_TICKS enumeration. The following values are available:
If multiple data types are selected (only available for matrices), the order of the rows in the matrix will correspond to the order of values in the enumeration.
Now the matrix can be assigned a one-dimensional array or vector:
The result will be a one-row matrix.
Also, a matrix can now be assigned to a vector (matrix smoothing will be performed):
Each array, vector or matrix refers to a memory buffer which contains the elements of that object. The Swap method actually swaps pointers to these buffers without writing the elements to memory. Therefore, a matrix remains a matrix, and a vector remains a vector. Swapping a matrix and a vector will result in a one-row matrix with vector elements and a vector with matrix elements in a flat representation (see the Flat method).
The Swap() method also enables operations with dynamic arrays (fixed-sized arrays cannot be passed as parameters). The array can be of any dimension but of an agreed size, which means that the total size of a matrix or vector must be a multiple of the array's zero dimension. The array's zero dimension is the number of elements contained at the first index. For example, for a dynamic three-dimensional array 'double array[][2][3]', the zero dimension is the product of the second and third dimension sizes: 2x3=6. So, such an array can only be used in the Swap method with matrices and vectors whose total size is a multiple of 6: 6, 12, 18, 24, etc.
Consider the following example:
The update will be available through the Live Update system.
Forum on trading, automated trading systems and testing trading strategies
MetaTrader 5 Platform update build 3500: Improvements and fixes
MetaQuotes, 2022.11.10 16:20
The MetaTrader 5 platform update will be released on Friday, November 11, 2022. The update provides the following changes:
MetaTrader 5 Client Terminal build 3500The trading report provides the following performance data:
MetaTrader 5 WebTerminal build 3500
The update will be available through the Live Update system.
Forum on trading, automated trading systems and testing trading strategies
MetaTrader 5 Platform update build 3510: Web Terminal improvements
MetaQuotes, 2022.11.17 14:53
The MetaTrader 5 platform update will be released on Friday, November 18, 2022. The update provides the following changes:
MetaTrader 5 WebTerminal build 3510
Operations can be sorted by the main parameters, such as date, ticket, symbol and volume, among others.
MetaTrader 5 Client Terminal build 3510
Result:
"class A const * const [][2][3]"
The update will be available through the Live Update system.
Forum on trading, automated trading systems and testing trading strategies
New MetaTrader 5 platform build 3520: 2FA/TOTP authentication using Google Authenticator
MetaQuotes, 2022.11.24 16:46
The MetaTrader 5 platform update will be released on Friday, November 25, 2022.
In this update, we have implemented 2FA/TOTP authentication in MetaTrader 5 trading terminals using Google Authenticator and have added OpenCL error reporting.
Other fixes and updated features improve the overall platform operational stability. All new features are described in detail below.
The 2FA/TOTP authentication protects a trading account from unauthorized access even if its login and password are leaked. Authentication using Time-based One-time Password Algorithm (TOTP) can be implemented using various mobile apps. The most popular of them are Google Authenticator, Microsoft Authenticator, LastPass Authenticator and Authy. Now you can connect to your account in the MetaTrader 5 client terminal using one-time passwords generated by such Authenticator apps.
To enable the two-factor authentication option, connect to your account and execute the "Enable 2FA/TOTP" command in the account context menu. Run the Authenticator app on your mobile device, click "+" to add your trading account and scan the QR code from the terminal. Enter the generated code in the "One-time password" field and click "Enable 2FA". A secret will be registered for your account on the broker's trading server.

The saved secret will be used in the Authenticator app to generate an OTP code every time you connect to your account. Each password is valid for 30 seconds. After that a new one is generated.

If you decide to remove the stored secret from the Authenticator app, you should first disable 2FA/TOTP authentication using the appropriate account context menu command. If the new 2FA/TOTP authentication method is not available on your account, please contact your broker.When obtaining the last OpenCL error via CLGetInfoInteger, the handle parameter is ignored. Error descriptions: https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS.
For an unknown error code, the string "unknown OpenCL error N" is returned, where N is the error code.
Example:
A text error description can be obtained using CLGetInfoString. Error descriptions: https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS.
When using CL_ERROR_DESCRIPTION, an error code should be passed as the handle parameter in CLGetInfoString. If CL_LAST_ERROR is passed instead of the error code, the function will return the last error description.
Example: The internal enumeration name is passed as the error description. Its explanation can be found at https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS. For example, the CL_INVALID_KERNEL_ARGS value means "Returned when enqueuing a kernel when some kernel arguments have not been set or are invalid."
The update will be available through the Live Update system.
Forum on trading, automated trading systems and testing trading strategies
New MetaTrader 5 platform build 3540: 2FA/TOTP authentication and improved Market Watch in Web Terminal
MetaQuotes, 2022.12.09 10:21
The MetaTrader 5 platform update will be released on Friday, December 9, 2022.
This update provides multiple improvements in the Web Terminal. In particular, it features 2FA/TOTP authentication using Google Authenticator and other similar apps. The Market Watch now has more price data: maximum and minimum Bid/Ask values, as well as session Open and Close prices.
Multiple fixes and updated features improve the overall platform operational stability. These new features, along with other changes, are described in detail below.
MetaTrader 5 Web Terminal build 3540
The 2FA/TOTP authentication protects a trading account from unauthorized access even if its login and password are leaked. Authentication using Time-based One-time Password Algorithm (TOTP) can be implemented using various mobile apps. The most popular of them are Google Authenticator, Microsoft Authenticator, LastPass Authenticator and Authy. Now you can connect to your account in the MetaTrader 5 client terminal using one-time passwords generated by such Authenticator apps.
To enable the two-factor authentication option, connect to your account via MetaTrader 5 Web Terminal. Then click on your account in the menu and select "Enable 2FA/TOTP" in the newly opened dialog. Run the Authenticator app on your mobile device, click "+" to add your trading account and scan the QR code from the terminal. Enter the generated code in the "One-time password" field and click "Enable 2FA". A secret will be registered for your account on the broker's trading server.
The saved secret will be used in the Authenticator app to generate an OTP code every time you connect to your account. Each password is valid for 30 seconds. After that a new one is generated.
A backup code is also displayed in the QR code dialog for linking to the generator. Save it in a secure place. If you lose access to your linked device, the code will allow you to add your account to the Authenticator app again.
If you decide to remove the stored secret from the Authenticator app, you should first disable 2FA/TOTP authentication using the appropriate account menu command. If the new 2FA/TOTP authentication method is not available on your account, please contact your broker.
Use the context menu to customize the displayed information:
MetaTrader 5 Client Terminal build 3540
GetDeviceInfo usage example:
Result:
The update will be available through the Live Update system.