Propiedades de programas (#property)

Para cada programa mql5 se puede indicar unos parámetros específicos adicionales #property, los que ayudan al terminal de cliente prestar un servicio correcto a los programas sin necesidad de iniciarlos explícitamente. En primer lugar, esto se refiere a los ajustes de los indicadores externos. Las propiedades descritas en los archivos incluidos se ignoran por completo. Las propiedades tienen que ser especificadas en el archivo-mql5 principal.

#property identificador valor

El compilador apuntará los valores renovados en los ajustes del módulo ejecutado.
 

Constante

Tipo

Descripción

icon

string

ruta del archivo con la imagen que va a mostrarse como el icono del programa EX5. Las reglas para especificar la ruta son las mismas que para los recursos. La propiedad tiene que especificarse en el módulo principal con el código fuente MQL5. El archivo del icono debe ser del formato ICO.

link

string

Referencia a la web de la empresa productora

copyright

string

Nombre de la empresa productora

version

string

Versión del programa, no más de 31 caracteres

description

string

Breve descripción textual del programa mql5. Puede haber algunas description, cada una de las cuales describe una línea de texto. La longitud total de todas las description no puede superar más de 511 caracteres incluyendo saltos de líneas

stacksize

int

Indica el tamaño de la pila para el programa MQL5. La pila de un volumen grande es necesaria cuando se ejecutan las llamadas recursivas a la función.

Cuando en el gráfico se inicia un script o un EA, se asigna la pila como mínimo de 8 Mb. Para En caso de los indicadores, la pila siempre tiene el tamaño fijo de 1 Mb.

Cuando el programa se inicia en el Probador de Estrategias, se le asigna la pila de 16 Mb.

library

 

Biblioteca; no asigna ninguna función de inicio; funciones con modificador export se puede importar en otros programas mql5

indicator_applied_price

int

Especifica el valor por defecto para el campo "Apply to". Se puede especificar uno de los valores de enumeración ENUM_APPLIED_PRICE. Si la propiedad no está especificada, entonces por defecto se aplica el valor PRICE_CLOSE

indicator_chart_window

 

Mostrar el indicador en la ventana del gráfico

indicator_separate_window

 

Mostrar el indicador en la ventana separada

indicator_height

int

El alto fijo de la subventana del indicador en píxeles (propiedad INDICATOR_HEIGHT)

indicator_buffers

int

Cantidad de búferes para el cálculo del indicador

indicator_plots

int

Cantidad de series gráficas en el indicador

indicator_minimum

double

Margen inferior de escala de la ventana separada del indicador

indicator_maximum

double

Margen superior de escala de la ventana separada del indicador

indicator_labelN

string

Pone una marca para la enésima serie gráfica mostrada en la ventana DataWindow. Para las series gráficas que necesitan varios búferes de indicador (DRAW_CANDLES, DRAW_FILLING y los demás), los nombres de las marcas vienen con separador ';'.

indicator_colorN

color

Color para mostrar la línea N, donde la N es el número de la serie gráfica; la enumeración se empieza desde 1

indicator_widthN

int

Grosor de línea en la serie gráfica, donde la N es el número de la serie gráfica; la enumeración se empieza desde 1

indicator_styleN

int

Estilo de línea la serie gráfica especificado con el valor de ENUM_LINE_STYLE. La N es el número de la serie gráfica, la enumeración se empieza desde 1

indicator_typeN

int

Tipo de construcción gráfica especificado con el valor de ENUM_DRAW_TYPE. La N es el número de la serie gráfica, la enumeración se empieza desde 1

indicator_levelN

double

Nivel horizontal N en la ventana separada del indicador

indicator_levelcolor

color

Color de niveles horizontales del indicador

indicator_levelwidth

int

Grosor de niveles horizontales del indicador

indicator_levelstyle

int

Estilo de niveles horizontales del indicador

script_show_confirm

 

Mostrar ventana de confirmación antes de iniciar un script

script_show_inputs

 

Mostrar ventana con las propiedades antes de iniciar un script y prohibir la muestra de la ventana de confirmación

tester_indicator

string

Nombre del indicador personalizado en el formato "nombre_de_indicador.ex5". Los indicadores que requieren verificaciones se definen automáticamente desde la llamada a la función iCustom(), si el parámetro correspondiente es fijado por una cadena constante. Para los demás casos (uso de la función IndicatorCreate() o uso de una cadena no constante en el parámetro que asigna el nombre del indicador) se necesita esta propiedad

tester_file

string

Nombre del archivo incluyendo su extensión, que se pasa al comprobador para que éste lo procese, tiene que ir encerrado entre comillas dobles (como una cadena constante). Siempre hay que especificar los archivos de entrada, en caso de que sean necesarios

tester_library

string

Nombre de la biblioteca con su extensión encerrado entre comillas dobles. Una biblioteca puede tener tanto la extensión dll como la ex5. Las bibliotecas que necesitan verificación se determinan automáticamente. Sin embargo, si una de las bibliotecas se usa por un indicador personalizado, hace falta usar esta propiedad

tester_set

string

Nombre del archivo set con los valores y el salto de los parámetros de entrada. El archivo especificado se transmitirá al simulador antes de la prueba o la optimización. El nombre del archivo se debe indicar con la extensión correspondiente y comillas dobles, como una línea de constante.

 

Si en el nombre del archivo set indicamos el nombre del experto y el número de la versión "<expert_name>_<number>.set", el archivo se añadirá automáticamente al menú de carga de las versiones de los parámetros con el número de versión <number>. Por ejemplo, el nombre "MACD Sample_4.set" indica un archivo set para el experto "MACD Sample.mq5" cuyo número de versión es 4.

 

Para analizar el formato, recomendamos guardar manualmente los ajustes de simulación/optimización en el simulador de estrategias y después abrir el archivo set creado de esa forma.

tester_no_cache

string

El simulador de estrategias, al realizar la optimización, guarda todos los resultados de las pasadas ejecutadas en la caché de optimización. En esta se guarda el resultado de la simulación para cada conjunto de parámetros de entrada. Esto permite tomar los resultados preparados al realizar de nuevo una optimización con los mismos parámetros, sin que haya necesidad de realizar nuevos cálculos ni perder tiempo.

 

Pero, para algunas tareas — por ejemplo, con los cálculos matemáticos — podría ser necesario realizar los cálculos independientemente de que haya resultados preparados en la caché de optimización. En este caso, deberemos incluir en el archivo la propiedad tester_no_cache. En este caso, además, los resultados de la simulación se guardarán de todas formas en la caché, para que sea posible consultar en el simulador de estrategias todos los datos de las pasadas ejecutadas.

tester_everytick_calculate

string

En el simulador de estrategias, los indicadores se calculan solo al recurrir a los mismos, es decir, solo en el momento cuando se solicitan los valores de los búferes de indicador. Esto proporciona un aumento de velocidad considerable al realizar la simulación y la optimización, si no es necesario obtener los valores del indicador en cada tick.

 

Durante la simulación, la indicación de la propiedad tester_everytick_calculate permite activar forzosamente el modo de cálculo del indicador en cada tick.

 

Los indicadores en el simulador de estrategias también se calculan forzosamente en cada tick en los siguientes casos:

 

Esta propiedad se refiere solo al trabajo en el simulador de estrategias, en el terminal, los indicadores siempre se calculan en cada tick entrante.

optimization_chart_mode

string

Indica el tipo del gráfico y los nombres de los dos parámetros de entrada que se utilizarán para visualizar los resultados de la optimización. Por ejemplo, "3d, InpX, InpY" indica que se mostrará un gráfico 3D con ejes de coordenadas basados en los valores de los parámetros iterados InpX y InpY.  De esta forma, con la ayuda de esta propiedad, será posible indicar directamente en el código los parámetros que se usarán para mostrar el gráfico de optimización y el tipo del propio gráfico.

Posibles variantes:

  • "3d, input_parameter_name1, input_parameter_name2" — gráfico 3D de visualización con volumen; se puede rotar, acercar y alejar. Se construye según dos parámetros de entrada.
  • "2d, input_parameter_name1, input_parameter_name2" — gráfico plano en forma de cuadrícula; cada celda está coloreada en función del resultado. Se construye según dos parámetros de entrada.
  • "1d, input_parameter_name1, input_parameter_name2" — gráfico lineal en el que los resultados se clasifican según el parámetro indicado. Cada pasada se representa en forma de punto, y se construye según un parámetro de entrada.
  • "0d, input_parameter_name1, input_parameter_name2" — gráfico normal con resultados; estos se clasifican siguiendo el orden de llegada de los resultados de la pasada. Cada pasada se representa en forma de punto. No necesita que se indiquen parámetros, pero los parámetros establecidos se usarán al cambiar manualmente a otro tipo de gráfico.

Es posible indicar el tipo del gráfico y no indicar uno o dos parámetros de entrada; en ese caso, el terminal elegirá por sí mismo los parámetros de entrada para mostrar el gráfico de optimización.

Ejemplo de descripción y número de una versión

#property version     "3.70"      // versión actual de Asesor Experto
#property description "ZigZag universal con patrones de Pesavento"
#property description "Actualmente en el indicador están integrados varios ZigZag con diferentes algoritmos"
#property description "Existe posibilidad de integrar una cantidad importante de otros indicadores que los máximos "
#property description "mínimos, y construir automáticamente a base de éstos diferentes herramientas gráficas"

Ejemplo de mostrar la descripción y versión al iniciar un programa

 

Ejemplo de especificar una marca separada para cada búfer de indicadores ("C open;C high;C low;C close")

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   1
#property indicator_type1   DRAW_CANDLES
#property indicator_width1  3
#property indicator_label1  "C open;C high;C low;C close"

Ejemplo de mostrar la etiqueta para cada búfer de indicadores