Ayuda de MetaEditorDesarrollo de programasCompilación

Compilación

La compilación es el proceso de traducción del código fuente de un programa MQL4/MQL5 al lenguaje de máquinas. Su resultado es la creación de un archivo ejecutable de programa (*EX4 o *.EX5), que puede ser iniciado en la plataforma comercial.

La compilación comprende varias etapas:

  • Análisis léxico
  • Análisis sontáctico
  • Análisis semántico
  • Generación de código
  • Optimización del código
  • Se puede compilar cualquier archivo (*.MQ4, *.MQ5 o *.MQH). Sin embargo, el archivo ejecutable (*.EX4 o *.EX5) se puede obtener solo como resultado de la compilación del archivo principal MQ4/MQ5 del programa.
  • El archivo ejecutable se crea en su propio formato cerrado, lo que oculta el algoritmo fuente del programa.
  • Los archivos ejecutables compilados EX4/EX5 se pueden distribuir sin los archivos fuente MQ4, MQ5 y MQH. La depuración resulta imposible sin ellos. Tampoco se recomienda distribuir los archivos ejecutables EX4/EX5 obtenidos en el proceso de depuración.

Para obtener el archivo ejecutable de un programa, abra el archivo fuente o el proyecto original a través del "Navegador", y después pulse "Compilar Compilar" en el menú "Archivo" o "F7". El protocolo del proceso de compilación se mostrará en la pestaña "Errores", en la ventana "Caja de herramientas". Si la compilación ha tenido lugar sin errores, usted podrá iniciar el programa obtenido en la plataforma comercial.

Compilación del programa con representación de los resultados en la pestaña "Errores"

Si se producen errores o advertencias durante el proceso de compilación, su descripción se mostrará en la pestaña "Errores".

Los errores de compilación se marcan con iconos Error tanto en la pestaña "Errores", como en el mismo código si va a ellos. Si se producen, el archivo ejecutable del programa (*EX4 o *.EX5) no se creará. Para ir a la línea donde ocurrió el error, haga doble clic en el error o haga clic en "Ir a la línea Ir a la línea" en el menú contextual. En las columnas correspondientes se muestra el número de la línea y la columna donde ha sido encontrado el error.

Las advertencias indicadas por un icono Aviso, indican los lugares de posibles errores. Es decir, el compilador se fija en aquellos lugares del código fuente que podrían ser interpretados de forma incorrecta (por ejemplo, el cambio implícito del tipo de un valor). Usted podrá pasar a esta línea en el código de la misma manera que sucede con los errores.

Con iconosInformaciónse marcan diferentes mensajes informativos. Por ejemplo, mensajes sobre los archivos de inclusión a los que llamaba el programa durante la compilación.

Modo de compilación #

Hay dos modos de compilación en el editor: con optimización máxima del código y sin optimización.

La falta de optimización reduce considerablemente el tiempo de creación de un ejecutable. Use este modo cuando se encuentre en una fase activa de desarrollo y necesite comprobar rápidamente el código escrito. Cuando compile el programa para su uso en el mundo real, cambie al modo de optimización máxima para obtener el mejor rendimiento.

Para pasar de un modo a otro, use el menú «Construir» o el menú de comandos de compilación de la barra de herramientas:

Gestionar el modo de compilación

El parámetro «Optimización máxima» en los ajustes del proyecto realiza la misma función.

  • Podrá encontrar una descripción más detallada de los errores de compilación en el manual de referencia del lenguaje MQL5.
  • Si hay advertencias, se crea el archivo ejecutable. Sin embargo, no es recomendable ignorarlas. Las advertencias indican posibles errores en el código.
  • En la compilación, el archivo ejecutable (*.EX4 o *.EX5) se crea en el mismo catálogo que el archivo fuente principal del programa (*.MQ4 o *.MQ5) o el proyecto.
  • El archivo ejecutable metaeditor.exe se puede usar como compilador externo en IDE de terceros.

Compilación para procesadores con diferentes arquitecturas #

Los procesadores modernos tienen un conjunto de instrucciones extendidas que aceleran significativamente los cálculos matemáticos: AVX, AVX2, AVX512, FMA3. Estas instrucciones son compatibles con el compilador MQL5, que permite generar código más eficiente y rápido. Sin embargo, su uso es opcional:

  • Si está creando un programa solo para usted y está seguro de que se ejecutará en un procesador que admita la arquitectura deseada, podrá compilarlo siguiendo instrucciones avanzadas. Esto aumentará su rendimiento.
  • Si está creando un programa para uso/venta pública, compílelo con las instrucciones básicas configuradas en el modo X64 Regular. Esto garantizará la máxima compatibilidad de la aplicación con el equipo del usuario.

Para saber qué instrucciones admite su procesador, utilice la utilidad gratuita CPU-Z. Después de efectuar la instalación, abra la sección "CPU" y marque el campo "Instructions":

Verifique qué instrucciones admite su procesador usando CPU-Z

Para seleccionar la arquitectura del procesador, utilice el menú de compilación. A continuación, clique en "Compilar". También podrá establecer la arquitectura en los ajustes del MetaEditor y en los ajustes de cada proyecto.

Seleccione la arquitectura del procesador para la que se compilará el programa.

Si la aplicación se ha compilado para una arquitectura que no es compatible con el procesador del usuario, cuando intente ejecutarla, se mostrará el siguiente mensaje en el registro de la plataforma:

your CPU architecture does not allow to run the file '<file-name>.ex5': AVX512 required, you have AVX2 only

Restricciones:

  • Los programas compilados para procesadores con AVX512 aún no son compatibles con MQL5 Cloud Network y el VPS integrado
  • Solo los archivos compilados para X64 Regular se podrán cargar en el Mercado. Esto es necesario para garantizar la máxima compatibilidad de las aplicaciones con el equipo del usuario.