Obtener una lista de variables globales
Muy a menudo, se necesita que un programa MQL mire en las variables globales existentes y seleccione aquellas que cumplan determinados criterios. Por ejemplo, si un programa utiliza parte del nombre de una variable para almacenar información textual, lo único que se conoce de antemano es el prefijo. El propósito de este prefijo es identificar «su propia» variable, y la «carga útil» adjunta al prefijo no permite buscar una variable por el nombre exacto.
La API de MQL5 tiene dos funciones que le permiten enumerar las variables globales.
int GlobalVariablesTotal()
La función devuelve el número total de variables globales.
string GlobalVariableName(int index)
La función devuelve el nombre de la variable global por su número de índice en la lista de variables globales. El parámetro index con el número de la variable solicitada debe estar en el rango de 0 a GlobalVariablesTotal() - 1.
En caso de error, la función devolverá NULL, y el código de error puede obtenerse a partir de la variable de servicio _LastError o de la función GetLastError.
Probemos este par de funciones con el script GlobalsList.mq5.
void OnStart()
|
La primera cadena pide deliberadamente el nombre de una variable con un número grande, que, muy probablemente, no existe, y ese hecho debería provocar un error. A continuación, se solicita el número real de variables y se realiza un bucle a través de todas ellas, con la salida del nombre y el valor. El registro siguiente incluye variables creadas por scripts de prueba anteriores y una variable de terceros.
GlobalVariableName(1000000)= / GLOBALVARIABLE_NOT_FOUND(4501)
|
El orden en que el terminal devuelve las variables por un índice no está definido.