Edición, compilación y ejecución de programas

Todos los programas de MetaTrader 5 son compilables. Es decir, un código fuente escrito en MQL5 debe compilarse para obtener la representación binaria que será exactamente la que se ejecute en el terminal.

Los programas se editan y compilan con MetaEditor.

Edición de un programa MQL en el MetaEditor

Edición de un programa MQL en MetaEditor

El código fuente es un texto escrito según las reglas de MQL5 y guardado como un archivo con la extensión mq5. El archivo que contiene un programa compilado tendrá el mismo nombre, mientras que su extensión será ex5.

En el caso más sencillo, un archivo ejecutable se corresponde con un archivo que contiene el código fuente; sin embargo, como veremos más adelante, la codificación de programas complejos requiere con frecuencia dividir el código fuente en varios archivos: el principal y algunos de apoyo que se habilitan desde el archivo principal de forma especial. En este caso, el archivo principal debe seguir teniendo la extensión mq5, mientras que los habilitados a partir de él deben tener la extensión mqh. Las sentencias procedentes de todos los archivos fuente entrarán entonces en el archivo ejecutable que se está generando. Así, varios archivos que contienen el código fuente pueden ser el punto de partida para crear un archivo ejecutable o programa. Todo esto que se menciona aquí para ofrecer una imagen completa, se va a presentar en la segunda parte del libro.

Utilizaremos el término «sintaxis MQL5» para denotar el conjunto de todas las reglas que permiten construir programas en MQL5. Sólo el estricto cumplimiento de la sintaxis permite codificar programas compatibles con el compilador. De hecho, enseñar a codificar consiste en introducir secuencialmente todas las reglas de un lenguaje concreto, que en nuestro caso es MQL5. Y este es el objetivo principal de este libro.

Para compilar un código fuente, podemos utilizar el comando MetaEditor Archivo -> Compilar o simplemente pulsar F7. Sin embargo, existen otros métodos especiales para compilar, de los que hablaremos más adelante. La compilación se acompaña de la visualización del estado cambiante en el registro del editor (donde un programa MQL5 se compone de varios archivos que contienen el código fuente, y la habilitación de cada archivo se marca en una sola línea de registro).

Compilación de un programa MQL en MetaEditor

Compilación de un programa MQL5 en MetaEditor

Un indicio de que la compilación se ha realizado correctamente es la ausencia de errores («0 errores»). Las advertencias no afectan a los resultados de la compilación, sólo informan de posibles problemas. Por lo tanto, se recomienda solucionarlas del mismo modo que los errores (más adelante le explicaremos cómo hacerlo). Lo ideal sería que no hubiera ninguna advertencia («0 advertencias»).

Una vez compilado correctamente un archivo mq5, obtenemos un archivo del mismo nombre con la extensión ex5. MetaTrader 5 Navegador muestra en forma de árbol todos los archivos ejecutables ex5 situados en la carpeta MQL5 y sus subcarpetas, incluyendo el que se acaba de compilar.

Navegador MetaTrader 5 con un programa MQL compilado

Navegador MetaTrader 5 con un programa MQL5 compilado

Los programas ya listos se lanzan en el terminal utilizando cualquier método familiar para el usuario. Por ejemplo, cualquier programa, que no sea un servicio, puede arrastrarse con el ratón desde Navegador al gráfico. Hablaremos de las características de los servicios por separado.

Además, los desarrolladores a menudo necesitan que el programa se ejecute en el modo de depuración para encontrar la causa de los errores. Existen varios comandos especiales para este fin, y nos referiremos a ellos en el apartado Corrección y depuración de errores.