New Beta Version of MetaTrader 4 Client Terminal Build 660: Virtual Hosting, Web Requests, Working with Signals from MQL Applications and DOM

 

New Beta Version of MetaTrader 4 Client Terminal Build 660: Virtual Hosting, Web Requests, Working with Signals from MQL Applications and DOM

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

  1. Terminal: 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 require 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. Terminal: 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 trade account or start creating a new one.


    Click Next. If you want to create a new account, the next step is specifying 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. Terminal: 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 themselves directly from the context menu using the "Refresh" command. You do not have to restart the terminal anymore.



  4. Terminal: Added display of the current market for a trading symbol as the depth of market having the ability of quick and easy order management. The new tool allows placing, modifying and deleting orders quickly and with maximum clarity providing the best trading opportunities.

    The best depth of market prices are the current Bid and Ask for the symbol. The next level is set as the closest level allowing placing Buy Limit and Sell Limit orders considering stop level for the symbol. Further levels are set according to the symbol's price step.




    Trade column contains buttons for one-click placing of pending orders. The order is placed at the price with a pressed button.

    • When you click the blue arrow button in the area of Bid prices, Buy Limit order is placed at the specified price. When you do the same in the area of Ask prices, Buy Stop order is placed.
    • When you click the red arrow button in the area of Ask prices, Sell Limit order is placed at the specified price. When you do the same in the area of Bid prices, Sell Stop order is placed.

    You can quickly modify pending orders, as well as stop loss and take profit levels of positions by a simple drag-and-drop. If you drag a limit order through Ask/Bid border, it will change to a stop order (Buy Limit is replaced by Buy Stop, while Sell Limit - by Sell Stop). The same rule applies when dragging Stop orders.


    To quickly remove a level, hover the cursor over its line, hold down Shift key and click the cross button.

    Using Buy and Sell buttons at the bottom of the depth of market, you can quickly place market orders with predetermined stop loss and take profit levels.

  5. Terminal: Fixed font display in the terminal search bar when working via remote desktop session.
  6. Terminal: 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.



  7. Terminal: Fixed checking permission to trade when moving trading levels on a chart using drag-and-drop.
  8. Terminal: Added ability to close a chart window by clicking middle mouse button on its tab.
  9. Terminal: Fixed applying templates to charts. In some cases, indicator parameters from template were set incorrectly.
  10. Terminal: Fixed display of Label and Bitmap Label graphical objects with the anchor point located in one of the bottom corners of a chart.
  11. Terminal: Fixed balance graph generation in the report based on trading history.
  12. Terminal: Fixed saving a template in case it is named in Japanese or any other hieroglyphic language.
  13. 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 websites the programs have access to.

    WebRequest function sends and receives data from websites using GET and POST requests. To allow 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.

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



  15. MQL4: Fixed display of OBJ_LABEL and OBJ_TEXT graphical objects when changing their texts from an MQL4 program.
  16. MQL4: Adjusted the values of MQL4 application deinitialization reason macro definitions. Now, they are fully consistent with the corresponding values in MQL5.
  17. MQL4: Fixed errors when changing dimensions of an MQL4 program settings dialog.
  18. MQL4: Fixed an error in StringConcatenate function.
  19. MQL4: Added definition of the custom indicators that are executed too slowly. If the indicator is slow, "indicator is too slow" entry appears in the Journal.
  20. MQL4: Fixed FileSize function for files that are available for writing. Previously, the function returned the file size without considering the latest write operations.
  21. Signals: Added display of a signal description considering an interface language.
  22. Signals: Fixed operation of signals in case of memory shortage when copying a signal.
  23. MetaEditor: Added ability to debug the template functions.
  24. MetaEditor: Optimized work with large source text files (tens of megabytes). Operation speed has been increased, while memory consumption has been reduced.
  25. MetaEditor: Fixed navigating through a source code using "Ctrl + -" and "Ctrl + Shift + -" shortcuts.
  26. Fixed errors reported on the forum and in crash logs.

The update is be available through the LiveUpdate system.
 

Terminal: 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 themselves directly from the context menu using the "Refresh" command. You do not have to restart the terminal anymore.....

Finally!  I always wondered why this wasn't added before.  Is the refresh option for all types of custom MQL4 (Expert Advisors, Scripts, Custom Indicators)?  The screenshot only showed Expert Advisor menu and I wanted to confirm it was in all menus.
 
4evermaat:

Finally!  I always wondered why this wasn't added before.  Is the refresh option for all types of custom MQL4 (Expert Advisors, Scripts, Custom Indicators)?  The screenshot only showed Expert Advisor menu and I wanted to confirm it was in all menus.

Yes, the Refresh option is included for all of them.
 

I would like to ask if there's plans  to add the other timeframes that are available in MT5 such M2, M3, etc. to MT4

 

Another feature would be that some scripts stopped working in version 625 when the automated trading is not enabled. I used to use the Take Profit script to set my Take profit, now I have to enable the Automatic Trating if I want the script works.

 

Greetings

 

oggalan 

 

Any reason why the WebRequest() stopped working in build 660?

I'm trying to run the sample script included in the documentation, but the only result was an error 4024 in the expert tab and a warning message to add the requested url to the Option tab (even if the url was already set).

thanks

skipperxit

 

The deep of market means not a list of prices at 0.1 pips of distance, "deep of market" must shows the liquidity at nearest prices level of the best prices.

In this way it's meaningless.

 
skipperxit:

Any reason why the WebRequest() stopped working in build 660?

I'm trying to run the sample script included in the documentation, but the only result was an error 4024 in the expert tab and a warning message to add the requested url to the Option tab (even if the url was already set).


If you sure that the WebRequest() doesn't work properly write ticket to Servicedesk please. Don't forget to provide all details in order to reproduce issue.
 
Rosh:

If you sure that the WebRequest() doesn't work properly write ticket to Servicedesk please. Don't forget to provide all details in order to reproduce issue.

Thank you Rosh, I'll do.

 

It seems that DLL call is in someway delayed, returned to build 646.

 

Something strange happened in Build 660 especially for the Metaeditor. A fresh MT4 install from Metaquotes installs a Metaeditor V5. Build 946. The results of a compilation of PeriodConverter script generates lots of severe errors on the included #defines from WinUser32.mqh as you can see from the attached screen dump.

PeriodConverter script compilation

 
Rosh:

If you sure that the WebRequest() doesn't work properly write ticket to Servicedesk please. Don't forget to provide all details in order to reproduce issue.

Could you please suggest a page link or an email address for the Servicedesk. Many thanks.

Reason: