BrainZZ

Ichimoku PanOptic TM-V5 by BrainZZ

125
Update of the previous script.

New functions added:
- Highlight of price crossing KS
- Highlight of TS/KS crossing
- Highlight of rising/falling periods of KS
- Critical levels for SSB, KS and TS/
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?
//Created By User BrainZZ on the work of User ChrisMoody
//Last Update 17/06/2016
//new Updates include signal based on PanOptical Method by User Ichimoku_Trader

study(title="Ichimoku PanOptic TM-V1", shorttitle="PTM_Ichimoku-V1", overlay=true)
turningPeriods = input(9, minval=1, title="Tenkan-Sen")
standardPeriods = input(26, minval=1, title="Kinjun-Sen")
leadingSpan2Periods = input(52, minval=1, title="Senkou SpanB")
displacement = input(26, minval=1, title="ChinkouSpan/ SenkouSpanA")
//sts = input(true, title="Show TS (Tenkan-Sen)?")
//sks = input(true, title="Show KS (Kinjun-Sen)?")
//sll = input(true, title="Show CS (ChinkouSpan)?")
//sc = input(true, title="Show Kumo Cloud?")
sts=true
sks=true
sll=true
sc=true
cr0 = input(false, title="Show price/KS crossing?")
cr1 = input(false, title="Show TS/KS crossing?")
cr2 = input(false, title="Show KS turning Up/Down?")
cr3 = input(false, title="Show critical levels?")

//Definitions for Tenkan-Sen (9 Period), Kinjun-Sen (26 Period), Chinkou Span (Lagging Line)
donchian(len) => avg(lowest(len), highest(len))
turning = donchian(turningPeriods)
standard = donchian(standardPeriods)
leadingSpan1 = avg(turning, standard)
leadingSpan2 = donchian(leadingSpan2Periods)

//First Definition for Ability to Color Cloud based on Trend.
leadingSpan1Above = leadingSpan1 >= leadingSpan2 ? 1 : na
leadingSpan2Below = leadingSpan1 <= leadingSpan2 ? 1 : na

//Next 4 lines are code used as plots in order to Color Cloud based on Trend
span1plotU = leadingSpan1Above ? leadingSpan1 : na
span2plotU = leadingSpan1Above ? leadingSpan2 : na
span1plotD = leadingSpan2Below ? leadingSpan1 : na
span2plotD = leadingSpan2Below ? leadingSpan2 : na
col = leadingSpan1 >= leadingSpan2 ? green : red

//plots for 3 lines other than cloud.
plot(sts and turning ? turning : na, title = 'Tenkan-Sen (9 Period)', linewidth=3, transp=0, color= #ff6600)
plot(sks and standard ? standard : na, title = 'Kinjun-Sen (26 Period)', linewidth=3, transp=0, color=#ff0000)
plot(sll and close ? close : na, title='Chinkou Span (Lagging Line)', linewidth=1, offset =-displacement, transp=0, color= #0066ff)

//Cloud Lines Plot Statements - ***Regular Lines to Fill in Break in Gap
plot(sc and leadingSpan1 ? leadingSpan1 : na, title = 'SSA Cloud', style=line, linewidth=1, offset = displacement, color=col)
plot(sc and leadingSpan2 ? leadingSpan2 : na, title = 'SSB Cloud', style=line, linewidth=1, offset = displacement, color=col)

//Cloud Lines Plot Statements - ***linebr to create rules for change in Shading
p1 = plot(sc and span1plotU ? span1plotU  : na, title='SSA above SSB Cloud', style=linebr, linewidth=1, offset=displacement, color=col)
p2 = plot(sc and span2plotU ? span2plotU  : na, title='SSB below SSA Cloud', style=linebr, linewidth=1, offset=displacement, color=col)
p3 = plot(sc and span1plotD ? span1plotD  : na, title='SSA below SSB Cloud', style=linebr, linewidth=1, offset=displacement, color=col)
p4 = plot(sc and span2plotD ? span2plotD  : na, title='SSB above SSA Cloud', style=linebr, linewidth=1, offset=displacement, color=col)

//Fills that color cloud based on Trend.
fill(p1, p2, color=green, transp=70, title='Kumo (Cloud)')
fill(p3, p4, color=red, transp=70, title='Kumo (Cloud)')

//Crosses up/down Tenkan-Sen (9 Period) and Kinjun-Sen (26 Period) = Arrow plots at TS KS cross
crossUpTenkanKinjun = turning[1] <= standard[1] and turning > standard ? 1 : 0
crossDnTenkanKinjun = turning[1] >= standard[1] and turning < standard ? 1 : 0
cupA = crossUpTenkanKinjun == 1 ? crossUpTenkanKinjun : 0
cdnB = crossDnTenkanKinjun == 1 ? crossDnTenkanKinjun : 0
plotshape(cr1 and cupA ? cupA : na, title="CrossUp TS/KS Entry Arrow", style=shape.triangleup,location=location.belowbar, color=green, transp=0, size=size.small)
plotshape(cr1 and cdnB*-1 ? cdnB*-1 : na, title="CrossDn TS/KS Entry Arrow", style=shape.triangledown,location=location.abovebar, color=red, transp=0, size=size.small)

//Spot price reversal = Arrow plots at price crossing KS
crossUpKS = standard <= close and close[1] <= standard[1] ? 1 : 0
crossDnKS = standard >= close and close[1] >= standard[1] ? 1 : 0
cup = crossUpKS == 1 ? crossUpKS : 0
cdn = crossDnKS == 1 ? crossDnKS : 0
plotshape(cr0 and cup ? cup : na, title="CrossUp KS Entry Arrow", style=shape.triangleup,location=location.belowbar, color=green, transp=0, size=size.tiny)
plotshape(cr0 and cdn*-1 ? cdn*-1 : na, title="CrossDn TS Entry Arrow", style=shape.triangledown,location=location.abovebar, color=red, transp=0, size=size.tiny)

//Changing in KS as trend signal = Arrow plots on KS turn
KSturnup = rising(standard,1)==1 ? 1 : 0
KSturndown = falling(standard,1)==1 ? -1 : 0
KupA = KSturnup == 1 ? 1 : KSturndown==0 and barssince(KSturnup==1)<26 and turning>standard ? 1 : 0
KdnB = KSturndown == -1 ? -1 : KSturnup==0 and barssince(KSturndown==-1)<26 and turning<standard ? -1 : 0
plotshape(cr2 and KupA ? KupA : na, title="KS Up Arrow", style=shape.triangleup,location=location.bottom, color=green, transp=0, size=size.tiny)
plotshape(cr2 and KdnB ? KdnB : na, title="KS Down Arrow", style=shape.triangledown,location=location.top, color=red, transp=0, size=size.tiny)

//Critical levels based on previous Highs and Lows
Mhigh = security(tickerid, 'M', high) 
MpH = pivothigh(Mhigh,0,0)
Mlow = security(tickerid, 'M', low)
Whigh = security(tickerid, 'W', high) 
Wlow = security(tickerid, 'W', low)
Dhigh = security(tickerid, 'D', high) 
Dlow = security(tickerid, 'D', low)
//plot(Mhigh, title="M_High",style=circles, color=black, linewidth=2) 
//plot(Mlow, title="M_Low",style=circles, color=black, linewidth=2) 
//plot(Whigh, title="M_High",style=circles, color=black, linewidth=2) 
//plot(Wlow, title="M_Low",style=circles, color=black, linewidth=2) 
//plot(Dhigh, title="M_High",style=circles, color=black, linewidth=2) 
//plot(Dlow, title="M_Low",style=circles, color=black, linewidth=2) 

uSSBdev=dev(highest(52),52)?na:highest(52)
upSSB=fixnan(uSSBdev)
lSSBdev=dev(lowest(52),52)?na:lowest(52)
lowSSB=fixnan(lSSBdev)

uKSdev=dev(highest(26),26)?na:highest(26)
upKS=fixnan(uKSdev)
lKSdev=dev(lowest(26),26)?na:lowest(26)
lowKS=fixnan(lKSdev)

uTSdev = dev(highest(9),9)?na:highest(9)
upTS = fixnan(uTSdev)
lTSdev = dev(lowest(9),9)?na:lowest(9)
lowTS = fixnan(lTSdev)

plot(cr3 and upSSB?upSSB:na,style=circles,color=black,linewidth=2,offset=-52)
plot(cr3 and lowSSB?lowSSB:na,style=circles,color=black,linewidth=2,offset=-52)
plot(cr3 and upKS?upKS:na,style=circles,color=red,linewidth=2,offset=-26)
plot(cr3 and lowKS?lowKS:na,style=circles,color=red,linewidth=2,offset=-26)
plot(cr3 and upTS?upTS:na,style=circles,color=orange,linewidth=2,offset=-9)
plot(cr3 and lowTS?lowTS:na,style=circles,color=orange,linewidth=2,offset=-9)