What's new in MetaTrader 5

The history of updates of the desktop, mobile and web platforms

1 May 2015

MetaTrader 5 iOS build 1105
  • Added support for 64 bit processors.
  • Optimized internal chat: improved synchronization and renewed design.
  • Added ability to create an anonymous demo-account for immediate start of operation. The account does not require registration data and can be opened in one tap.
  • Improved working with news: automatic language filtering and improved representation of news.
  • Increased speed of trade request sending.
  • Added ability to display the Ask line on chart.
  • Added special category for notifications from virtual hosting.
  • Added Thai, Vietnamese, Malay and Ukrainian translations of user interface.
  • Numerous improvements and enhancements.

20 March 2015

MetaTrader 5 Platform Update Build 1100: Faster Testing and Optimization of Expert Advisors


  1. A status of connection to MQL5 Cloud Network is now displayed in the Agents Manager. This allows users to easily check if they can receive tasks from the cloud computing network after they install agents.

    A status of connection to MQL5 Cloud Network

  2. Tester: Some improvements and bug fixes have been made in the operation of the Strategy Tester. Time spent on intermediate preparatory operations and network latency has been significantly reduced. Testing and optimization are now faster in all operating modes: working with local testing agents, with a farm of agents in the local network and using MQL5 Cloud Network.

Trading Terminal

  1. Added display of the number of unread emails in the "Mailbox" tab of the Toolbox window.

    Added display of the number of unread emails

  2. The Navigator window now contains the list of Expert Advisors running on the active trading account. In addition to the Expert Advisor name, a chart on which the EA is running is specified in the list. An icon indicates whether the EA is allowed to trade.

    The Navigator window now contains the list of Expert Advisors running on the active trading account

    The context menu contains commands for enabling or disabling automated trading for any of the Expert Advisors, as well as for viewing its properties or removing it from the chart.

  3. Improved accuracy of the algorithm for determining access points available for connection to a trading server.
  4. Fixed an error that could occasionally clean the database of client accounts when a terminal was reinstalled over an existing one.
  5. The terminal interface has been further adapted for high resolution screens (4K).


  1. Fixed updating of the MQL5 account balance after purchasing or renting a product.

Virtual Hosting

  1. Fixed migration of custom indicators to the virtual hosting environment.
  2. Fixed updating of the virtual hosting status in the Navigator window.


  1. Fixed errors which could occasionally interfere with the optimization of Expert Advisors in MQL5 Cloud Network.
  2. Fixed call of OnDeinit when deleting an Expert Advisor using the ExpertRemove function during testing. Previously, under the conditions described the OnDeinit event was not called.
  3. Fixed errors in use of resources in EX5 libraries.
  4. Fixed errors in the analysis of macros.
Fixed errors reported in crash logs.

Updated documentation.

The update is available through the LiveUpdate system.

16 February 2015

MetaTrader 5 Platform Update Build 1085

New update of the MetaTrader 5 platform has been released. It contains the following changes:

MetaTrader 5 Client Terminal build 1085
  1. Terminal: New Virtual Hosting service is now available. A virtual server for a trading account can now be rented right from the client terminal. Providing consistent connection to the trading server and uninterrupted computer operation for Expert Advisors and copy trading is now even easier.

    Virtual servers are hosted by MetaQuotes Software Corp.'s partner companies

    Allocating a Virtual Server
    To receive a virtual terminal on a virtual server, connect using the necessary trading account and execute "Register a Virtual Server" command in the context menu.

    Virtual Hosting Wizard window appears. It shows how the virtual hosting network works. The process of obtaining a virtual server consists of three steps. First, you will find out how to prepare for migration. After that, you will select the nearest virtual server with minimal network latency to your broker's trade server.

    You can choose 1 day of free hosting provided to each registered MQL5.community user or select one of the offered service plans. Finally, you will select the data migration mode depending on your objectives:

    • complete migration is necessary if you want to simultaneously launch Expert Advisors/indicators and trade copying;
    • only Expert Advisors and indicators, if subscription to Signals is not required;
    • only trade copying - only Signal copying settings (no charts or programs) are moved.

    After selecting the migration mode, you can launch the virtual server immediately by clicking "Migrate now" or do that later at any time.

    Preparing for Migration
    Before launching the virtual terminal, you should prepare an active environment for it - charts, launched indicators and Expert Advisors, Signal copying parameters and the terminal settings.

    • Charts and Market Watch - hide all unnecessary trading instruments from the Market Watch to reduce the traffic. Close unnecessary charts. In the terminal settings, specify the required value of "Max. bars in the window "- the terminal should be restarted after that.
    • Indicators and Expert Advisors - attached the required EAs and indicators to your charts. Products purchased on the Market and launched on the chart are also moved during migration. They remain completely functional, and the number of available activations is not decreased. All external parameters of indicators and Expert Advisors should be set correctly.
    • Email, FTP and Signals - if an Expert Advisor is to send emails, upload data via FTP or copy Signal trades, make sure to specify all necessary settings. Set correct login and password of your MQL5.community account on the Community tab. This is necessary for Signal copying.
    • Permission to trade and copy signals - the automated trading is always allowed in the virtual terminal. To work with the signals, set copying parameters in the Signals section.
    • WebRequest - if a program that is to operate in the virtual terminal uses the WebReqest() function for sending HTTP requests, you should set permission and list all trusted URLs on the Expert Advisors tab.

    Migration is transferring the current active environment from the client terminal to the virtual one.

    Migration is performed during each synchronization of the client terminal. Synchronization is always a one-direction process - the client terminal's environment is moved to the virtual terminal but never vice versa. The virtual terminal status can be monitored via requesting the terminal's and Expert Advisors' logs as well as virtual server's monitoring data.

    To perform synchronization, open the account context menu and select migration type.

    Thus, you always can change the number of charts and the list of symbols, the set of launched programs and their input parameters, the terminal settings and Signal subscription.

    When performing migration, all data is recorded in the client terminal's log.

    After the synchronization, open the virtual terminal's main journal to examine the actions performed on it.

    Working with the Virtual Terminal
    The rented virtual server status can also be easily monitored from the client terminal. Execute "Details" command in the context menu.

    The information is presented in four tabs:

    • Details - data on the virtual server itself and the terminal's active environment.
    • CPU Usage - CPU usage graph, %.
    • Memory Usage - memory usage graph, Mb.
    • Hard Disk Usage - hard disk usage graph, Mb.

  2. Market: Now, it is possible to rent MetaTrader Market products for 1, 3, 6 or 12 months. This provides undeniable advantages both for developers and buyers. Authors are able to significantly increase user's confidence by allowing potential buyers to check out their products at a low cost. For buyers, the rent is another opportunity to assess a product before buying it. Unlike demo versions, rented products have no limitations except for validity period.

    Any Market developer may choose whether or not their product is available for rent and set the rent price.

    Developers may choose not to offer their products for rent selling only full licenses for unlimited use.

    If rent is enabled for a product, its web page shows possible options: rental period and price. Click Rent and select the rental period.

    After the period expires, users can renew the rent or buy a full license.

  3. Terminal: Removed "MetaTrader 5, @ 2001-2015 MetaQuotes-Software Corp." copyright when saving a chart screenshot using "Save As Picture" command in the terminal or via the MQL5 Screenshot() function. That simplifies distribution of screenshots.

  4. Terminal: Fixed built-in Gator Oscillator technical indicator calculation and parameter management.
  5. Terminal: Improved scanning the points of connection to the trade server.
  6. Terminal: Fixed occasional LiveUpdate operation errors.
  7. MQL5: Added SIGNAL_BASE_CURRENCY signal property - signal provider's deposit currency - to ENUM_SIGNAL_BASE_STRING enumeration. The property can be received via SignalBaseGetString function.
  8. MQL5: Fixed compilation errors when determining the rights to access parent class members during inheritance.
  9. MQL5: Fixed a compilation error when overloading class methods by parameter constancy.
  10. Tester: Optimized work of MQL5 Cloud Network agents. Now, the agents do not spend time on the so-called "warming-up" - connection to the cloud network servers that distribute tasks. Instead, the agents are always ready to receive and execute a task. This speeds up the optimization via MQL5 Cloud Network.
  11. Tester: Improved presentation of local, remote and cloud agents in the strategy tester.
  12. Fixed errors reported in crash logs.
  13. Updated documentation.

MetaTrader 5 Android build 1052

The new version of MetaTrader 5 for Android is now available in Google Play. It features some fixes and improved stability. Analytical objects and messaging system are to be added soon.

The application can be downloaded here: https://download.mql5.com/cdn/mobile/mt5/android?hl=en&utm_source=www.metaquotes.net&hl=en

The update is available through the LiveUpdate system.

16 January 2015

MetaTrader 5 Platform Update Build 1045: New WebRequest

Trading Terminal

  1. Preparatory works for virtual hosting support in MetaTrader 5 platform. Virtual hosting service allows you to rent a terminal that operates around the clock with no interruptions directly from your MetaTrader 5. One of the main features is selection of a server located closest to the broker's server minimizing network latency.

  2. Tester agents now can work only in the 64-bit systems. This decision is driven by the need to follow the development of the IT industry. Switching to the new technologies increases computing performance and enables further development of MQL5 Cloud Network.

    Changes in the platform components:

    • Remote agents and MQL5 Cloud Network agents are no longer available for use in the 32-bit terminals. Instead of the agent list, "Available only in the 64-bit version" message is displayed.
    • MetaTester 5 Agents Manager is available only in the 64-bit version. Thus, it is possible to install the agents only on the 64-bit systems.

  3. Fixed news filtration by language when the language list is specified manually in the terminal settings.
  4. Optimized work with a large number of open orders.
  5. Accelerated sending trade requests.
  6. The interface has been adapted for high resolution screens - Full HD and higher.

MQL5 Language

  1. Added the new form of WebRequest function:
    int WebRequest (string method, string url,string headers,int timeout, const char &data[], int data_size,char &result[], string &result_headers)
    This function allows you to explicitly form the contents of an HTTP request header providing more flexible mechanism for interacting with various Web services.

  2. Added new trade account properties. The properties are available via AccountInfoDouble function.

    • ACCOUNT_MARGIN_INITIAL - current initial margin of an account.
    • ACCOUNT_MARGIN_MAINTENANCE - current maintenance margin of an account.
    • ACCOUNT_ASSETS - current account assets.
    • ACCOUNT_LIABILITIES - current account liabilities.
    • ACCOUNT_COMMISSION_BLOCKED - current blocked account commission.

  3. Added new trade symbol properties:

    • SYMBOL_OPTION_STRIKE - option contract strike price. The property is received by SymbolInfoDouble function.
    • SYMBOL_BASIS - trade symbol's underlying asset name. The property is received by SymbolInfoString function.
    • SYMBOL_OPTION_MODE - option mode, the value is set using ENUM_SYMBOL_OPTION_MODE enumeration. 
    • SYMBOL_OPTION_RIGHT - option right, the value is set using ENUM_SYMBOL_OPTION_RIGHT enumeration. The property is received by SymbolInfoInteger function.

  4. Added SymbolInfoMarginRate function - receiving the value of the initial and maintenance margin charge ratio according to a trade order type and direction.
  5. Fixed ChartIndicatorName function operation in the strategy tester.
  6. Fixed compilation of the macros containing name substitution using ##.
  7. Fixed end-of-file indicator reset error when opening a new file.

Fixed errors reported in crash logs.

Updated documentation.

The update will be available through the LiveUpdate system.

12 December 2014

MetaTrader 5 Platform Update Build 1035: Option Strategy Builder and Access to Ticks

Trading Terminal

  1. Implementation of functions for trading options is currently underway. The Option Strategy Builder has been added. It helps users combine different options in one investment portfolio, and to assess the possibilities and potential risks.

    The Builder is easy to use: a trader chooses the option based on the expiration date and the underlying asset, and then selects one of the more than 30 available strategies. The Builder displays the appropriate combination of options and calculates evaluation parameters - the so-called Greeks. The profit/loss chart and the Greeks based chart appear at the bottom of the window.

    In addition to a large number of built-in strategies, traders can create and save their own strategies for later use.

  2. Added display of the number of newsletters received in the last 24 hours.

  3. Optimized and accelerated synchronization of large history of trading orders and deals.
  4. Fixed launch of several custom indicators in one chart subwindow.
  5. Fixed recalculation of Bill Williams Market Facilitation Index for a changed chart period.
  6. Fixed minimization of the "Toolbox window".
  7. Fixed generation of the account state report published over FTP.
  8. Updated translation of user interface into German.
  9. Added translation of user interface into Greek and Uzbek.

MQL5 Language

  1. New function for working with the tick history CopyTicks. The function is used for receiving an array of ticks accumulated by the terminal for the current session. The depth is limited to the last 2000 ticks.

    The new function expands the possibilities for developing scalping trading robots. The OnTick function does not handle every tick, it notifies the Expert Advisor of market changes. It can be a batch of changes: the terminal can simultaneously make a few ticks, but OnTick will be called only once to notify the EA of the latest market state. The CopyTicks function allows you to receive and analyze all the ticks.
    int  CopyTicks(
       const string      symbol_name,           // Symbol name
       MqlTick           &ticks_array[],        // the array where ticks will be placed
       uint              flags=COPY_TICKS_ALL,  // the flag that defines the type of received ticks
       ulong             from=0,                // the date starting from which ticks will be received, specified in milliseconds since 01.01.1970
       uint              count=0                // the number of latest ticks that should be received
    Ticks can be requested by the date if the 'from' value is specified, or based on their number using the 'count' value. If none of the parameters are specified, all available ticks are received, but not more than 2000. Ticks can also be requested based on their type using the 'flags' parameter. Available values:

    • COPY_TICKS_ALL - all ticks.
    • COPY_TICKS_INFO - only information ticks (Bid and Ask).
    • COPY_TICKS_TRADE - only trade ticks (Last and Volume).

  2. Added an option for overloading template functions using array parameters.
  3. Added an option for overloading a method based on its constancy.
  4. Added generation of the CHARTEVENT_MOUSE_MOVE event (in the OnChartEvent entry point) at the right mouse button click on the chart.
  5. Fixed the functioning of the Switch operator if the case condition contains a negative value.
  6. Improved calculation accuracy in functions ObjectGetValueByTime() and ObjectGetTimeByValue(), used for receiving the price value for the specified object time and vice versa - time value for a price.

Strategy Tester

  1. MQL5 programs purchased in MetaTrader AppStore can now be tested and optimized on the MQL5 Cloud Network agents and on remote agents.
  2. Fixed calculation of swaps in points for positions with less than 1 lot.
  3. Fixed check and normalization of Stop Loss and Take Profit levels when opening a position for the trading instrument with "Market Execution" type.
  4. Fixed behavior of the ObjectGetValueByTime function. In some cases, the behavior of the function in the tester could be different from its behavior in the terminal.


  1. Fixed MetaEditor crash when debugging and profiling looped programs.
  2. Added translation of user interface into Greek and Uzbek.

Fixed errors reported in crash logs.

Documentation has been updated.

The update is available through the LiveUpdate system.

26 November 2014

MetaTrader 5 Android build 990 Update for Android 4.0 and later. Support for the older Android versions application is terminated, but it is still available for download.
  • Changed the application design to be consistent with the Google Style Guide.
  • Added Depth of Market.
  • Added News.
  • Added W1 and MN timeframes.
  • Added Journal to display information about all events and trade operations.
  • Added Greek and Portuguese translations, updated Czech translation.
  • Bug fixes.

9 November 2014

MetaTrader 5 iOS build 991 Added iOS 8 compatibility

31 October 2014

MetaTrader 5 Trading Terminal build 1010: New Signals, Market and Options Trading Signals
  1. The showcase of signals has been completely redesigned. New features have been added, the Signals service design and usability have been improved.

    The new features in the list of signals:

    • The list of signals now contains growth charts similar to those displayed on the MQL5.community site. A green icon in the lower left corner of the chart indicates that this is a real account based signal.
    • Now subscription to a signal is available directly from the list. To subscribe, press the button with the price indication (or the word 'Free', if the signal is free). This will open a subscription confirmation dialog.
    • Now signals can be added to Favorites. Click the star icon at the end of the signal line. After that, the signal can be easily found in the "Favorites" tab.
    • The context menu has been removed. Now to find a signal to which you have subscribed, go to any signal. The top panel shows the signal you are subscribed to and a link to it.

    A signal view page has been updated. A new option allows to add signals to Favorites. The status of the signal account is displayed when hovering the mouse pointer at "Growth".

    Signals statistics have expanded:

    • The total amount of subscribers' funds.
    • Trading account lifetime since its first trading operation.
    • The average position holding time.

    New tabs:

    • Risks - information about the best and worst trading operations and series of operations, and information on drawdowns.
    • Reviews - reviews of signal subscribers.
    • News - through this tab the signal provider can inform subscribers of any change in the signal and post other useful information.


  1. Revised display of products in MetaTrader AppStore. Applications, magazines and books feature the new design. A new option allows to add products to Favorites. Click the star icon in the product view mode. After that, the product can be easily found in the "Favorites" tab.

Trading terminal

  1. The terminal now features an options board and a volatility chart. Implementation of tools for trading options is currently underway. Tools for analyzing option strategies will be added in the next version.

    Options Board
    The options board displays a series of options based on the expiration date for an underlying asset (a class of options) selected in the "Underlying" field. The following parameters are displayed for the options:

    • Bid CALL - the bid price of a call option.
    • Ask CALL - the ask price of a call option.
    • Theo CALL - the theoretical (fair) price of a call option calculated for the specified strike based on historical data.
    • Strike - an option execution price.
    • Volatility - an implied volatility. It is specified as a percentage, and characterizes the expectations of market participants about the value of the underlying asset of the option.
    • Theo PUT - the theoretical price of a put option calculated for the specified strike based on historical data.
    • Bid PUT - the bid price of a put option.
    • Ask PUT - the ask price of a put option.

    Volatility Chart
    Option strikes are shown along the horizontal axis of the chart, and the implied volatility is shown along its vertical axis.

  2. Added display of ping values ​​in the list of access points.

  3. The terminal interface has been adapted for high resolution screens - Full HD and higher. Menus, toolbars, window titles and the status bar are now large enough for easy viewing and working on touch screen of Windows-tablets.

  4. Added a command for managing trading symbols in the "View" menu and on the toolbar. Accessing symbol settings is now as easy as never before:

MQL5 Language

  1. Added conversion of a macro parameter to a string and concatenation of the macro parameter. Below is an example, in which the concatenation of macros allows to organize the automatic removal of the class instances.
    //|                                                     MacroExample |
    //|                        Copyright 2014, MetaQuotes Software Corp. |
    //|                                       https://www.metaquotes.net  |
    #property script_show_inputs
    input bool InpSecond=true;
    #define DEFCLASS(class_name) class class_name:public CBase{public:class_name(string name):CBase(name){}};
    #define TOSTR(x) #x
    #define AUTODEL(obj) CAutoDelete auto_##obj(obj)
    #define NEWOBJ(type,ptr) do { ptr=new type(TOSTR(ptr)); \
                             Print("Create object '",TOSTR(type)," ",TOSTR(ptr),"' by macro NEWOBJ"); } \
    //| The basic class required for automatic deletion of objects       |
    class CBase
       string            m_name;
                         CBase(string name):m_name(name) { }
       string            Name(void) const{ return(m_name); }
    //| The object auto-delete class makes watching of created           |
    //| objects unnecessary. It deletes them in its destructor           |
    class CAutoDelete
       CBase            *m_obj;
                         CAutoDelete(CBase *obj):m_obj(obj) { }
             Print("Delete object '",m_obj.Name(),"' by CAutoDelete class");
             delete m_obj;
    //| Declaring two new classes CFoo and CBar                          |
    //| The main script function                                         |
    void OnStart()
       CFoo *foo;
    //--- Creating an object of the CFoo class
    //--- Creating an instance of the CFoo foo object auto-deletion class
          CBar *bar;
    //--- No need to delete foo, it will be deleted automatically
  2. Added the OBJPROP_ANCHOR property for the "Bitmap" and "Bitmap Label" objects. The property defines the anchor point of the graphical object on the chart: the upper left corner, center left, lower left corner, bottom center, etc.
  3. Added reading of the CHART_BRING_TO_TOP chart property (the chart is on top of all the others) in the ChartGetInteger function.
  4. Fixed the compilation and generation of the ternary operator "?".
  5. Fixed passing of a class member static array.
  6. Fixed applying of a template to the list of initialization of the template constructor class members.

Trading signals

  1. Restrictions on signal subscriptions became milder:

    If the trading history of the signal contains symbols that are not available in the subscriber's terminal, the subscription is now allowed (was prohibited in previous versions). The actions with the positions for which the subscriber does not have symbols are ignored. The following log appears in the Journal:
    2014.08.26 16:44:29.036    '2620818': Signal - symbol GBPNZD not found
    If the subscriber has positions and/or pending orders, a warning dialog suggesting to close/delete them appears (as before). Now, however, it is not an obligatory condition to continue working with signals.

    Synchronization with the signal provider will be performed. Positions and orders that were opened not based on the subscription signal are left unchanged. The user can perform any operations with them.

    Users can now perform trade operations manually (or using an Expert Advisor), being signed to a signal. The Signals service will ignore the positions and orders opened by the trader.
    Keep in mind that placing orders manually affects the amount of available margin on the trading account. Opening positions manually increases the overall load on the account as compared with the signal provider's account.
  2. Added support for a copied percent for the volumes with a floating point. The minimum percentage of copied volumes for signals has been reduced from 1% to 0.001%.

Strategy tester

  1. Fixed freezing of testing agents when working with the MQL5 Cloud Network.
  2. Fixed calculation of swaps in points for the minimal volumes of trading positions.


  1. Fixed hotkeys for commands "Navigate Forward" and "Navigate Backward".


  1. Fixed page navigation on the toolbar.
  2. Fixed text search based on the current interface language.

Fixed errors reported in crash logs.

Documentation has been updated.

The update is available through the LiveUpdate system.

20 August 2014

MetaTrader 5 iOS build 971
  • Added ability to edit levels of indicators and objects
  • Added Portuguese translation

1 August 2014

MetaTrader 5 Trading Terminal build 975: Displaying Expert ID

Trading Terminal

  1. Added display of a trade ID (magic number) set by an Expert Advisor. The ID is displayed as a tooltip in the list of open positions and orders, as well as in the trading history.

    Displaying Expert ID

  2. Optimized work with a large number of trading symbols (thousands and tens of thousands).
  3. Fixed display of alerts on the price chart. The alert's price level was sometimes displayed in the indicator's subwindow.
  4. Updated interface translations into Chinese, Turkish and Japanese.
  5. Fixed displaying the list of chart templates in the application's main menu.
  6. Fixed displaying the list of trade symbol sets in the context menu of Market Watch window.

MQL5 Language

  1. Fixed errors in working with built-in structures that could occasionally disrupt the operation of IndicatorParameters and MarketBookGet methods.
  2. Fixed type conversion from bool to string.
  3. Fixed working with virtual functions.
  4. Fixed an error in the operation of FileReadStruct and FileWriteStruct functions within EX5 libraries.
  5. Fixed a compiler error that occurred in case a key word was present in a comment.

Strategy Tester

  1. Fixed calculation of swaps in points when testing.
  2. Fixed passing the file defined in #property tester_file. An error occurred if the file was in the common folder of the client terminals.
  3. Greatly improved selection of the nearest cloud server by the tester agents working within MQL5 Cloud Network of distributed computing. Thus, their operation speed is increased significantly.


  1. Fixed text replacement when the list of MetaAssist tips is collapsed.

Fixed errors reported in crash logs.

Updated documentation.

The update is available through the LiveUpdate system.

27 June 2014

MetaTrader 5 trading terminal build 965: Smart Search, OTP and Money Transfer between Accounts

Trading terminal

  1. Completely revised built-in search. The new search is a smart and powerful system. Search results are now conveniently arranged by categories.

    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 categories conveniently:

    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.

  2. 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.

    One-time 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 iPhone.
    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 generated.

    Additional Commands:

    • 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 side.

    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:

  3. 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.

    To transfer 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 emails.

    • 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.
  4. 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 context menu:

  5. 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 down.

    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.

  6. 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 standard toolbar.

  7. 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 first.

  8. Revised the Navigator's context menu.

    Login has 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.

  9. Fixed display of the Label and Bitmap Label graphical objects with the anchor point located in one of the bottom corners of a chart.

MQL5 Language

  1. 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 to.

    This option is disabled by default for security reasons.

  2. 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.

  3. 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.

  4. 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.

    Function signatures:
    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:
    CRYPT_BASE64,      // BASE64 encryption (re-encoding)
    CRYPT_AES128,      // AES encryption with 128-bit key
    CRYPT_AES256,      // AES encryption with 256-bit key
    CRYPT_DES,         // DES encryption (key length is 56 bits - 7 bytes)
    CRYPT_HASH_SHA1,   // calculation of HASH SHA1
    CRYPT_HASH_SHA256, // calculation of HASH SHA256
    CRYPT_HASH_MD5,    // calculation of HASH MD5
    CRYPT_ARCH_ZIP,    // ZIP archive

  5. Added an option for changing the size of the properties dialog of MQL5 programs.

  6. Added ability to debug the template functions.
  7. 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.
  8. 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 returns FALSE.
  9. 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.
  10. Fixed an error in StringConcatenate() function.
  11. Fixed FileSize() function for files that are available for writing. Previously, the function returned the file size without considering the latest write operations.
  12. File operations have been revised. Now work with files has become faster.

Trading Signals

  1. 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.
  2. Fixed copying of trade positions from signal providers with incorrect settings of trade instruments on the side of the trade server.
  3. 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 terminal crash.


  1. Optimized work with large source text files (tens of megabytes). Increased operation speed and reduced memory consumption.
  2. Fixed navigating through a source code using "Ctrl + -" and "Ctrl + Shift + -" shortcuts.

Fixed errors reported in crash logs.

Updated documentation.

The update will be available through the LiveUpdate system.

22 June 2014

MetaTrader 5 iOS build 931
  • Added support of two factor authentication (One-time password, OTP) for connecting to a trading account
  • Added support of VoiceOver
  • Fixed errors

13 June 2014

MetaTrader 5 Android build 916
  • Added message categories. Personal messages and MQL5.community notifications, desktop MetaTrader 4/5 messages, as well as broker messages are now displayed separately for more convenience.
  • Fixed a few errors in chart display.
  • Fixed errors reported in crash logs.

10 May 2014

MetaTrader 5 iOS build 917
  • Added 24 new graphic objects for technical analysis: lines, channels, Gann and Fibonacci tools, Elliott Waves and geometric shapes.
  • Added ability to shift the chart - tap and hold it to enter the edit mode.
  • Added Indonesian translation of user interface.

20 April 2014

MetaTrader 5 iOS build 911
  • Completely revised design in favor of iOS 7 flat style.
  • Improved usability: swipe to the right on an open position or order cell to access the actions menu when using your iPhone, or tap the chart to enter its options in your iPad.
  • The minimum required operating system version is iOS 5.0.
  • Fixed incorrect operation of the notification service with some devices.
  • Many minor fixes and improvements.

11 April 2014

MetaTrader 5 trading terminal build 930: Books in MetaTrader Market


  1. Another new product category has been added to MetaTrader AppStore following trading and financial magazines - Books. Now, you can purchase the works of well-known traders and analysts along with trading robots and indicators. The range of books is increasing daily.

    Just like MetaTrader 5 applications, books can be purchased at MQL5.community Market as well as directly via MetaTrader 5 terminal. All books are accompanied by descriptions and screenshots:

    Before making a purchase, you can download a preview - the first few pages of a book. The exact number of available pages is defined by a seller.

    To buy a book, you should have an MQL5.com account and the necessary amount of funds on it. The account data should be specified at the Community tab of the terminal settings:

    Click Buy on the book's page to purchase it. Purchase confirmation dialog appears:

    To continue, agree to the rules of using the Market service and enter your MQL5.community password. After that, the specified amount of funds will be withdrawn from your account and the book will be downloaded. Buy button will be replaced by Open one.

    Book files are downloaded to My Documents\MQL5 Market\Books\. The download may be performed in two formats:

    • MQB - this protected format is used for paid books. When purchasing and downloading a book file, it is encoded so that it can be opened only on the PC it has been downloaded to. Generation of an encoded copy is called activation. Each book can be activated at least 5 times on different hardware. Book sellers can increase the number of activations at their sole discretion.
    • PDF - this format is used for free books and previews. After downloading, such file can be moved and viewed on other devices.

    The special component called MetaViewer has been added to MetaTrader 5 terminal allowing users to view book files. MetaViewer is a convenient application for viewing books and magazines in MQB and PDF formats. Keyboard arrows are used to turn over the pages: left and right arrows - for page-by-page navigation, while up and down arrows - for scrolling.

Trading terminal

  1. Fixed display of Fibonacci Fan graphical object's levels when zooming. A layout could be displaced in earlier builds.
  2. Fixed an error that in some cases prevented graphical objects from being drawn on the chart.
  3. Fixed errors and terminal crashes when working in Wine (for Linux and Mac OS), including crashes that occurred while opening the user guide.
  4. Updated translation of the interface into Arabic.


  1. Revised display of products in MetaTrader AppStore. Applications, magazines and books feature new design:

  2. Market: Fixed resumed download of large files (primarily, magazines and books) from the Market.

MQL5 Language

  1. Changed StringSplit function operation. Previously, ";A;" string was split into NULL and "A" substrings using ';' separator. Now, it is split into "","A" and "" substrings.
  2. Fixed checking and tracking parameter and operand constancy.

Trading Signals

  1. Added additional checks for the allowed trading modes at a symbol when copying signals. If a signal arrives at a subscriber's account but only closing of positions is allowed at that symbol, this will no longer cause complete termination of signals copying and forced closing of all positions. Now, if a signal for position opening arrives at a subscriber's account, the platform perceives that as the command to synchronize subscriber's and provider's accounts. A signal for position closing is handled as usual.

Strategy Tester

  1. Added interface translations into French, Japanese and Arabic. Updated translations into German, Italian, Polish, Portuguese, Russian, Spanish, Turkish and Chinese.


  1. Fixed highlighting and navigation through a hieroglyphic text.
  2. Fixed selecting a default trading symbol during an MQL5 application profiling. The default symbol is specified in Debug tab of MetaEditor options.
  3. Fixed display of the tab characters in search results. Previously, the tab characters were ignored and string content was displayed with no spaces.

Fixed errors reported in crash logs.
Updated documentation.

The update will be available through the LiveUpdate system.

The MetaTrader 5 Trading Terminal can be downloaded at "https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe

5 March 2014

MetaTrader 5 Trading Terminal build 910

Trading terminal

  1. Fixed errors and crashes when working in Wine (for Linux, Mac).
  2. Fixed display of Gann Grid graphical object's central line when zooming.

MQL5 Language

  1. Fixed an occasional error when downloading .ex5 files.
  2. Fixed operation of StringToCharArray and StringToTime functions.

Fixed errors reported in crash logs.

Updated documentation.

The update will be available through the LiveUpdate system.

28 December 2013

MetaTrader 5 Android build 879
  • Fixed an error in chart rendering that prevented some parts of a chart from being displayed on some devices (Samsung Galaxy Note 3, Sony Xperia L, etc.).
  • Fixed an error in launching the application that occurred after the Android update, as well as on some new phones leading to "Unfortunately your device is not supported" message.
  • The virtual menu button in the form of three dots is now displayed on LG Nexus 4.

7 December 2013

MetaTrader 5 Trading Terminal build 880: Terminal Journal with Milliseconds and MQL4BUILD/MQL5BUILD Macros

Trading Terminal

  1. The time is displayed up to milliseconds in the client terminal's, MetaEditor's and MetaTester's Journal.

    The time is displayed up to milliseconds in the client terminals

  2. Improved scanning and searching for servers in demo account opening dialog - scanning speed has been increased and additional search for access points for the servers having no connection has been added.

    Improved scanning and searching for servers in demo account opening dialog

  3. Fixed and optimized client terminal, MetaEditor and MQL5 help.
  4. origin.txt file is automatically generated in the terminal data folder. This file contains the path to the installation directory that data folder corresponds to.
  5. Fixed display of the context help in a number of dialogs, windows and control elements.
  6. Fixed occasional terminal freezing during prolonged continuous operation (longer than 2-3 days).
  7. Fixed occasional loss of the list of saved client accounts.
  8. Fixed an error causing "pack bar error" messages in the Journal.
  9. Added MetaTrader 5 terminal and MQL5 language helps in Turkish


  1. Fixed and optimized MQL5 Market data storage and update.


  1. Fixed an error in overloading the function templates.
  2. Added __MQL4BUILD__ and __MQL5BUILD__ macros - MQL5 compiler versions in MetaTrader 4 and MetaTrader 5 client terminals respectively. These macros can be used for displaying information about the compiler version used for compiling EX4\EX5 file in Experts log of the client terminal:

    //| Expert initialization function                                   |
    int OnInit()
       Print(__FILE__," compiled with ",__MQL5BUILD__," build");

MetaTrader Trading Signals

  1. Fixed comparison of Forex trading symbols of EURUSD <=> EURUSD.ABC form in case there are several symbols having similar main part (EURUSD), and trading is disabled for one of them.
  2. Fixed signals copying when performing balance and credit operations on the subscriber's account. The total amount of client's funds is changed after a balance/credit operation is performed. If the percentage value of signals copying has decreased by more than 1% afterwards (the volume of copied trades is calculated considering the ratio of the subscriber's and provider's balance), the subscriber's account is forcedly synchronized with the provider's one. This is done to correct the subscriber's current positions according to the new copying percentage value.

    If the subscriber's funds have increased due to the balance or credit operation, no forced synchronization is performed.

  3. Fixed copying positions in case Fill or Kill (FOK) market order execution mode is forbidden.


  1. Fixed working with the clipboard when inserting non-Unicode text.
  2. Fixed scrolling the navigator tree when moving folders using drag'n'drop

Fixed errors reported in crash logs.
Updated documentation.

The live update is available through the LiveUpdate system.

The MetaTrader 5 Trading Terminal can be downloaded at "https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe

15 November 2013

MetaTrader 5 iOS build 869
  • Full support for iPhone 5 and all iPad models (smartphones older than iPhone 3GS are not supported)
  • Completely redesigned charts:
    • significantly accelerated rendering
    • added inertial scrolling
    • increased number of scaling steps
    • quick edit mode (press and hold on chart to enable) — ability to resize, move and delete indicator windows directly from chart
    • ability to change chart color scheme
  • Added W1 and MN1 timeframes
  • Added news and mailbox
  • Revised depth of market
  • Added About section allowing users to manage sound alerts, screen auto-lock mode and ability to receive news, as well as to select the news language. Installed certificates can also be edited there.
  • Added sound notification when performing trade operations
  • Significantly revised Chat:
    • all previous messages are uploaded automatically
    • increased message limit up to 1 000 characters
    • added registration and authorization at MQL5.com directly from the terminal
    • improved working with contacts, added login autocomplete function when searching
    • all discussions are divided into Recent and Other
  • Fixed errors
Added iPad version which contains all the iPhone version functions, as well as:
  • Displaying up to four charts simultaneously, every chart has its own individual settings
  • Various options for arranging chart windows
  • Handy toolbox window with adjustable height to display orders, trade history, emails, news and journal
  • Quick navigation to the close and modification dialogs by tapping position or order
  • Detailed view of parameters by tapping position or order in the Trade and Trade History tabs
  • Searching over the trade history and journal
  • One click trading from chart