Comprobar la existencia y la hora de la última actividad
Como vimos en la sección anterior, se puede comprobar la existencia de una variable global intentando leer su valor: si ello no da lugar a un código de error en _LastError, entonces la variable global existe, y ya hemos obtenido su valor y podemos utilizarlo en el algoritmo. Sin embargo, si en algunas condiciones sólo necesita comprobar la existencia, pero no leer la variable global, es más conveniente utilizar otra función específicamente diseñada para ello: GlobalVariableCheck.
Existe otra forma de comprobarlo, a saber: con la función GlobalVariableTime. Como su nombre indica, esta función permite averiguar la última vez que se utilizó una variable, pero si la variable no existe, entonces el tiempo de su uso está ausente, es decir, es igual a 0.
bool GlobalVariableCheck(const string name)
La función comprueba la existencia de una variable global con el nombre especificado y devuelve el resultado true (la variable existe) o false (sin variable).
datetime GlobalVariableTime(const string name)
La función devuelve la hora en que se utilizó por última vez la variable global con el nombre especificado. El hecho de la utilización puede representarse mediante la modificación o la lectura del valor de la variable.
Comprobar la existencia de la variable con GlobalVariableCheck u obtener su tiempo a través de GlobalVariableTime no cambian el tiempo de uso.
En el script GlobalsRunCheck.mq5 completaremos ligeramente el código de GlobalsRunCount.mq5 para que al principio de la función OnStart compruebe la presencia de una variable y el momento de su utilización.
void OnStart()
|
El código siguiente no se modifica. Mientras tanto, tenga en cuenta que la variable gv definida a través de __FILE__ contendrá esta vez el nuevo nombre de script «GlobalsRunCheck.mq5» como nombre de la variable global (es decir, cada script tiene su propio contador global).
Todas las ejecuciones excepto la primera mostrarán true de la función GlobalVariableCheck (la variable existe) y el tiempo de la variable de la ejecución anterior. He aquí un registro de ejemplo:
GlobalVariableCheck(gv)=false / ok
|