Malfuncionamiento de un AE en varias divisas

 

Hola a tod@s.

Tengo un problema con un AE que debería ser facil de solucionar pero no lo consigo. Lo explico.

El AE es muy sencillo. Lo paso en un txt. Cuando compro o vendo, el AE coloca el SL y TP y los va gestionando hasta el cierre por operación. Si lo utilizo en un gráfico funciona correctamente. El problema es cuando utilizo el lismo AE en varias divisas. Se vuelve loco. Toma Sl o TP de otras divisas y me cierra operaciones o mueve SL y TP a donde no debe.

He probado a llamar a cada AE de forma distinta para cada divisa, incluso cambiando los nombres de las divisas y nada.

El código controla que estemos en el simbolo adecuado y tampoco.

A ver si alguien puede ver alguna solución. No debe ser muy dificil pero no encuentro el error. Soy bastante novato programando en MQL4.

Muchas gracias

Saludos

Archivos adjuntos:
JFM_TEND.txt  7 kb
 
lorapote:

No estas seleccionando ni cribando las ordenes por magic number, ticket, etc....hazlo siempre antes de pretender llamar a una orden para modificarla, cerrarla, etc.

Si lo haces correctamente te sobrara la mitad del código.

 
Miguel Angel Vico Alba:

No estas seleccionando ni cribando las ordenes por magic number, ticket, etc....hazlo siempre antes de pretender llamar a una orden para modificarla, cerrarla, etc.

Si lo haces correctamente te sobrara la mitad del código.

Muchas gracias Miguel Angel.

El problema es que las ordenes se meten manualmente y su magic number es 0, No se cómo puedo cribar por esa variable. Y por ticket creo que sí lo hago y aun así sigue sin funcionar.

El EA está en 4 divisas distintas (con SL y TP ddiferentes) y al lanzar una orden manual se vuelve loco y me cierra la operación.

A ver si me puedes aconsejar un poco más en detalle.

Muchas gracias.

 
lorapoteA ver si me puedes aconsejar un poco más en detalle.

A priori me surgen muchas dudas, como darle a cada símbolo un valor SL/TP pero luego tener unas inputs donde se le asigna otro y luego en la función ValidStopLoss() hace él calculo que quiere sin tener en cuenta el switch....

Es decir, que si creas los "casos" y luego no los llamas y los haces servir ... ¿me explico? :)

No me hagas mucho caso...el problema que expones es de coger el código y dedicarle un tiempo ... Cosa que me es imposible.

En cualquier caso yo cambiaria el enfoque. Las operaciones aunque sean manuales puedes meterle un MN vía comentario en la propia orden, etc. Se me ocurren muchas soluciones, pero sobre TU código, como digo no tengo tiempo para revisarlo, lo siento.

A ver si hay suerte y alguien que le sobre el tiempo se entretiene y le dedica un rato ... Siempre hay quien busca resolver sudokus, jeje.

¡Saludos!

 
Miguel Angel Vico Alba:

A priori me surgen muchas dudas, como darle a cada símbolo un valor SL/TP pero luego tener unas inputs donde se le asigna otro y luego en la función ValidStopLoss() hace él calculo que quiere sin tener en cuenta el switch....

Es decir, que si creas los "casos" y luego no los llamas y los haces servir ... ¿me explico? :)

No me hagas mucho caso...el problema que expones es de coger el código y dedicarle un tiempo ... Cosa que me es imposible.

En cualquier caso yo cambiaria el enfoque. Las operaciones aunque sean manuales puedes meterle un MN vía comentario en la propia orden, etc. Se me ocurren muchas soluciones, pero sobre TU código, como digo no tengo tiempo para revisarlo, lo siento.

A ver si hay suerte y alguien que le sobre el tiempo se entretiene y le dedica un rato ... Siempre hay quien busca resolver sudokus, jeje.

¡Saludos!

Muchisimas gracias Miguel.

Un fuerte abrazo