MetaQuotes Language 5 (MQL5) es un lenguaje built-in de programación de estrategias comerciales que ha sido desarrollado por la compañía MetaQuotes Software Corp., basándose en su amplia experiencia de varios años en el ámbito de creación de plataformas informativo-comerciales. Dicho lenguaje permite escribir sus propios programas-expertos (Expert Advisors) que hacen la gestión de procesos comerciales totalmente automatizada, y que son completamente adecuados para la realización de sus propias estrategias comerciales. Ademas, utilizando MQL5 se puede crear los indicadores técnicos personales (Custom Indicators), scripts (Scripts) y bibliotecas de funciones (Libraries).

MQL5 contiene la gran cantidad de funciones necesarias para el análisis de las cotizaciones actuales y recibidas anteriormente, en el programa están integrados los indicadores y funciones principales para la gestión de las posiciones comerciales y control de éstas. Para escribir el código del programa se utiliza el procesador especializado de textos MetaEditor 5 que marca diferentes construcciones del lenguaje MQL5 con distintos colores, lo que permite al usuario orientarse mejor en el texto del sistema especializado.

El manual de referencia contiene las funciones, operaciones, palabras reservadas y otras construcciones del lenguaje divididas por categorías. El manual permite averiguar la descripción de cada elemento que se utiliza y que compone el lenguaje.

Los programas escritos en MetaQuotes Language 5 tienen distintas propiedades y finalidades:

El Asesor Experto es un sistema automático de comercio (SAC) que tiene como referencia un gráfico determinado. El Asesor Experto se inicia si surge un evento que éste puede procesar: eventos de inicialización y deinicialización, evento de recepción de un nuevo tick, evento procedente del temporizador, evento relacionado con el cambio de la profundidad de mercado, eventos procedentes del gráfico y los eventos del usuario. El Asesor Experto no sólo puede funcionar en modo de informar sobre la posibilidad de llevar a cabo una transacción, sino celebrar las transacciones en la cuenta comercial de una forma automatizada, enviándolas Inmediatamente al servidor comercial. Los Asesores Expertos se guardan en la carpeta con la siguiente dirección - fichero_terminal\MQL5\Experts. La quintaesencia integral comunicante
El indicador personalizado es un indicador técnico creado personalmente por el usuario como complemento de los indicadores ya integrados en el terminal de cliente. Los indicadores personalizados, igual que los indicadores built-in, no pueden tradear de una forma automática y están destinados para realizar únicamente las funciones analíticas.
Los indicadores personalizados se guardan en el directorio - fichero_terminal\MQL5\Indicators
El script es un programa destinado para ejecutar alguna acción sólo una vez. A diferencia de los expertos, los scripts no procesan ningún evento salvo el de inicialización, para ello el script debe disponer de la función procesal OnStart. Los scripts se guardan en el directorio - fichero_terminal\MQL5\Scripts
La biblioteca es un fichero de las funciones del usuario que está destinado para guardar y distribuir las partes de los programas del usuario de uso frecuente. Las bibliotecas no pueden activarse de una forma autónoma. Las bibliotecas se almacenan en el directorio - fichero_terminal\MQL5\ Libraries
El archivo de inserción es un texto fuente de los bloques de los programas de usuario de uso frecuente. Durante la fase de compilación, estos archivos pueden ser incluidos en los textos fuentes de los expertos, scripts, indicadores personalizados y bibliotecas. Es más preferible utilizar los archivos de inserción en vez de las bibliotecas debido a los gastos accesorios adicionales a la hora de recurrir a las funciones de la biblioteca.
Los archivos de inserción pueden estar ubicados en el mismo directorio donde se encuentra el archivo inicial. En este caso se utiliza la orden #include con las comillas dobles. Otro sitio para guardar los archivos de inserción es el directorio fichero_terminal\MQL5\ Include, utilizando en este caso la orden #include con los paréntesis angulares.