Constantes predefinidas del lenguaje MQL5

En esta sección se describen todas las constantes definidas por el entorno de ejecución para cualquier programa. Ya hemos visto algunos de ellos en secciones anteriores. Algunas constantes están relacionadas con aspectos de programación MQL5 aplicados, que se presentarán en capítulos posteriores.

Constante

Descripción

Valor

CHARTS_MAX

El número máximo posible de gráficos abiertos simultáneamente

100

clrNONE

Sin color

-1 (0xFFFFFFFF)

EMPTY_VALUE

Valor vacío en el búfer del indicador

DBL_MAX

INVALID_HANDLE

Manejador no válido

-1

NULL

Cualquier tipo null

0

WHOLE_ARRAY

El número de elementos hasta el final del array, es decir, se procesará todo el array.

-1

WRONG_VALUE

Una constante se puede convertir implícitamente a cualquier tipo de enumeración

-1

Como se muestra en el capítulo Archivos, se puede utilizar la constante INVALID_HANDLE para validar los descriptores de archivo.

La constante WHOLE_ARRAY está pensada para funciones que trabajan con arrays que requieren especificar el número de elementos de los arrays procesados: Si es necesario procesar todos los valores del array desde la posición especificada hasta el final, especifique el valor WHOLE_ARRAY.

La constante EMPTY_VALUE suele asignarse a aquellos elementos en búferes indicadores, que no deben dibujarse en el gráfico. En otras palabras: esta constante significa un valor vacío. Más adelante describiremos cómo puede sustituirse para un búfer indicador específico por otro valor, por ejemplo, 0.

La constante WRONG_VALUE está pensada para aquellos casos en los que se requiere designar un valor de enumeración incorrecto.

Además, dos constantes tienen valores diferentes según el método de compilación.

Constante

Descripción

IS_DEBUG_MODE

Un atributo de ejecutar un programa mq5 en el modo de depuración: es distinto de cero en el modo de depuración y 0 en caso contrario.

IS_PROFILE_MODE

Un atributo de ejecutar un programa mq5 en el modo de perfilaje: es distinto de cero en el modo de perfilaje y 0 en caso contrario

La constante IS_PROFILE_MODE permite cambiar el funcionamiento del programa para la correcta recopilación de información en el modo de perfilaje. La creación de perfiles permite medir el tiempo de ejecución de fragmentos individuales del programa (funciones y líneas individuales).

El compilador establece el valor de la constante IS_PROFILE_MODE durante la compilación. Normalmente, se fija en 0. Cuando el programa se lanza en un modo de perfilaje, se realiza una compilación especial y, en este caso, se utiliza un valor distinto de cero en lugar de IS_PROFILE_MODE.

La constante IS_DEBUG_MODE funciona de forma similar: es igual a 0 como resultado de la compilación nativa y es mayor que 0 tras la compilación de depuración. Es útil en los casos en los que es necesario modificar ligeramente el funcionamiento del programa MQL con fines de verificación; por ejemplo, para enviar información adicional al registro o para crear objetos gráficos auxiliares en el gráfico.

El preprocesador define las constantes _DEBUG y _RELEASE que tienen un significado similar (véase Constantes predefinidas del preprocesador).

Se puede obtener información más detallada sobre el modo de funcionamiento del programa en tiempo de ejecución mediante la función MQLInfoInteger (véase Modos de funcionamiento del terminal y del programa). En concreto, la versión de depuración de un programa puede ejecutarse sin depurador.