Propiedades generales del programa (#property)

Mediante la directiva #property, un programador puede establecer algunas propiedades de un programa MQL. Algunas de estas propiedades son generales, es decir, aplicables a cualquier programa, y vamos a verlas aquí. Las propiedades restantes son típicas para tipos específicos de programas MQL5 y se discutirán en las secciones pertinentes de la Parte 5 cuando se describa la API de MQL5.

La directiva #property tiene el siguiente formato:

#property key value

La clave es una de las propiedades enumeradas en la siguiente tabla, en la primera columna. En la segunda columna se especifica cómo se interpretará el valor.

Propiedad

Valor

copyright

Cadena con información sobre el titular de los derechos de autor

link

Cadena con un enlace al sitio del desarrollador

version

Cadena con el número de versión del programa (para MQL5 Market, debe estar en formato «X.Y», donde X e Y son números enteros correspondientes a los números de compilación mayor y menor).

description

Línea con la descripción del programa (se permiten varias directivas #description y sus contenidos se combinan)

icon

Cadena, ruta al archivo con el logotipo del programa en formato ICO

stacksize

Entero que especifica el tamaño de la pila en bytes (el valor por defecto es de 4 a 16 MB, dependiendo del tipo de programa y entorno, 1 MB = 1024*1024 bytes); si es necesario, el tamaño aumenta hasta 64 MB (máximo).

Todas las propiedades de cadena mencionadas anteriormente son la fuente de información del cuadro de diálogo de propiedades del programa, que se abre al iniciarse. Sin embargo, para los scripts, este cuadro de diálogo no se muestra de manera predeterminada. Para cambiar este comportamiento debe especificar adicionalmente la directiva #property script_show_inputs. Además, la información sobre los derechos se muestra en una descripción emergente al pasar el cursor del ratón por encima del programa en el Navegador de MetaTrader 5.

Las propiedades copyright, link y version se han visto ya en todos los ejemplos anteriores de este libro.

El tamaño de pila stacksize es una recomendación: si el compilador encuentra variables locales (normalmente arrays) en el código fuente que superan el valor especificado, la pila se incrementará automáticamente durante la compilación, pero hasta un máximo de 64 MB. Si se supera el límite, el programa ni siquiera podrá iniciarse: en el registro (pestaña Log, y no Experts) aparecerá el error «Se ha superado el tamaño de pila de 64MB. Reduzca la memoria ocupada por variables locales».

Tenga en cuenta que estos análisis y prevenciones sólo tienen en cuenta una instantánea fija del programa en el momento del lanzamiento. En el caso de las llamadas a funciones recursivas, el consumo de memoria de la pila puede aumentar considerablemente y provocar un error de desbordamiento de pila, pero ya en la fase de ejecución del programa. Para obtener más información sobre la pila, véase la nota en Descripción de arrays.

Las directivas #property sólo funcionan en el archivo mq5 compilado, y se ignoran en todos los incluidos con #include.