Cómo asegurarse de que el EA sólo funciona en el gráfico en el que se lanzó por primera vez - página 6

 

ForexTools:

Dado que los objetos del gráfico y las variables globales deben sobrevivir tanto a los reinicios como a las recompilaciones, la comprobación siempre funcionará correctamente, a menos que elimine manualmente cualquiera de los objetos globales de la lista de objetos, pero esto es casi una paranoia :))

Sólo hay que sustituir la variable global por algo más fiable. Pero parece que es lo mismo.
 
sanyooooook:
Cuando el terminal se bloquea, los objetos gráficos creados en la última sesión no se guardan. Corrígeme si me equivoco.


Sí, no lo hacen. Pero el planteamiento del problema no es completo. Tenemos que ser más específicos.

Si, por ejemplo, queremos conectar los indicadores - Expert Advisor, el objeto gráfico debe ser creado por los indicadores. Será una conexión robusta.

Si sólo quiere vincularse a una ventana concreta, por ejemplo, a un determinado marco temporal, deberá utilizar adicionalmente esta característica como atributo de identificación: el marco temporal.

Pero si necesitas una resistencia total a las explosiones nucleares, entonces sólo te servirá el lanzamiento con parámetros de línea de comandos.

 
sanyooooook:
Cuando la terminal se cae...

Bueno, en este caso nada está garantizado en absoluto.

en principio - la solución con el objeto etiqueta y una variable global está bien, con una buena red de seguridad. no permitirá arrancar una segunda vez, y regañaré con mensajes para que me acuerde de borrarlo y la segunda vez ni al estrellarse ni al reiniciar el terminal habrá dos copias ;)

 
TheXpert:
Sólo hay que sustituir la variable global por algo más fiable. Pero parece que es lo mismo.

¿Por qué no te gustan las variables globales? Bueno, a veces desaparecen :) Aunque sean reescribibles :))) Bueno, qué quieres, es un producto, está moldeado. Sólo hay que incluirlo en el algoritmo. Los archivos, por cierto, también pueden desaparecer cuando el sistema de archivos falla.
 

Opción 1 (para los usuarios sanos): Crear una variable global en el inicio del Asesor Experto. Si se detecta una variable global en el arranque, se abre el cuadro de mensajes "Tra la la... El experto está bloqueado, permite una instancia, eliminar lo innecesario".

Variante 2 (si se prestan servicios de programación a los pacientes psiquiátricos): PostMessageA(,WM_CLOSE,,); - matar la ventana con el EA superfluo.

 

Integer:

Variante 2 (si se prestan servicios de programación a los pacientes de la clínica mental): PostMessageA(,WM_CLOSE,,); - matar la ventana con EA innecesario.

Demasiado cruel - es más fácil hacer Asesores Expertos como un script en bucle - el efecto es el mismo. Hombre, tendré que reiniciarlo manualmente... De todos modos, cerrarlo es demasiado brutal :)
 
ForexTools:

Porque eso es exactamente lo que quiero una "recomendación de solución". eso es lo que pedí en mi primer post - por eso tomé su idea de esa manera también.

por lo que veo la validez de muchas "ideas" incluso DOTO como su..... ;)

si me equivoco, escribe algún código de EA que no haga nada más que evitar que tu segunda copia se ejecute. comprueba que realmente funciona al recompilar y reiniciar el terminal y publica el código aquí - todo caerá en su sitio ;)

Así que me ofreces trabajar para ti. ¿Por qué no dices un precio?
 
TheXpert:
Demasiado cruel - es más fácil hacer EAs como un script en bucle - el mismo efecto. Vaya, entonces tendrías que reiniciarlo manualmente... De todos modos, es demasiado brutal para cerrarlo :)


Por supuesto que cierra muy fuerte, pero cierra :)

 
Integer:
Si los servicios de programación se prestan a pacientes en un hospital psiquiátrico

:)))))))

pero sin embargo: creó una variable global, la segunda ejecución de EA comprobó su presencia - no se inició. después de un minuto el terminal se estrelló pero: la variable global permaneció.

al reiniciar el terminal, una sola copia comprueba si existe y NO se inicia. por lo que el objeto del gráfico sigue siendo necesario para identificar "su gráfico" e iniciarse.

 
Candid:
Así que me ofreces trabajar para ti. ¿Por qué no me dices el precio?

Relájate ;)

Me comunico en este foro con compañeros artesanos. los que creen que pueden ayudarme - me ayudan. los que quieren dinero por su ayuda - lo escriben y yo decido si me pagan o no. ha habido casos (y más de una vez) en los que he pagado.

Pero además del pago, para un programador, hay interés en resolver rompecabezas. así que planté uno de ellos. quien quería - se divertía, entrenaba su pensamiento, quien no quería - se iba en silencio a leer otros temas.