Menu
MetaTrader 4 Build 600 with Updated MQL4 Language and Market of Applications Released
May 30, 2014 Metatrader 4 build 600 With transition of of many FOREX brokers on MT4-Build-600 and is higher, at many Traders has appeared problem with installation of the user indicators, scripts, advisers. Here the instruction how manually to establish yours files.
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. Find out more about that in the section Automatic Copying of MQL4 Programs When Updating from Older Builds below.
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.
MetaTrader 4 Client Terminal
- 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.
- 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.
- Terminal: 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 ImplementedMicrosoft 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>AppDataLocalVirtualStoreProgram 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 DirectoryIn 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 pathwhere:
- С: - 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. - С: - name of a system disk;
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:UsersJohnSmithAppDataRoamingMetaQuotesTerminal9F86138A4E27C7218E9EC98A5F8D8CA1
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 | MQL4Experts |
expertsindicators | Custom indicators | MQL4Indicators |
expertsscripts | Scripts (MQL4 applications for a single run on the chart) | MQL4Scripts |
expertsinclude | Source code MQH and MQ4 files implemented into other programs | MQL4Include |
expertslibraries | 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 | MQL4Libraries |
expertsfiles | Special 'file sandbox'. MQL4 applications are allowed to execute file operations only within this directory | MQL4Files |
expertslogs | Log files of MQL4 applications | MQL4Logs |
expertspresets | Files of presets for MQL4 applications | MQL4Presets |
expertsimages | Image files for being used in resources | MQL4Images |
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 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 VistaWindows 7 | Launching the terminal as administrator and disabled UAC |
Another non-system directory | Windows VistaWindows 7 | Permission to write to the installation folder |
External hard drive, usb flash drive, etc. | Windows VistaWindows 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:
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.
In the new format, RateInfo structure features fields for storing spread and trading 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.
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:
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.
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:
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.
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.
- 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.
- 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.
Fixed errors reported on the forum and in crash logs.
MetaTrader 4 MultiTerminal
- Fixed occasional incorrect update of the list of orders after their removal.
- Fixed display of the current floating profit on an account - the profit value has not included accumulated swaps at open positions.
- The accuracy of the last quote's time displayed in Market Watch and Popup Prices windows has been improved.
- Fixed display of the news header and contents, as well as of internal e-mails using UTF-8 encoding.
- Improved accuracy of the time displayed in the terminal's Journal - milliseconds have been added.
- Fixed errors reported in crash logs.
The update to MetaTrader 4 build 600 is available through the LiveUpdate system.
What's New in MQL4
MQL4 programming language has been completely revised and brought to 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. When calling Windows API functions, Unicode versions of these functions should be used.
- Predefined Volume variable is now of long type. The time series for accessing the volumes also consist of long 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 expression is false, calculation of condition2 expression is not performed, as false && true result is still equal to false.
- Changed ArrayCopyRates() behavior - in the old MQL4 version, this function copied price series to double[][6] array. Now, the array from MqlRates structure elements should be used in order to receive time series:The new format of the function also performs virtual copying. In other words, the actual copying is not performed. When the copied values are appealed to, the price data is accessed directly.In order to maintain compatibility with old MQL4 applications, the old call format is also preserved. However, a real copying of data to double type array is now performed.This means that the necessary data should be copied to dest_array[][] again when changing values in time series (adding new bars, restructuring or updating the last bar's Close price). In this case, the receiver array will be automatically distributed according to the necessary amount of the copied bars even if it has been declared statically.
- 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
- The string representation of datetime type now depends on compilation mode:
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 long 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 flags in the old MQL4.
Automatic Copying of MQL4 Programs When Updating from Older 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),
- expertsindicators - custom indicators,
- expertsscripts - 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_catalog>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.
The update to MetaTrader 4 build 600 is available through the LiveUpdate system.
Developer(s) | Metaquotes Software Corp. |
---|---|
Operating system | Windows, Android, iOS[1] |
Type | Trading platform, Technical analysis software |
License | Metaquotes Software Corp. |
Website | www.metaquotes.net/en/metatrader4 |
MetaTrader 4, also known as MT4, is an electronic trading platform widely used by online retail foreign exchangespeculative traders. It was developed by MetaQuotes Software and released in 2005. The software is licensed to foreign exchange brokers who provide the software to their clients. The software consists of both a client and server component. The server component is run by the broker and the client software is provided to the broker’s customers, who use it to see live streaming prices and charts, to place orders, and to manage their accounts.
The client is a Microsoft Windows-based application that became popular mainly due to the ability for end users to write their own trading scripts and robots that could automate trading. In 2010, MetaQuotes released a successor, MetaTrader 5. However, uptake was slow and as of April 2013 most brokers still used MT4. While there is no official MetaTrader 4 version available for Mac OS, some brokers provide their own custom developed MT4 variants for Mac OS.[2][3][4]
History[edit]
Its developer, MetaQuotes Software, had previously released a number of versions of the MetaTrader platform starting in 2002. MetaTrader 4 was a significantly enhanced version and was released in 2005.[5]
Between 2007 and 2010, a number of brokerages added the MT4 platform as an optional alternative to their existing trading software due to its popularity with traders and the large number of third party scripts and advisors.[citation needed]
In October 2009, a significantly re-coded MetaTrader 5 went into public beta testing.[6] The first MT5 live account was subsequently launched by InstaForex in September 2010.[7] In 2013 and 2014, the MQL4 programming language was completely revised eventually reaching the level of MQL5. Starting from build 600, MQL4 and MQL5 use unified MetaEditor.[8]
Functionality[edit]
A chart from the MT4 trading screen
The client terminal includes a built-in editor and compiler with access to a user contributed free library of software, articles and help. The software utilizes a proprietary scripting language, MQL4/MQL5,[9][10][11] which enables traders to develop Expert Advisors, custom indicators and scripts. MetaTrader's popularity largely stems from its support of algorithmic trading.
Yahoo! hosts a large group (over 12,000 members) devoted to development of free open source software for MetaTrader.[12]
MT4 is designed to be used as a stand-alone system with the broker manually managing their position and this is a common configuration used by brokers. However a number of third party developers have written software bridges enabling integration with other financial trading systems for automatic hedging of positions. In late 2012 and early 2013, MetaQuotes Software began to work towards removing third-party plugins for its software from the market, suing and warning developers and brokers.[13]
MetaTrader provide two types of trading orders, Pending Orders and Market Orders. Pending orders will be executed only when the price reaches a predefined level, whereas Market orders can be executed in one of the four modes: Instant execution, Request execution, Market execution, and Exchange execution.[14] With Instant execution, the order will be executed at the price displayed in the platform. Its advantage is that the order will be executed at a known price. However, a good trading opportunity can be missed when the volatility is high and the requested price cannot be served.[15] Request execution mode enables trader to execute a Market order in two steps — first, a price quote is requested, then, a trader decides whether to buy or sell using the received price. A trader has several seconds to decide if the received price is worth trading. Such mode offers a certain knowledge of price combined with guaranteed execution at that price. The tradeoff is the reduced speed of execution, which can take a lot longer than other modes.[16] With Market execution, the orders will be executed with broker's price even if it is different from that displayed in the platform. The advantage of this mode is that it allows trading without any sort of requotes. However, deviation can get considerable during volatile price changes.[17] In Exchange execution mode, the order is processed by the external execution facility (the exchange). The trade is executed according to the current depth of market.[18]
Components[edit]
The complete MetaTrader 4 package includes the following components:
- MetaTrader 4 Client Terminal - the client part. Provided free by brokerages for real-time online trading and as Demo (practice trading) accounts. This provides trade operations, charts and technical analysis in real time. The internal C-like programming language allows users to program trading strategies, indicators and signals. 50 basic indicators are included, each of which can be further customized. The software runs on Windows 98/2000/XP/Vista/7. Some users have reported success using Wine on Linux for the client terminal[19] and on Mac using WineBottler.[20]
- MetaTrader 4 Mobile - controls a trading account via mobile devices such as mobile phones or PDAs. Runs on Windows Pocket PC 2002/Mobile 2003,[21] iOS,[22] and Android.[23]
- MetaTrader 4 Server - the core of the system, the server part. Designed to handle user requests to perform trade operations, display and execution of warrants. Also, sends price quotes and news broadcasts, records and maintains archives. Works as a service. Does not have a separate interface.
- MetaTrader 4 Administrator - is designed to remotely manage the server settings.
- MetaTrader 4 Manager - designed to handle trade inquiries and manage customer accounts.
- MetaTrader 4 Data Center - a specialized proxy server and can be an intermediary between the server and client terminals. It reduces the price quote sending load on the main server.
Products[edit]
The platform is focused on margin trading. Some brokerages use MetaTrader 4 to trade CFD but it is not designed for full-time work in the stock market or exchange-traded futures. At the same time, MetaTrader 5 also works with equities and commodities exchange-traded commodities. Both MetaTrader 4 and 5 can use custom indicators and trading programs (called Expert Advisors) for trading automation.[24]
See also[edit]
References[edit]
- ^'Download the MetaTrader 5 platform for trading on financial markets'. www.metaquotes.net.
- ^'XEMarkets Launches XEM MT4 for Mac Operating System'. Forex Broker News. April 10, 2013. Retrieved April 11, 2013.
- ^'Running MetaTrader on a Mac'. Metatrader Programming. March 17, 2012. Archived from the original on March 18, 2014. Retrieved March 17, 2014.Cite uses deprecated parameter
|deadurl=
(help) - ^'Full list of brokers with native Mac MT4 versions'. Metatrader 4 mac. October 12, 2014. Retrieved October 13, 2014.
- ^'Meta Quotes Software'. TTFXFC.com. Archived from the original on 28 April 2015. Retrieved 28 April 2015.Cite uses deprecated parameter
|deadurl=
(help) - ^'Download MetaTrader 5'. 12 October 2009. Retrieved 28 April 2015.
- ^'InstaForex — First Broker to Offer Real MetaTrader 5 Accounts'. EarnForex.com. 14 September 2010. Retrieved 28 April 2015.
- ^'MT4 Build 600: Full Recap'. PimpMyEA.com. 10 February 2014. Retrieved 28 April 2015.
- ^Young, Andrew (16 December 2009). Expert Advisor Programming: Creating Automated Trading Systems in MQL for MetaTrader 4. Edgehill Publishing. ISBN0982645902.
- ^'Programming of mql4 vs mql5'. Retrieved 28 April 2015.
- ^'Novelties of the MQL5 language'. MQL Magazine. 21 November 2009. Archived from the original on 25 April 2010. Retrieved 28 April 2015.Cite uses deprecated parameter
|deadurl=
(help) - ^'MetaTrader_Experts_and_Indicators - Yahoo Groups'. Yahoo!. Retrieved 28 April 2015.
- ^Finberg, Ron (22 March 2013). 'MetaQuotes Warns Brokers About Illegal Plugins'. Finance Magnates. Retrieved 28 April 2015.
- ^'Types of Execution'. MetaQuotes. Retrieved 2 June 2015.
- ^'MT4 Instant and Market Execution Explained'. TheFxView.com. 10 September 2013. Retrieved 2 June 2015.
- ^'MT4 ECN – Open and Close Positions'. Price Markets (UK). 8 January 2015. Retrieved 2 June 2015.
- ^Moraru, Andriy (21 April 2015). 'Instant Execution vs. Market Execution'. EarnForex.com. Retrieved 2 June 2015.
- ^'User Guide for the online trading platform EF MetaTrader 5 for Android OS'(PDF). EuroFinance. Retrieved 2 June 2015.
- ^Jafar Calley (17 June 2010). 'Installing Metatrader 4 Forex Charts Under Linux'. AboutCurrency.com. Retrieved 28 April 2015.
- ^'Installing Metatrader on Mac'. Metatradermac.info. 16 April 2013. Archived from the original on 3 April 2015. Retrieved 28 April 2015.Cite uses deprecated parameter
|deadurl=
(help) - ^'MetaTrader 4 for Windows Mobile'. Cryptorocket. Retrieved 24 June 2019.
- ^'MetaTrader 4 on The App Store'. Retrieved 28 April 2015.
- ^'MetaTrader 4 on Google Play'. Retrieved 28 April 2015.
- ^'MetaTrader 5 vs. MetaTrader 4 Comparison Table'. FXStreet. Retrieved 28 April 2015.
External links[edit]
Retrieved from 'https://en.wikipedia.org/w/index.php?title=MetaTrader_4&oldid=907613159'