Gracias por las respuestas compañeros. Aunque me pareciera que están diciendo lo mismo que hice, pero no se apreció bien porque no le puse la función de etiqueta a la parte del código (pensé que saldría con los espacios que le había puesto). Ya aquí lo corrijo y lo coloco de nuevo tal como lo puse en el EA:
Coloqué esto primero, cuando me dió el problema:
Código:
if (condicion1)
{
if (condicion1A) Alert("cond1A)
}
if (condicion2)
{
if (condicion2A) Alert("cond2A");
}
Entonces el EA debería revisar primero si se cumple "condicion1". De no ser el caso, revisa si se cumple "condicion2". Pero si, efectivamente si se cumple "condicion1", entonces revisa si se cumple "condicion1A" (que es la que está dentro de las lleves de "condicion1"), y si se cumple esta tambien, lanza el mensaje "cond1A" (que es lo que está puesto en Alert).
Lo que me pasó es que, cuando asocié el EA a la ventana del
precio, me salian los dos mensajes, uno debajo del otro, aunque "condicion1" y "condicion2" eran contradictorias. Me salió así:
cond1A
cond2A
Pero no debería pues condicion 1 y condicion2 son contradictorias...
Luego probé colocando las 2 condiciones dentro de un mismo "if", y ahí si me funcionó. Es decir, lo puse así:
Código:
if (condicion1 && condicion1A) Alert("cond1A");
if (condicion2 && condicion2A) Alert("cond2A");
¿Por qué no me funcionó la forma anterior? Lo que ustedes me dijeron fue practicamente que hiciera eso ¿o hay algo en lo que me dijeron que no capté? ¿hay alguna forma de asegurar que el EA nunca cometa este error?
Otra cosa que me llamó la atención wa la parte que dice "&&!" en el código que puso YHOYO:
Lo busqué en la lista de oepradores y expresiones de
mql4, pero no lo conseguí. ¿Supongo un atajo para decir if(opcionA==true && condicionB==false)? Es decir:
Código:
if(opcionA==true && condicionB==false)
es lo mismo que decir:
Código:
if(opcionA &&! condicionB)
Saludos, y gracias de antemano de nuevo.