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

What's new in MetaTrader 4

27 May 2014

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


  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.