The MetaQuotes Language 4 (MQL4) is an object-oriented high-level programming language intended for writing automated trading strategies, custom technical indicators for the analysis of various financial markets. It allows not only to write a variety of expert systems, designed to operate in real time, but also create their own graphical tools to help you make trade decisions.
MQL4 is based on the concept of the popular programming language C++. The language has enumerations, structures, classes and event handling. By increasing the number of embedded main types, the interaction of executable programs in MQL4 with other applications through dll is now as easy as possible. MQL4 syntax is similar to the syntax of C++, and this makes it easy to translate into it programs from modern programming languages.
MQL4/MQL5 aims to directly address traders’ needs and requirements. It was developed for writing trading programs and is used only for that purpose. Functions for performing trade operations OrderSend(), OrderClose(), OrderCloseBy(), OrderModify(), OrderDelete() have been initially incorporated in the language and are used for changing the state of a trading account.
There are four program types that can be written in MQL4/MQL5.
- Expert Advisors. Automatic systems trading by specified parameters and following a coded algorithm. Occurrence of a previously specified event like receiving a new tick, an alert about a new trading operation or even pressing a button or clicking a mouse, triggers the Expert Advisor to perform a programmed action.
- Custom Indicators. Written by users, they are used along the ready-made indicators integrated in the terminals. Their function is purely analytical. Indicators do not perform trading nor carry out operations that slow down the interface stream such as sending emails or performing a random delay. The main task of indicators is to monitor a situation, reflect and interpret it and then submit to a trader for analysis.
- Scripts. A script is a program intended for a single execution of an action. The start event is the only event type processed by the script.
- Custom Function Libraries. In addition, there is an opportunity to create include files (#include). Include files allow you to include most frequently used functions and classes without directly pasting their source code into its program. Using functions and classes simplifies creating, debugging and compiling because when using dynamic libraries, functions load only when they are called directly.