- Completely revised built-in search. The new search is a
smart and powerful system. Search results are now conveniently arranged
As you type in search query, the system instantly offers possible options:
In order to search by one of the previous queries, place the cursor
to the box and click Down Arrow key to open the query history. Selection
of a search area is not available in the search bar any more, as the
system automatically selects the most relevant results arranging them by
For better representation, search results now contain not only texts
but also avatars of articles, books and applications. Use the top panel
to view the search results by MetaTrader Appstore Products, Code Base,
Signals, MQL5.community Forum and Documentation. If a category has no
results, it is highlighted in gray.
- Added the OTP authentication feature. Use of OTP
(one-time password) provides an additional level of security when
working with trading accounts. The user is required to enter a unique
one-time password every time to connect to an account.
passwords are generated in the MetaTrader 5 mobile terminal for iPhone .
The same one-time password generation option will be added in the
mobile terminal for Android soon.
How to enable OTP
To start using one-time passwords, a trading account should be bound to a
password generator, which is the MetaTrader mobile terminal 5 for
The use of the OTP option should be enabled on a trade server.
Go to the Settings of the mobile terminal and select OTP. For
security reasons, when the section is opened for the first time, a
four-digit password should be set. The password must be entered every
time to access the password generator.
In the window that opens, select "Bind to account".
Next, specify the name of the server on which the trading account
was opened, the account number and the master password to it. The "Bind"
should be kept enabled. It must be disabled, if the specified account
should be unbound from the generator and one-time passwords should no
longer be used.
After the "Bind" button located in the upper
part of the window is tapped, a trading will be bound to the generator,
and an appropriate message will appear.
Likewise, an unlimited number of accounts can be bound to the generator.
The one-time password is displayed at the top of the OTP section.
Underneath, a blue bar visualizes the password lifetime. Once the
password expires, it is no longer valid, and a new password will be
- Change Password - change the generator password.
- Synchronize Time - synchronize the time of the mobile device
with the reference server. Accuracy requirement is connected with the
fact that the one-time password is bound with the current time interval,
and this time should be the same on the client terminal and the server
How to use OTP in the desktop terminal
After binding a
trading account to the generator, a one-time password will be
additionally requested when connecting to it from the desktop terminal:
- Added an option for transferring money between accounts
within the same trade server. Money can be transferred only from the
currently connected account. Select it in the "Navigator" window and
click "Transfer funds" in the context menu.
In the dialog box, select the account to which funds need to be
transferred. The transfer amount is specified in the deposit currency of
the current account. It cannot exceed the current balance and the
current amount of free margin of the account.
funds, a master password must be specified for both accounts. If OTP
authentication is used for the account, from which funds are
transferred, the one-time password should be additionally specified.
Transfer of funds is provided in the form of balance operations: a
withdrawal operation on the current account and depositing operation on
the recipient account.
The money transfer option should be enabled on the trade
server. Depending on the settings, there are some restrictions on the
accounts, between which transfer is allowed. In particular, money
transfer can be allowed only for accounts with identical names and
- Funds can be transferred only within the same trading server
and only between the accounts of the same type. From a real account
funds can be transferred only to another real account, from a demo one -
only to demo.
- The accounts, between which funds are transferred, should use the same deposit currency.
- Added an option for changing the password of any trading
account in the "Navigator" window. Previously, it was possible to
change the password only for the currently connected account.
Now any account can be selected in the "Navigator" window and its
passwords can be changed by clicking the appropriate command in the
- Added the possibility to set SL and TP levels on the
chart by dragging the trade level of the corresponding position (using
drag'n'drop). Hover the mouse over the level of the position on the
chart. Click the left mouse button and hold it to move the level up or
For long positions dragging down allows to set stop loss, up - take
profit. And vice versa for short positions. When a level is dragged, the
possible profit/loss in pips and currency, which may occur when this
level triggers, is shown.
- Changed the location of commands in the "Window" menu.
Now the "Tile window" option is displayed first, hotkeys Alt+R have been
assigned for this command. This command has also been added to the
- In the "Navigator" categories "Indicators" and "Custom Indicators" have been combined into one category "Indicators".
All custom indicators, examples, and indicators purchased from the
MetaTrader AppStore are now shown together with the built-in technical
indicators. Four categories of built-in indicators are always displayed
- Revised the Navigator's context menu.
been renamed to "Login to Trade Account". Authentication in
MQL5.community is available not only via the terminal settings but also
via the context menus of the "Accounts" section and its subsections.
The following changes have been implemented to the account's context menu:
- Moved "Open an Account" command to the first position.
- Added "Change Password" feature.
- Added "Register a Virtual Server" command.
Fixed display of the Label and Bitmap Label graphical
objects with the anchor point located in one of the bottom corners of a
- Added WebRequest() function for working with HTTP requests allowing MQL5 programs to interact with different websites and web services.
The new function allows any EA to exchange data with third-party
websites, perform trades based on the latest news and economic calendar
entries, implement analytics, generate and publish automatic reports,
read the latest quotes and do many other things that could previously be
achieved only by using third-party DLLs of questionable reliability.
The new feature is absolutely safe for traders, as they are able to
manage the list of trusted websites the programs have access to.
WebRequest function sends and receives data from websites using GET and
POST requests. The new feature is absolutely safe for traders, as they
are able to manage the list of trusted websites the programs have access
This option is disabled by default for security reasons.
- Added access to signals database and managing signals subscription from MQL5 applications.
Now, a user can receive the list of signals, evaluate them according to
user-defined criteria, select the best one and subscribe to it
automatically from a MQL5 program. In fact, it means the advent of the
new class of trading robots that periodically look through available
signals and subscribe to the one that is most suitable at the moment.
For this purpose new signal management functions have been added to the MQL5 language:
- SignalBase*() — functions for accessing the signals database.
- SignalInfo*() — functions for receiving signal settings.
- SignalSubscribe() and SignalUnsubscribe() — subscription management functions.
Thus, a user can not only copy trades, but also to select signals for copying. Both processes are automated.
By default, a trading robot is not allowed to change signal settings
for security reasons. To enable this function, tick the "Allow
modification of Signals settings" option in Expert Advisor settings.
- Added new properties of the client terminal that are available through the TerminalInfo* functions:
- TERMINAL_MQID - the property shows that MetaQuotes ID is specified in terminal settings.
- TERMINAL_COMMUNITY_ACCOUNT - this property shows that MQL5.community account is specified in the settings.
- TERMINAL_COMMUNITY_ACCOUNT - this property shows that MQL5.community account is specified in the settings.
- TERMINAL_COMMUNITY_BALANCE - value of balance on the MQL5.community account.
- TERMINAL_NOTIFICATIONS_ENABLED - shows whether sending notifications through MetaQuotes ID is allowed.
- Added functions for working with cryptographic algorithms:
CryptEncode() and CryptDecode(). These functions allow you to encrypt
and decrypt the data, for example, when sending data over the network
using the WebRequest() function. They also allow you to calculate checksums and make data archiving.
int CryptEncode(ENUM_CRYPT_METHOD method,const uchar &data,const uchar &key,uchar &result);
int CryptDecode(ENUM_CRYPT_METHOD method,const uchar &data,const uchar &key,uchar &result);
A new enumeration ENUM_CRYPT_METHOD has been added for working with the functions:
- Added an option for changing the size of the properties dialog of MQL5 programs.
- Added ability to debug the template functions.
- Added definition of the custom indicators that are executed
too slowly. If the indicator is slow, "indicator is too slow" entry
appears in the Journal.
- Fixed the value returned by the IsStopped()
function. This function is used for determining the forced stopping of
MQL5 programs in custom indicators. Previously, this function always
- Fixed verification of input parameters of MQL5 programs by data type. In particular, for the parameter type uchar, one could specify a value greater than 255.
- Fixed an error in StringConcatenate() function.
- Fixed FileSize()
function for files that are available for writing. Previously, the
function returned the file size without considering the latest write
- File operations have been revised. Now work with files has become faster.
- Fixed copying of SL and TP values of trade positions in
case the number of decimal places in the symbol price of the signal
source differs from that of the subscriber.
- Fixed copying of trade positions from signal providers
with incorrect settings of trade instruments on the side of the trade
- Fixed closing of positions opened by a trading signal
when account Equity value falls below the value specified in the signal
copying parameters. In some cases, closing of positions could lead to
- Optimized work with large source text files (tens of
megabytes). Increased operation speed and reduced memory consumption.
- Fixed navigating through a source code using "Ctrl + -" and "Ctrl + Shift + -" shortcuts.
Fixed errors reported in crash logs.
The update will be available through the LiveUpdate system.