por 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...
-
Refresko
-
- Mensajes: 165
- Registrado: 12 Dic 2011, 22:56
- Karma: 5
por 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 , y ya tengo todo el código de esa parte del programa, y funciona como quería , 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
|
|