What's new in MetaTrader 5

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

31 March 2016

MetaTrader 5 Android build 1226
  1. The trading platform now additionally supports the second position accounting system — Hedging. The new system allows opening multiple positions of the same financial instrument, including opposite positions. Now, the platform provides both exchange trading with the netting system and Forex trading with one of the two available systems.

    The new position accounting system is similar to that of MetaTrader 4, combined with all the advantages of the fifth-generation platform — execution of orders using multiple deals (including partial filling), stop-limit orders, and more.

    Update the platform right now to see how the hedging option works. When opening a new demo account, enable the "Use hedge" option. The option will be available if your broker's server has already been updated and configured.

  2. Also, the new version includes minor bug fixes and improvements.

12 February 2016

MetaTrader 5 Android build 1224
  • A new window has been added to the tablet version to show the detailed information about trading operations. Tap on an order or a trade to view its Open and Close time to the nearest second, a comment and the amount of the broker's commission.
  • Improved news section. Select news categories to follow what is interesting for you. Add the news items you like to Favorites to quickly access them wherever you need.
  • Added period separators to show the borders of higher timeframes on a chart.
  • Added display of the Ask line on a chart.
  • New interface languages: Korean and Vietnamese.
  • Increased maximum number of objects on a chart.
  • Various bug fixes and improvements.

3 February 2016

MetaTrader 5 iOS build 1225
  • Added portrait mode for iPad. Now, you can browse through long lists of trading operations, as well as read your mail and financial news more conveniently.
  • Added native support for iPad Pro.
  • Added Korean language.

17 December 2015

MetaTrader 5 Platform Build 1240: Faster operation and embedded videos

Virtual Hosting

  1. Added a link to the tutorial video "How to Rent A Virtual Platform" into the Virtual Hosting Wizard dialog. Watch this two-minute video to learn how to easily launch a trading robot or copy signals 24/7.


    This video as well as many others is available on the official MetaQuotes Software Corp. YouTube channel.
  2. Fixed migration for hosting when a custom indicator is called or an EX5 library within a custom indicator is called from an Expert Advisor.

Terminal

  1. Accelerated update of the list of open orders and positions during high-frequency trading (50 and more operations per second).
  2. Optimized and greatly accelerated initial synchronization of the terminal with a trade server in case of a large amount of symbols (tens of thousands). Now, you can start working much faster after connection is established.
  3. Optimized and significantly reduced memory consumption by the terminal.
  4. Added saving and restoring the depth of market settings when closing/opening the terminal.
  5. Fixed artifacts that occurred in Windows 10 when dragging the terminal windows.
  6. Fixed the context help for a number of commands and dialogs. For activating help concerning a certain element, move the cursor on it and press F1.
  7. The works on adapting the interface for high resolution screens (4K) are underway.

MQL5

  1. Added the new properties for the OrderGetString, HistoryOrderGetString, and HistoryDealGetString functions responsible for receiving data on orders and deals:

    • ORDER_EXTERNAL_ID - order ID in an external trading system (on the exchange).
    • DEAL_EXTERNAL_ID - deal ID in an external trading system.

  2. Fixed the ZeroMemory function operation when working with structures and classes. Memory clearing was not performed in some cases.
  3. Added the error codes during the SendFTP function operation. The function sends the file to the address specified on the FTP tab of the Options window.

    • ERR_FTP_NOSERVER - FTP server is not specified in the settings
    • ERR_FTP_NOLOGIN - FTP login is not specified in the settings
    • ERR_FTP_FILE_ERROR - file does not exist
    • ERR_FTP_CONNECT_FAILED - failed to connect to the FTP server
    • ERR_FTP_CHANGEDIR - file upload directory not found on the FTP server
    • ERR_FTP_CLOSED - connection to the FTP server closed

  4. Fixed type casting access by inheritance between child class objects and their parents.
  5. Fixed a few errors in the class templates.
  6. Fixed requesting ticks using the CopyTicks function. When specifying the COPY_TICKS_TRADE parameter (copy only trade ticks) for consecutive identical trade ticks (identical volume and last price), only the first tick was passed.
  7. Fixed defining a size of a custom type variable.
  8. Fixed an error when using ZLib in the CryptDecode function that led to an infinite unzip loop.

Tester

  1. Fixed synchronization of the price history for a symbol different from the main test one.
  2. Fixed doubling of the TRADE_TRANSACTION_DEAL_ADD transaction (adding a trade to history) in the OnTradeTransaction event handler.
  3. Changed forward test behavior during genetic optimization. Now, all unique results obtained after genetic optimization participate in forward passes. Previously, only 1/4 of the results were used.

MetaEditor

  1. MetaEditor: Added a link to the tutorial video "How to Create a Trading Robot in the MQL5 Wizard" to the MQL5 Wizard. Watch this three-minute video and develop a trading robot without writing a single line of code.


    This video as well as many others is available on the official MetaQuotes Software Corp. YouTube channel.
  2. Fixed window arrangement commands if one of the windows is fully expanded. The Window menu allows you to arrange open files as tiles, vertically, horizontally and as a cascade.
  3. The works on adapting the interface for high resolution screens (4K) are underway.
Updated documentation.

4 November 2015

MetaTrader 5 Android Build 1172: Convenient Chart Zoom and Accrued Interest in the Bond Properties

The new version of the MetaTrader 5 Android is already available for download on Google Play.


What's new:

  1. Improved symbol chart zoom: increased the amount of zoom steps and enhanced display smoothness.
  2. All changes in the set of symbols and their sequence in the Market Watch and chart settings (scale, color scheme, object and indicator lists) are saved after closing the application in any way.
  3. Added a face value and accrued interest in bond properties.

Update your application and try its new features!


3 November 2015

MetaTrader 5 Android build 1172
  • Improved symbol chart zoom: increased the amount of zoom steps and enhanced display smoothness.
  • All changes in the set of symbols and their sequence in the Market Watch and chart settings (scale, color scheme, object and indicator lists) are saved after closing the application in any way.
  • Added a face value and accrued interest in bond properties.

30 October 2015

MetaTrader 5 Build 1210: Enhanced Depth of Market and General Improvements

Terminal

  1. Added ability to place limit orders at a price worse than the market one in the Depth of Market. This allows you to get a guaranteed order execution at a specified price on the market.

    If we drag a limit order through ask/bid border, it will change to a stop order (Buy Limit will be replaced by Buy Stop, while Sell Limit - by Sell Stop). Hold Crtl while dragging so that a limit order is not replaced by a stop one.




  2. Added the "Show quick trading buttons" option in the chart settings. It allows you to hide the One Click Trading panel enabling buttons and the Depth of Market from a chart.




  3. Fixed occasional conflicts between tooltips and other applications.

MQL5

  1. Fixed the operation of the Copy* functions for copying history data with dynamic arrays having the AS_SERIES flag. The flag is set by the ArraySetAsSeries function and indicates that indexation of the array elements is performed as in timeseries.
  2. Changed the CHART_SHOW_ONE_CLICK property managed via ChartSetInteger and ChartGetInteger. Previously, the property allowed showing/hiding the One Click Trading panel on a chart. Now, it also shows/hides the buttons for setting the One Click Trading panel and the Depth of Market on a chart (similar to the "Show quick trading buttons" in the chart settings).
  3. Fixed template operation.
Updated documentation.

23 October 2015

MetaTrader 5 Platform Update Build 1200: Tick History and Direct Payment for Services

Terminal

  1. Added ability to work with tick history in the Market Watch. Previously, a tick chart showed only the history collected in the terminal during its operation. Now, you can access the entire tick history on the trade server. Disable auto scroll and start scrolling a tick chart back in time using your mouse to download missing history from the trade server the same way it is done for common price charts. The new feature will be useful for traders who want to get the most detailed price charts.



    Use the CopyTicks() function to receive deeper tick history. It has been modified so that it requests missing history and downloads it if the latter is present on the trade server.

  2. Added an icon for quick opening/closing the Depth of Market. The icon is located near the One-Click Trading panel on the chart. You can also use the new hotkey Alt+B. The hotkey also works in the Market Watch window opening the Depth of Market for a symbol highlighted in the Market Watch.




  3. Information about the PC hardware characteristics and the operating system is now logged to a Journal at the start of the client terminal. Example:
    2015.10.14 14:48:18.486	Data Folder: C:\Program Files\MetaTrader 5
    2015.10.14 14:48:18.486	Windows 7 Professional (x64 based PC), IE 11.00, UAC, 8 x Intel Core i7  920 @ 2.67GHz, RAM: 8116 / 12277 Mb, HDD: 534262 / 753865 Mb, GMT+03:00
    2015.10.14 14:48:18.486	MetaTrader 5 build 1190 started (MetaQuotes Software Corp.)
  4. Imrpoved working with the symbols in the Market Watch:

    • Added display of the amount of symbols in the Market Watch and the total available amount of symbols on the trade server
    • Added a line for adding a new symbol with the smart selection list
    • The search in the new symbol line is performed not only by a symbol name, but also by its description and international name.




  5. Added support for the economic calendar in different languages.
  6. Added missing country icons to the economic calendar.
  7. Added the hotkey for opening the symbol management window in the Market Watch - Ctrl+U.
  8. Fixed arranging open chart windows according to the Window menu commands.
  9. Fixed an error that occasionally hampered the terminal's ability to find a certificate file when using the enhanced authentication.
  10. Fixed an error that could occasionally lead to a price history synchronization looping.
  11. Fixed nulling StopLoss/TakeProfit levels of a previously opened position after its volume has been increased if a symbol is traded in the Request Execution mode.
  12. Fixed checking the ability to place a sell order in case of a long position on symbols in "Long only" trading mode in the Depth of Market.
  13. Fixed Trailing Stop function operation. In some rare cases, a protective Stop Loss for an open position was moved incorrectly.
  14. The terminal interface has been further adapted for high resolution screens (4K).
  15. Fixed unloading history data as being excessive despite regular appeals to it from MQL5 programs.
  16. Fixed display of some user interface elements when working in Windows 10.
  17. Updated translations of the user interface.

Market

  1. Market: Operation with the product database in the MQL5 Market has been revised and optimized.
  2. Market: Purchasing without an MQL5.community account has been disabled for terminals on VPS. The purchase now requires specification of an MQL5.community account in the terminal setting: Tools - Options - Community.
  3. Market: Added direct product purchasing using UnionPay.
  4. Market: Enhanced logging when purchasing products in MQL5 Market.
  5. Hosting: Added managing the virtual hosting (except for migration) when working in the 32-bit version of the client terminal.


Virtual Hosting and Signals

  1. Payments for Virtual Hosting and Signal subscriptions can now be transferred straight from payment systems. To pay for hosting services, users don't need to log in to the MQL5.community account and add money to it. A payment for a service can now be transferred straight from the platform using one of the available payment systems.



    Select one of the available systems and make an online money transfer:




    Similarly, a payment for a trading signal subscription can be made straight from the terminal via a payment system.




    The required amount will be transferred to your MQL5.community account first, from which a payment for the service will be made. Thus, you maintain a clear and unified history of rented virtual hosting platforms and signal subscriptions and can easily access and review all your payments for the MQL5.community services.
  2. Added managing the virtual hosting (except for migration) when working in the 32-bit version of the client terminal.
  3. Fixed migration of FTP export settings to the virtual hosting regardless of the permission to publish reports via FTP.

MQL5

  1. Enabled a new optimizing compiler. Execution of programs has been accelerated up to 5 times on 64-bit platofrms. MQL5 programs should be re-compiled in the last MetaEditor version.
  2. Extended MqlTick structure format. Now, it passes the time of a tick arrival in milliseconds, as well as flags to determine which tick parameter has been changed.
    struct MqlTick
      {
       datetime     time;          // Time of a price last update
       double       bid;           // Current Bid price
       double       ask;           // Current Ask price
       double       last;          // Current Last price
       ulong        volume;        // Volume for the current Last price
       long         time_msc;      // Time of a price last update in milliseconds
       uint         flags;         // Tick flags
      };
    The parameters of each tick are filled in regardless of whether there are changes compared to the previous tick. Thus, it is possible to find out a correct price for any moment in the past without the need to search for previous values at the tick history. For example, even if only a Bid price changes during a tick arrival, the structure still contains other parameters as well, including the previous Ask price, volume, etc. You can analyze the tick flags to find out what data have been changed exactly:

    • TICK_FLAG_BID - a tick has changed a Bid price
    • TICK_FLAG_ASK  - a tick has changed an Ask price
    • TICK_FLAG_LAST - a tick has changed the last deal price
    • TICK_FLAG_VOLUME - a tick has changed a volume
    • TICK_FLAG_BUY - a tick is a result of a buy deal
    • TICK_FLAG_SELL - a tick is a result of a sell deal

    The MqlTick structure is used in two methods:

    • CopyTicks - method does not support the old format of the structure. Previously compiled EX5 files using the old tick format will return the error 4006 (ERR_MQL_INVALID_ARRAY) when calling the CopyTicks function.
    • SymbolInfoTick - method supports both old and new structure format.

  3. Added class templates allowing you to create parametrized classes like in C++. That enables even greater abstraction and ability to use the same code for working with objects of different classes in a uniform manner. Example of use:
    //+------------------------------------------------------------------+
    //|                                                    TemplTest.mq5 |
    //|                        Copyright 2015, MetaQuotes Software Corp. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2015, MetaQuotes Software Corp."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    //+------------------------------------------------------------------+
    //| Declare a template class                                         |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArray
      {
    protected:
       T                 m_data[];
    
    public:
    
       bool              Append(T item)
         {
          int new_size=ArraySize(m_data)+1;
          int reserve =(new_size/2+15)&~15;
          //---
          if(ArrayResize(m_data,new_size,reserve)!=new_size)
             return(false);
          //---
          m_data[new_size-1]=item;
          return(true);
         }
       T                 operator[](int index)
         {
          static T invalid_index;
          //---
          if(index<0 || index>=ArraySize(m_data))
             return(invalid_index);
          //---
          return(m_data[index]);
         }   
      };
    //+------------------------------------------------------------------+
    //| Template class of a pointer array. In the destructor, it deletes |
    //| the objects, the pointers to which were stored in the array.     |
    //|                                                                  |
    //| Please note the inheritance from the TArray template class       |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArrayPtr : public TArray<T *>
      {
    public:
       void             ~TArrayPtr()
         {
          for(int n=0,count=ArraySize(m_data);n<count;n++)
             if(CheckPointer(m_data[n])==POINTER_DYNAMIC)
                delete m_data[n];
         }
      };
    //+--------------------------------------------------------------------------+
    //| Declare the class. Pointers to its objects will be stored in the array   |
    //+--------------------------------------------------------------------------+
    class CFoo
      {
       int               m_x;
    public:
                         CFoo(int x):m_x(x) { }
       int               X(void) const { return(m_x); }
      };
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    TArray<int>     ExtIntArray;   // instantiate TArray (specialize TArray by the int type)
    TArray<double>  ExtDblArray;   // instantiate TArray (specialize TArray by the double type)
    TArrayPtr<CFoo> ExtPtrArray;   // instantiate TArrayPtr (specialize TArrayPtr by the CFoo type)
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- fill arrays with data
       for(int i=0;i<10;i++)
         {
          int integer=i+10;
          ExtIntArray.Append(integer);
          
          double dbl=i+20.0;
          ExtDblArray.Append(dbl);
          
          CFoo *ptr=new CFoo(i+30);
          ExtPtrArray.Append(ptr);
         }
    //--- output the array contents
       string str="Int:";
       for(int i=0;i<10;i++)
          str+=" "+(string)ExtIntArray[i];      
       Print(str);   
       str="Dbl:";
       for(int i=0;i<10;i++)
          str+=" "+DoubleToString(ExtDblArray[i],1);
       Print(str);   
       str="Ptr:";
       for(int i=0;i<10;i++)
          str+=" "+(string)ExtPtrArray[i].X();      
       Print(str);
    //--- CFoo objects created via new should not be deleted, since they are deleted in the TArrayPtr<CFoo> object destructor  
      }
    Execution result:
    TemplTest (EURUSD,H1)    Int: 10 11 12 13 14 15 16 17 18 19
    TemplTest (EURUSD,H1)    Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
    TemplTest (EURUSD,H1)    Ptr: 30 31 32 33 34 35 36 37 38 39

  4. New operations * and & for receiving a variable by reference and receiving a reference to a variable.
  5. Added the overloaded form of the ObjectsDeleteAll function - delete all objects of a specified type by a name prefix in a chart subwindow.
    int  ObjectsDeleteAll(
       long           chart_id,   // chart ID
       const string     prefix,   // object name prefix
       int       sub_window=-1,   // window index
       int      object_type=-1    // object type for deletion
       );

  6. Fixed the ObjectGetValueByTime function operation. Previously, an incorrect price value by a chart time could sometimes be returned (for example, for a horizontal trend line).
  7. Fixed operation of the Copy* functions in the absence of historical data on the server. Previously, such cases caused delays of 30-50 seconds before returning control.
  8. Added a few improvements to the MQL5 Standard Library.
  9. Translated the Standard Library documentation into German, French, Chinese, Turkish, Spanish and Portuguese.
  10. Added MQL5 documentation in Japanese.

Tester

  1. The process of selecting programs to run in the Strategy Tester has become much easier. The list is displayed now as a tree in accordance with the directories in which Expert Advisors and indicators are stored.




  2. Brought display of some indicators during a visualized test in line with the client terminal.
  3. Fixed setting a leverage and a chart timeframe while debugging MQL5 programs via the strategy tester.
  4. Fixed debugging indicators when testing on history.
Fixed errors reported in crash logs.

Updated documentation.


17 September 2015

MetaTrader 5 iOS build 1167
  • Improved convenience of analytical objects. They only appear on the current chart now. Display on other symbols can be enabled in object settings. To optimize chart area, enable object display only for the timeframes you need.
  • Turn on the display of higher timeframe borders on the current chart by enabling period separators.
  • iOS 9 compatibility improved.

16 September 2015

MetaTrader 5 iOS Build 1167: More Convenient Use of Analytical Objects

Working with analytical objects has become even more convenient in the new version of MetaTrader 5 iOS iOS for iPhone and iPad. Now objects only appear on the chart of the current symbol and selected timeframes.

MetaTrader 5 iOS Build 1167

Additionally, the new version of the mobile app has better compatibility with iOS 9.



28 August 2015

MetaTrader 5 iOS Build 1165: Improved News Section and One-Tap Trading

The updated MetaTrader 5 for iOS is now available on the App Store. Working with financial news has become even easier: select news categories to follow and add news items that you like to Favorites.

Another important new option added is trading from a chart with a single touch (similar to one-click trading). Turn your device into a horizontal position and open a quick trade panel.

MetaTrader 5 iOS Build 1165

Furthermore, we have added an option for closing positions of Collateral instruments, which allows converting the corresponding assets into the deposit currency.

Update your app to receive the new features in your MetaTrader 5 iOS.



28 August 2015

MetaTrader 5 iOS build 1165
  • Improved news section. Select news categories to follow what is interesting for you. Add the news items you like to Favorites to quickly access them wherever you need. Search news by headlines.
  • In the iPhone version trades can now be executed from a chart at a single tap - turn the device into a horizontal position and open a quick trade panel.
  • Added an option for closing positions of Collateral instruments, which allows converting the corresponding assets into the deposit currency.
  • Various bug fixes and improvements.

26 August 2015

MetaTrader 5 Android build 1164
  • Added 24 new graphic objects for technical analysis: lines, channels, Gann and Fibonacci tools, Elliott Waves and geometric shapes.
  • Added support of two factor authentication (One-time password, OTP) for connecting to a trading account
  • Various bug fixes and improvements

24 June 2015

MetaTrader 5 Android build 1130
  • Added internal mail system for contacting broker's support team
  • Added ability to send logs to the application developer's support team
  • Various bug fixes and improvements

3 June 2015

MetaTrader 5 iOS build 1127
  • Added support for a special type of non-tradable instruments, which can be used as the client's assets to provide the required margin for open positions of other instruments. Such assets are displayed as open positions. They increase the free margin amount, thus increasing the volumes of allowable trade operations on the account.
  • New interface language: Hindi.
  • Various bug fixes and improvements.

22 May 2015

MetaTrader 5 Platform Update Build 1150: Easy Purchase from Market, Debugging on History, Time&Sales of Transactions

Market

  1. We are introducing a new mechanism of "direct" purchasing. Purchasing a trading robot or an indicator from the Market is now even easier, and you do not even need an MQL5.community account.

    One-Step Purchase
    A user doesn't need to log in to an MQL5.community account and add money to it. A payment for a product can now be made straight from the platform using one of the available payment systems. To maintain a clear and unified history of purchases from the Market, the required amount will be first transfered to your MQL5.community account, from which a payment for the product will be made.

    You can easily access and review all your payments from your MQL5.community Profile.




    Purchase without Registration
    A product from the Market can be purchased without an MQL5.community account. Click "Buy" and pay for the product using one of the available payment systems.



    Then you will be redirected to the payment system web page to complete your purchase.



    After that, we strongly recommend you to register an account on MQL5.community, and your purchase will be automatically linked to it. This enables you to update the product and install it on multiple computers.

MetaEditor

  1. New features allow to debug Expert Advisors and indicators on history prices. In the older versions debugging required live real time charts.

    Now any program can be tested on required history data. Debugging runs in the visual testing mode in the Strategy Tester. An application is executed on a chart with an emulated sequence of ticks in the tester.

    Configure the debugging parameters in the MetaEditor settings: symbol, timeframe, interval, execution mode, tick generation mode, initial deposit and leverage. These parameters will be applied for visual testing.



    Set the breakpoints in the code, and then start the debugging using historical prices.



    This will initiate visual testing and the debugging process.



Virtual Hosting

  1. Multiple improvements and fixes have been implemented in the Virtual Hosting service.

    The major changes apply to operation in Wine on computers running Linux and Mac OS. All the functions are available for allocated virtual servers in Wine, including migration, performance monitoring and logs.


    The operation of the Log has also changed. If a user requests too many records, then only part of the first logs for the specified period will be downloaded. This prevents performance degradation resulting from large logs. If you need to download further logs, you no longer need to change the requested period. Simply select the last row in the log viewer window and press PgDn.




Terminal

  1. Added support for a special type of non-tradable assets, which can be used as client's assets to provide the required margin for open positions of other instruments. For example, a certain amount of gold in physical form can be available on a trader's account, which can be used as a margin (collateral) for open positions.

    Such assets are displayed as open positions. Their value is calculated by the formula: Contract size * Lots * Market Price * Liquidity Rate.

    Liquidity Rate here means the share of the asset that a broker allows to use for the margin.


    The Assets are added to the client's Equity and increase Free Margin, thus increasing the volumes of allowable trade operations on the account.

    Thus, it is now possible to open accounts with various margin types.


    In the example above, a trader has 1 ounce of gold having the current market value of 1 210.56 USD. This value is added to the equity and the free margin allowing the trader to continue trading even in case of a zero balance.

  2. A new Depth of Market with a tick chart and the Time&Sales data of trades.

    A tick chart of exchange instruments with real transaction prices is now displayed in the Depth of Market. All transactions conducted on the Exchange are plotted on this chart:

    • Red circles - Sell transactions
    • Blue circles - Buy transactions
    • Green circles - the direction of the transaction is undefined. It is used when the exchange does not transmit the direction of a transaction. In this case, the direction is determined based on the price of the transaction as compared to prices bid and ask. A Buy transaction is that executed at the ask price or above, a Sell transaction is executed at the bid price or lower. The direction is undefined, if the price of the transaction is between the bid and the ask.

    The larger the circle, the greater is the volume of the transaction. Transaction volumes are also shown as a histogram below the tick chart.



    At the top and bottom of the histogram, the total volumes of the current Buy and Sell offers are shown.

  3. The symbol selection dialog box now contains a column showing the symbol expiration date. Additionally, expired instruments can be hidden from the list. Expired contracts are automatically replaced with active ones.



    All expired symbols are hidden to preserve a more compact display. This is particularly useful when working on the futures market. A non-relevant symbol is the expired one, which is defined by the "Last trade" parameter. This date is specified in the "Expiration" column. To see all the symbols, click "Show expired contracts".
    The list of symbols is automatically sorted for a more convenient display:

    • first listed are the symbols without the expiration date
    • they are followed by the symbols with an expiration date starting with the nearest date
    • then expired symbols are shown starting with the last expired one
    • other symbols sorted alphabetically

    Option "Auto remove expired" in the context menu allows to replace expired symbols with active ones in the "Market Watch" window.



    After terminal restart, expired symbols are hidden, and active ones are added instead. For example, the expired futures contract LKOH 3.15 will be replaced by the next contact of the same underlying asset LKOH 6.15.

    Symbols in the appropriate open charts are also replaced, provided there are no running Expert Advisors on them.

  4. Fixed updating of trade button states in the Depth Of Market window depending on whether there are any positions, and on the permission to open only long positions. If there are no positions, the Close button is inactive. If opening short positions is not allowed, the Sell button is inactive.
  5. The terminal interface has been further adapted for high resolution screens (4K).
  6. Fixed verification of the volume of a closed position in the Request Execution mode, in case a deal volume is less than the minimum allowable value.
  7. Fixed an error that could occasionally lead to launch of multiple terminal instances from one directory.
  8. Added support and automatic filtering of the economic calendar in different languages. Filtering is performed in accordance with the language of the terminal interface.
  9. The Log Viewer now features search through the currently displayed logs.



    It searches for a word/phrase in the displayed list of logs.
  10. Added Thai translation of the client terminal.
  11. Updated translation of the client terminal into Hindi.

MQL5

  1. New function GetMicrosecondCount returns the number of microseconds that have passed since the start of the MQL5 program:
    ulong  GetMicrosecondCount();
    This function can be used to profile program execution and identify "bottlenecks".

  2. New chart property CL_BUFFER_SIZE in the ENUM_OPENCL_PROPERTY_INTEGER enumeration - it returns the actual size of the OpenCL buffer in bytes. The property can be received via the CLGetInfoInteger function.
  3. An error notification in the WebRequest function has been modified. If an error occurs, the 'result' array will contain the description of the error.
  4. The ArraySort, ArrayBsearch, ArrayMinimum and ArrayMaximum sort and search functions are now able to work with multidimensional arrays. Sort and search are performed only by the first (zero) array index. Previously, these functions worked only with one-dimensional arrays.
  5. Fixed some bugs in the compilation of macros.

Tester

  1. Some improvements and bug fixes in the operation of the visual testing. The tester now provides a smoother control of testing speed using the toolbar.

Fixed errors reported in crash logs.

Updated documentation.

The update is available through the LiveUpdate system.

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

Tester

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

Market

  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.

MQL5

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

123456789