Curso Forex MetaTrader4: Estructuras de datos en MQL. ¿Cómo funcionan las tablas unidimensionales?

En la parte anterior de nuestro curso nos hemos centrado en la depuración del código. Esta vez, pasamos al tema de la estructura de los datos, prestando una atención especial a las tablas unidimensionales.
Cada tabla definida en el programa posee un tipo. Es posible crear tablas de cualquier tipo básico (por ejemplo, integer, double o bool). La mayoría de los datos es presentada en el diagrama en forma de una tabla unidimensional tipo double, en la cual cada elemento corresponde a una lectura.
Los elementos de cada tabla en el programa son numerados desde cero. Por ejemplo, una tabla de 10 elementos es indexada con números de 0 – el primer elemento de la tabla, a 9 – el último elemento de la tabla.
Por supuesto, es posible guardar todos los valores importantes en variables individuales, sin embargo, por ejemplo, para una vela japonesa típica se necesitan hasta 4 valores: apertura, cierre, mínimo y máximo. Cada vela siguiente son nuevos valores. En MQL 4 hay 4 tablas unidimensionales disponibles de valores double, que contienen los valores de velas siguientes:
Las variables predeterminadas presentadas más arriba facilitan, obviamente, todos los análisis de datos posibles.
Para utilizar las tablas eficazmente es necesario también el conocimiento de un par de simples funciones. Una de las más importantes es ArraySize(...), que toma como parámetro la tabla elegida, mientras que facilita el número de sus elementos. Hay que tener en cuenta que muy a menudo el número exacto de elementos de una tabla no es conocido. Es posible, sin embargo, activar la función cuyo parámetro es la tabla elegida y el valor facilitado es precisamente el número de sus elementos. La conexión de ArraySize(...) con el bucle FOR permite revisar la estructura elegida en sólo un par de pasos.
Gracias a ArraySize(...) se puede verificar de una manera simple si la tabla contiene un número par de elementos.
Otra función útil es ArrayMinimum(...), que facilita el elemento mínimo en la tabla transmitida como parámetro. Es posible escribir una versión propia de la función descrita, que facilite el mínimo de la tabla de un intervalo indicado como parámetro.
Otra función interesante es ArrayInitialize(...), que determina valores de la tabla según un parámetro dado. No obstante, se puede preparar una versión propia de la función, que rellene la tabla con valores aleatorios del intervalo dado.
La parte siguiente del curso se encuentra aquí.