Variables de entrada
Cuando se inician, todos los programas en MQL5 pueden solicitar parámetros al usuario. La única excepción son las bibliotecas que no se ejecutan de forma independiente, sino como partes de otro programa (véase la sección correspondiente para saber más sobre Bibliotecas).
Los parámetros de entrada de los programas MQL son variables globales descritas en el código que tienen un modificador especial de input o sinput. Están disponibles en el cuadro de diálogo de propiedades del programa para que el usuario introduzca valores. Vimos una descripción de la variable de entrada GreetingHour en los scripts de la Parte 1.
Una característica especial de las variables de entrada es el hecho de que su valor no puede modificarse en el código del programa, es decir, se comporta como una constante.
Las variables de entrada sólo pueden ser de enumeraciones o tipos integrados simples. En el caso de las enumeraciones, los valores se introducen mediante una lista desplegable, mientras que en todos los demás casos se utilizan campos de entrada. No está permitido describir como input: Arrays, estructuras o uniones ni clases.
El desarrollador puede establecer el nombre del parámetro de entrada distinto del identificador de la variable. Este nombre se le mostrará al usuario en el cuadro de diálogo de propiedades del programa. Debe añadirse una descripción detallada como comentario en la definición del parámetro de entrada.
input int HourStart = 0; // Start of trading (hour, including):
|
Esto permite hacer que la interfaz sea más fácil de usar, detallada y libre de las restricciones sintácticas que impone MQL5 a los identificadores. Además, los nombres (así como los comentarios) pueden estar en su lengua materna.
Por ejemplo, MetaTrader 5 viene con el código fuente del indicador MQL5/Indicators/Examples/Custom Moving Average.mq5 con las variables de entrada:
input int InpMAPeriod = 13; // Period
|
Esta descripción genera el cuadro de diálogo de propiedades que se muestra a continuación.
Ejemplo de cuadro de diálogo de las propiedades del programa MQL
La longitud máxima de la representación textual de una variable de entrada como par identificador=valor, incluido el carácter "=", no puede superar los 255 caracteres (esta restricción viene impuesta por los protocolos internos de intercambio de datos del terminal y los agentes de pruebas). Este límite es especialmente importante para las variables de cadena, ya que los valores de otros tipos nunca lo superan. Como sabemos, la longitud de un identificador está limitada a 63 caracteres; por lo tanto, en función de la longitud del identificador, quedan entre 191 y 253 caracteres para el valor de la variable de la cadena de entrada. Todo el texto que supere el umbral combinado de 255 caracteres puede recortarse cuando se transfiere al probador. Si una cadena más larga tiene que ser introducida en su programa MQL, use múltiples campos de entrada (para continuar) o permita que el usuario especifique el nombre del archivo desde el que debe leerse el texto.
Para mayor comodidad en el funcionamiento de los programas MQL, las entradas se pueden combinar en bloques con nombre utilizando la palabra clave group (no es necesario el punto y coma al final de la cadena de grupo).
input group "group_name"
|
Todas las variables con modificador input que siguen a la descripción del grupo (hasta la descripción de otro grupo o hasta el final del archivo) se muestran visualmente como una lista anidada bajo la cabecera del grupo en el cuadro de diálogo de propiedades del programa MQL. Además, se pueden desplegar o colapsar grupos de parámetros con un clic del ratón en el probador de estrategias aplicable tanto a indicadores como a Asesores Expertos (EA).
La palabra clave sinput es la abreviatura de static input, siendo ambas formas equivalentes.
Las variables descritas con los modificadores sinput y static input no pueden participar en la optimización. Sólo tiene sentido utilizarlas en Asesores Expertos siendo el único tipo de programa MQL que admite optimización. Para obtener más detalles, consulte la sección dedicada a Probar y optimizar Asesores Expertos.