Hola, alguien me puede programar un screener para encontrar valores en que el indicador %Bollinger cruce al alza el nivel 70? en concreto un screener en que se cruce el nivel 70 y al siguiente dia (o vela) se supere el nivel del dia anterior.
Gracias. Para cortos seria cruzar a la baja el nivel 10 de %B y la siguiente vela el valor de %B sea inferior a la anterior.
En creación de screeners de prorealtime selecionando %B en el gráfico no me permite crearlo con creación asistida.
Muchisimas gracias por adelantado.
No lo he comentado, pero uso parámetros de Bollinger (20,1)
Gracias
buenas, aquí tienes:
// Screener %B (Bollinger 20,1) - LARGOS
// Cruce al alza de 70 y continuacion al alza en la vela siguiente
periodo = 20
desv = 1
media = Average[periodo](close)
desviacion = STD[periodo](close)
bandaSup = media + desv * desviacion
bandaInf = media - desv * desviacion
pctB = (close - bandaInf) / (bandaSup - bandaInf) * 100
cruceAlza = pctB[1] > 70 AND pctB[2] <= 70
continuacion = pctB > pctB[1]
SCREENER[cruceAlza AND continuacion](pctB AS "%B actual", pctB[1] AS "%B previo")
// Screener %B (Bollinger 20,1) - CORTOS
// Cruce a la baja de 10 y continuacion a la baja en la vela siguiente
periodo = 20
desv = 1
media = Average[periodo](close)
desviacion = STD[periodo](close)
bandaSup = media + desv * desviacion
bandaInf = media - desv * desviacion
pctB = (close - bandaInf) / (bandaSup - bandaInf) * 100
cruceBaja = pctB[1] < 10 AND pctB[2] >= 10
continuacion = pctB < pctB[1]
SCREENER[cruceBaja AND continuacion](pctB AS "%B actual", pctB[1] AS "%B previo")
Aquí está el código:
// Bollinger B%
OB = 70 // Upèèer limit
OS = 10 // Lower Limit
p = 20 // BB periods
dev = 1.0 // BB deviation
BollInf = Average[p,0](close) - (dev * std[p](close)) // Lower Band
BollSup = Average[p,0](close) + (dev * std[p](close)) // Upper Band
pB = ((close - BollInf) / (BollSup - BollInf)) * 100 //B%
//
LongCross = pB CROSSES OVER OB
ShortCross = pB CROSSES UNDER OS
Rising = pB > pB[1]
Falling = pB < pB[1]
//
LongCond = LongCross[1] AND Rising
ShortCond = ShortCross[1] AND Falling
Cond = 0
IF LongCond THEN
Cond = 1
ELSIF ShortCond THEN
Cond = 2
ENDIF
SCREENER[Cond AND (close > 1000)](Cond AS "1=Long, 2=Short")
Muchas gracias a los dos, lo probaré.
Lo siento, olvidé decirte que agregué esta condición solo para hacer las pruebas, para tener menos resultados:
AND (close > 1000)