Curso Forex MetaTrader4: Funciones integradas en MQL. ¿Para qué sirven?

En el artículo anterior nos hemos centrado en el tema de las funciones, prestando una atención especial al problema de la transformación de un fragmento del código en una función. En esta parte del curso, vamos a explicar paso a paso tres funciones integradas del lenguaje MQL.
MQL 4 predefine tres funciones especiales que poseen los identificadores: init(), start() y deinit(). La función init() facilita el valor de tipo simple y puede ser definida con una lista de parámetros. Inmediatamente después de iniciar el programa (añadiéndolo al diagrama y activando la estrategia), el programa empieza el funcionamiento por la función predefinida init() - si su cuerpo ha sido definido. Este fragmento desempeña el papel del constructor, en el cual de determinan, por ejemplo, los valores de las variables más importantes (determinación de rutas en el disco, el tipo de diagrama, en el cual se realiza el trading). La función init() es activada sólo una vez: después del inicio del programa.
En cambio, mientras que nuevos datos del mercado van llegando, se activa la función start(). Es la función más importante de toda la estrategia – contiene todas las funciones adicionales relacionadas con los cálculos y con los movimientos del precio en el diagrama. En la función start() se pueden encontrar, por ejemplo, fragmentos del código responsables de la búsqueda de velas en el diagrama, de intersecciones de promedios, así como de informar sobre el nivel de sobreventa del instrumento. La función start() es ejecutada para cada nueva lectura (no para cada nueva vela). Esto significa que en el caso de sistemas especialmente complejos, ciertas lecturas pueden no ser analizadas. En el caso de que la función esté analizando cotizaciones anteriores, una cotización nueva será omitida por el programa (la función será activada otra vez en el momento de terminar el análisis anterior). Esto le impone ciertas limitaciones al usuario – la función debe ser relativamente simple y todo el código debe ser óptimo (sin repeticiones redundantes ni activaciones innecesarias y adicionales).
Cada programa adjuntado al diagrama termina el funcionamiento a través de la activación de la función predefinida deinit() (si ésta ha sido determinada).
Esta función es activada automáticamente antes del cierre del script, del programa relacionado con el diagrama, del propio diagrama, de la desconexión del terminal, antes del cambio de la ventana temporal, del cambio de parámetros y del cambio de cuenta. Las funciones init() y deinit() son opcionales aquí, pero vale la pena añadir por lo menos una información corta sobre el funcionamiento del programa.
Para leer la parte siguiente, pulse aquí.