Asesores Expertos: GlobalVariable

 

GlobalVariable:

Este asesor muestra un ejemplo del trabajo con una variable global. La tarea del asesor es guardar el resultado de los cálculos en la variable global, y al realizarse una nueva inicialización, obtener el valor del variable global.

Autor: Karputov Vladimir

 
Automated-Trading:

GlobalVariable:

Autor: Karputov Vladimir

Tengo una variable global, guardo la variable global, ¿y qué? Lo siento, querido, pero no entiendo nada. ¿Para qué necesitas estas variables?
 
spbkit:
obtener una variable global, guardar la variable global, ¿y qué? Lo siento, querida, pero no entiendo nada. ¿Por qué necesitas estas variables?

Pido disculpas. Este ejemplo fue creado en respuesta a una petición de uno de los miembros del foro: necesitábamos un ejemplo de trabajo con variables globales del terminal. Las variables globales del terminal guardan sus valores después de recargar el terminal y este ejemplo muestra cómo leer y escribir una variable global.

 

¡Gracias, código útil! Pero no funcionó para MT4... ¿Puede usted por favor aconsejarme cómo adaptar mejor este código de ejemplo para MT4?

 
Aleksandr Glebov:

¡Gracias, código útil! Pero no funcionó para MT4... ¿Te importaría dar consejos sobre cómo adaptar mejor este código de ejemplo para MT4?

Basta con cambiar la extensión del archivo de *.mq5 a *.mq4.
 
No es un ejemplo claro... Nunca tuve la oportunidad de aplicarlo.... ¿Y cómo guardar dos variables (dos niveles de precios) no está claro...?
 
Aleksandr Glebov:
No es un ejemplo claro... Nunca tuve la oportunidad de aplicarlo.... ¿Y cómo guardar dos variables (dos niveles de precios) no está claro...?

Muéstrame lo que no funcionó, por favor.

Aleksandr Glebov:
Ejemplo no claro... Nunca he conseguido aplicarlo.... ¿Y cómo guardar dos variables (dos niveles de precios) no está claro...?

¿Y en qué lugar del programa quieres guardar los valores: en OnInit(), en OnTick() o en OnDeinit?

 
Karputov Vladimir:

Muéstrame lo que no funcionó, por favor.

¿Y en qué lugar del programa quieres guardar los valores: en OnInit(), en OnTick() o en OnDeinit?

Yo guardo los valores en OnTick() , e intenté obtenerlos con OnInit(), pero no funcionó. Sólo funcionó de esta manera: Guardé en OnTick() - GlobalVariableSet("OER", OER ); y aquí, en OnTick(), la primera condición - si las órdenes son más de 0, entonces OER = GlobalVariableGet("OER"). La variable OER, ahora, en la recarga, no se pone a cero. Pero en cuanto se abren los pedidos en el proceso de trabajo normal, la variable requerida toma las condiciones de la variable global pasada..... ¿Es necesario intentar obtener los valores desde OnInit()...?
 
Aleksandr Glebov:
Guardé los valores en OnTick(), e intenté obtenerlos con OnInit(), pero no funcionó. Sólo funcionó de esta manera: Guardé en OnTick() - GlobalVariableSet("OER", OER ); y aquí, en OnTick(), la primera condición - si las órdenes son más de 0, entonces OER = GlobalVariableGet("OER"). Ahora la variable OER no se reinicia al recargar. ¿Cree que esta es la forma correcta de escribir el código?
¿Para qué sirve guardar los precios en variables globales? ¿Qué se quiere implementar? ¿Cuál es el algoritmo de acción?
 
Karputov Vladimir:
¿Para qué sirve guardar los precios en variables globales? ¿Qué se quiere implementar? ¿Cuál es el algoritmo de acción?
Al recargar se resetean dos variables y por eso al cargar el búho no funciona correctamente.... Necesito aprender a guardar estas variables para tal caso (si hay pedidos al cargar, usar datos de glob.).
 
Aleksandr Glebov:
Al recargar, dos variables se ponen a cero y debido a esto el EA no funciona correctamente al cargar. Necesito aprender como guardar estas variables para tal caso (si hay ordenes al cargar, usar datos de glob.).

En OnDeinit() escriba su condición - si necesita o no sobrescribir sus variables globales.

En general, vuelvo a preguntar: "¿Cuál es el algoritmo de acción?". Por el momento es un heap-mala. Entienda que a menos que entienda lo que necesita, no será capaz de implementarlo. Dibuja un diagrama de flujo - te ayudará.