Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1030

 
abeiks:

Hola.

Actualmente estoy tratando de entender las variables globales. Ahora hay un problema y no puedo resolverlo. Si elimino una variable global del indicador, el Asesor Experto sigue obteniendo esa variable. ¿Cómo se resuelve este problema?

¿cómo se borra?

 
valenok2003:

¿Pueden decirme cuál es el error en esta línea? antes compilaba sin mensajes de error, ahora - '{' - expresión esperada

Gracias de antemano

Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0};


Cuenta las comas.
 
AlexeyVik:

Cuenta las comas.
Las comas son correctas, es la notación de que no importa cuántos elementos contenga el array, todos se llenarán de ceros.
 
abeiks:

Hola.

Actualmente estoy tratando de entender las variables globales. Ahora hay un problema y no puedo resolverlo. Si elimino una variable global del indicador, el Asesor Experto sigue obteniendo esa variable. ¿Cómo puedo resolver este problema?

Pulse F3 en el terminal y borre manualmente esta variable. Se crea una vez y se encuentra en el entorno - el Asesor Experto lo lee desde allí. ¿O tal vez no le he entendido bien? ¿Acabas de eliminar la creación de una variable global del terminal en el propio código del indicador, pero ya estaba creada por este indicador?
 
artmedia70:
Pulse F3 en el terminal y borre manualmente esta variable. Se crea una vez, y está en el entorno - de ahí lo lee el EA.
Gracias. No lo sabía.
¿Cómo puedo comprobar y eliminar esto en el propio Asesor Experto? Por ejemplo, si cierro el indicador por error, el EA siempre obtendrá esa última variable y si hay una señal para abrir posiciones...
 
valenok2003:

a ¿cómo se borra?


Lo hice, pero no está bien:

 if (!GlobalVariableCheck("Test_1"))
GlobalVariableDel("Test_1"); 
 
valenok2003:
Las comas son correctas, es la notación de que no importa cuántos elementos contenga un array, todos se llenarán de ceros.
Bueno, no sé, tal vez en C++, que nunca estudié, pero mql es sólo como C. Y en segundo lugar, no puedes establecer la dimensión del array como una variable, aunque en tu ejemplo MAX_NUM_ORDER puede no ser una variable...
 
valenok2003:

¿Pueden decirme cuál es el error en esta línea? antes compilaba sin mensajes de error, ahora - '{' - expresión esperada

Gracias de antemano

Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0};

Se selecciona una fila y una columna de la matriz, respectivamente, podemos escribir un valor particular allí, es decir, la entrada debe ser la misma que para una variable ordinaria, pero para restablecer todos los valores

ArrayInitialize(Arr_Tickets, 0);

 
abeiks:

Lo hice, pero no está bien:

if (!GlobalVariableCheck("Test_1"))
GlobalVariableDel("Test_1"); 

¿Qué dice?

Si no hay una variable global llamada Test_1, elimínela...

 
abeiks:
Gracias. No lo sabía.
¿Y cómo hacer esa comprobación y eliminarla en el propio Asesor Experto? Por ejemplo, si accidentalmente cierro el indicador, el Asesor Experto recibirá esta última variable todo el tiempo y si hay una señal para abrir posiciones allí...
Si el borrado involuntario del indicador debe eliminar las variables globales creadas por este indicador, el borrado de estas variables globales debe prescribirse en la función OnDeinit() del indicador.
Al mismo tiempo, debe comprobar que no se trata de un cambio de marco temporal, sino de la eliminación del indicador del gráfico.