What's new in MetaTrader 4

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

3 July 2014

MetaTrader 4 iPhone build 655
  • Added support for the VoiceOver feature
  • Added Indonesian language
  • Minor fixes and improvements

30 May 2014

Update your MetaTrader 4 Android — New Build Is Available!

We continue to develop the MetaTrader 4 application for Android and keep adding more features. One technical innovation implemented in the latest build is the classification of messages.

All messages received from the system are divided into 5 types according to their senders: Chat (conversations with MQL5.com users), Broker (broker's messages), Terminal (alerts and notifications from launched Expert Advisors), Community (various messages from MQL5.com, including depositing funds on the account or execution of any ordered work) and Other (anything that is not related to the previous 4 types). This feature first appeared in the MetaTrader iOS mobile platforms and is now available to Android users.

Update your MetaTrader 4 Android

Localization update: the application interface has been translated into Arabic and Indonesian. Translations into Czech, French, Polish, Chinese and Japanese have also been corrected and improved.

We continue to develop the functionality of MetaTrader 4 Android to bring it closer to the features of the iOS version, so more updates are coming soon.

Download the latest MetaTrader 4 for your Android powered device and keep trading!



30 May 2014

MetaTrader 4 Android build 636
  • 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 trade server connection errors.
  • Added translations into Arabic and Indonesian.
  • Updated translations into Czech, French, Polish, Chinese and Japanese.
  • Fixed errors reported in crash logs.

27 May 2014

MetaTrader 4 Client Terminal Build 654: Virtual Hosting, Web Requests and Working with Signals from MQL Applications

New beta version of MetaTrader 4 Client Terminal build 654 has been released on MetaQuotes-Demo server. It contains the following changes:

Trading terminal

  1. Preparatory works for Cloud Hosting implementation.

    Many traders want to arrange a reliable round-the-clock operation of the client terminal containing an active trading robot or following trading signals. One of the possible solutions is using VPS servers. However, finding a reliable provider, as well as diving into configuration and payment details requires additional skills and time. Now, you do not need VPS servers anymore.

    Virtual Hosting Cloud is a server network distributed all around the world and supporting special versions of MetaTrader client terminal. Selection of a suitable location, service plan, payment and synchronization is fully automated. You need to complete only 5 steps in order to rent the virtual copy of your terminal with minimal network latency to your broker's trade server and select the most suitable service plan directly from MetaTrader 4.

    Virtual Hosting Wizard can be launched by selecting "Register a Virtual Server" command in the context menu of your account.


    The first dialog window briefly describes and illustrates the main points of the virtual hosting operation.


    After clicking Next, MQL5.community authorization window appears. Enter your login and password if you already have an account. Otherwise, create a new one. If existing login and password are already specified in the terminal settings, this step is skipped.


    At the next stage, your environment is prepared for migration to a virtual copy.


    If you are sure that your terminal is ready for copying and you have read the rules, tick the "I agree to the 'Preparation of trading account for migration to virtual hosting' rules" option and click Next.

    The wizard automatically scans all the access points and provides you with the list of the most suitable servers.


    The following data is displayed in the table for each server:

    • Hoster - the name of a hosting company offering the server for rent.
    • Price, USD - rent payment in USD per month. If you continuously use the server, the payment may be reduced, but discount is not displayed in this window.
    • Ping - a time interval between a request to the server and a response from it in milliseconds.

    After choosing the most suitable server, click Next. The next window contains available service plans.


    Select the most suitable service plan, tick the option "I agree to the virtual hosting service rules" and also the option "Automatically renew subscription with sufficient funds and terminal activity" if necessary. Click Next to go to the final step.

    Registration for Virtual Hosting Rent has been Completed!


    Now, all you need is to select the data migration mode and decide when to start migration (you may choose to migrate now or postpone this action). After making the final adjustments, click Finish.
    The additional context menu item for managing the server appears in Navigator window allowing you to:

    • View the detailed information about the server.
    • Synchronize MetaTrader 4 terminal environment.
    • View MetaTrader 4 journal on the server.
    • Start/stop the server.
    • Terminate the server rent.


  2. Revised wizard of opening new account. Now, it is similar to the one in MetaTrader 5 terminal.


    The first stage of opening a new account is selection of a trading server for connection. This window allows you to select a proposed server or add a new one.


    After selecting the server, click Next.

    Account type is selected in the next window. Here you can specify the details of an already existing trading account or start creating a new one.


    Click Next. If you want to create a new account, the next step is to specify your personal details.



    Fill in all the mandatory fields, tick the option "I agree to subscribe to your newsletters" and click Next.

    The newly created account is registered on the specified server. After that, its details are displayed.


    After clicking Finish, the newly created account is automatically connected to the trade server. It also appears in the Accounts section of the Navigator window. If you click Cancel in this window, connection to the trade server is not performed and the account is not added to the Navigator window, though it is already created. You can connect to the server later using the account details.


  3. Revised the Navigator's context menu.

    • Login has been renamed to "Login to Trade Account" and added to the context menus of the "Accounts" and "<Server name>" sections.
    • You can log in to MQL5.community 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.
    • You can now refresh the list of compiled programs and the programs directly from the context menu using the "Refresh" command. You do not have to restart the terminal anymore.


       


  4. Fixed font display in the terminal search bar when working via remote desktop session.
  5. Changed location of chart windows in Tile Windows mode.

    Tile Windows is the most widely used method allowing users to efficiently arrange several open charts for working with them. In this mode, the windows are displayed next to each other allowing you to monitor price changes on multiple charts. The following changes have been implemented to this function:

    • "Tile Windows" command is now available as a button on the "Charts" toolbar.
    • This command has also been moved to the first place in the "Window" menu.
    • "Tile Windows" command now also has its keyboard shortcut "Alt+R".



  6. Fixed checking permission to trade when moving trading levels on a chart using drag'n'drop.
  7. Added ability to close a chart window by clicking middle mouse button on its tab.
  8. Fixed applying templates to charts. In some cases, indicator parameters from template were set incorrectly.

MQL4 Language

  1. MQL4: Added WebRequest function for working with HTTP requests allowing MQL4 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 web sites the programs have access to.

    WebRequest function sends and receives data from websites using GET and POST requests. To allow an MQL4 program to perform such requests, enable the "Allow WebRequest for listed URL" option in the platform settings and enter URLs of trusted websites manually.



    This option is disabled by default for security reasons.

  2. MQL4: Added access to signals database and managing signals subscription from MQL4 applications.

    Now, you can receive the list of signals, evaluate them according to your own criteria, select the best one and subscribe to it automatically from an MQL4 program. In fact, it means the advent of the new class of trading robots that scan available signals from time to time and subscribe to the one that is most suitable at the moment.

    To do this, the new families of functions have been added to MQL4 language:

    • SignalBase*() — functions for accessing the signals database.
    • SignalInfo*() — functions for receiving signal settings.
    • SignalSubscribe() and SignalUnsubscribe() — subscription management functions.

    Thus, you are now able not only to 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. Fixed display of OBJ_LABEL and OBJ_TEXT graphical objects when changing their texts from an MQL4 program.
  4. Adjusted the values of MQL4 application deinitialization reason macro definitions. Now, they are fully consistent with the corresponding values in MQL5.
  5. Fixed errors when changing dimensions of an MQL4 program settings dialog.

Trading signals

  1. Added display of a signal description according to selected interface language.

MetaEditor

  1. Added ability to debug the template functions.

Fixed errors reported on the forum and in crash logs.

The update is available through the LiveUpdate system.

29 April 2014

MetaTrader 4 Trading Terminal build 646: New Smart Search, Books in the Market and Updated Window of MQL4 Application Settings

Market

  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 your 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 box 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. 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 4 applications, books can be purchased at MQL5.community Market as well as directly via MetaTrader 4 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 4 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. Increased the number of supported email service protocols. Now, alerts and emails from MQL4 applications can be sent to Gmail, Hotmail, Yahoo and other mailboxes. Set the target mailbox in Email tab of the terminal settings.
  2. Added ability to scale dialog windows of MQL4 programs:




  3. Fixed highlighting a client account status in Trade tab when the account runs into stop out. In case of margin call or stop out, the status bar is highlighted in red.
  4. Fixed texts in trading dialogs when using the Japanese interface.
  5. Fixed managing stop loss and take profit levels. It was impossible to move the levels with a mouse if a stop level price coincided with the one, at which position had been opened.
  6. Fixed working in Wine (Linux and Mac OS).

Market

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




  2. Fixed the errors occasionally interfering with buying and downloading MetaTrader AppStore products.

MQL4 Langauge

  1. Added ability to set width, style and color of all the lines in Colors tab of a custom indicator dialog window in case that indicator has more than 8 buffers, while it was possible to configure not more than 8 lines previously.




  2. Fixed downloading indicators from the resources of compiled MQL4 applications (.ex4 files).
  3. Fixed FileFindNext function operation. The last character was missing in the returned file name.
  4. Fixed the two-times call of OnInit entry point after changing MQL4 application parameters. Now, OnInit is called only once in the mentioned case.
  5. Fixed behavior of OBJPROP_XSIZE and OBJPROP_YSIZE properties for Label and Text graphical objects. Previously, 0 was always returned instead of the appropriate values.
  6. Fixed the call of OnDeinit entry point after MQL4 application initialization error in OnInit entry point if #property strict is used in the application. Previously, OnDeinit function was not called in the mentioned case. Now, it is called with REASON_INIT_FAILED parameter.
  7. Changed StringSplit function operation. Previously, ";A;" string was split into NULL and "A" substrings using ';' separator. Now, it is split into "","A" and "" substrings.
  8. Fixed display of MQL4 applications' Boolean parameters.

Trading signals

  1. Added conversion of deposit currencies between a signal source and a subscriber using comparison of synonymous symbols. In other words, not only EURUSD can be used if you need to convert EUR into USD. If EURUSD is absent, synonymous symbols, such as EURUSDmini or EURUSDecn, will be used.
  2. Fixed updating the signal list.
  3. Fixed forced closing of positions and termination of a signal subscription when trade account's Equity falls below the value specified in the terminal's signals settings. Previously, positions were not closed in the mentioned case.
  4. Fixed trade account synchronization after attempts were made to open or modify positions according to a signal during weekends.

Strategy Tester

  1. Fixed the value returned by SYMBOL_TRADE_MODE symbol property. Previously, SYMBOL_TRADE_MODE_DISABLED value corresponding to trading prohibition for this symbol was returned during the tests. Now, SYMBOL_TRADE_MODE_FULL value is returned for this property.
  2. Fixed the value returned by TimeCurrent() function in the custom indicators involved in visual testing. Previously, 0 was always returned instead of the test time.

MetaEditor

  1. Fixed profiler operation in case the profiled application is forcefully stopped. Previously, profiling data was not received, while "profiler data is not ready or corrupted" message appeared in the journal.

Trading terminal

  1. Fixed occasional interruptions of the active trading (tens of deals per second).
  2. Updated translation of the user interface into French, Indonesian and Hebrew.

MetaEditor

  1. Fixed display of articles and Code Base in Chinese.
  2. Updated translation of the user interface into French and Indonesian. Added translation into Hebrew.

Fixed errors reported on the forum and in crash logs.

The update will be available through the LiveUpdate system.

18 April 2014

MetaTrader 4 iPhone build 589
  • Fixed incorrect operation of the notification service with some devices
  • Fixed occasional incorrect matching of a trade server to a selected account

15 April 2014

MetaTrader 4 Android build 592
  • Accelerated trading, as trade requests are now sent without an additional connection (new trade servers only).
  • Enhanced application stability.
  • Improved interface translation.
  • Fixed occasional errors when closing orders.
  • Fixed default colors in Ichimoku Kinko Hyo indicator.
  • Fixed incorrect display of the data window.
  • Fixed errors reported in crash logs.

2 April 2014

MetaTrader 4 iPhone build 587
  • Added 24 new graphic objects for technical analysis: lines, channels, Gann and Fibonacci tools, Elliott Waves and geometric shapes.
  • Completely revised design in favor of iOS 7 flat style.
  • Added ability to shift the chart - tap and hold it to enter the edit mode.
  • 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.
  • Increased trading speed when connected to new trade servers.
  • The minimum required operating system version is iOS 5.0.
  • Many minor fixes and improvements.

21 March 2014

MetaTrader 4 Trading Terminal build 625: Magazines in MetaTrader Market and New MetaViewer

Market

  1. Added new product category in MetaTrader AppStore — Magazines. Now, users can buy not only trading applications but also trading and financial magazines quickly and easily.



    Just like MetaTrader 4 applications, magazines can be purchased at MQL5.community Market as well as directly via MetaTrader 4 terminal. All magazines are accompanied by detailed descriptions and screenshot galleries:



    The latest magazine issues are always displayed in the showcase, while the previous ones can be found on the Archive tab.

    To buy a magazine, 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 magazine'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 magazine will be downloaded. Buy button will be replaced by Open one.

    Magazine files are downloaded to My Documents\MQL5 Market\Magazines\[Magazine name]\[Issue name]. The download may be performed in two formats:

    • MQB — this protected format is used for paid magazines. When purchasing and downloading a magazine 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 magazine can be activated at least 5 times on different hardware. Magazine sellers can increase the number of activations at their sole discretion.
    • PDF — this format is used for free magazines. After downloading, such file can be moved and viewed on other devices.

    The special component called MetaViewer has been added to MetaTrader 4 terminal allowing users to view MQB files. This application is launched when you click Open at the downloaded magazine page. Also, MQB files are automatically opened in MetaViewer when launched from Windows file explorer.


    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. MetaViewer menu and control panel contain additional commands for setting the journal's view and navigation:
    • File — commands for opening the files and exiting the program.
    • View — display settings: interface language, page look, enabling control panel and status bar, as well as page rotation.
    • Navigation — navigation commands: switching between the pages, moving to the first, last or selected page.
    • Zoom — page scale management commands: zooming in and out, fitting height, width and actual page size.
    • Help — information about the program and useful links.

Strategy Tester

  1. Added support for optimization by a custom result implemented in OnTester handler of an Expert Advisor.



    If OnTester handler is present, OnTester result column with the values obtained from the handler is displayed in the optimization results:


  2. Added TesterStatistics function for accessing test results from OnTester handler.
  3. Added optimization by the enumeration type's input parameter.
  4. Fixed output of an Expert Advisor's string parameters in the tester report.

Trading terminal

  1. Changed functionality of Expert Advisors button to AutoTrading. Now, all Expert Advisors receive all events meant for them (Tick, Timer, ChartEvent) regardless of the button's status, like in MT5. The status of AutoTrading button affects only performance of OrderSend, OrderModify, OrderClose and OrderDelete trading functions.




  2. Added new condition for disabling the automated trading — symbol or chart period change. If that condition is enabled and symbol or chart period is changed, the automated trading is prohibited for the Expert Advisor applied to that chart.



Trading signals

  1. Fixed display of signal descriptions in the languages different from installed Windows locale.

MQL4 Language

  1. The compiler requires explicit placement of static class variables in the new version.
  2. Added receiving symbol's SYMBOL_PATH property.
  3. Added operation of OBJPROP_FILL and OBJPROP_HIDDEN object properties.
  4. Fixed IsStopped operation when changing an account. IsStopped has not returned true during an account change.
  5. Fixed ChartIndicatorsTotal and ChartIndicatorName operation.
  6. Fixed ArrayCopy operation when an array's part is copied to itself.
  7. Fixed submission of indicator level description by IndicatorSetString function.
  8. Fixed the occasional error when an indicator could receive an incorrect number of its window via ChartWindowFind() function.
  9. Fixed trimming excessively long lines using ObjectSetText() function.
  10. Fixed the error in IndicatorSetInteger() that, in case of some values, has occasionally prevented setting indicator level properties.
  11. StringSplit operation now matches the Help description - when passing NULL string, 0 is returned.
  12. Fixed displaying the elements of the static array re-distributed into the dynamic one during the execution by the debugger.
  13. Fixed passing strings in DLL when NULL is passed as a string value.
  14. Added ENUM_SYMBOL_TRADE_EXECUTION and ENUM_SYMBOL_TRADE_MODE enumerations to the language.
  15. Accelerated file operations.
  16. Fixed conversion of lines from ANSI to Unicode and vice versa for hieroglyphic languages.

    Fixed errors reported on the forum and in crash logs.

MetaTrader 4 client terminal requires support for SSE2 instruction set by PC's processor for efficient operation and high performance.

The update is available through the LiveUpdate system.

17 March 2014

MetaTrader 4 Android build 590
  • Accelerated trading, as trade requests are now sent without an additional connection (new trade servers only).
  • Enhanced application stability.
  • Improved interface translation.
  • Fixed occasional errors when closing orders.
  • Fixed default colors in Ichimoku Kinko Hyo indicator.
  • Fixed incorrect display of the data window.
  • Fixed errors reported in crash logs.

15 February 2014

MetaTrader 4 Trading Terminal build 610

Trading terminal

  1. Increased the maximum length of the field in trailing stop placing, as well as in SL and TP modification dialogs.

Trading signals

  1. Improved initial synchronization with a trading signal.

MQL4 Language

  1. Fixed sending emails from MQL4 applications.
  2. Fixed writing string arrays to a binary file.
  3. Improved control over the time input parameter when calling CopyRates function.
  4. Improved operation of CharArrayToString and StringToCharArray functions when working with strings containing logographs (Japanese and Chinese languages).

Fixed errors reported on the forum and in crash logs.

The update is available through the LiveUpdate system.

7 February 2014

MetaTrader 4 Trading Terminal build 604

Trading terminal

  1. Improved routing of trade requests when several of them are sent simultaneously from different MQL4 applications.

MQL4 language

  1. Fixed operation of ArrayBsearch binary search function for signed integer arrays.
  2. Improved managing Expert Advisor re-initialization.
  3. Improved debugging of MQL4 applications.

Fixed errors reported on the forum and in crash logs.

The update is available through the LiveUpdate system.

3 February 2014

MetaTrader 4 Trading Terminal build 600 with Updated MQL4 Language and Market of Applications Released

Over the past 7 months since the release of the public build 509, we put in a lot of effort to improve MetaTrader 4 client terminal. MQL4 programming language for developing trading strategies has undergone the most significant changes - program execution speed has been increased, while the language itself has been brought closer to MQL5 to the maximum possible extent. This means that MQL4 trading robot developers can now also enjoy all the advantages of OOP: classes and structures, inheritance, Standard Library, resources and much more.

New MetaEditor provides such features as debugging, profiling, personal storage, autosubstitution of function names, snippets, inserting resources and intelligent code management.

The new MetaTrader 4 terminal features the Market - store of protected applications for MetaTrader 4 terminal. Now, any developer can put his or her own trading programs for sale on the unified application store, while traders can buy any product right from the terminal. All EX4 application files downloaded from the Market have the high level of protection similar to that of MQL5. MQL4 application developers can set the number of activations and prices for their products without worrying about the technical issues related to sales process - MetaTrader 4 Market will take care about the latter.

Due to changes in the file structure and location of the directory for storing custom files (indicators, Expert Advisors, scripts, templates, logs, etc.), all these data will be automatically moved to the new place during the update. Not a single custom file will be deleted during the process, and all original files will remain in their appropriate locations becoming backup copies. 

All custom executable EX4 files created by old MQL4 compiler will be automatically moved to the new Navigator directory and will work in the new terminal the same way as before.


Trading Terminal

  1. MQL4 language for programming trading strategies has been substantially revised and its functionality has been brought closer to that of MQL5. Classes and structures have been added and the language syntax has been extended up to С++ level allowing developers to implement all the advantages of object-oriented programming. It means that trading robots and technical indicators can be created much easier and faster now, while Expert Advisor developers have gained new opportunities in a single MetaEditor development environment - debugging, profiling, code completion, etc. Find out more details on the new features in a separate section of MetaEditor article on MQL5.




    Increased operation speed of MQL4 apps, provided built-in support of DLL and Visual Studio, implemented access to MQL5 Storage and much more.

  2. Added Market tab for buying and downloading paid and free Expert Advisors, signals and scripts from MetaTrader 4 Market. Now, any MQL4 developer can become a Seller and offer products to millions of traders using MetaTrader 4.




    You can download a demo version or buy a full-featured paid MQL4 application on MetaTrader 4 Market directly from the terminal. Each purchase is completely secure allowing a user up to 5 activations on different PCs and has no limitations on working time, account type or a broker. Each paid indicator or an Expert Advisor can be launched in MetaTrader 4 strategy tester in visual mode before purchasing in order to evaluate the product.

  3. MetaTarder 4 build 600 features the new structure and location of the client terminal files. Now, MQL4 applications are placed in separate directories according to the program type (Expert Advisors, indicators or scripts). In most cases, the terminal data is now stored in a special data folder separated from the terminal installation location. In this article, we will describe in details how data is transferred, as well as the reasons for introducing the new storage system.


    Why Has the New Data Storage System Been Implemented

    Microsoft Windows XP released 13 years ago allows applications to write their own data at the place of their installation even if the latter took place in Program Files system folder. A user should only have an administrator permission to write data to any folder.

    When working in 64-bit systems, separate installation directories are provided for 32 and 64-bit programs: Program Files and Program Files (x86). Operation features described in the article apply to both directories.

    Starting from Windows Vista, Microsoft has introduced a restriction on writing to Program Files directory. If User Account Control (UAC) system is enabled, programs are not allowed to store their data in Program Files folder. All data should be located in a separate user directory. This limitation has been introduced in order to protect users against malicious programs and to prevent applications under one user account to change or damage the same program's data necessary for another user account. Since that time, security requirements in Microsoft operating systems have been tightening further. In particular, starting with Windows 8, UAC system cannot be disabled even if "Never notify" option is selected in its settings.

    Microsoft has implemented virtualization process in order to provide compatibility with older applications when using UAC. If a program tries to save its data to Program Files directory, the data is actually (physically) saved to a separate folder having the following look - C:\Users\<user-name>\AppData\Local\VirtualStore\Program Files, while Windows File Explorer shows the files as if they are saved in the installation directory. Microsoft claims that this mode has been provided only for compatibility and can be removed later.

    In order to comply with Microsoft recommendations, the data storage structure has been changed in MetaTrader 4 client terminal starting from build 600. Now, the terminal will also save its data in a user directory.


    User Data Directory

    In the new version, all data of a certain user working with a certain copy of MetaTrader 4 terminal are stored in a special place called terminal data folder. This folder can be found on a system disk (a disk with installed Windows operating system) along the following path

    C:\Users\User_account_name\AppData\Roaming\MetaQuotes\Terminal\Instance_id
    where:
    • С: - name of a system disk;
    • User_account_name - user's account for working in Windows;
    • Instance_id - unique name of the folder where all the user's data for working with a certain copy of MetaTrader 4 terminal is stored. A unique name consists of 16 characters. The name is generated based on the path to the terminal installation directory, since the path to the terminal installation directory cannot be explicitly used as a folder name. Significant length of the unique name is explained by the fact that multiple copies of the terminal can be installed on a single PC.

    "Open Data Folder" command has been added to File menu of the terminal for searching and opening the data folder.


    The root of each terminal data folder also contains origin.txt file where you can find the path to the installation folder of the terminal this data refers to. This allows users to match each terminal data folder with a certain terminal installation directory, for example, in case when several copies of MetaTrader 4 terminal are installed by a user. This type of working with the terminal when the data folder is separated from the installation one is the main mode.

    For more convenience, an entry containing the path to the data folder is made in the terminal's journal each time the terminal is launched. For example:

    2014.02.10 12:48:28.477 Data Folder: C:\Users\JohnSmith\AppData\Roaming\MetaQuotes\Terminal\9F86138A4E27C7218E9EC98A5F8D8CA1


    Copying MQL4 Application Files When Updating to MetaTrader 4 Build 600 and Higher

    When the newly updated terminal is launched, it checks if the data folder is present. If the data folder is not present yet, then it is created. If that folder is different from the installation one, the terminal's regular data (standard MQL4 programs, historical data, configuration files, templates, etc.) is copied into it. The files that are not changed during the terminal operation (executable files, mql.dll compiler, sound files, etc.) are left in the installation directory. The terminal data folder is different from the installation one in the following cases:

    • UAC system is enabled. The exception is when the terminal is installed on a portable device (external hard drive, usb flash drive, etc.).
    • Current PC user has limited rights to write data to the installation directory.
    • A user is working via remote connection (RDP).

    If none of the above conditions is satisfied, the terminal data is stored in the installation directory.

    Then, the user files are moved to the data folder. At this stage, the directory where the terminal's user data has been stored is determined. If the data has been stored in the terminal installation folder, they are copied the following way:

    Source folder in the installation directory
    Contents Destination folder in the terminal data directory
    \experts
    Expert Advisors (trading robots)
    Note: only files from the root \experts directory are copied. No subdirectories are copied, since it is impossible to reliably determine their contents
    \MQL4\Experts
    \experts\indicators Custom indicators
    \MQL4\Indicators
    \experts\scripts
    Scripts (MQL4 applications for a single run on the chart) \MQL4\Scripts
    experts\include Source code MQH and MQ4 files implemented into other programs \MQL4\Include
    experts\libraries Libraries in the form of MQ4 source codes and EX4 executable files compiled from them. They are used for the dynamic call of the functions contained there by other MQL4 programs \MQL4\Libraries
    experts\files Special "file sandbox". MQL4 applications are allowed to execute file operations only within this directory \MQL4\Files
    experts\logs
    Log files of MQL4 applications
    \MQL4\Logs
    experts\presets
    Files of presets for MQL4 applications
    \MQL4\Presets
    experts\images
    Image files for being used in resources \MQL4\Images


    Next, it is checked whether the client terminal has stored data in virtualization directory (the operating system's virtual storage described above). If the terminal has been installed in Program Files directory and the operating system is Windows Vista or higher, the terminal data is most probably stored in that directory. If the data is found, it is copied according to the above table.

    The files are copied and not moved during the migration. The copied files are not deleted from the source folders.

    During the migration, the entries containing source and destination paths of the copied files are made in the terminal's journal. To view all the logs, open Journal tab of Terminal window and execute Open command in the context menu. The folder containing the terminal log files will open.

    If the migration has been completed successfully for the current terminal copy, it is not repeated any more during subsequent MetaTrader 4 terminal updates. If the data folder is different from the installation one, and custom MQL4 applications have been copied together with the standard files during the migration, the following dialog window appears:



    Portable Mode

    Portable launch mode is provided for the terminal operation on portable devices and non-system directories, as well as for working in Windows XP. When launched in this mode, the terminal tries to save its data in the installation folder. However, using Portable mode does not guarantee that an operating system will allow storing data in the installation folder (for example, if the terminal is installed in Program Files directory and UAC system is enabled).

    The following conditions should be met for working in Portable mode:

    Installation directory
    Operating system
    Requirements
    Program Files or another system directory (for example, Windows)
    Windows XP
    Permission to write to the installation folder
    Another non-system directory
    Windows XP
    Permission to write to the installation folder
    External hard drive, usb flash drive, etc. Windows XP The terminal will always be launched in Portable mode.
    Program Files or another system directory (for example, Windows) Windows Vista\Windows 7
    Launching the terminal as administrator and disabled UAC
    Another non-system directory Windows Vista\Windows 7
    Permission to write to the installation folder
    External hard drive, usb flash drive, etc. Windows Vista\Windows 7 The terminal will always be launched in Portable mode.
    Program Files or another system directory (for example, Windows)
    Windows 8 and higher
    It is impossible to use Portable mode, as UAC system cannot be disabled
    Another non-system directory Windows 8 and higher
    Permission to write to the installation folder
    External hard drive, usb flash drive, etc. Windows 8 and higher The terminal will always be launched in Portable mode.


    • It is not recommended to use Portable mode in case you use Windows Vista or higher, and the terminal is installed in Program Files. This mode is provided for the terminal operation on portable devices and Windows XP.
    • If you have updated the terminal and all the data has been copied to a separate user data folder, it is also not recommended to switch to Portable mode.
    • You should manually copy the data to the installation folder in order to use Portable mode after copying the data in the user data folder. Launching the terminal in Portable mode does not copy the data from the data folder to the installation one.

    In order to launch the terminal in Portable mode, use "/portable" key. For more convenience, you can create an additional terminal launch shortcut with the appropriate name on your desktop and add the key directly to the shortcut:



  4. Changed the algorithm of placing trade requests. In previous builds, an additional network connection has been created when placing trade requests. This connection has remained active for some time after a last trade request was sent in order to provide fast sending of a large number of trade requests.

    Now, when placing trade requests, all of them are passed via the main connection with the trade server. Thus, the time of processing the trade requests (especially the first one) has been considerably reduced as there is no need to wait for connection to the trade server being established any more. In order for the new request sending algorithm to be operable, the trade server should also be updated - requests are still set in a separate connection on older trade servers.

    Due to transition to the new model of requests processing, the ability to cancel the trade requests not yet accepted by the server (Cancel button in the trade request status dialog) has been disabled.

  5. Changed RateInfo history data storage format. RateInfo structure was presented as follows in the old version:
    struct RateInfo
      {
       unsigned int      ctm;  // bar open date
       double            open; // Open price
       double            low;  // Low price
       double            high; // High price
       double            close;// Close price
       double            vol;  // volume
      };
    

    In the new format, RateInfo structure features fields for storing spread and trading volume:

    //--- Standard quote presentation in the new terminal version
    struct RateInfo
      {
       INT64             ctm;               // open date and time
       double            open;              // Open price (absolute value)
       double            high;              // Low price
       double            low;               // High price
       double            close;             // Close price
       UINT64            vol;               // tick volume
       INT32             spread;            // spread
       UINT64            real;              // trade volume
      };

    Thus, if MQL4 programs contain DLLs for passing/accepting price data, the corresponding functions in the source codes should be rewritten and recompiled considering format changes to ensure proper operation.

    Old EX4 applications and DLLs based on old RateInfo format will not work in the new terminal. Conversion to the new format is required.
  6. Added global search in MetaTrader 4 client terminal and at MQL4.com. The search in the terminal allows you to quickly find information in all sections of the client terminal, Code Base, as well as on MQL4.com and MQL5.com websites.

    Word-by-word search with regard to Russian and English morphology is used. The search is performed in the sections specified by a user in the settings:




    The context menu of the search results tab contains additional commands depending on the type of results:




  7. Added the command of placing an instant order for the development of MQL4 applications in Jobs section. Now, each trader can not only download any code from the free library but also find a programmer able to develop a necessary indicator or a trading robot according to the user algorithm. The process of an order execution is described in the article How to Order an Expert Advisor and Obtain the Desired Result and provides protection for bother parties - a developer and a customer.






  8. Added ability to send push notifications of transactions occurring on the client account: placing, changing and removing orders, activation of pending orders and SL-TP, Margin Call and Stop Out events. Push notifications are sent to the mobile terminals installed on iOS and Android powered devices, do not depend on the phone number and can be delivered if Internet connection is available. Find out the details in the article MetaQuotes ID in MetaTrader Mobile Terminal.






  9. Added display of alerts on the chart. The alerts can be managed via drag'n'drop. Also, the ability to set an alert expiration time has been implemented.




    When management of trading levels from the chart is allowed, alert's price value can be changed by its dragging to a new price level. Alerts can be disabled or removed using a context menu on the appropriate chart level.

  10. Added search for a server by a company name in the demo account opening window.
    Just enter a company name (or a fragment of a server name) and the terminal will automatically add all servers of the company (the servers containing the specified line in their names) to the list:




  11. Added display of subfolders and the structure of Expert Advisors, scripts and indicators in Navigator window.




  12. Improved accuracy of opening and closing time of trade orders and positions displayed in the lists of open orders and positions, trading history and trade reports - seconds have been added.



  13. Improved accuracy of the last quote's time displayed in Market Watch and Popup Prices windows - the last quote's time is shown up to seconds (instead of minutes).




  14. Added automatic terminal restart request after changing the interface language. The client terminal should be restarted in order for the change to take effect. Previously, users had to close and launch the terminal for themselves. Now, after changing the interface language, users are immediately prompted to restart the terminal - it can be closed and restarted at a single click.




  15. Fixed tooltips of trading levels in case the indicators using a separate subwindow are present on the chart. When hovering the mouse cursor over Stop Loss or Take Profit level on the chart, a tooltip containing profit/loss (in points and currency) to be received in case of the level's activation is displayed. Previously, if an indicator working in a separate subwindow (for example, standard MACD) was present on the chart, that tooltip was not displayed sometimes.

  16. Added automatic update of the client terminal built-in user guide files similar to the one implemented in MetaTrader 5. Now, help files are not included in the terminal's installation and LiveUpdate packages reducing the traffic volume. The user guide is downloaded the first time a user opens it. In all subsequent cases, the system checks if the new versions are present. If there is a new version available, the user is prompted to update:




    The new system of working with help files also reduces the traffic consumption due to the fact that the language version of the downloaded user guide corresponds only to the language specified for the client terminal's interface (no excessive language versions are downloaded). This system also provides regular update of the user guide regardless of the client terminal update.

  17. Added MQL5.community fast registration dialog in case a user has no account. Now, an MQL5.community account can be created without the need to leave the terminal.





    Specify login and email address in the registration window. After clicking Register, an email for MQL5.community account activation is sent to the specified address.

    MQL5.community account allows traders to use additional powerful services:
    • MetaTrader 4 AppStore - users can buy MetaTrader 4 apps or download them for free directly from the terminal. MetaTrader 4 AppStore offers hundreds of various applications and their number is constantly increasing.
    • Signals service - users can subscribe to trading signals provided by professional traders and make profit. Trading operations are automatically copied from provider's account to subscriber's one. The service also allows selling your own trading signals. A trading account can be connected to the monitoring system in a few clicks.

  18. Trading accounts are now displayed much clearer in Navigator window:
    • Accounts are grouped by their appropriate trade servers.
    • If an account is subscribed to trading signals, the icon with a signal name is displayed nearby. When hovering the mouse cursor over the signal, subscription expiration date is shown.




  19. If the current trading account is subscribed to a signal, the appropriate icon is displayed in Trade tab of Symbols window. When hovering the mouse cursor over the icon, the data on the signal is shown. There have been cases when traders forgot that their account was subscribed to a signal. That could happen, for example, when subscription has been made to check the service's operation. The subscription icon makes working with signals more convenient.




  20. Added new graphical objects: Button, Bitmap, Bitmap Label, Rectangle Label. These objects cannot be manually installed on the charts and are designed for organizing a user interface for MQL5 applications: Expert Advisors, scripts and indicators.
  21. Optimized work with MQL5.community in case of slow Internet connection. Now, you can work with Trading Signals, Code Base library and the version MQL5 Storage conveniently even at low connection speed.
  22. Improved accuracy of the time displayed in the client terminal's Journal - milliseconds have been added.
  23. Fixed One Click closing of positions in the list of open orders and positions (by clicking Cross button) - now the value of the acceptable price deviation from the trading settings is used in Instant Execution mode.
  24. Added ability to copy to clipboard on Company tab.
  25. Fixed arranging chart windows by commands.
  26. Fixed saving profiles when switching between full-screen charts.
  27. Fixed display of a number of dialogs when using the Japanese interface.
  28. All client terminal components require support for SSE2 instruction set by PC's processor for efficient operation and high performance.
  29. Optimized scanning for the best access point.
  30. Fixed looping errors that occurred during the update in case of refusal from elevating the rights when using UAC.
  31. Fixed display of the news header and contents, as well as of internal e-mails using UTF-8 encoding.
  32. Fixed an error that in some cases could lead to incorrect display of Margin and Free Margin fields in the list of open orders and positions. This error might occur when a user declined to accept "One-Click Trading" agreement.
  33. Updated the list of countries in the appropriate dialog when opening a demo account.
  34. Updated and enhanced translation of the interface into Swedish, Hungarian, Japanese, Italian and Bulgarian.
  35. Fixed time in the bar dialog of the quotes Archive. Previously, bar time was displayed incorrectly when re-opening the bar dialog. The quotes Archive allows managing the terminal's price data - download, edit and delete bars of various timeframes.
  36. Fixed downloading history data via the quotes Archive. The error could occur if the number of characters on the current account is different from that of downloaded quotes (for example, if the current account's prices have four decimal places, while the prices downloaded from the archive have five ones).
  37. Fixed displaying hedged margin in the symbol specification dialog. Previously, values have always been rounded up to the integer part:


Trading Signals

  1. Expanded information about a trading signal:
    • added information about the date of the latest trade and the number of trades for the last week.
    • added Equity chart of the trading signals source account.
    • added Distribution diagram displaying trading activity by symbols.




  2. Added the option for unconditional synchronization of positions between a signal source and a subscriber's account. If enabled, synchronization of subscriber's and signal source's accounts (including closing open positions not related to the signal) is performed without subscriber's additional confirmation.




    This option is necessary when using signals on VPS (Virtual Private Server). It can also be used to increase the synchronization reliability when working with the already selected signal.

  3. Added legend for equity, growth, balance and distribution graphs. Also, marks displaying funds depositing and withdrawal have been added to the equity graph. When hovering the mouse cursor over the balance operation triangle, a tooltip with the operation sum is displayed:




  4. Added display of the number of new trading signals submitted over the past 3 days on the signals tab.
  5. Added consideration of the minimum allowed volume and minimum volume step during the initial synchronization of trading positions. If the size of the local position is less than the estimated volume at the signal's side, increase in the local position is not performed, as it would be necessary to re-open the position. This might lead to the loss of the spread.
  6. Fixed opening and closing trade positions by symbols with the execution type being changed from Instant Execution to Request Execution when the threshold order volume value is exceeded.
  7. When symbols of a signal source and a subscriber are compared and a number of appropriate symbols at the subscriber's side are found, permission to trade them is now considered.
  8. Added History and Reviews tabs to the information about a trading signal.
  9. Added signal's rating column to the signal list.
  10. Removed display of tickets of signal's orders and positions from the information about a trading signal.
  11. Fixed an error of trading signals synchronization that occasionally occurred in case of the large number of unidirectional positions having the same volume.
  12. Added automatic conversion of trading symbols GOLD <=> XAUUSD and SILVER <=> XAGUSD.
  13. Added prohibition to subscribe to trading signals for the accounts compatible with NFA FIFO regulations.
  14. Fixed subscription to signals when working under Wine (Linux and Mac).
  15. Removed "Show full list of signals" option from Signals tab of Symbols window. If this option is disabled, only signals provided from the accounts of the same broker are displayed in the the terminal's signal showcase. Now, all signals are displayed in the showcase, regardless of a broker. As a result, traders always have a wide selection of signals available for subscription allowing them to choose the best offers.

Strategy Tester

  1. Fixed consideration of a tick spread set in the testing parameters when optimizing using a tick cache.
  2. Fixed testing error that could occasionally lead to incorrect calculation of a trading deal commission. During the tests, charged commission settings are taken from the appropriate trading symbol parameters. Previously, if the commission value was charged as a percentage per annum, it was calculated incorrectly in the strategy tester.

MQL4 Language

  1. Fixed an error that occasionally prevented closing and opening trading positions from MQL4 apps. This error could occur when dealing with trading symbols of Market Execution type when sending big volume orders.

Fixed errors reported on the forum and in crash logs.

What's New in MQL4

MQL4 programming language has been completely revised reaching the level of MQL5 - now you can develop trading robots in MQL4/5 using the unified MetaEditor development environment, single style, libraries and debugging tools.

MQL4 is popular among automated system developers due to the ease of learning and a huge amount of code generated for many years of using MetaTrader 4 terminal. However, the language also has some drawbacks arising from its main advantage - a simple programming language does not allow development of complex systems and hinders porting of debugged libraries from high-level languages. Therefore, we decided to implement in it the maximum possible amount of MQL5 language functions and features fully preserving MQL4 functionality. In other words, all powerful MQL5 functions, including ООP and the native code compiler, will become available in MQL4.

To achieve this, we have developed a unified compiler that automatically supports both MQL4 and MQL5 languages. MetaEditor will also become a unified application both for MetaTrader 4 and MetaTrader 5 platforms. Thus, it will be possible to compile both MQL4 and MQL5 from any version. MQL5 Storage also becomes available for work.

Protection of MQL4 applications rises to MQL5 level. New EX4/EX5 files are provided with a serious and completely revised protection. This means that the Market of secure EX4 applications also becomes available to MetaTrader 4.

Besides, MQL4 now features new graphical objects and new functions for working with charts. MQL5 Standard Library is to be ported to MQL4 providing developers with new possibilities in creating their own graphical interfaces and trading libraries. Now, you can create full-fledged applications in MetaTrader 4 using the resources.

Changes in MQL4 Language

  • Added new char, short, long, uchar, ushort, uint, ulong and double data types. This will allow transferring codes from other C++ like languages. Data of various type is processed at different rates. Integer data is the fastest one to be processed. A special co-processor is used to handle the double-precision data. However, due to the complexity of the internal representation of floating-point data, it is processed slower than integer one. Typecasting has also been implemented.
  • Strings are now presented in Unicode format, though they were in ANSI format (single byte ones) before. That should be considered if the program uses DLLs and passes string variables to them.
  • Predefined Volume variable is now of ulong type. The time series for accessing the volumes also consist of ulong type arrays. It is recommended to use explicit casting of data having this type to the target type in old MQL4 programs to avoid type overflow error.
  • Structures and classes, object pointers, void type and this key word allowing an object to receive a reference to itself have been added. All object-oriented programming standards are supported:
  • ООP allows developing programs using classes. This facilitates debugging and development of large applications, as well as provides ability to reuse previously generated code multiple times due to inheritance. However, that does not mean that you cannot generate your MQL4 code in procedure-oriented style as before. You can develop your programs as you did in the past if you don't need the new features.
  • init(), deinit() and start() predefined functions have remained for compatibility, however, OnInit(), OnDeinit(), OnStart(), OnCalculate() and OnTick() ones can now be used instead. Besides, new OnTimer(), OnChartEvent() and OnTester() predefined handler functions have been added. In the previous MQL4 versions, predefined functions could have any parameters and any return type. These functions were called by their names, not signatures. In the new MQL4, all predefined functions should exactly match their signatures. In other words, they should have a clearly defined set of parameters and a return type.
  • Now, variable names cannot contain special characters and points, and new MQL4 language keywords cannot be used as names. Old MQL4 programs can be recompiled with the new compiler in order to easily correct all such errors while following the compiler's messages.
  • The Precedence rule now matches C language standards. If you are unsure, you can insert parentheses in old MQL4 apps to clearly indicate the priority to increase reliability.
  • Shortened conditions check is now used in logical operations, unlike the old MQL4 version where all expressions have been calculated and the check has been performed afterwards. Suppose there is a check of two conditions with the use of logical AND
      if(condition1 && condition2)
        {
         // some block of operations
        }
    If condition1 expression is false, calculation of condition2 expression is not performed, as false && true result is still equal to false.
  • ArrayCopyRates() has also changed its behavior. Instead of virtual copying to double[][6] array, it now performs virtual copying to MqlRates[] array. Copying to double[][6] array has remained intact for the sake of compatibility, however, that copying is real, not virtual.
  • In file operations, the number of simultaneously opened files can now reach 64 ones, while there could be no more than 32 ones in the old MQL4. Until recently, the files were always opened in FILE_SHARE_READ or FILE_SHARE_WRITE mode. Now, the necessary opening mode should be specified explicitly.
  • Working with functions, scope of variables and memory release in local arrays has also been changed. Since the number of changes is large enough, the new #property strict property has been introduced to provide maximum compatibility with the previous approach to developing MQL4 programs. When creating new MQL4 application using MQL wizard, this property is always added to the template. The table below contains the differences between MQL4, new MQL4 without using strict and new MQL4 with specified strict compilation mode
    #property strict

The table of differences between compilers

Old MQL4 compiler
New MQL4 compiler
New MQL4 with #property strict
init(), start() and deinit() entry points may have any parameters and any return type init(), start() and deinit() left intact for the sake of compatibility
and new OnInit(), OnStart(), OnCalculated, OnTick(), OnTimer(), OnChartEvent(), OnTester() and OnDeinit() should exactly match their signatures
Virtually any variable names (except for the reserved words) are possible, including special characters and points
Variable names cannot have special characters and points.
The list of the reserved words has been expanded. Thus, such widespread words as short, long, const, etc. cannot be used as names
Variable scope is from declaration (even in the nested block) to the function end
Variable scope is from declaration to the end of the block, in which the variable is declared
Implicit initialization of all the variables (both global and local ones) by zero
Only global variables are initialized. Only strings are initialized implicitly in local variables.
Local arrays are not released when exiting the function
Local arrays are released when exiting the function
Local arrays are released when exiting {} block
"Array out of range" does not cause a critical error *
Ditto, except for the arrays of structures and classes, for which this error is critical one
"Array out of range" is a critical error causing the program to stop
No structures and classes
Structures and classes are present. Additional data types are implemented
Strings are single-byte.
datetime is a 32-bit integer.
Predefined Volume variable is of double type
Strings are unicode ones.
datetime is a 64-bit integer.
Predefined Volume variable is of ulong type
ArrayCopyRates() performs virtual copying to double[][6] array ArrayCopyRates() performs virtual copying to MqlRates[] array. Copying to double[][6] array has remained intact for the sake of compatibility, however, that copying is real, not virtual
The functions may not return values even if they have a type. To do this, return(0) is automatically inserted by the compiler in the function end
Functions of any type should return a value
The number of simultaneously opened files is 32
The number of simultaneously opened files is 64
The files are always opened in shared use mode **
Shared use mode should be specified explicitly using FILE_SHARE_READ and/or FILE_SHARE_WRITE

* Please pay special attention to "Array out of range" error - many old custom indicators will display this error in strict mode of the new compiler when launched on the chart. It is recommended to find the cause and eliminate it.

** In the new MQL4 and MQL5, FILE_SHARE_READ and FILE_SHARE_WRITE flags are responsible for the files shared use mode. There were no such files in the old MQL4.


The update to MetaTrader 4 build 600 is available through the LiveUpdate system.

6 November 2013

New MetaTrader 4 iPhone Build 508 Released

The updates of the previous MetaTrader 4 iOS version included improved chat, charts and social features. The latest build of the mobile platform fixes some minor errors concerning the program's operation on iOS 7. Download the new version of MetaTrader 4 iOS and trade on Forex using the stable application.

The major update of MetaTrader 5 for iOS is to be released soon. It will feature special iPad version, news, e-mail and advanced chat. Follow the news.

DOWNLOAD METATRADER 4 iOS FOR FREE

2 October 2013

MetaTrader 4 iPhone build 505
  • when switching time frames, the chart is shifted to the last quote
  • added About section, which also allows you to manage sound alerts, news and screen auto-lock mode
  • 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 MetaTrader4
  • improved working with contacts, added login autocomplete function when searching
  • all discussions are divided into Recent and Other
  • fixed a few errors

10 July 2013

MetaTrader 4 iPhone build 501
  • Full support for iPhone 5, iPad, iPad 2, iPad Retina and iPad mini (smartphones older than iPhone 3 GS 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
  • Added sound notification when performing trade operations
  • Encoding of non-Latin characters is now determined by the current system language
  • 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 History tabs
  • Searching over the trade history and journal
  • One click trading from chart

24 June 2013

MetaTrader 4 Trading Terminal build 509
  1. Trading Terminal: Fixed the launch of the client terminal after LiveUpdate operation with enabled UAC.
  2. Trading Terminal: Updated translation of the user interface into Portuguese.
  3. MQL4: Fixed a compilation error that in some cases led to errors in executing MQL4 applications.
  4. Fixed errors reported on the forum and in crash logs.

The live update is available through the LiveUpdate system.

The MetaTrader 4 Trading Terminal can be downloaded at https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe

22 June 2013

MetaTrader 4 Trading Terminal Build 507: Trading Signal Registration Command and Setting a Spread When Testing

The build adds new features to MetaTrader 4 trading terminal:

  • Fast registration of trading signals
  • Updated signals window
  • Ability to set the spread when testing
Attention! From August 1, 2013 desktop client terminals older than build 500 will be no longer supported. This limitation does not apply to the mobile terminals.

Trading Terminal

  1. Added display of trading levels' deviation from the market's, position's or order's price in points and client deposit currency when dragging trade levels of orders and stops.

    Added display of trading levels' deviation from the market's, position's or order's price in points and client deposit currency when dragging trade levels of orders and stops

  2. Added display of trading levels' deviation from the market's, position's or order's price in points and client deposit currency into trade levels' tooltips.

    Added display of trading levels' deviation from the market's, position's or order's price in points and client deposit currency into trade levels' tooltips

  3. Added "Use 'Alt' key to drag trade levels" option - when enabled, dragging of trade levels is performed only in case Alt key is pressed.

    Added Use 'Alt' key to drag trade levels

  4. Added currency display in the client account's status bar.

    Added currency display in the client account's status bar

  5. Fixed display of X signs for quick closing of orders and positions when using alternative Windows themes.
  6. Fixed display of the unlimited number of trading levels on the chart.
  7. Fixed pauses in alerts.
  8. Fixed generation of price statistics in the detailed trading report.
  9. Fixed display of Navigator and Market Watch windows, as well as quick trading tab when using large Windows fonts.
  10. Fixed default generation of trailing stop level sets.
  11. Fixed display of quick trade panel when changing the chart's color scheme.
  12. Fixed display of prices having large number of characters (7 or more) in the quick trading panel.
  13. Fixed an error that in some cases led to clearing the order expiration date when dragging order trade levels.
  14. Fixed translation of the user interface into Japanese, updated translations into other languages.

Trading Signals

  1. Revised display of signal list:

    • Added signal price column and paid/free signals filter.
    • Added signal type column - Demo, Contest or Real.
    • Removed brokerage company and trading server names.

    Revised display of signal list

  2. Added command for registering a trading signal bound to the allocated account on MQL5 web site to the trading account's context menu of the Navigator window.

    Added command for registering a trading signal bound to the allocated account on MQL5 web site to the trading account's context menu of the Navigator window

  3. Added warning of different deposit currencies at signal provider's and subscriber's sides.
  4. Revised the dialog for unsubscribing from a signal in order to reduce the risk of the accidental unsubscribing from paid signals. Now, users should additionally agree to unsubscribing terms before performing the action.
  5. Fixed an error that in some cases led to position closing when receiving a requote.

MQL4

  1. Fixed an error that in some cases could lead to incorrect values of predefined Digits and Points variables after changing the client account.

Strategy Tester

  1. Added ability to specify spread value during testing and optimization. The old behavior has been left as a default one - the current symbol spread value is used at the start of the test (optimization):

    Added ability to specify spread value during testing and optimization

    Added TestSpread parameter to the configuration file of launching the tester from the command line.

MetaEditor

  1. Fixed updating scroll bars when editing a document.

Fixed errors reported on the forum and in crash logs.

The live update is available through the LiveUpdate system.

The MetaTrader 4 Client Terminal can be downloaded at https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe

9 May 2013

MetaTrader 4 Trading Terminal Build 500: managing trading levels from chart and access to Code Base from the terminal

The build adds new features to MetaTrader 4 trading platform:

  • Managing trading levels from chart using drag'n'drop
  • Access of MQL4 applications to Code Base from the terminal using drag'n'drop
  • Company's web site tab in the client terminal

Besides, the new build fixes a number of errors in trading signals operation and implements many minor improvements.

Attention! From August 1, 2013 client terminals older than build 439 will be no longer supported.

Trading Terminal

  1. Revised one-click trading system:
    • When One Click Trading mode is enabled, the trading dialog is closed right after a successful operation. In case of an error, the dialog displays its cause.

      When One Click Trading mode is enabled, Close command in the position's context menu results in an immediate closing of the position without showing a trading dialog.

      When One Click Trading mode is enabled, Close command in the position's context menu results in an immediate closing of the position without showing a trading dialog

    • Added ability to drag and drop trading levels of orders and positions. To set SL and TP levels on position, just drag a trading level of an order upwards (TP for "BUY" positions) or downwards (SL for "SELL" positions). When One Click Trading mode is enabled, dragging trading levels of orders and positions results in an immediate modification of the appropriate order or stop level without showing a trading dialog.


      Added ability to drag and drop trading levels of orders and positions


      Added the context menu for trading levels on the chart. The menu allows managing the level right from the chart.
    • Revised the context menu of trading from the chart, added ability to set alerts right from the chart.

      Revised the context menu of trading from the chart, added ability to set alerts right from the chart

  2. Added a tab displaying brokerage company's support web site.

    Добавлено отображение вкладки с показом саппорт-сайта брокерской компании

  3. Added Code Base tab to the client terminal - access to MQL4 applications of MQL4.com web site. To use the application, just drag it to an active chart:

    В клиентский терминал добавлена вкладка "Code Base" - доступ к базе MQL4-программ сайта MQL4.com

  4. Fixed errors causing freezes of trade requests during massive trading from MQL4 applications.
  5. Fixed display of a price chart in case of large range of values.
  6. Fixed display of prices with accuracy of 4 decimal places on the quick trading tab of a chart.
  7. Fixed saving a chart screenshot in "Active chart (as is)" mode.
  8. Optimized client terminal's work with large volumes of trading history.
  9. Removed check for the absence of SL and TP when opening positions for trading symbols of Market Execution type when trading from MQL4 applications.
  10. Added logging of operations with trailing stops.
  11. Fixed trading via "Popup prices" window of Market Watch.
  12. Fixed display of tooltips in the terminal's trading history tab.
  13. Fixed calculation of trading history results in basic and extended history reports.
  14. Updated translation of the client terminal's interface into Polish and Croatian.

  15. Trading Signals

  16. Fixed copying trading signals that sometimes led to re-copying of trading position after it was closed.
  17. Added detailed warning of different trading symbol settings at Signal Source and Subscriber's sides to the signal subscription dialog. This reduces the probability of subscribing to a signal, which is incompatible with Subscriber's trading account.

    Added detailed warning of different trading symbol settings at Signal Source and Subscriber's sides to the signal subscription dialog

MetaEditor

  1. Fixed working with clipboard when using the Chinese language.

Fixed errors reported on the forum and in crash logs.

The live update is available through the LiveUpdate system.

The MetaTrader 4 Client Terminal can be downloaded at https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe

9 March 2013

MetaTrader 4 Trading Terminal Build 482: one click trading panel and publishing screenshots of charts on MQL5.com

Trading Terminal

  1. Added one click trading panel:

    Added one click trading panel

    To show/hide one click trading panel, use the icon in the upper left corner, a context menu command or Alt+T shortcut.

  2. Increased the number of allowed parallel trading operations for MQL4 programs - up to 8 parallel trade requests are allowed now. This ensures uninterrupted simultaneous trading of several scripts or Expert Advisors - it means that it is almost impossible to receive "Trade context is busy" error code in normal conditions.
  3. Added the ability to post screenshots of charts on MQL5.com. When saving a screenshot, just select the appropriate option and the screenshot will be automatically placed on www.mql5.com, while a trader will get its address for posting on other websites and forums.

    Added the ability to post screenshots of charts on MQL5.com

  4. Disabled support for the local Data Centers and manual setting of Data Centers in Tools->Options->Server tab. Everything works automatically now.
  5. Fixed initial scaling of Fibonacci Arcs and Ellipse graphical objects, as well as Gann tools.
  6. Optimized the terminal operation during the active output of the data to the journal.
  7. Optimized updating the charts in case of the large number of bars.
  8. Fixed updating the list of open positions during the active trading.
  9. Redesigned LiveUpdate mechanism - when a new version is updated, the terminal downloads it in the background. Update up to the downloaded version is performed during the next launch of the terminal.

  10. Trading Signals

  11. Changed the algorithm for calculation of the copied deal's volume in case a Signal Source and a Subscriber have different leverages:

  12. Current algorithm: A deal volume is changed in direct ratio to the correlation of a Signal Source's leverage with a Subscriber's one. It means that if a Signal Source having a leverage of 1:100 opens a deal of 1 lot, a Subscriber having a leverage of 1:500 will open a deal of 5 lots in case of 100% copying and a deposit matching by size and currency. A subscriber having a leverage of 1:10 will open a deal of 0.1 lots in similar conditions.

    New algorithm: If subscriber's leverage exceeds the one of the Signal Source, it does not affect a volume of a copied deal. Otherwise, the deal volume is changed in direct ratio to the correlation of a Signal Source's leverage with a Subscriber's one.

    It means that if a Signal Source having a leverage of 1:100 opens a deal of 1 lot, a Subscriber having a leverage of 1:500 will open a deal of 1 lot in case of 100% copying and a deposit matching by size and currency. A subscriber having a leverage of 1:10 will open a deal of 0.1 lots in similar conditions.

  13. Fixed and improved display of charts in the information about the signal. Charts now have the look similar to the one on MQL5.com. The trend line has also been added.


    Fixed and improved display of charts in the information about the signal

  14. Revised the signal subscription dialog, added the link for subscription conditions and the additional requirement to enter MQL5.com login to avoid accidental subscription:

    Revised the signal subscription dialog, added the link for subscription conditions and the additional requirement to enter MQL5.com

  15. Improved matching Forex symbols like EURUSDx when using a signal - transformations of the form EURUSDx => EURUSDy are now supported.
  16. Fixed behavior of toolbox buttons in the signal description window when the terminal's panel is not attached to the main window.
  17. Fixed conversion of deposit currencies between a Signal Source and a Subscriber - 1:1 relationship has been applied in some cases.
  18. Fixed an error that in some cases led to connection loss and re-synchronization in case of pending orders activation at the Signal Source side.
  19. Fixed an error that in some cases led to connection loss and re-synchronization in case of SL or TP modification at the Signal Source side.
  20. Fixed compliance of the position closing algorithm at Subscriber's side to the one at Signal Source side in case there are several positions that are similar by symbol, direction and volume.
  21. Significantly reduced traffic usage when receiving information about signals.
  22. Fixed behavior when synchronizing trading positions of a Signals Provider and a Subscriber in case a Subscriber has no active trading session for a symbol of one of the positions. Now, such a situation does not interrupt further synchronization, while the position in question is not synchronized till the next synchronization attempt.

MetaEditor

  1. Fixed working with clipboard.
  2. Fixed memory leaks in some operation modes.

Fixed errors reported on the forum and in crash logs.

The live update is available through the LiveUpdate system.

The MetaTrader 4 Client Terminal can be downloaded at https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe

123456789