Variables globales frente a FileWrite - página 3

 

@deysmacro

Pero todavía estoy luchando para ver razón por qué la gente no quiere usar ChartID()? ¿A veces cambia? ¿Se duplica a veces?

Si no, ¿por qué iba a reinventar la rueda añadiendo líneas de código en lugar de DoubleToStr(ChartID(),0)?

 

@angevoyageur

Gracias de nuevo por la respuesta.

Pido disculpas por no haber sido claro con todos.

Entiendo lo que son los números mágicos, y entiendo lo que hace ChartID().

Sólo estoy tratando de encontrar la mejor manera de crear un nombre único de GV que no se cambie, que se pueda recuperar después de un reinicio de la terminal y que no tenga que ser conocido por ninguna otra instancia de EA.

ChartID() parece encajar en el proyecto, pero la gente sigue sugiriendo formas mucho más complicadas de hacer esto. Por eso estoy confundido.

 
toast:

Gracias de nuevo por la respuesta.

Me disculpo por no haber sido claro con todos.

Entiendo lo que son los números mágicos, y entiendo lo que hace ChartID().

Sólo estoy tratando de encontrar la mejor manera de crear un nombre único de GV que no será cambiado, puede ser recuperado después de un reinicio de la terminal y no necesita ser conocido por cualquier otra instancia de EA.

ChartID() parece encajar en el proyecto, pero la gente sigue sugiriendo formas mucho más complicadas de hacer esto. Por eso estoy confundido.


Tener un generador de nombres para GV y luego comprobar si el nombre único de GV existía o no. Eso es todo.

Cuando usas ChartID(), no tienes el control, pero usando el generador de nombres, tienes el control.

Si todavía encuentra que usar ChartID() es bueno, entonces, por favor hágalo.

Pongo un punto aquí.

 

De todos modos, gracias por su ayuda.

Si genero el nombre para la GV, ¿cómo se recuperaría después de un reinicio del terminal? Tendría que estar en otro GV, o deducirlo de las entradas del usuario que se pueden cambiar...

Creo que voy a ir con ChartID().

Todas las demás opciones parecen ser escribir código porque sí.

En ausencia de cualquier razón real por la que ChartID() es una mala idea, me quedaré con ella.

 
toast:

De todos modos, gracias por su ayuda.

Si genero el nombre para la GV, ¿cómo se recuperaría después de un reinicio del terminal? Tendría que estar en otro GV, o deducirlo de las entradas del usuario que se pueden cambiar...

Creo que voy a ir con ChartID().

Todas las demás opciones parecen ser escribir código porque sí.

En ausencia de cualquier razón real por la que ChartID() es una mala idea, me quedaré con ella.

ChartID() parece una buena idea para crear un nombre único, sólo hay que comprobar que este ID es persistente a través del reinicio de MT4. Nunca he comprobado eso.

Háganoslo saber.

 
angevoyageur:

ChartID() parece una buena idea para crear un nombre único, sólo hay que comprobar que este ID es persistente a través del reinicio de MT4. Nunca lo he comprobado.

Háganoslo saber.



Sí, lo es. Lo he comprobado hoy mismo.

Primera ejecución:

Después de reiniciar el terminal:

 
si el gráfico se ha cerrado y se vuelve a abrir se pierde su anterior ChartED()
 

Sí, si has cerrado ese gráfico en particular (manteniendo el resto del terminal abierto) el ID se pierde.

Pero si el gráfico se cierra porque se ha cerrado todo el terminal, el ID seguirá siendo el mismo cuando se vuelva a abrir el terminal.

 

Yo usaría el número de cuenta o un número derivado de ella. Yo no confiaría en ChartID, lo que si el usuario tiene que reinstalar MT4 o accidentalmente cierra el gráfico, mientras que las operaciones se abren. El número de la cuenta que tiene las operaciones abiertas del EA es robusto.

 
SDC:

Yo usaría el número de cuenta o un número derivado de ella. Yo no confiaría en ChartID, lo que si el usuario tiene que reinstalar MT4 o accidentalmente cierra el gráfico, mientras que las operaciones se abren. El número de la cuenta que tiene las operaciones abiertas del EA es robusto.


Ya le dije a toast que creara un generador de nombres únicos.
Razón de la queja: