Variables globales frente a FileWrite - página 2

 
toast:

Gracias por la respuesta.

Sí, estoy de acuerdo.

Pero el problema será el siguiente:

Se abre una operación con el número mágico 123.

Al gestionar esta operación, el EA buscará el GV con el nombre 123xxxxxx

Ahora el usuario cambia la configuración del EA para el número mágico a 789 mientras la operación sigue activa.

Así que ahora el EA está buscando GV con el nombre 789xxxxx (que no existe).

Esencialmente, estoy buscando una convención de nombres de GV que no pueda ser modificada por el usuario.


No ocultes el número mágico.

La forma más sencilla es decirle a los usuarios cuál es el número mágico, ellos sabrán cómo manejarlo.

 
angevoyageur:
No permita cambiar el número mágico si todavía hay operaciones abiertas con la magia anterior.


Por ejemplo, cuando no hay órdenes abiertas, el cambio tendrá efecto. Si todavía hay operaciones abiertas, el usuario todavía puede cambiar pero no tendrá efecto.


Esta lógica se puede hacer bastante fácil en realidad.

 

Gracias por la respuesta.

Supongo que es posible, pero es un poco complicado. La única forma que se me ocurre es hacer un bucle con las órdenes y comprobar que no hay órdenes abiertas. Si ese es el caso, entonces aplicar la entrada int MagicNumber a int NewMagic

¿O hay una manera más fácil?

El ChartID() parece mucho más fácil, ¿hay algún problema en usarlo?

 

Creo que estaba publicando al mismo tiempo que algunos otros...

@fxMeter - si quieren usar el EA en múltiples gráficos, entonces necesito alguna manera de seguir cambiando el número mágico sin encontrarse con duplicados. Que luego nos lleva a la derecha alrededor de GVs de nuevo.

@deysmacro - Creo que estábamos pensando en la misma solución

Pero de nuevo - todo esto parece un montón de trabajo si ChartID() se puede utilizar?

 
toast:

Creo que estaba publicando al mismo tiempo que algunos otros...

@fxMeter - si quieren usar el EA en múltiples gráficos, entonces necesito alguna manera de seguir cambiando el número mágico sin encontrarse con duplicados. Que luego nos lleva a la derecha alrededor de GVs de nuevo.

@deysmacro - Creo que estábamos pensando en la misma solución

Pero de nuevo - todo esto parece un montón de trabajo si ChartID() se puede utilizar?


Mucho trabajo al principio. Luego poco trabajo una vez implementado.

La codificación siempre es así :)

 
Estoy de acuerdo en que se puede hacer, pero de nuevo me pregunto por qué la gente está en contra de usar ChartID()? ¿Hay algo malo en ello?
 
toast:
Estoy de acuerdo en que se puede hacer, pero de nuevo me pregunto por qué la gente está en contra de usar ChartID()? ¿Hay algo malo en ello?

https://forum.mql4.com/62102
 

Gracias por el enlace, pero no creo que ese problema se aplique a mí - no estoy buscando comunicar el ChartID a ninguna otra instancia del EA.

Sólo quiero saber si ChartID() es un identificador fiable y único del gráfico actual para utilizarlo como nombre GV?

 
toast:

Gracias por el enlace, pero no creo que ese problema se aplique a mí - no estoy buscando comunicar el ChartID a ninguna otra instancia del EA.

Sólo quiero saber si ChartID() es un identificador fiable y único del gráfico actual para utilizarlo como nombre GV?


Mejor tener el identificador incorporado en tu EA. Desde ahí puedes hacer muchas cosas y es confiable.
 
toast:

Gracias por el enlace, pero no creo que ese problema se aplique a mí - no estoy buscando comunicar el ChartID a ninguna otra instancia del EA.

Sólo quiero saber si ChartID() es un identificador único y fiable del gráfico actual para utilizarlo como nombre GV.


El número mágico y ChartID() son cosas totalmente diferentes. La magia se registra con su comercio en el lado del servidor. ChartID() es sólo para identificar un gráfico en su instancia actual de la terminal.