En este artículo seguimos explicando los secretos del lenguaje de programación MQL4 con la continuación de la primera parte.

Funciones

La necesidad de conseguir un código simple nos lleva al término de función. Para poder utilizar la función en distintos lugares del programa, es necesario establecer parámetros a la función. Tendremos en cuenta el proceso de creación de función definida por el usuario.

Hablando de funciones, vamos a considerar dos aspectos: descripción o definición de la función y función de llamada.

Función descripción o definición es la parte del programa destinada a su ejecución.

Función de llamada (función de referencia) es un registro, es el acto que conduce a la ejecución de la función. El sentido general de una función es la adopción de una lógica que se completa fuera del texto base del programa, mientras que sólo se mantiene dentro del texto base del programa la parte del código que se ocupa de la llamada de esta. Este programa de construcción tiene algunas ventajas:

– Primera, el texto del programa está integrado de tal manera que se lee mucho más fácil.

– Segunda, se puede ver con facilidad y, si es necesario, modificar el texto de una función sin realizar ningún cambio en el código básico ó programa principal.

– Y tercera, una función puede estar compuesta como un solo archivo y usarse en otros programas, el cual liberará al programador de la necesidad de insertar el mismo fragmento de código en cada programa de nueva creación.

Podemos decir que la mayor parte del código de los programas que usan MQL4 está escrito en forma de funciones. Este enfoque se extendió y actualmente es un estándar.

Composición de una función: una función está compuesta de la descripción y la llamada.

La descripción de una función consta de dos partes básicas: cabecera de la función y cuerpo de la función.

La cabecera de una función está formada por: el tipo del valor de return, el nombre de función y la lista de parámetros formales.

La lista de parámetros formales están encerrados entre paréntesis y se colocan después del nombre de la función. El tipo del valor de return puede ser uno de los tipos que ya conocemos: int, double, bool, color, datetime, o string. Si la función no devuelve ningún valor, su tipo puede ser denominado void (“sin contenido, vacío”) como se denominaría cualquier otro tipo.

El cuerpo de una función se encierra entre llaves. El cuerpo de la función puede contener operadores simples y/o complejos, así como la llamada a otras funciones. El valor devuelto por la función se da en el paréntesis de operador return (). El tipo del valor devuelto es el utilizando el operador return () y debe coincidir con el tipo de la función especificada en la cabecera de la función. La descripción de la función se termina con el cierre de la llave.

La llamada a la Función se representa con el nombre de la función y la lista de parámetros transferidos. La lista de parámetros se transfieren entre paréntesis. La llamada a la función puede ser representada como un operador independiente o como parte de un operador.

Hay tres tipos de funciones: funciones especiales, funciones estándar (built-in o predefinidas), y funciones definidas por el usuario.

Funciones especiales: hay 3 funciones especiales en total que tienen nombres predefinidos: init (), start (), y deinit (). Y establecen el código básico de un programa mql4.

Funciones estandar: MQL4 tiene una serie de útiles funciones en las cuales, cuando se escribe la codificación del programa no es necesario hacer su descripción. Por ejemplo, el cálculo de raíces cuadradas, la impresión de mensajes en el sistema o en la pantalla. Todas estas y muchas otras funciones estándar se realizan de acuerdo con un algoritmo predefinido. El usuario no necesita saber el contenido de estas funciones. Las funciones estándar son desarrolladas debidamente por profesionales y de acuerdo al mejor algoritmo posible. La característica singular de las funciones estándar es que no están descritas en el texto del programa. Las funciones estándar son llamadas en el programa de la misma manera a como lo hace cualquier otra función (es una práctica común).Por ejemplo : MathSqrt () y Alert (). La primera está destinada al cálculo de raíces cuadradas, mientras que la segunda está diseñada para mostrar un determinado mensaje de texto, puesto entre paréntesis, en la pantalla.

Tipos de programa

Scripts, indicadores personales y EA son los tipos de programas de MQL4 que le permiten cubrir prácticamente toda la clase de problemas relacionados con el comercio en los mercados financieros. Es necesario comprender los efectos de cada tipo de programas con el fin de utilizar el Terminal de Usuario de MetaTrader 4 de la mejor manera.

El Asesor Experto (AE) es un programa codificado en MQL4 e invocado por el Terminal de Usuario para ser ejecutado en cada uno de los tick. El objetivo principal de los Asesores Expertos es programar el control sobre el trading. Los Asesores Expertos son codificados por los usuarios.

El Script es un programa codificado en MQL4 y ejecutado por el Terminal de Usuario una sola vez. Los scripts son destinados a realizar cualquier tipo de operaciones que permitan ser ejecutadas una sola vez. Los scripts son codificados por los usuarios. Ellos no vienen incorporados como lo está el Terminal de Usuario.

El Custom indicator es un programa codificado en MQL4 e invocado por el Terminal de Usuario para ser ejecutado, al igual que el AE, en todos los ticks. Esta básicamente destinado a la exhibición gráfica de funciones matemáticas calculadas preliminarmente como líneas.

Hay dos tipos de indicadores: indicadores técnicos (built-in) y los custom indicator, y estos últimos son como los indicadores técnicos pero creados por el propio usuario. Los indicadores son considerados en más detalles en las secciones del uso de los indicadores técnicos y la creación personalizada de los indicadores. Se diferencian por los siguientes aspectos:

1.-Trading:

Uno de los principales criterios que marcan los programas anteriores es la posibilidad de ejecutar instrucciones de trading. Una instrucción de trading es una orden que pasa a un programa servidor de intercambios con el fin de abrir, cerrar o modificar órdenes.

Las instrucciones de Trading se forman en los programas utilizando funciones incorporadas que llamamos “funciones de trading”.

Sólo los Asesores Expertos y los scripts tienen la posibilidad de utilizar las funciones de trading (sólo si la opción correspondiente está activada en la configuración del AE/script). En los customs indicator (indicadores personales) no está permitido el empleo de funciones comerciales (funciones de trading).

2.- Uso simultáneo:

Los programas también difieren entre sí por la cantidad de programas de diferentes tipos que al mismo tiempo se asocian a una ventana de símbolo o instrumento. Asesor Experto: solo se puede asociar un AE en una ventana de símbolo; no está permitido el uso simultáneo de varios Asesores Expertos.

Script: no está permitido el uso simultáneo de varios script. Indicador personal: se pueden asociar al mismo tiempo varios indicadores en una ventana de símbolo, pero de manera que no interfieran entre sí.

3.- Llamando a programas para su ejecución:

Cualquier tipo de programa se ejecuta solo a voluntad del usuario. En MQL4, no se puede llamar a un Asesor Experto, un script, o un indicador mediante una ejecución programática, es decir, desde una llamada desde otro programa. La única excepción es la llamada incorporada en función iCustom () que permite hacer referencia a un indicador personal, y la llamada a las funciones de indicadores técnicos estándar.