A trancas y barrancas voy avanzando lentamente.
El nuevo problema es que quiero saber si cuando ocurre una acción, dentro de las 6 velas anteriores un indicador ha estado en sobrecompra o sobreventa.
Claro si yo pongo por ejemplo …… indicator3[5] <30 lo que me dice es si la quinta vela anterior estaba en -30
Pero lo que yo quiero exactamente que me diga es si dentro de las 5 velas anteriores (ya sea la tercera o la cuarta) ha estado en -30
Estoy pensando si eso sería una orden FOR variable = 1 TO 5 DO, pero no se hacerlo completo.
O quizás es otra orden. La cuestión es que no se como decirle ….. mirame dentro de las 5 velas anteriores.
Si alguien puede ayudarme se lo agradecería.
Un saludo
Hay diferentes posibilidades de hacer lo que quieres. Tienes razón, puedes usar un bucle FOR / NEXT, pero también puedes hacer una SUMMATION de las últimas condiciones booleanas de X.
Hagamos un ejemplo con un bucle clásico:
result = 0
FOR i = 1 TO 6 DO
if indicator3[i] < 30 then
result = 1
break
endif
NEXT
En este ejemplo, hacemos un bucle a través de las últimas 6 barras y la primera vez que encontramos que el indicador3 estaba por debajo del nivel 30, establecimos la variable ‘result’ en 1 y salimos del bucle con “BREAK”.
A continuación, puede probar la variable ‘resultado’ en cualquier parte del resto del código.
Espero eso ayude.
Muchas gracias Nicolás, voy a probarlo.
Nicolás, no me sale. No se como llamarlo antes, para que forme parte de esa orden.
Adjunto código.
Por favor, vuelva a publicar el código completo en formato de texto aquí en el foro, ya que sería mucho más fácil para mí explicarle.
Es este.
///Establecemos el movimiento del histograma encima de linea 40 para cortos
BAJISTA1 = indicator1 crosses under indicator2 AND indicator1 > 40 OR indicator1 > 40 AND indicator3 CROSSES UNDER indicator1
IF BAJISTA1 THEN
SEMAFORO1 = -1.5
ELSE
SEMAFORO1 = 0
ENDIF
///Establecemos el movimiento del histograma debajo de linea 40 para largos
ALCISTA1 = indicator3 < -40 AND indicator3 crosses over indicator4 OR indicator3 crosses over indicator4 AND indicator3[5] <-40
IF ALCISTA1 THEN
SEMAFORO2 = 1.5
ELSE
SEMAFORO2 = 0
ENDIF
No sé si la lógica es correcta en su estrategia, pero esto es cómo debe incorporar el código y la variable en su propio código.
result = 0
FOR i = 1 TO 6 DO
if indicator3[i] < 30 then
result = 1
break
endif
NEXT
///Establecemos el movimiento del histograma encima de linea 40 para cortos
BAJISTA1 = indicator1 crosses under indicator2 AND indicator1 > 40 OR indicator1 > 40 AND indicator3 CROSSES UNDER indicator1
IF BAJISTA1 THEN
SEMAFORO1 = -1.5
ELSE
SEMAFORO1 = 0
ENDIF
///Establecemos el movimiento del histograma debajo de linea 40 para largos
ALCISTA1 = indicator3 < -40 AND indicator3 crosses over indicator4 OR indicator3 crosses over indicator4 AND result
IF ALCISTA1 THEN
SEMAFORO2 = 1.5
ELSE
SEMAFORO2 = 0
ENDIF