comprobar histórico iMA

Foro para cuestiones generales sobre la plataforma MetaTrader 4.

Re: comprobar histórico iMA

Notapor Refresko » 10 May 2016, 05:30

Hola Benys,

con la imagen que pones, se entiende un poco mejor lo que buscas, pero me perdi en algo:
en el ejemplo que pones, en la vela 8, la variable te retornara "merc2", ¿pero cuantas velas quieres revisar?
que haras luego de que te retorne ese valor?
quieres saber en que vela lo retorno?

segun veo, lo mejor es usar un ciclo con "for" y dejar de comprobar el resto de velas con un "break". es mas sencillo.

insisto, si quieres escribe claras todas las reglas y te ayudamos mas facil.
aqui estaremos para ayudar.

....nota: edite nuevamente mi codigo, (lo digo por si al compilarlo te daba error), ademas, despues de cada "if", en lugar de "retornar" un valor cada vez, Puedes cambiar el valor de una variable existente, en este caso "Merc" y luego retornala con el ultimo cambio sufrido ya que solo se puede retornar una vez.
pero esto depende de que quieras.


que pena haberlo puesto el codigo antes asi de mal, en mi mensaje pasado, pero escribi sin la plataforma y de afan, y no pude ver que estaba muy equivocado.
aqui el code corregido.
Código: Seleccionar todo
 int MovMar()
    {
    int Merc=0;  // si se usa como variable local, se puede retornar, ---si se usa como global, no es necesario.
    double Media_POS_1_HIGH=iMA(NULL,0,6,0,MODE_EMA,PRICE_HIGH,1);
    double  Media_POS_2_HIGH=iMA(NULL,0,6,0,MODE_EMA,PRICE_HIGH,2);
    double Media_POS_1_LOW=iMA(NULL,0,6,0,MODE_EMA,PRICE_LOW,1);
    double Media_POS_2_LOW=iMA(NULL,0,6,0,MODE_EMA,PRICE_LOW,2);

    if (Media_POS_1_HIGH<Close[1] && Media_POS_1_HIGH<Open[1])  //Condicion1
    Merc=1;
   
    if (Media_POS_1_LOW>Open[1] && Media_POS_1_LOW>Close[1])  //Condicion2
    Merc=2;

   if (Media_POS_2_HIGH<Close[2] && Media_POS_2_HIGH<Open[2]) // Condicion3
    Merc=1;

     if (Media_POS_2_LOW>Open[2] && Media_POS_2_LOW>Close[2])  //Condicion4
    Merc=2;
   
   return Merc;
   // ...
}
No puedes cometer/ dos veces el mismo error/ la segunda vez sera/ Por eleccion...
Avatar de Usuario
Refresko
 
Mensajes: 165
Registrado: 12 Dic 2011, 22:56
Karma: 5

Re: comprobar histórico iMA

Notapor Benys » 24 May 2016, 19:45

refresko escribió:Hola Benys,

con la imagen que pones, se entiende un poco mejor lo que buscas, pero me perdi en algo:
en el ejemplo que pones, en la vela 8, la variable te retornara "merc2", ¿pero cuantas velas quieres revisar?
que haras luego de que te retorne ese valor?
quieres saber en que vela lo retorno?

segun veo, lo mejor es usar un ciclo con "for" y dejar de comprobar el resto de velas con un "break". es mas sencillo.

insisto, si quieres escribe claras todas las reglas y te ayudamos mas facil.
aqui estaremos para ayudar.

....nota: edite nuevamente mi codigo, (lo digo por si al compilarlo te daba error), ademas, despues de cada "if", en lugar de "retornar" un valor cada vez, Puedes cambiar el valor de una variable existente, en este caso "Merc" y luego retornala con el ultimo cambio sufrido ya que solo se puede retornar una vez.
pero esto depende de que quieras.


que pena haberlo puesto el codigo antes asi de mal, en mi mensaje pasado, pero escribi sin la plataforma y de afan, y no pude ver que estaba muy equivocado.
aqui el code corregido.
Código: Seleccionar todo
 int MovMar()
    {
    int Merc=0;  // si se usa como variable local, se puede retornar, ---si se usa como global, no es necesario.
    double Media_POS_1_HIGH=iMA(NULL,0,6,0,MODE_EMA,PRICE_HIGH,1);
    double  Media_POS_2_HIGH=iMA(NULL,0,6,0,MODE_EMA,PRICE_HIGH,2);
    double Media_POS_1_LOW=iMA(NULL,0,6,0,MODE_EMA,PRICE_LOW,1);
    double Media_POS_2_LOW=iMA(NULL,0,6,0,MODE_EMA,PRICE_LOW,2);

    if (Media_POS_1_HIGH<Close[1] && Media_POS_1_HIGH<Open[1])  //Condicion1
    Merc=1;
   
    if (Media_POS_1_LOW>Open[1] && Media_POS_1_LOW>Close[1])  //Condicion2
    Merc=2;

   if (Media_POS_2_HIGH<Close[2] && Media_POS_2_HIGH<Open[2]) // Condicion3
    Merc=1;

     if (Media_POS_2_LOW>Open[2] && Media_POS_2_LOW>Close[2])  //Condicion4
    Merc=2;
   
   return Merc;
   // ...
}


Gracias refresco use tu método de renombrar cada media de cada vela como me indicaste, con comprobar 40 velas por si acaso sobra :D, y ya tengo todo el código de esa parte del programa, y funciona como quería :clap:, el resto de reglas aun no las tengo, ya que voy haciendo diferentes pruebas y voy escribiendo el código por partes y muy despacio así voy aprendiendo de mis errores.
Muchas gracias a todos y cualquier duda la expondre por aquí.
Saludos
Benys
 
Mensajes: 7
Registrado: 12 Ene 2016, 21:29
Karma: 0

Anterior

Volver a MetaTrader 4

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado