MetaTrader 4 Build 574 with Updated MQL4 Language and Market of Applications Released

 

MetaTrader 4 Build 574 with Updated MQL4 Language and Market of Applications Released

Over the past six months since the release of the public build 509, we put in a lot of effort to improve all the components of MetaTrader 4 online trading system. MQL4 programming language for developing trading strategies has undergone the most significant changes. These changes have provided new features for developing trading robots and made possible the launch of MetaTrader 4 Market - secure app store for MetaTrader 4 terminal.

The public test of the new MetaTrader 4 terminal enters its final stage. We have updated our public MetaQuotes-Demo server located at demo.metaquotes.net:443. We invite all traders to join the testing of the new terminal in order to try all its features and help developers to fix the errors.

Simply connect to demo.metaquotes.net:443 server in order to update MetaTrader 4 client terminal to build 574.

After this stage of beta test is complete, the final build of the new MetaTrader 4 terminal will be released. You can find out what's new in MQL4 below the list of changes.


Automatic copying of MQL4 applications when updating from old builds

In the previous builds of MetaTrader 4 client terminal (509 and older), all MQL4 applications were stored in the following subdirectories of <terminal_installation_folder>\experts\ root directory:

  • \experts - Expert Advisors (trading robots),
  • \experts\indicators - custom indicators,
  • \experts\scripts - scripts (MQL4 applications for a single run on the chart),
  • \include - source code MQH and MQ4 files implemented into other programs,
  • \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,
  • \files - special "file sandbox". MQL4 applications are allowed to execute file operations only within this directory.

In the new MQL4 version, the file structure for storing the source codes has changed. Now, all MQL4 applications should be located in the appropriate folders of <data_folder>\MQL4\ directory:

  • \experts - Expert Advisors (trading robots),
  • \Indicators - custom indicators,
  • \Scripts - scripts (MQL4 applications for a single run on the chart),
  • \include - source code MQH and MQ4 files implemented into other programs,
  • \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,
  • \Images - image files for using in resources,
  • \files - special "file sandbox". MQL4 applications are allowed to execute file operations only within this directory.

When updating MetaTrader 4 terminal from build 509 to the newer version, all MQ4, MQH and EX4 files from standard root directories of the previous version are automatically copied and relocated to the appropriate folders. Subfolders additionally created by a user, as well as files contained there are not processed. They should be relocated to the new place manually if necessary.

No files or folders are deleted during the update! All file copy operations including used file paths are fixed in the terminal Journal during the update.

No automatic re-compilation of the old EX4 files to the new version is performed during the update. Users are free to decide what source codes should be compiled to the new EX4 version. All old EX4 will work in the new MetaTrader 4 terminal. EX4 libraries compiled by the new compiler can be called only from the EX4 programs that have also been compiled in the new version.

In some cases, you may need to edit the path in #property include for included files (if relative paths have changed) in the source files. Please note that MetaEditor's root directory is now <data_folder>\MQL4\. All programs should be located in the correct subdirectories.

You can find the data folder (<data_folder>) for each copy of MetaTrader 4 terminal on your computer via the terminal menu or in MetaEditor: File - Open Data Folder.


MetaTrader 4 Client Terminal

  1. Terminal: 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. Terminal: 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. Terminal: Changed the terminal data structure and storage location - now, the data of each installed terminal is stored in a separate terminal data folder.

    Since the release of MetaTrader 4 platform in 2005, selected terminal installation directory was also the place where all data necessary for work (terminal logs, templates, profiles, quotes, etc.) has been stored. But with the release of Windows Vista in 2008, all Microsoft operating systems implement serious limitations of user privileges in order to protect them 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.

    Starting with Windows Vista, User Account Control (UAC) mechanism was introduced. The main idea of implementing the mechanism is that the application's unchangeable data stored in the installation directory should be separated from user's data modified by this application during its operation. Thus, all data of each user should be stored in a separate folder. You can find more information about UAC in Windows help or the Wikipedia article.

    In the new version, all data of a certain user working with MetaTrader 4 terminal from a separate installation directory are stored in the 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.

    "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 reversely 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 and highly recommended for security reasons.

    The terminal can also be launched in the so-called Portable mode (as in previous MetaTrader 4 builds). In that mode, the data is stored and recorded in the installation folder. To do this, 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. Terminal: 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 processing 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. Terminal: 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:




  6. Terminal: 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.






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






  8. Terminal: 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.

  9. Terminal: 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:




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




  11. Terminal: 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.



  12. Terminal: 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).




  13. Terminal: 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.




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

  15. Terminal: 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 updates of the user guide regardless of the client terminal updates.

  16. Terminal: 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.

  17. Terminal: Trading accounts are now conveniently displayed 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.




  18. Terminal: 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.




  19. Terminal: 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.
  20. Terminal: Improved accuracy of the time displayed in the client terminal's Journal - milliseconds have been added.
  21. Terminal: 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.
  22. Terminal: Added ability to copy to clipboard on Company tab.
  23. Terminal: Fixed arranging chart windows by commands.
  24. Terminal: Fixed saving profiles when switching between full-screen charts.
  25. Terminal: Fixed display of a number of dialogs when using the Japanese interface.
  26. Terminal: All client terminal components require support for SSE2 instruction set by PC's processor for efficient operation and high performance.
  27. Terminal: Optimized scanning for the best access point.
  28. Terminal: Fixed looping errors that occurred during the update in case of refusal from elevating the rights when using UAC.
  29. Terminal: Fixed display of the news header and contents, as well as of internal e-mails using UTF-8 encoding.
  30. Terminal: 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.
  31. Terminal: Updated the list of countries in the appropriate dialog when opening a demo account.
  32. Terminal: Updated and enhanced translation of the interface into Swedish, Hungarian, Japanese, Italian and Bulgarian.
  33. Signals: 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.




  34. Signals: 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.

  35. Signals: Added display of the number of new trading signals submitted over the past 3 days on the signals tab.
  36. Signals: 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.
  37. Signals: 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.
  38. Signals: 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.
  39. Signals: Added History and Reviews tabs to the information about a trading signal.
  40. Signals: Added signal's rating column to the signal list.
  41. Signals: Removed display of tickets of signal's orders and positions from the information about a trading signal.
  42. Signals: Fixed an error of trading signals synchronization that occasionally occurred in case of the large number of unidirectional positions having the same volume.
  43. Signals: Added automatic conversion of trading symbols GOLD <=> XAUUSD and SILVER <=> XAGUSD.
  44. Signals: Added prohibition to subscribe to trading signals for the accounts compatible with NFA FIFO regulations.
  45. Signals: Fixed subscription to signals when working under Wine (Linux and Mac).
  46. Signals: 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.
  47. Tester: Fixed consideration of a tick spread set in the testing parameters when optimizing using a tick cache.
  48. MQL4: 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.
  49. Fixed errors reported on the forum and in crash logs.


MetaTrader 4 MultiTerminal

  1. Fixed occasional incorrect update of the list of orders after their removal.
  2. Fixed display of the current floating profit on an account - the profit value has not included accumulated swaps at open positions.
  3. The accuracy of the last quote's time displayed in Market Watch and Popup Prices windows has been improved.
  4. Fixed display of the news header and contents, as well as of internal e-mails using UTF-8 encoding.
  5. Improved accuracy of the time displayed in the terminal's Journal - milliseconds have been added.
  6. Fixed errors reported 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.

 
Where do I find the online version of the Documentation ?
 

Found 2 typos :

19. Terminal: 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 MQL4 applications: Expert Advisors, scripts and indicators.

Last sentence :

** 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 flags in the old MQL4.

 
RaptorUK:
Where do I find the online version of the Documentation ?
Here.
 

I think users have to get used to these typos while using mql5 documents for mql4.

I have the feeling that Documentations are the last things on MetaQuotes mind.

Currently, using mql5_Docs as replacement for new_mql4_Docs is tricky business.

There's still enough differences to confuse anyone who haven't been around both platforms awhile.

 
Just press F1 in MetaEditor and you will see new version of MQL4 documentation.
 

It appears that this release is not just a beta. My broker (for my live account) just upgraded MT4 from v509 to v574.

Seemingly all I did was install a fresh copy of MT4 in a separate folder, connected to demo.metaquotes.net, and upgraded that instance of MT4 to 574. When I started the MT4 instance (which is located in a separate folder) that controls my live account, my live account got upgraded to v574. Why?

Also, it appears that MetaEditor did not get updated...still showing v509 on both installations. How do I upgrade to the new MetaEditor for v574 to gain access to the language improvements?

 
Renat:
Just press F1 in MetaEditor and you will see new version of MQL4 documentation.
I wanted to know where I can see the Online version of the new MQL4, not MQL5, documentation, the current version is here, where do I find the online beta version ? I want to see how you are handling the version history and documenting differences between the current and new version.
 
angevoyageur:
Here.

Thats mql5, not mql4 . . .
 
Thirteen:

It appears that this release is not just a beta. My broker (for my live account) just upgraded MT4 from v509 to v574.

It's beta.

Seemingly all I did was install a fresh copy of MT4 in a separate folder, connected to demo.metaquotes.net, and upgraded that instance of MT4 to 574. When I started the MT4 instance (which is located in a separate folder) that controls my live account, my live account got upgraded to v574. Why?

Upgrade of one MT4 copy on your computer means that you will upgrade all of them.
 
RaptorUK:
I wanted to know where I can see the Online version of the new MQL4, not MQL5, documentation, the current version is here, where do I find the online beta version ? I want to see how you are handling the version history and documenting differences between the current and new version.

Press F1 to see mql4.chm file.

New version of online MQL4 documentation will be published after release.

Reason: