Hola necesito un indicador que cuente el número de días consecutivos a la baja del cierre de una barra. ¿Alguien me puede ayudar?
Muchas gracias.
Creo que no lo he entendido correctamente. Hay 1 días consecutivos entre una barra diaria y otra.
Ejemplo, una acción ha cerrado a la baja cada uno de los nueve días anteriores. Adjunto tabla excel.
Tome un ejemplo con precios reales, incluso sin eXcel, se necesitan de 4 a 5 días para comprenderlo bien.
¿Qué quieres saber HOY? ¿Cuántos días CONSECUTIVOS ha habido velas alcistas o bajistas?
Mira si algo de esto puede servir…
TimeFrame(Daily)
Once DiasBajistas = 0
If DOpen(0) > DClose(0) and DOpen(1) > DClose(1) then
DiasBajistas = DiasBajistas + 1
Elsif Dopen(0) <= DClose(0) then
DiasBajistas = 0
Endif
Return DiasBajistas as "Dias Bajistas Consecutivos"
Si me sirve tal como está , lo que ocurre es que el indicador parece contar siempre un día de menos. Me explico, como puedes ver en el gráfico el último día hay tres cierres consecutivos a la baja porque el cierre es inferior al cierre del día anterior y en cambio el resultado del indicador es solo dos cuando según mi cómputo serían tres. ¿Se podría corregir esto?. Muchas gracias Mestor. Ricardo, espero que esta explicación te sirva a ti también.
Hola, este codigo te devuelve la variable “updown” con un recuento positivo cuando los dias son alcistas y negativo cuando son bajistas (los dias neutros no hace nada):
if close < close[1] then
updown = updown*(updown<0) - 1
elsif close > close[1] then
updown = updown*(updown >0) + 1
endif
return 0, updown as "updown"
Si solo quieres contar los dias bajistas quedaría asi:
if close < close[1] then
updown = updown - 1
elsif close > close[1] then
updown = 0
endif
return 0, updown as "updown"
Muchas gracias pableitor. Es lo que buscaba.
Si me sirve tal como está , lo que ocurre es que el indicador parece contar siempre un día de menos. Me explico, como puedes ver en el gráfico el último día hay tres cierres consecutivos a la baja porque el cierre es inferior al cierre del día anterior y en cambio el resultado del indicador es solo dos cuando según mi cómputo serían tres. ¿Se podría corregir esto?. Muchas gracias Mestor. Ricardo, espero que esta explicación te sirva a ti también.
En las líneas 2 y 7 puedes poner DiasBajistas = 1 (en vez de 0)…
Buenas tardes, he preparado un proscreener basado en el código “updown” que me ha indicado pableitor y no consigo que funcione, no me sale error de programación pero no me devuelve ningún valor cuando lo cierto es que debería haber valores que cumplen esa condición envío una toma de pantalla del proscreener que he preparado. ¿Que estoy haciendo mal para que no salga ningún resultado?. El indicador en cambio funciona perfectamente.
Muchas gracias.
Hola, ¿Has probado a no usar CALL e indicar el código completo?
Algo como esto:
if close < close[1] then
updown = updown - 1
elsif close > close[1] then
updown = 0
endif
c1 = (updown = -3)
SCREENER[c1] (Variation as "% Var Barra Ant")
Hola, he simplificado un poco el codigo y ahora ha quedado reducido a una linea, como dice Mestor no es necesario usar CALL :
updown =( updown *( updown < 0) - 1)* (close < close[1])
c1 = (updown = -3)
SCREENER[c1] (Variation as "% Var Barra Ant")
Yo no opero acciones del Nasdaq pero lo he probado en el Nasdaq y si me da resultados (ver adjunto)
Muchas gracias pableitor y Mestor, Mestor y pableitor . Me habéis ayudado mucho el proscreener ya funciona y con vuestra ayuda he comprendido algo de programación, yo no lo había hecho así porque no sé programar nada más que con la creación simplificada.