This indicator creates a dashboard of dots to show the trend in five time frames.
So for example on a 5 minute time frame it calculates what a 5 minute, 10 minute, 15 minute, 20 minute and 25 minute candle would be and on a daily chart it would calculate what 1 day, 2 day, 3 day, 4 day and 5 day candles would be. It then compares the current price to those candles. It can the compare closing price to the open, median price, typical price, total price and weighted close price. It then draws five dots to show whether the comparison is down or up for each time frame. The upper of the five dots represents the fastest time frame candle comparison (so 5 minutes on a 5 minute chart) and the lowest dot is the slowest comparison (so 25 minutes on a 5 minute chart).
The separate upper row shows a red dot if all the time frame dots below are red and a green dot is all the time frame dots below are green. If they are mixed then an empty blue circle is drawn. If a set of 5 red or 5 green dots is followed by a mixed row of dots then an up arrow or down arrow is shown to highlight a possible market reversal after a strong trend. The number above this arrow highlights how long the previous run of five same colour dots has gone on for. This number can help analyse how strong the run was and can be used for position sizing or just to assist in deciding how likely a reversal is to be.
Change the price that you compare to by changing the ‘customclose’ value in the indicator window. If you select open,close,high or low then the comparison is always open to close. The others are close to typical price or close to median price etc.
By ticking or unticking ‘All’ you can remove the dots representing the five time frames. This allows the indicator to be reduced down in size so as to take up less chart space.
I suggest downloading and importing the ITF file to get full functionality.
//Five Bar Trend
//By Vonasi
//20190822
m5 = customclose
m10h = highest[2](high)
m10l = lowest[2](low)
m10o = open[1]
m15h = highest[3](high)
m15l = lowest[3](low)
m15o = open[2]
m20h = highest[4](high)
m20l = lowest[4](low)
m20o = open[3]
m25h = highest[5](high)
m25l = lowest[5](low)
m25o = open[4]
if customclose = typicalprice then
m10 = (m10h + m10l + close)/3
m15 = (m15h + m15l + close)/3
m20 = (m20h + m20l + close)/3
m25 = (m25h + m25l + close)/3
endif
if customclose = medianprice then
m10 = (m10h + m10l)/2
m15 = (m15h + m15l)/2
m20 = (m20h + m20l)/2
m25 = (m25h + m25l)/2
endif
if customclose = totalprice then
m10 = (m10h + m10l + m10o + close)/4
m15 = (m15h + m15l + m15o + close)/4
m20 = (m20h + m20l + m20o + close)/4
m25 = (m25h + m25l + m25o + close)/4
endif
if customclose = weightedclose then
m10 = (m10h + m10l + (2 * close))/4
m15 = (m15h + m15l + (2 * close))/4
m20 = (m20h + m20l + (2 * close))/4
m25 = (m25h + m25l + (2 * close))/4
endif
if customclose = close or customclose = open or customclose = high or customclose = low then
m5 = open
m10 = m10o
m15 = m15o
m20 = m20o
m25 = m25o
endif
up = 0
down = 0
if close < m5 then
if all then
drawtext("●",barindex,0,SansSerif,Bold,16)coloured(128,0,0)
endif
down = down + 1
endif
if close > m5 then
if all then
drawtext("●",barindex,0,SansSerif,Bold,16)coloured(0,128,0)
endif
up = up + 1
endif
if close < m10 then
if all then
drawtext("●",barindex,-1,SansSerif,Bold,16)coloured(128,0,0)
endif
down = down + 1
endif
if close > m10 then
if all then
drawtext("●",barindex,-1,SansSerif,Bold,16)coloured(0,128,0)
endif
up = up + 1
endif
if close < m15 then
if all then
drawtext("●",barindex,-2,SansSerif,Bold,16)coloured(128,0,0)
endif
down = down + 1
endif
if close > m15 then
if all then
drawtext("●",barindex,-2,SansSerif,Bold,16)coloured(0,128,0)
endif
up = up + 1
endif
if close < m20 then
if all then
drawtext("●",barindex,-3,SansSerif,Bold,16)coloured(128,0,0)
endif
down = down + 1
endif
if close > m20 then
if all then
drawtext("●",barindex,-3,SansSerif,Bold,16)coloured(0,128,0)
endif
up = up + 1
endif
if close < m25 then
if all then
drawtext("●",barindex,-4,SansSerif,Bold,16)coloured(128,0,0)
endif
down = down + 1
endif
if close > m25 then
if all then
drawtext("●",barindex,-4,SansSerif,Bold,16)coloured(0,128,0)
endif
up = up + 1
endif
if down = 5 then
drawtext("●",barindex,2,SansSerif,Bold,16)coloured(128,0,0)
dcount = dcount + 1
ucount = 0
endif
if up = 5 then
drawtext("●",barindex,2,SansSerif,Bold,16)coloured(0,128,0)
dcount = 0
ucount = ucount + 1
endif
if not all then
top = 4
middle = 1
bottom = 1
else
top = 4
middle = 1
bottom = -5
endif
flag = 0
if down[1] = 5 and down <> 5 and up <> 5 then
drawtext("▲",barindex,2,SansSerif,Bold,16)coloured(0,128,0)
a = dcount[1]
drawtext("#a#",barindex,3,SansSerif,Bold,16)coloured(0,128,0)
dcount = 0
flag = 1
endif
if up[1] = 5 and down <> 5 and up <> 5 then
drawtext("▼",barindex,2,SansSerif,Bold,16)coloured(128,0,0)
a = ucount[1]
drawtext("#a#",barindex,3,SansSerif,Bold,16)coloured(128,0,0)
ucount = 0
flag = 1
endif
if flag = 0 and up <> 5 and down <> 5 then
drawtext("○",barindex,2,SansSerif,Bold,16)coloured(0,0,255)
endif
return top,middle,bottom
You must be logged in to post a comment.
Of course Vonasi. Done! https://www.prorealcode.com/topic/rewriting-an-idicator-to-pro-order/
Dear Vonasi, thanks for a truly great indicator! Forgive me, but I tried to edit your flawless code so I could implement it in Autotrading, but I obviously failed. Anyone care to elaborate what I am doing wrong? I tried to use "Add PRT code", but failed why I paste the code directly. //------------------------------------------------------------------------- defparam cumulateorders=false Defparam preloadbars=10000 //------------------------------------------------------------------------- //Settings of orders amount = 100 //quantity of shares/contracts to open for each new order //------------------------------------------------------------------------- //Indicators //Indicator type: Candle trend in 5 different time frames //Edited code originates from: Five Bar Trend //Author: Vonasi //Date: 20190822 //Source: https://www.prorealcode.com/prorealtime-indicators/five-bar-trend-dashboard/ m5 = customclose //m5=typicalprice //m5=medianprice //m5=totalprice //m5=weightedclose //m5=(close or customclose = open or customclose = high or customclose = low) m10h = highest[2](high) m10l = lowest[2](low) m10o = open[1] m15h = highest[3](high) m15l = lowest[3](low) m15o = open[2] m20h = highest[4](high) m20l = lowest[4](low) m20o = open[3] m25h = highest[5](high) m25l = lowest[5](low) m25o = open[4] if customclose = typicalprice then m10 = (m10h + m10l + close)/3 m15 = (m15h + m15l + close)/3 m20 = (m20h + m20l + close)/3 m25 = (m25h + m25l + close)/3 endif if customclose = medianprice then m10 = (m10h + m10l)/2 m15 = (m15h + m15l)/2 m20 = (m20h + m20l)/2 m25 = (m25h + m25l)/2 endif if customclose = totalprice then m10 = (m10h + m10l + m10o + close)/4 m15 = (m15h + m15l + m15o + close)/4 m20 = (m20h + m20l + m20o + close)/4 m25 = (m25h + m25l + m25o + close)/4 endif if customclose = weightedclose then m10 = (m10h + m10l + (2 * close))/4 m15 = (m15h + m15l + (2 * close))/4 m20 = (m20h + m20l + (2 * close))/4 m25 = (m25h + m25l + (2 * close))/4 endif if customclose = close or customclose = open or customclose = high or customclose = low then m5 = open m10 = m10o m15 = m15o m20 = m20o m25 = m25o endif //Line 1, First time frame //Red dot if close m5 then L1=1 up = up + 1 endif //Line 2, Second time frame //Red dot if close m10 then L2=1 up = up + 1 endif //Line 3, Third time frame //Red dot if close m15 then L3=1 up = up + 1 endif //Line 4, Fourth time frame //Red dot if close m20 then L4=1 up = up + 1 endif //Line 5, Fifth time frame //Red dot if close m25 then L5=1 up = up + 1 endif //Market reversal //Down if up[1] = 5 and down 5 and up 5 then reda = ucount[1] ucount = 0 Arrow=-1 endif //Up if down[1] = 5 and down 5 and up 5 then greena = dcount[1] dcount = 0 Arrow=1 endif BullCandle5=((L1=1)and(L2=1)and(L3=1)and(L4=1)and(L5=1)) or ((Arrow=1) and (greena>=3)) BearCandle5=((L1=-1)and(L2=-1)and(L3=-1)and(L4=-1)and(L5=-1)) or ((Arrow=-1) and (reda>=3)) //Conditions when to act if (not longonmarket and BullCandle5) then buy amount shares at market endif if (longonmarket and BearCandle5 and positionperf>0) then sell at market endif
@ Vonasi, how to use timeframe , 13 minutes ,21 minutes, 34 minutes,et 55 minutes with this program? Thanks,