This indicator displays ADR information in the lower left side of the chart screen. It calculates the Average Daily Range with exclusion of the Sunday bar to be more accurate with the real daily range of the market.
5 text lines are displayed, from top to bottom:
//PRC_ADR no sunday bar | indicator
//17.08.2018
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
defparam drawonlastbaronly=true
defparam calculateonlastbars=10000
//--- settings
ADRperiod = 20
RoomLimitRatio = 0.1
//--- end of settings
sum = 0
a=0
if day<>day[1] and dayofweek<>0 then
hh=0
ll=close*100
daycount=daycount+1
endif
if dayofweek<>0 then
hh=max(hh,high)
ll=min(ll,low)
endif
sum=0
a=0
if day<>day[1] and daycount>=ADRPeriod then
for i = 0 to barindex do
if day[i]<>day[i+1] and dayofweek[i]<>0 then
a = a + 1
sum=sum+((hh[i+1]-ll[i+1])/ticksize)
endif
if(a=1) then
adr1=Round(sum)
endif
if(a=5) then
adr5=Round(sum/5)
endif
if(a=10) then
adr10=Round(sum/10)
endif
if(a=20) then
adr20=Round(sum/20)
endif
if a = adrperiod then
break
endif
next
adr = Round((adr1+adr5+adr10+adr20)/4.0)//round((sum/adrperiod))
endif
low0 = dLow(0)
high0 = dhigh(0)
t = Round((high0 - low0)/ticksize)
RmUp = Round(adr - (close-low0)/ticksize)
RmDn = Round(adr - (high0-close)/ticksize)
RmLmt = round(adr*RoomLimitRatio)
if(rmup<rmlmt) then
upr=255
upg=0
else
upr=0
upg=100
endif
if(rmdn<rmlmt) then
dnr=255
dng=0
else
dnr=0
dng=100
endif
drawtext("Room Up: #RmUp#",barindex,-0.4,Dialog,Bold,14) coloured(upr,upg,0)
drawtext("Room Down: #RmDn#",barindex,-0.5,Dialog,Bold,14) coloured(dnr,dng,0)
drawtext("Today= #t#",barindex,-0.3,Dialog,Bold,14) coloured(128,0,128)
drawtext("ADR(#ADRperiod#)= #adr#",barindex,-0.2,dialog,Bold,22) coloured(0,0,255)
if(rmup<0 or rmdn<0) then
drawtext("ADR REACHED",barindex,-0.1,dialog,bold,24) coloured(0,145,0)
else
drawtext("ADR NOT REACHED",barindex,0.1,dialog,bold,24) coloured(255,0,0)
endif
return
You must be logged in to post a comment.
Ya esta he cambiado el codigo de la linea 58 por "if t > adr then " asi en el momento que rmup o rmdn lleguen a 0 seguro que se cumple que el recorrido es superior al de la media por tanto today sera superior a adr(n) y quedara fijo el mensaje de adr alcanzado en verde si en esta zona rebota puede ser una muy buena informacion para los inversores siempre mirando el grafico de forma mas general obviamente pero es que segun estudios de terceros es normal que se suelan crear rangos temporales con una distancia aproximada de 3 adr y esto puede ser muy bueno para operar ya que un rango de 400 puntos es muy operable y con altas posibilidades de exito muchisimas gracias
Si ayer por la noche ya vi que posiblemente era mejor la or que el and ya que lo que se busca es que alcanze al menos uno de los dos sin embargo hoy siguiendolo en dax me he dado cuenta del problema que detectaba ayer el precio llega hasta uno de los dos arriba o abajo y el mensaje es adr alcanzado sin embargo si despues gira y no sigue manteniendo el cuerpo de la vela por encima o debajo del room el mensaje vuelve a ponerse rojo y es de adr no alcanzado y entiendo que esto lleva a confusion sobre todo si lo utilias como analisis rapido de varios instrumentos por ejemplo ahora en dax es adr 20 periodos = 131 Today =142 roomup en rojo=3 y el mensaje esta en rojo de adr no alcanzado cuando si que lo ha alcanzado de sobras A ver como todos los indicadores tiene la importancia que tiene ya que no es mas que una media de las n velas diarias que busquemos sin embargo es solo una media si analizamos las velas de este periodo encontraremos muchas velas que solo llegan a 0,5 adr y otros dias que si que recorren hasta 3 adr en un dia pero si lo utilizamos como una herramienta mas de analisis y el mensaje de adr alcanzado en verde quedara fijo una vez alcanzado si que podria ser muy util si vemos que lo ha alcanzado y ha rebotado estableciendo una situacion de rango que para los intradias podria ser muy interesante muchisimas gracias por todo
Hola Nicolas es posible? que en la linea 58 haya un error de codigo creo que la instruccion exacta deberia de ser if(rmup0) then o sea rmdn > que 0 sino no valida el adr alcanzado cuando si que lo alcanza No lo se ya sabes que en programacion de PRT no voy muy fuerte solo estoy empezando Como siempre un grandisimo trabajo el tuyo y este indicador/oscilador lo veo muy util para disponer de la informacion adicional aunque luego el mercado siempre tiene la ultima palabra
Gentile Nicolas, l'indicatore mi da errore : ciclo infinito o con troppe iterazioni, modificare il ciclo corrispondente, non sono 1 programmatore , come lo posso sistemare ? grazie