//Updated on 10-6-2015 By ChrisMoody
//Added Linebr ability, ability to turn on/off highlight Bars when crossing Swing Hi/Lo
//Added Ability to turn on/off background highlight when bars cross swing hi/lo
//Created 99% by Glaz and ChrisMoody Modified about 1% on 7/30/2014 for user dvk197-
study(title="CM_Gann Swing HighLow V2", shorttitle="CM_Gann_Swing_HL_V2", overlay=true)
periods=input(3, minval=1, title="Moving Average Period")
pt = input(false, title="Plot Up/Down Triangles at Top and Bottom of Candles/Bars?")
pc = input(true, title="Plot Circles at Top and Bottom of Candles/Bars?")
pttb = input(true, title="Plot Triangles at Top and Bottom of Screen?")
shb = input(false, title="Show Highlight Bars on Cross Up or Cross Down?")
sbh = input(true, title="Show Background Highlights at Cross Up or Cross Down?")
//code for Calculations
hld = iff(close > sma(high,periods)[1], 1, iff(close<sma(low,periods)[1],-1, 0))
hlv = valuewhen(hld != 0, hld, 1)
//code for Plot Statements
hi = hlv == -1 ? sma(high, periods) : na
lo = hlv == 1 ? sma(low,periods) : na
//Rules for coloring Background highlights & Highlight Bars
closeAbove() => shb and close > hi and close[1] < hi
BHcloseAbove = sbh and close > hi and close[1] < hi
closeBelow() => shb and close < lo and close[1] > lo
BHcloseBelow = sbh and close < lo and close[1] > lo
//Highlight Bar Color Plots
barcolor(closeAbove() ? yellow : na)
barcolor(closeBelow() ? yellow : na)
//Background Highlight Rules
bgcolor(BHcloseAbove ? green : na, transp=60)
bgcolor(BHcloseBelow ? red : na, transp=60)
//Plot Statements for circles and Triangle Up/Down at Price Bars
plot(pc and hi ? hi : na,title="Gann Swing High Plots-Circles", color=fuchsia,style=linebr, linewidth=4)
plot(pc and lo ? lo : na,title="Gann Swing Low Plots-Circles", color=lime,style=linebr, linewidth=4)
plotshape(pt and hi ? hi : na,title="Gann Swing High Plots-Triangle Down", offset=0, style=shape.triangledown, location=location.abovebar, color=fuchsia, transp=0)
plotshape(pt and lo ? lo : na,title="Gann Swing Low Plots-Triangle Up", offset=0, style=shape.triangleup, location=location.belowbar, color=lime, transp=0)
//Plot Statement for Triangles at Top and Bottom of Screen
plotshape(pttb and hi ? hi : na,title="Gann Swing High Plots-Triangles Down Top of Screen", offset=0, style=shape.triangledown, location=location.top, color=red, transp=0)
plotshape(pttb and lo ? lo : na, title="Gann Swing Low Plots-Triangles Up Bottom of Screen",offset=0, style=shape.triangleup, location=location.bottom, color=lime, transp=0)