本页源码来自 TradingView 公开发布的开源脚本,版权归原作者所有, 请遵循其原始许可(Pine 脚本常见 CC BY-NC-SA / MPL-2.0 / MIT)。 本项目仅用于研究检索与许可范围内的移植。
// © FriendOfTheTrend
//@version=5
indicator('Auto Support & Resistance With Wick Signals, Alerts & Percentage Gaps', shorttitle="Auto S&R With Wick Signals", overlay=true)
//Get Timeframe And Previous High And Low
touch = "Candle Touching S&R Level"
wick = "One Wick Off S&R Level"
twoWicks = "2 Wicks In Last 5 Bars Off S&R Level"
mode = input.string(twoWicks, title="Signal Mode", options=[touch, wick, twoWicks], tooltip="Touch setting means a signal will appear whenever any part of a candle is touching any support or resistance level. One Wick setting means a signal will appear whenever one wick of a candle is touching any support or resistance level AND the candle is green or red according to whether it's touching support or resistance. Two Wicks setting means a signal will appear whenever two wicks out of the last 5 bars are touching a support or resistance level AND the candle is green or red according to whether it's touching support or resistance.", group="Main Settings")
timeFrame = input.timeframe("1D", title="Previous Session To Use", options=["1D", "1W", "1M", "3M", "12M"], tooltip="This indicator gets it's starting value from the previous day, week, month, quart or years data. Daily is good for daytrading, but use longer sessions when looking at longer timeframes. Such as using the yearly when looking at a daily candle chart.", group="Main Settings")
tickerHigh = request.security(syminfo.tickerid, timeFrame, high[1], barmerge.gaps_off, barmerge.lookahead_on)
tickerLow = request.security(syminfo.tickerid, timeFrame, low[1], barmerge.gaps_off, barmerge.lookahead_on)
tickerClose = request.security(syminfo.tickerid, timeFrame, close[1], barmerge.gaps_off, barmerge.lookahead_on)
percDeviation = input.float(1, title="Percent Deviation Per S&R Level", tooltip="This indicator bases it's levels off of a percentage gap from the session close/high/low according to your settings. So if set to 1 then each level will be 1% away from the starting level and each new level is 1% more than the last. For long timeframes use 5-10% and for forex or ETFs that aren't as volatile use .25-.5%. For leveraged ETFs multiply this number by what the leverage of the ETF is. For example SQQQ is a 3x leveraged ETF so use 3% for your deviation percentage.", group="Main Settings")/100
prevClose = "Close of Previous Session"
prevHigh = "High of Previous Session"
prevLow = "Low of Previous Session"
source = input.string(prevClose, title="Starting Level Source", options=[prevClose, prevHigh, prevLow], tooltip="Choose the source used. Default is the previous close as it gives the most accurate levels. You can also choose the previous high or low if you prefer. The session being used for this close/high/open level is determined by the Previous Session To Use setting above.", group="Main Settings")
//Table Positions
bright = position.bottom_right
bleft = position.bottom_left
bcenter = position.bottom_center
tright = position.top_right
tleft = position.top_left
tcenter = position.top_center
mright = position.middle_right
mleft = position.middle_left
mcenter = position.middle_center
tablePosition = input.string(bright, title="Table Position", options=[bright, bleft, bcenter, tright, tleft, tcenter, mright, mleft, mcenter], group="Table Position")
//Turn Lines Or Table On/Off
srOn = input.bool(true, title="Support & Resistance Levels On/Off", group="On/Off Settings")
tableOn = input.bool(true, title="Percentage Gaps Table On/Off", group="On/Off Settings")
arrowOn = input.bool(true, title="Arrow Signals On/Off", group="On/Off Settings")
// S & R Levels
startLevel = tickerClose
if source == "Previous High"
startLevel := tickerHigh
else if source == "Previous Low"
startLevel := tickerLow
deviationAmount = startLevel - (startLevel * (1 - percDeviation))
if close > startLevel
deviationAmount := (startLevel * (1 + percDeviation)) - startLevel
//S&R Line Colors
supportColor = input.color(color.lime, title="Support Line Color", group="Support & Resistance Lines")
resistanceColor = input.color(color.red, title="Resistance Line Color", group="Support & Resistance Lines")
//Linewidth
lw = input.int(1, title="Line Width", minval=1, maxval=4, group="Support & Resistance Lines")
startlw = input.int(4, title="Start Level Line Width", minval=1, maxval=4, group="Support & Resistance Lines")
//Extend Lines Right
extend = input.bool(false, title="Extend Lines Right", group="Support & Resistance Lines")
//Major Level 1
majorLevel1 = input.float(0, title="Major Level 1", tooltip="Set any major levels of support and resistance that you see on the chart in this setting and it will show the level and percentage gaps on your chart.", group="Major Level 1")
majorLevel1Color = input.color(color.blue, title="Major Level 1 Line Color", group="Major Level 1")
majorLevel1Width = input.int(3, title="Major Level 1 Linewidth", minval=1, maxval=4, group="Major Level 1")
extendml1 = input.bool(true, title="Entend Line Right", group="Major Level 1")
//Major Level 2
majorLevel2 = input.float(0, title="Major Level 2", tooltip="Set any major levels of support and resistance that you see on the chart in this setting and it will show the level and percentage gaps on your chart.", group="Major Level 2")
majorLevel2Color = input.color(color.orange, title="Major Level 2 Line Color", group="Major Level 2")
majorLevel2Width = input.int(3, title="Major Level 2 Linewidth", minval=1, maxval=4, group="Major Level 2")
extendml2 = input.bool(true, title="Entend Line Right", group="Major Level 2")
//Major Level 3
majorLevel3 = input.float(0, title="Major Level 3", tooltip="Set any major levels of support and resistance that you see on the chart in this setting and it will show the level and percentage gaps on your chart.", group="Major Level 3")
majorLevel3Color = input.color(color.purple, title="Major Level 3 Line Color", group="Major Level 3")
majorLevel3Width = input.int(3, title="Major Level 3 Linewidth", minval=1, maxval=4, group="Major Level 3")
extendml3 = input.bool(true, title="Entend Line Right", group="Major Level 3")
//Table Position Logic
tpos = position.bottom_right
if tablePosition == bleft
tpos := bleft
if tablePosition == bright
tpos := bright
if tablePosition == bcenter
tpos := position.bottom_center
if tablePosition == tleft
tpos := position.top_left
if tablePosition == tright
tpos := position.top_right
if tablePosition == tcenter
tpos := position.top_center
if tablePosition == mleft
tpos := position.middle_left
if tablePosition == mright
tpos := position.middle_right
if tablePosition == mcenter
tpos := position.middle_center
//Turn Lines Off
if not srOn
startLevel := na
deviationAmount := na
majorLevel1 := na
majorLevel2 := na
majorLevel3 := na
// Support Resistance Levels
supportLevel1 = startLevel - deviationAmount
supportLevel2 = startLevel - (deviationAmount*2)
supportLevel3 = startLevel - (deviationAmount*3)
supportLevel4 = startLevel - (deviationAmount*4)
supportLevel5 = startLevel - (deviationAmount*5)
supportLevel6 = startLevel - (deviationAmount*6)
supportLevel7 = startLevel - (deviationAmount*7)
supportLevel8 = startLevel - (deviationAmount*8)
supportLevel9 = startLevel - (deviationAmount*9)
supportLevel10 = startLevel - (deviationAmount*10)
supportLevel11 = startLevel - (deviationAmount*11)
supportLevel12 = startLevel - (deviationAmount*12)
supportLevel13 = startLevel - (deviationAmount*13)
resistanceLevel1 = startLevel + deviationAmount
resistanceLevel2 = startLevel + (deviationAmount*2)
resistanceLevel3 = startLevel + (deviationAmount*3)
resistanceLevel4 = startLevel + (deviationAmount*4)
resistanceLevel5 = startLevel + (deviationAmount*5)
resistanceLevel6 = startLevel + (deviationAmount*6)
resistanceLevel7 = startLevel + (deviationAmount*7)
resistanceLevel8 = startLevel + (deviationAmount*8)
resistanceLevel9 = startLevel + (deviationAmount*9)
resistanceLevel10 = startLevel + (deviationAmount*10)
resistanceLevel11 = startLevel + (deviationAmount*11)
resistanceLevel12 = startLevel + (deviationAmount*12)
resistanceLevel13 = startLevel + (deviationAmount*13)
//Plot Support Levels
plot(startLevel, "SR Start Level", color= close > startLevel ? supportColor : resistanceColor, linewidth=startlw, style=plot.style_line, trackprice=extend)
plot(supportLevel1, "Support Level 1", color= close > supportLevel1 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel2, "Support Level 2", color= close > supportLevel2 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel3, "Support Level 3", color= close > supportLevel3 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel4, "Support Level 4", color= close > supportLevel4 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel5, "Support Level 5", color= close > supportLevel5 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel6, "Support Level 6", color= close > supportLevel6 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel7, "Support Level 7", color= close > supportLevel7 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel8, "Support Level 8", color= close > supportLevel8 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel9, "Support Level 9", color= close > supportLevel9 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel10, "Support Level 10", color= close > supportLevel10 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel11, "Support Level 11", color= close > supportLevel11 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel12, "Support Level 12", color= close > supportLevel12 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(supportLevel13, "Support Level 13", color= close > supportLevel13 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
//Plot Resistance Levels
plot(resistanceLevel1, "Resistance Level 1", color= close > resistanceLevel1 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel2, "Resistance Level 2", color= close > resistanceLevel2 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel3, "Resistance Level 3", color= close > resistanceLevel3 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel4, "Resistance Level 4", color= close > resistanceLevel4 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel5, "Resistance Level 5", color= close > resistanceLevel5 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel6, "Resistance Level 6", color= close > resistanceLevel6 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel7, "Resistance Level 7", color= close > resistanceLevel7 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel8, "Resistance Level 8", color= close > resistanceLevel8 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel9, "Resistance Level 9", color= close > resistanceLevel9 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel10, "Resistance Level 10", color= close > resistanceLevel10 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel11, "Resistance Level 11", color= close > resistanceLevel11 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel12, "Resistance Level 12", color= close > resistanceLevel12 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
plot(resistanceLevel13, "Resistance Level 13", color= close > resistanceLevel13 ? supportColor : resistanceColor, linewidth=lw, style=plot.style_line, trackprice=extend)
//Plot Major Levels
plot(majorLevel1, "Major Level 1", color=majorLevel1Color, linewidth=majorLevel1Width, style=plot.style_linebr, trackprice=extendml1)
plot(majorLevel2, "Major Level 2", color=majorLevel2Color, linewidth=majorLevel2Width, style=plot.style_linebr, trackprice=extendml2)
plot(majorLevel3, "Major Level 3", color=majorLevel3Color, linewidth=majorLevel3Width, style=plot.style_linebr, trackprice=extendml3)
//Support Alerts
if ta.cross(close, startLevel)
alert("Price Crossing " + str.tostring(startLevel) + " Starting S&R Level", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel1)
alert("Price Crossing " + str.tostring(supportLevel1) + " Support Level 1", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel2)
alert("Price Crossing " + str.tostring(supportLevel2) + " Support Level 2", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel3)
alert("Price Crossing " + str.tostring(supportLevel3) + " Support Level 3", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel4)
alert("Price Crossing " + str.tostring(supportLevel4) + " Support Level 4", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel5)
alert("Price Crossing " + str.tostring(supportLevel5) + " Support Level 5", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel6)
alert("Price Crossing " + str.tostring(supportLevel6) + " Support Level 6", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel7)
alert("Price Crossing " + str.tostring(supportLevel7) + " Support Level 7", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel8)
alert("Price Crossing " + str.tostring(supportLevel8) + " Support Level 8", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel9)
alert("Price Crossing " + str.tostring(supportLevel9) + " Support Level 9", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel10)
alert("Price Crossing " + str.tostring(supportLevel10) + " Support Level 10", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel11)
alert("Price Crossing " + str.tostring(supportLevel11) + " Support Level 11", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel12)
alert("Price Crossing " + str.tostring(supportLevel12) + " Support Level 12", freq=alert.freq_once_per_bar)
if ta.cross(close, supportLevel13)
alert("Price Crossing " + str.tostring(supportLevel13) + " Support Level 13", freq=alert.freq_once_per_bar)
//Resistance Alerts
if ta.cross(close, resistanceLevel1)
alert("Price Crossing " + str.tostring(resistanceLevel1) + " Resistance Level 1", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel2)
alert("Price Crossing " + str.tostring(resistanceLevel2) + " Resistance Level 2", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel3)
alert("Price Crossing " + str.tostring(resistanceLevel3) + " Resistance Level 3", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel4)
alert("Price Crossing " + str.tostring(resistanceLevel4) + " Resistance Level 4", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel5)
alert("Price Crossing " + str.tostring(resistanceLevel5) + " Resistance Level 5", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel6)
alert("Price Crossing " + str.tostring(resistanceLevel6) + " Resistance Level 6", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel7)
alert("Price Crossing " + str.tostring(resistanceLevel7) + " Resistance Level 7", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel8)
alert("Price Crossing " + str.tostring(resistanceLevel8) + " Resistance Level 8", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel9)
alert("Price Crossing " + str.tostring(resistanceLevel9) + " Resistance Level 9", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel10)
alert("Price Crossing " + str.tostring(resistanceLevel10) + " Resistance Level 10", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel11)
alert("Price Crossing " + str.tostring(resistanceLevel11) + " Resistance Level 11", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel12)
alert("Price Crossing " + str.tostring(resistanceLevel12) + " Resistance Level 12", freq=alert.freq_once_per_bar)
if ta.cross(close, resistanceLevel13)
alert("Price Crossing " + str.tostring(resistanceLevel13) + " Resistance Level 13", freq=alert.freq_once_per_bar)
//Percentage Difference Calculations
float priceDiffSup = 0
float priceDiffRes = 0
supLevel = startLevel
resLevel = startLevel + deviationAmount
if close > startLevel and close < resistanceLevel1
priceDiffSup := (close - startLevel) / close * 100
priceDiffRes := (resistanceLevel1 - close) / resistanceLevel1 * 100
resLevel := resistanceLevel1
supLevel := startLevel
else if close > resistanceLevel1 and close < resistanceLevel2
priceDiffSup := (close - resistanceLevel1) / close * 100
priceDiffRes := (resistanceLevel2 - close) / resistanceLevel2 * 100
resLevel := resistanceLevel2
supLevel := resistanceLevel1
else if close > resistanceLevel2 and close < resistanceLevel3
priceDiffSup := (close - resistanceLevel2) / close * 100
priceDiffRes := (resistanceLevel3 - close) / resistanceLevel3 * 100
resLevel := resistanceLevel3
supLevel := resistanceLevel2
else if close > resistanceLevel3 and close < resistanceLevel4
priceDiffSup := (close - resistanceLevel3) / close * 100
priceDiffRes := (resistanceLevel4 - close) / resistanceLevel4 * 100
resLevel := resistanceLevel4
supLevel := resistanceLevel3
else if close > resistanceLevel4 and close < resistanceLevel5
priceDiffSup := (close - resistanceLevel4) / close * 100
priceDiffRes := (resistanceLevel5 - close) / resistanceLevel5 * 100
resLevel := resistanceLevel5
supLevel := resistanceLevel4
else if close > resistanceLevel5 and close < resistanceLevel6
priceDiffSup := (close - resistanceLevel5) / close * 100
priceDiffRes := (resistanceLevel6 - close) / resistanceLevel6 * 100
resLevel := resistanceLevel6
supLevel := resistanceLevel5
else if close > resistanceLevel6 and close < resistanceLevel7
priceDiffSup := (close - resistanceLevel6) / close * 100
priceDiffRes := (resistanceLevel7 - close) / resistanceLevel7 * 100
resLevel := resistanceLevel7
supLevel := resistanceLevel6
else if close > resistanceLevel7 and close < resistanceLevel8
priceDiffSup := (close - resistanceLevel7) / close * 100
priceDiffRes := (resistanceLevel8 - close) / resistanceLevel8 * 100
resLevel := resistanceLevel8
supLevel := resistanceLevel7
else if close > resistanceLevel8 and close < resistanceLevel9
priceDiffSup := (close - resistanceLevel8) / close * 100
priceDiffRes := (resistanceLevel9 - close) / resistanceLevel9 * 100
resLevel := resistanceLevel9
supLevel := resistanceLevel8
else if close > resistanceLevel9 and close < resistanceLevel10
priceDiffSup := (close - resistanceLevel9) / close * 100
priceDiffRes := (resistanceLevel10 - close) / resistanceLevel10 * 100
resLevel := resistanceLevel10
supLevel := resistanceLevel9
else if close > resistanceLevel10 and close < resistanceLevel11
priceDiffSup := (close - resistanceLevel10) / close * 100
priceDiffRes := (resistanceLevel11 - close) / resistanceLevel11 * 100
resLevel := resistanceLevel11
supLevel := resistanceLevel10
else if close > resistanceLevel11 and close < resistanceLevel12
priceDiffSup := (close - resistanceLevel11) / close * 100
priceDiffRes := (resistanceLevel12 - close) / resistanceLevel12 * 100
resLevel := resistanceLevel12
supLevel := resistanceLevel11
else if close < resistanceLevel12 and close > resistanceLevel13
priceDiffSup := (close - resistanceLevel12) / close * -100
priceDiffRes := (resistanceLevel13 - close) / resistanceLevel13 * 100
resLevel := resistanceLevel13
supLevel := resistanceLevel12
else if close < startLevel and close > supportLevel1
priceDiffRes := (close - startLevel) / close * -100
priceDiffSup := (supportLevel1 - close) / supportLevel1 * -100
resLevel := startLevel
supLevel := supportLevel1
else if close < supportLevel1 and close > supportLevel2
priceDiffRes := (close - supportLevel1) / close * -100
priceDiffSup := (supportLevel2 - close) / supportLevel2 * -100
resLevel := supportLevel1
supLevel := supportLevel2
else if close < supportLevel2 and close > supportLevel3
priceDiffRes := (close - supportLevel2) / close * -100
priceDiffSup := (supportLevel3 - close) / supportLevel3 * -100
resLevel := supportLevel2
supLevel := supportLevel3
else if close < supportLevel3 and close > supportLevel4
priceDiffRes := (close - supportLevel3) / close * -100
priceDiffSup := (supportLevel4 - close) / supportLevel4 * -100
resLevel := supportLevel3
supLevel := supportLevel4
else if close < supportLevel4 and close > supportLevel5
priceDiffRes := (close - supportLevel4) / close * -100
priceDiffSup := (supportLevel5 - close) / supportLevel5 * -100
resLevel := supportLevel4
supLevel := supportLevel5
else if close < supportLevel5 and close > supportLevel6
priceDiffRes := (close - supportLevel5) / close * -100
priceDiffSup := (supportLevel6 - close) / supportLevel6 * -100
resLevel := supportLevel5
supLevel := supportLevel6
else if close < supportLevel6 and close > supportLevel7
priceDiffRes := (close - supportLevel6) / close * -100
priceDiffSup := (supportLevel7 - close) / supportLevel7 * -100
resLevel := supportLevel6
supLevel := supportLevel7
else if close < supportLevel7 and close > supportLevel8
priceDiffRes := (close - supportLevel7) / close * -100
priceDiffSup := (supportLevel8 - close) / supportLevel8 * -100
resLevel := supportLevel7
supLevel := supportLevel8
else if close < supportLevel8 and close > supportLevel9
priceDiffRes := (close - supportLevel8) / close * -100
priceDiffSup := (supportLevel9 - close) / supportLevel9 * -100
resLevel := supportLevel8
supLevel := supportLevel9
else if close < supportLevel9 and close > supportLevel10
priceDiffRes := (close - supportLevel9) / close * -100
priceDiffSup := (supportLevel10 - close) / supportLevel10 * -100
resLevel := supportLevel9
supLevel := supportLevel10
else if close < supportLevel10 and close > supportLevel11
priceDiffRes := (close - supportLevel10) / close * -100
priceDiffSup := (supportLevel11 - close) / supportLevel11 * -100
resLevel := supportLevel10
supLevel := supportLevel11
else if close < supportLevel11 and close > supportLevel12
priceDiffRes := (close - supportLevel11) / close * -100
priceDiffSup := (supportLevel12 - close) / supportLevel12 * -100
resLevel := supportLevel11
supLevel := supportLevel12
else if close < supportLevel12 and close > supportLevel13
priceDiffRes := (close - supportLevel12) / close * -100
priceDiffSup := (supportLevel13 - close) / supportLevel13 * -100
resLevel := supportLevel12
supLevel := supportLevel13
//Major Level Percentage Differences
priceDiffML1 = float(0)
if majorLevel1 != 0 and close > majorLevel1
priceDiffML1 := (close - majorLevel1) / close * 100
else if majorLevel1 != 0 and close < majorLevel1
priceDiffML1 := (majorLevel1 - close) / majorLevel1 * 100
priceDiffML2 = float(0)
if majorLevel2 != 0 and close > majorLevel2
priceDiffML2 := (close - majorLevel2) / close * 100
else if majorLevel2 != 0 and close < majorLevel2
priceDiffML2 := (majorLevel2 - close) / majorLevel2 * 100
priceDiffML3 = float(0)
if majorLevel3 != 0 and close > majorLevel3
priceDiffML3 := (close - majorLevel3) / close * 100
else if majorLevel3 != 0 and close < majorLevel3
priceDiffML3 := (majorLevel3 - close) / majorLevel3 * 100
//Create price difference table data
percentFromSup = str.tostring(priceDiffSup, format.percent) + ' from Support'
percentFromRes = str.tostring(priceDiffRes, format.percent) + ' from Resistance'
percentFromML1 = str.tostring(priceDiffML1, format.percent) + ' from ' + str.tostring(majorLevel1)
percentFromML2 = str.tostring(priceDiffML2, format.percent) + ' from ' + str.tostring(majorLevel2)
percentFromML3 = str.tostring(priceDiffML3, format.percent) + ' from ' + str.tostring(majorLevel3)
//Signals From Wicks at S & R Levels
//
// Candle Patterns For Signals
bullEngulf = open <= close[1] and close >= high[1]
bearEngulf = open >= close[1] and close <= low[1]
greenCandle = close > open
redCandle = close < open
buySignal = false
sellSignal = false
touchSignal = false
// Starting Level
if mode == twoWicks and greenCandle and startLevel > low and startLevel < close and startLevel < open and startLevel > low[1] and startLevel < close[1] and startLevel < open[1] or
mode == twoWicks and greenCandle and startLevel > low and startLevel < close and startLevel < open and startLevel > low[2] and startLevel < close[2] and startLevel < open[2] or
mode == twoWicks and greenCandle and startLevel > low and startLevel < close and startLevel < open and startLevel > low[3] and startLevel < close[3] and startLevel < open[3] or
mode == twoWicks and greenCandle and startLevel > low and startLevel < close and startLevel < open and startLevel > low[4] and startLevel < close[4] and startLevel < open[4] or
mode == twoWicks and greenCandle and startLevel > low and startLevel < close and startLevel < open and startLevel > low[5] and startLevel < close[5] and startLevel < open[5]
buySignal := true
if mode == twoWicks and redCandle and startLevel < high and startLevel > close and startLevel > open and startLevel < high[1] and startLevel > close[1] and startLevel > open[1] or
mode == twoWicks and redCandle and startLevel < high and startLevel > close and startLevel > open and startLevel < high[2] and startLevel > close[2] and startLevel > open[2] or
mode == twoWicks and redCandle and startLevel < high and startLevel > close and startLevel > open and startLevel < high[3] and startLevel > close[3] and startLevel > open[3] or
mode == twoWicks and redCandle and startLevel < high and startLevel > close and startLevel > open and startLevel < high[4] and startLevel > close[4] and startLevel > open[4] or
mode == twoWicks and redCandle and startLevel < high and startLevel > close and startLevel > open and startLevel < high[5] and startLevel > close[5] and startLevel > open[5]
sellSignal := true
if mode == wick and greenCandle and startLevel > low and startLevel < close and startLevel < open
buySignal := true
if mode == wick and redCandle and startLevel < high and startLevel > close and startLevel > open
sellSignal := true
if mode == touch and startLevel > low and startLevel < high
touchSignal := true
// S&R 1 Level
if mode == twoWicks and greenCandle and supportLevel1 > low and supportLevel1 < close and supportLevel1 < open and supportLevel1 > low[1] and supportLevel1 < close[1] and supportLevel1 < open[1] or
mode == twoWicks and greenCandle and supportLevel1 > low and supportLevel1 < close and supportLevel1 < open and supportLevel1 > low[2] and supportLevel1 < close[2] and supportLevel1 < open[2] or
mode == twoWicks and greenCandle and supportLevel1 > low and supportLevel1 < close and supportLevel1 < open and supportLevel1 > low[3] and supportLevel1 < close[3] and supportLevel1 < open[3] or
mode == twoWicks and greenCandle and supportLevel1 > low and supportLevel1 < close and supportLevel1 < open and supportLevel1 > low[4] and supportLevel1 < close[4] and supportLevel1 < open[4] or
mode == twoWicks and greenCandle and supportLevel1 > low and supportLevel1 < close and supportLevel1 < open and supportLevel1 > low[5] and supportLevel1 < close[5] and supportLevel1 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel1 < high and supportLevel1 > close and supportLevel1 > open and supportLevel1 < high[1] and supportLevel1 > close[1] and supportLevel1 > open[1] or
mode == twoWicks and redCandle and supportLevel1 < high and supportLevel1 > close and supportLevel1 > open and supportLevel1 < high[2] and supportLevel1 > close[2] and supportLevel1 > open[2] or
mode == twoWicks and redCandle and supportLevel1 < high and supportLevel1 > close and supportLevel1 > open and supportLevel1 < high[3] and supportLevel1 > close[3] and supportLevel1 > open[3] or
mode == twoWicks and redCandle and supportLevel1 < high and supportLevel1 > close and supportLevel1 > open and supportLevel1 < high[4] and supportLevel1 > close[4] and supportLevel1 > open[4] or
mode == twoWicks and redCandle and supportLevel1 < high and supportLevel1 > close and supportLevel1 > open and supportLevel1 < high[5] and supportLevel1 > close[5] and supportLevel1 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel1 > low and supportLevel1 < close and supportLevel1 < open
buySignal := true
if mode == wick and redCandle and supportLevel1 < high and supportLevel1 > close and supportLevel1 > open
sellSignal := true
if mode == touch and supportLevel1 > low and supportLevel1 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel1 > low and resistanceLevel1 < close and resistanceLevel1 < open and resistanceLevel1 > low[1] and resistanceLevel1 < close[1] and resistanceLevel1 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel1 > low and resistanceLevel1 < close and resistanceLevel1 < open and resistanceLevel1 > low[2] and resistanceLevel1 < close[2] and resistanceLevel1 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel1 > low and resistanceLevel1 < close and resistanceLevel1 < open and resistanceLevel1 > low[3] and resistanceLevel1 < close[3] and resistanceLevel1 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel1 > low and resistanceLevel1 < close and resistanceLevel1 < open and resistanceLevel1 > low[4] and resistanceLevel1 < close[4] and resistanceLevel1 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel1 > low and resistanceLevel1 < close and resistanceLevel1 < open and resistanceLevel1 > low[5] and resistanceLevel1 < close[5] and resistanceLevel1 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel1 < high and resistanceLevel1 > close and resistanceLevel1 > open and resistanceLevel1 < high[1] and resistanceLevel1 > close[1] and resistanceLevel1 > open[1] or
mode == twoWicks and redCandle and resistanceLevel1 < high and resistanceLevel1 > close and resistanceLevel1 > open and resistanceLevel1 < high[2] and resistanceLevel1 > close[2] and resistanceLevel1 > open[2] or
mode == twoWicks and redCandle and resistanceLevel1 < high and resistanceLevel1 > close and resistanceLevel1 > open and resistanceLevel1 < high[3] and resistanceLevel1 > close[3] and resistanceLevel1 > open[3] or
mode == twoWicks and redCandle and resistanceLevel1 < high and resistanceLevel1 > close and resistanceLevel1 > open and resistanceLevel1 < high[4] and resistanceLevel1 > close[4] and resistanceLevel1 > open[4] or
mode == twoWicks and redCandle and resistanceLevel1 < high and resistanceLevel1 > close and resistanceLevel1 > open and resistanceLevel1 < high[5] and resistanceLevel1 > close[5] and resistanceLevel1 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel1 > low and resistanceLevel1 < close and resistanceLevel1 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel1 < high and resistanceLevel1 > close and resistanceLevel1 > open
sellSignal := true
if mode == touch and resistanceLevel1 > low and resistanceLevel1 < high
touchSignal := true
// S&R 2 Level
if mode == twoWicks and greenCandle and supportLevel2 > low and supportLevel2 < close and supportLevel2 < open and supportLevel2 > low[1] and supportLevel2 < close[1] and supportLevel2 < open[1] or
mode == twoWicks and greenCandle and supportLevel2 > low and supportLevel2 < close and supportLevel2 < open and supportLevel2 > low[2] and supportLevel2 < close[2] and supportLevel2 < open[2] or
mode == twoWicks and greenCandle and supportLevel2 > low and supportLevel2 < close and supportLevel2 < open and supportLevel2 > low[3] and supportLevel2 < close[3] and supportLevel2 < open[3] or
mode == twoWicks and greenCandle and supportLevel2 > low and supportLevel2 < close and supportLevel2 < open and supportLevel2 > low[4] and supportLevel2 < close[4] and supportLevel2 < open[4] or
mode == twoWicks and greenCandle and supportLevel2 > low and supportLevel2 < close and supportLevel2 < open and supportLevel2 > low[5] and supportLevel2 < close[5] and supportLevel2 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel2 < high and supportLevel2 > close and supportLevel2 > open and supportLevel2 < high[1] and supportLevel2 > close[1] and supportLevel2 > open[1] or
mode == twoWicks and redCandle and supportLevel2 < high and supportLevel2 > close and supportLevel2 > open and supportLevel2 < high[2] and supportLevel2 > close[2] and supportLevel2 > open[2] or
mode == twoWicks and redCandle and supportLevel2 < high and supportLevel2 > close and supportLevel2 > open and supportLevel2 < high[3] and supportLevel2 > close[3] and supportLevel2 > open[3] or
mode == twoWicks and redCandle and supportLevel2 < high and supportLevel2 > close and supportLevel2 > open and supportLevel2 < high[4] and supportLevel2 > close[4] and supportLevel2 > open[4] or
mode == twoWicks and redCandle and supportLevel2 < high and supportLevel2 > close and supportLevel2 > open and supportLevel2 < high[5] and supportLevel2 > close[5] and supportLevel2 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel2 > low and supportLevel2 < close and supportLevel2 < open
buySignal := true
if mode == wick and redCandle and supportLevel2 < high and supportLevel2 > close and supportLevel2 > open
sellSignal := true
if mode == touch and supportLevel2 > low and supportLevel2 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel2 > low and resistanceLevel2 < close and resistanceLevel2 < open and resistanceLevel2 > low[1] and resistanceLevel2 < close[1] and resistanceLevel2 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel2 > low and resistanceLevel2 < close and resistanceLevel2 < open and resistanceLevel2 > low[2] and resistanceLevel2 < close[2] and resistanceLevel2 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel2 > low and resistanceLevel2 < close and resistanceLevel2 < open and resistanceLevel2 > low[3] and resistanceLevel2 < close[3] and resistanceLevel2 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel2 > low and resistanceLevel2 < close and resistanceLevel2 < open and resistanceLevel2 > low[4] and resistanceLevel2 < close[4] and resistanceLevel2 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel2 > low and resistanceLevel2 < close and resistanceLevel2 < open and resistanceLevel2 > low[5] and resistanceLevel2 < close[5] and resistanceLevel2 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel2 < high and resistanceLevel2 > close and resistanceLevel2 > open and resistanceLevel2 < high[1] and resistanceLevel2 > close[1] and resistanceLevel2 > open[1] or
mode == twoWicks and redCandle and resistanceLevel2 < high and resistanceLevel2 > close and resistanceLevel2 > open and resistanceLevel2 < high[2] and resistanceLevel2 > close[2] and resistanceLevel2 > open[2] or
mode == twoWicks and redCandle and resistanceLevel2 < high and resistanceLevel2 > close and resistanceLevel2 > open and resistanceLevel2 < high[3] and resistanceLevel2 > close[3] and resistanceLevel2 > open[3] or
mode == twoWicks and redCandle and resistanceLevel2 < high and resistanceLevel2 > close and resistanceLevel2 > open and resistanceLevel2 < high[4] and resistanceLevel2 > close[4] and resistanceLevel2 > open[4] or
mode == twoWicks and redCandle and resistanceLevel2 < high and resistanceLevel2 > close and resistanceLevel2 > open and resistanceLevel2 < high[5] and resistanceLevel2 > close[5] and resistanceLevel2 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel2 > low and resistanceLevel2 < close and resistanceLevel2 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel2 < high and resistanceLevel2 > close and resistanceLevel2 > open
sellSignal := true
if mode == touch and resistanceLevel2 > low and resistanceLevel2 < high
touchSignal := true
// S&R 3 Level
if mode == twoWicks and greenCandle and supportLevel3 > low and supportLevel3 < close and supportLevel3 < open and supportLevel3 > low[1] and supportLevel3 < close[1] and supportLevel3 < open[1] or
mode == twoWicks and greenCandle and supportLevel3 > low and supportLevel3 < close and supportLevel3 < open and supportLevel3 > low[2] and supportLevel3 < close[2] and supportLevel3 < open[2] or
mode == twoWicks and greenCandle and supportLevel3 > low and supportLevel3 < close and supportLevel3 < open and supportLevel3 > low[3] and supportLevel3 < close[3] and supportLevel3 < open[3] or
mode == twoWicks and greenCandle and supportLevel3 > low and supportLevel3 < close and supportLevel3 < open and supportLevel3 > low[4] and supportLevel3 < close[4] and supportLevel3 < open[4] or
mode == twoWicks and greenCandle and supportLevel3 > low and supportLevel3 < close and supportLevel3 < open and supportLevel3 > low[5] and supportLevel3 < close[5] and supportLevel3 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel3 < high and supportLevel3 > close and supportLevel3 > open and supportLevel3 < high[1] and supportLevel3 > close[1] and supportLevel3 > open[1] or
mode == twoWicks and redCandle and supportLevel3 < high and supportLevel3 > close and supportLevel3 > open and supportLevel3 < high[2] and supportLevel3 > close[2] and supportLevel3 > open[2] or
mode == twoWicks and redCandle and supportLevel3 < high and supportLevel3 > close and supportLevel3 > open and supportLevel3 < high[3] and supportLevel3 > close[3] and supportLevel3 > open[3] or
mode == twoWicks and redCandle and supportLevel3 < high and supportLevel3 > close and supportLevel3 > open and supportLevel3 < high[4] and supportLevel3 > close[4] and supportLevel3 > open[4] or
mode == twoWicks and redCandle and supportLevel3 < high and supportLevel3 > close and supportLevel3 > open and supportLevel3 < high[5] and supportLevel3 > close[5] and supportLevel3 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel3 > low and supportLevel3 < close and supportLevel3 < open
buySignal := true
if mode == wick and redCandle and supportLevel3 < high and supportLevel3 > close and supportLevel3 > open
sellSignal := true
if mode == touch and supportLevel3 > low and supportLevel3 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel3 > low and resistanceLevel3 < close and resistanceLevel3 < open and resistanceLevel3 > low[1] and resistanceLevel3 < close[1] and resistanceLevel3 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel3 > low and resistanceLevel3 < close and resistanceLevel3 < open and resistanceLevel3 > low[2] and resistanceLevel3 < close[2] and resistanceLevel3 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel3 > low and resistanceLevel3 < close and resistanceLevel3 < open and resistanceLevel3 > low[3] and resistanceLevel3 < close[3] and resistanceLevel3 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel3 > low and resistanceLevel3 < close and resistanceLevel3 < open and resistanceLevel3 > low[4] and resistanceLevel3 < close[4] and resistanceLevel3 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel3 > low and resistanceLevel3 < close and resistanceLevel3 < open and resistanceLevel3 > low[5] and resistanceLevel3 < close[5] and resistanceLevel3 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel3 < high and resistanceLevel3 > close and resistanceLevel3 > open and resistanceLevel3 < high[1] and resistanceLevel3 > close[1] and resistanceLevel3 > open[1] or
mode == twoWicks and redCandle and resistanceLevel3 < high and resistanceLevel3 > close and resistanceLevel3 > open and resistanceLevel3 < high[2] and resistanceLevel3 > close[2] and resistanceLevel3 > open[2] or
mode == twoWicks and redCandle and resistanceLevel3 < high and resistanceLevel3 > close and resistanceLevel3 > open and resistanceLevel3 < high[3] and resistanceLevel3 > close[3] and resistanceLevel3 > open[3] or
mode == twoWicks and redCandle and resistanceLevel3 < high and resistanceLevel3 > close and resistanceLevel3 > open and resistanceLevel3 < high[4] and resistanceLevel3 > close[4] and resistanceLevel3 > open[4] or
mode == twoWicks and redCandle and resistanceLevel3 < high and resistanceLevel3 > close and resistanceLevel3 > open and resistanceLevel3 < high[5] and resistanceLevel3 > close[5] and resistanceLevel3 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel3 > low and resistanceLevel3 < close and resistanceLevel3 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel3 < high and resistanceLevel3 > close and resistanceLevel3 > open
sellSignal := true
if mode == touch and resistanceLevel3 > low and resistanceLevel3 < high
touchSignal := true
// S&R 4 Level
if mode == twoWicks and greenCandle and supportLevel4 > low and supportLevel4 < close and supportLevel4 < open and supportLevel4 > low[1] and supportLevel4 < close[1] and supportLevel4 < open[1] or
mode == twoWicks and greenCandle and supportLevel4 > low and supportLevel4 < close and supportLevel4 < open and supportLevel4 > low[2] and supportLevel4 < close[2] and supportLevel4 < open[2] or
mode == twoWicks and greenCandle and supportLevel4 > low and supportLevel4 < close and supportLevel4 < open and supportLevel4 > low[3] and supportLevel4 < close[3] and supportLevel4 < open[3] or
mode == twoWicks and greenCandle and supportLevel4 > low and supportLevel4 < close and supportLevel4 < open and supportLevel4 > low[4] and supportLevel4 < close[4] and supportLevel4 < open[4] or
mode == twoWicks and greenCandle and supportLevel4 > low and supportLevel4 < close and supportLevel4 < open and supportLevel4 > low[5] and supportLevel4 < close[5] and supportLevel4 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel4 < high and supportLevel4 > close and supportLevel4 > open and supportLevel4 < high[1] and supportLevel4 > close[1] and supportLevel4 > open[1] or
mode == twoWicks and redCandle and supportLevel4 < high and supportLevel4 > close and supportLevel4 > open and supportLevel4 < high[2] and supportLevel4 > close[2] and supportLevel4 > open[2] or
mode == twoWicks and redCandle and supportLevel4 < high and supportLevel4 > close and supportLevel4 > open and supportLevel4 < high[3] and supportLevel4 > close[3] and supportLevel4 > open[3] or
mode == twoWicks and redCandle and supportLevel4 < high and supportLevel4 > close and supportLevel4 > open and supportLevel4 < high[4] and supportLevel4 > close[4] and supportLevel4 > open[4] or
mode == twoWicks and redCandle and supportLevel4 < high and supportLevel4 > close and supportLevel4 > open and supportLevel4 < high[5] and supportLevel4 > close[5] and supportLevel4 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel4 > low and supportLevel4 < close and supportLevel4 < open
buySignal := true
if mode == wick and redCandle and supportLevel4 < high and supportLevel4 > close and supportLevel4 > open
sellSignal := true
if mode == touch and supportLevel4 > low and supportLevel4 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel4 > low and resistanceLevel4 < close and resistanceLevel4 < open and resistanceLevel4 > low[1] and resistanceLevel4 < close[1] and resistanceLevel4 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel4 > low and resistanceLevel4 < close and resistanceLevel4 < open and resistanceLevel4 > low[2] and resistanceLevel4 < close[2] and resistanceLevel4 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel4 > low and resistanceLevel4 < close and resistanceLevel4 < open and resistanceLevel4 > low[3] and resistanceLevel4 < close[3] and resistanceLevel4 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel4 > low and resistanceLevel4 < close and resistanceLevel4 < open and resistanceLevel4 > low[4] and resistanceLevel4 < close[4] and resistanceLevel4 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel4 > low and resistanceLevel4 < close and resistanceLevel4 < open and resistanceLevel4 > low[5] and resistanceLevel4 < close[5] and resistanceLevel4 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel4 < high and resistanceLevel4 > close and resistanceLevel4 > open and resistanceLevel4 < high[1] and resistanceLevel4 > close[1] and resistanceLevel4 > open[1] or
mode == twoWicks and redCandle and resistanceLevel4 < high and resistanceLevel4 > close and resistanceLevel4 > open and resistanceLevel4 < high[2] and resistanceLevel4 > close[2] and resistanceLevel4 > open[2] or
mode == twoWicks and redCandle and resistanceLevel4 < high and resistanceLevel4 > close and resistanceLevel4 > open and resistanceLevel4 < high[3] and resistanceLevel4 > close[3] and resistanceLevel4 > open[3] or
mode == twoWicks and redCandle and resistanceLevel4 < high and resistanceLevel4 > close and resistanceLevel4 > open and resistanceLevel4 < high[4] and resistanceLevel4 > close[4] and resistanceLevel4 > open[4] or
mode == twoWicks and redCandle and resistanceLevel4 < high and resistanceLevel4 > close and resistanceLevel4 > open and resistanceLevel4 < high[5] and resistanceLevel4 > close[5] and resistanceLevel4 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel4 > low and resistanceLevel4 < close and resistanceLevel4 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel4 < high and resistanceLevel4 > close and resistanceLevel4 > open
sellSignal := true
if mode == touch and resistanceLevel4 > low and resistanceLevel4 < high
touchSignal := true
// S&R 5 Level
if mode == twoWicks and greenCandle and supportLevel5 > low and supportLevel5 < close and supportLevel5 < open and supportLevel5 > low[1] and supportLevel5 < close[1] and supportLevel5 < open[1] or
mode == twoWicks and greenCandle and supportLevel5 > low and supportLevel5 < close and supportLevel5 < open and supportLevel5 > low[2] and supportLevel5 < close[2] and supportLevel5 < open[2] or
mode == twoWicks and greenCandle and supportLevel5 > low and supportLevel5 < close and supportLevel5 < open and supportLevel5 > low[3] and supportLevel5 < close[3] and supportLevel5 < open[3] or
mode == twoWicks and greenCandle and supportLevel5 > low and supportLevel5 < close and supportLevel5 < open and supportLevel5 > low[4] and supportLevel5 < close[4] and supportLevel5 < open[4] or
mode == twoWicks and greenCandle and supportLevel5 > low and supportLevel5 < close and supportLevel5 < open and supportLevel5 > low[5] and supportLevel5 < close[5] and supportLevel5 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel5 < high and supportLevel5 > close and supportLevel5 > open and supportLevel5 < high[1] and supportLevel5 > close[1] and supportLevel5 > open[1] or
mode == twoWicks and redCandle and supportLevel5 < high and supportLevel5 > close and supportLevel5 > open and supportLevel5 < high[2] and supportLevel5 > close[2] and supportLevel5 > open[2] or
mode == twoWicks and redCandle and supportLevel5 < high and supportLevel5 > close and supportLevel5 > open and supportLevel5 < high[3] and supportLevel5 > close[3] and supportLevel5 > open[3] or
mode == twoWicks and redCandle and supportLevel5 < high and supportLevel5 > close and supportLevel5 > open and supportLevel5 < high[4] and supportLevel5 > close[4] and supportLevel5 > open[4] or
mode == twoWicks and redCandle and supportLevel5 < high and supportLevel5 > close and supportLevel5 > open and supportLevel5 < high[5] and supportLevel5 > close[5] and supportLevel5 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel5 > low and supportLevel5 < close and supportLevel5 < open
buySignal := true
if mode == wick and redCandle and supportLevel5 < high and supportLevel5 > close and supportLevel5 > open
sellSignal := true
if mode == touch and supportLevel5 > low and supportLevel5 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel5 > low and resistanceLevel5 < close and resistanceLevel5 < open and resistanceLevel5 > low[1] and resistanceLevel5 < close[1] and resistanceLevel5 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel5 > low and resistanceLevel5 < close and resistanceLevel5 < open and resistanceLevel5 > low[2] and resistanceLevel5 < close[2] and resistanceLevel5 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel5 > low and resistanceLevel5 < close and resistanceLevel5 < open and resistanceLevel5 > low[3] and resistanceLevel5 < close[3] and resistanceLevel5 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel5 > low and resistanceLevel5 < close and resistanceLevel5 < open and resistanceLevel5 > low[4] and resistanceLevel5 < close[4] and resistanceLevel5 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel5 > low and resistanceLevel5 < close and resistanceLevel5 < open and resistanceLevel5 > low[5] and resistanceLevel5 < close[5] and resistanceLevel5 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel5 < high and resistanceLevel5 > close and resistanceLevel5 > open and resistanceLevel5 < high[1] and resistanceLevel5 > close[1] and resistanceLevel5 > open[1] or
mode == twoWicks and redCandle and resistanceLevel5 < high and resistanceLevel5 > close and resistanceLevel5 > open and resistanceLevel5 < high[2] and resistanceLevel5 > close[2] and resistanceLevel5 > open[2] or
mode == twoWicks and redCandle and resistanceLevel5 < high and resistanceLevel5 > close and resistanceLevel5 > open and resistanceLevel5 < high[3] and resistanceLevel5 > close[3] and resistanceLevel5 > open[3] or
mode == twoWicks and redCandle and resistanceLevel5 < high and resistanceLevel5 > close and resistanceLevel5 > open and resistanceLevel5 < high[4] and resistanceLevel5 > close[4] and resistanceLevel5 > open[4] or
mode == twoWicks and redCandle and resistanceLevel5 < high and resistanceLevel5 > close and resistanceLevel5 > open and resistanceLevel5 < high[5] and resistanceLevel5 > close[5] and resistanceLevel5 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel5 > low and resistanceLevel5 < close and resistanceLevel5 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel5 < high and resistanceLevel5 > close and resistanceLevel5 > open
sellSignal := true
if mode == touch and resistanceLevel5 > low and resistanceLevel5 < high
touchSignal := true
// S&R 6 Level
if mode == twoWicks and greenCandle and supportLevel6 > low and supportLevel6 < close and supportLevel6 < open and supportLevel6 > low[1] and supportLevel6 < close[1] and supportLevel6 < open[1] or
mode == twoWicks and greenCandle and supportLevel6 > low and supportLevel6 < close and supportLevel6 < open and supportLevel6 > low[2] and supportLevel6 < close[2] and supportLevel6 < open[2] or
mode == twoWicks and greenCandle and supportLevel6 > low and supportLevel6 < close and supportLevel6 < open and supportLevel6 > low[3] and supportLevel6 < close[3] and supportLevel6 < open[3] or
mode == twoWicks and greenCandle and supportLevel6 > low and supportLevel6 < close and supportLevel6 < open and supportLevel6 > low[4] and supportLevel6 < close[4] and supportLevel6 < open[4] or
mode == twoWicks and greenCandle and supportLevel6 > low and supportLevel6 < close and supportLevel6 < open and supportLevel6 > low[5] and supportLevel6 < close[5] and supportLevel6 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel6 < high and supportLevel6 > close and supportLevel6 > open and supportLevel6 < high[1] and supportLevel6 > close[1] and supportLevel6 > open[1] or
mode == twoWicks and redCandle and supportLevel6 < high and supportLevel6 > close and supportLevel6 > open and supportLevel6 < high[2] and supportLevel6 > close[2] and supportLevel6 > open[2] or
mode == twoWicks and redCandle and supportLevel6 < high and supportLevel6 > close and supportLevel6 > open and supportLevel6 < high[3] and supportLevel6 > close[3] and supportLevel6 > open[3] or
mode == twoWicks and redCandle and supportLevel6 < high and supportLevel6 > close and supportLevel6 > open and supportLevel6 < high[4] and supportLevel6 > close[4] and supportLevel6 > open[4] or
mode == twoWicks and redCandle and supportLevel6 < high and supportLevel6 > close and supportLevel6 > open and supportLevel6 < high[5] and supportLevel6 > close[5] and supportLevel6 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel6 > low and supportLevel6 < close and supportLevel6 < open
buySignal := true
if mode == wick and redCandle and supportLevel6 < high and supportLevel6 > close and supportLevel6 > open
sellSignal := true
if mode == touch and supportLevel6 > low and supportLevel6 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel6 > low and resistanceLevel6 < close and resistanceLevel6 < open and resistanceLevel6 > low[1] and resistanceLevel6 < close[1] and resistanceLevel6 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel6 > low and resistanceLevel6 < close and resistanceLevel6 < open and resistanceLevel6 > low[2] and resistanceLevel6 < close[2] and resistanceLevel6 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel6 > low and resistanceLevel6 < close and resistanceLevel6 < open and resistanceLevel6 > low[3] and resistanceLevel6 < close[3] and resistanceLevel6 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel6 > low and resistanceLevel6 < close and resistanceLevel6 < open and resistanceLevel6 > low[4] and resistanceLevel6 < close[4] and resistanceLevel6 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel6 > low and resistanceLevel6 < close and resistanceLevel6 < open and resistanceLevel6 > low[5] and resistanceLevel6 < close[5] and resistanceLevel6 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel6 < high and resistanceLevel6 > close and resistanceLevel6 > open and resistanceLevel6 < high[1] and resistanceLevel6 > close[1] and resistanceLevel6 > open[1] or
mode == twoWicks and redCandle and resistanceLevel6 < high and resistanceLevel6 > close and resistanceLevel6 > open and resistanceLevel6 < high[2] and resistanceLevel6 > close[2] and resistanceLevel6 > open[2] or
mode == twoWicks and redCandle and resistanceLevel6 < high and resistanceLevel6 > close and resistanceLevel6 > open and resistanceLevel6 < high[3] and resistanceLevel6 > close[3] and resistanceLevel6 > open[3] or
mode == twoWicks and redCandle and resistanceLevel6 < high and resistanceLevel6 > close and resistanceLevel6 > open and resistanceLevel6 < high[4] and resistanceLevel6 > close[4] and resistanceLevel6 > open[4] or
mode == twoWicks and redCandle and resistanceLevel6 < high and resistanceLevel6 > close and resistanceLevel6 > open and resistanceLevel6 < high[5] and resistanceLevel6 > close[5] and resistanceLevel6 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel6 > low and resistanceLevel6 < close and resistanceLevel6 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel6 < high and resistanceLevel6 > close and resistanceLevel6 > open
sellSignal := true
if mode == touch and resistanceLevel6 > low and resistanceLevel6 < high
touchSignal := true
// S&R 7 Level
if mode == twoWicks and greenCandle and supportLevel7 > low and supportLevel7 < close and supportLevel7 < open and supportLevel7 > low[1] and supportLevel7 < close[1] and supportLevel7 < open[1] or
mode == twoWicks and greenCandle and supportLevel7 > low and supportLevel7 < close and supportLevel7 < open and supportLevel7 > low[2] and supportLevel7 < close[2] and supportLevel7 < open[2] or
mode == twoWicks and greenCandle and supportLevel7 > low and supportLevel7 < close and supportLevel7 < open and supportLevel7 > low[3] and supportLevel7 < close[3] and supportLevel7 < open[3] or
mode == twoWicks and greenCandle and supportLevel7 > low and supportLevel7 < close and supportLevel7 < open and supportLevel7 > low[4] and supportLevel7 < close[4] and supportLevel7 < open[4] or
mode == twoWicks and greenCandle and supportLevel7 > low and supportLevel7 < close and supportLevel7 < open and supportLevel7 > low[5] and supportLevel7 < close[5] and supportLevel7 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel7 < high and supportLevel7 > close and supportLevel7 > open and supportLevel7 < high[1] and supportLevel7 > close[1] and supportLevel7 > open[1] or
mode == twoWicks and redCandle and supportLevel7 < high and supportLevel7 > close and supportLevel7 > open and supportLevel7 < high[2] and supportLevel7 > close[2] and supportLevel7 > open[2] or
mode == twoWicks and redCandle and supportLevel7 < high and supportLevel7 > close and supportLevel7 > open and supportLevel7 < high[3] and supportLevel7 > close[3] and supportLevel7 > open[3] or
mode == twoWicks and redCandle and supportLevel7 < high and supportLevel7 > close and supportLevel7 > open and supportLevel7 < high[4] and supportLevel7 > close[4] and supportLevel7 > open[4] or
mode == twoWicks and redCandle and supportLevel7 < high and supportLevel7 > close and supportLevel7 > open and supportLevel7 < high[5] and supportLevel7 > close[5] and supportLevel7 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel7 > low and supportLevel7 < close and supportLevel7 < open
buySignal := true
if mode == wick and redCandle and supportLevel7 < high and supportLevel7 > close and supportLevel7 > open
sellSignal := true
if mode == touch and supportLevel7 > low and supportLevel7 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel7 > low and resistanceLevel7 < close and resistanceLevel7 < open and resistanceLevel7 > low[1] and resistanceLevel7 < close[1] and resistanceLevel7 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel7 > low and resistanceLevel7 < close and resistanceLevel7 < open and resistanceLevel7 > low[2] and resistanceLevel7 < close[2] and resistanceLevel7 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel7 > low and resistanceLevel7 < close and resistanceLevel7 < open and resistanceLevel7 > low[3] and resistanceLevel7 < close[3] and resistanceLevel7 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel7 > low and resistanceLevel7 < close and resistanceLevel7 < open and resistanceLevel7 > low[4] and resistanceLevel7 < close[4] and resistanceLevel7 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel7 > low and resistanceLevel7 < close and resistanceLevel7 < open and resistanceLevel7 > low[5] and resistanceLevel7 < close[5] and resistanceLevel7 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel7 < high and resistanceLevel7 > close and resistanceLevel7 > open and resistanceLevel7 < high[1] and resistanceLevel7 > close[1] and resistanceLevel7 > open[1] or
mode == twoWicks and redCandle and resistanceLevel7 < high and resistanceLevel7 > close and resistanceLevel7 > open and resistanceLevel7 < high[2] and resistanceLevel7 > close[2] and resistanceLevel7 > open[2] or
mode == twoWicks and redCandle and resistanceLevel7 < high and resistanceLevel7 > close and resistanceLevel7 > open and resistanceLevel7 < high[3] and resistanceLevel7 > close[3] and resistanceLevel7 > open[3] or
mode == twoWicks and redCandle and resistanceLevel7 < high and resistanceLevel7 > close and resistanceLevel7 > open and resistanceLevel7 < high[4] and resistanceLevel7 > close[4] and resistanceLevel7 > open[4] or
mode == twoWicks and redCandle and resistanceLevel7 < high and resistanceLevel7 > close and resistanceLevel7 > open and resistanceLevel7 < high[5] and resistanceLevel7 > close[5] and resistanceLevel7 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel7 > low and resistanceLevel7 < close and resistanceLevel7 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel7 < high and resistanceLevel7 > close and resistanceLevel7 > open
sellSignal := true
if mode == touch and resistanceLevel7 > low and resistanceLevel7 < high
touchSignal := true
// S&R 8 Level
if mode == twoWicks and greenCandle and supportLevel8 > low and supportLevel8 < close and supportLevel8 < open and supportLevel8 > low[1] and supportLevel8 < close[1] and supportLevel8 < open[1] or
mode == twoWicks and greenCandle and supportLevel8 > low and supportLevel8 < close and supportLevel8 < open and supportLevel8 > low[2] and supportLevel8 < close[2] and supportLevel8 < open[2] or
mode == twoWicks and greenCandle and supportLevel8 > low and supportLevel8 < close and supportLevel8 < open and supportLevel8 > low[3] and supportLevel8 < close[3] and supportLevel8 < open[3] or
mode == twoWicks and greenCandle and supportLevel8 > low and supportLevel8 < close and supportLevel8 < open and supportLevel8 > low[4] and supportLevel8 < close[4] and supportLevel8 < open[4] or
mode == twoWicks and greenCandle and supportLevel8 > low and supportLevel8 < close and supportLevel8 < open and supportLevel8 > low[5] and supportLevel8 < close[5] and supportLevel8 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel8 < high and supportLevel8 > close and supportLevel8 > open and supportLevel8 < high[1] and supportLevel8 > close[1] and supportLevel8 > open[1] or
mode == twoWicks and redCandle and supportLevel8 < high and supportLevel8 > close and supportLevel8 > open and supportLevel8 < high[2] and supportLevel8 > close[2] and supportLevel8 > open[2] or
mode == twoWicks and redCandle and supportLevel8 < high and supportLevel8 > close and supportLevel8 > open and supportLevel8 < high[3] and supportLevel8 > close[3] and supportLevel8 > open[3] or
mode == twoWicks and redCandle and supportLevel8 < high and supportLevel8 > close and supportLevel8 > open and supportLevel8 < high[4] and supportLevel8 > close[4] and supportLevel8 > open[4] or
mode == twoWicks and redCandle and supportLevel8 < high and supportLevel8 > close and supportLevel8 > open and supportLevel8 < high[5] and supportLevel8 > close[5] and supportLevel8 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel8 > low and supportLevel8 < close and supportLevel8 < open
buySignal := true
if mode == wick and redCandle and supportLevel8 < high and supportLevel8 > close and supportLevel8 > open
sellSignal := true
if mode == touch and supportLevel8 > low and supportLevel8 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel8 > low and resistanceLevel8 < close and resistanceLevel8 < open and resistanceLevel8 > low[1] and resistanceLevel8 < close[1] and resistanceLevel8 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel8 > low and resistanceLevel8 < close and resistanceLevel8 < open and resistanceLevel8 > low[2] and resistanceLevel8 < close[2] and resistanceLevel8 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel8 > low and resistanceLevel8 < close and resistanceLevel8 < open and resistanceLevel8 > low[3] and resistanceLevel8 < close[3] and resistanceLevel8 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel8 > low and resistanceLevel8 < close and resistanceLevel8 < open and resistanceLevel8 > low[4] and resistanceLevel8 < close[4] and resistanceLevel8 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel8 > low and resistanceLevel8 < close and resistanceLevel8 < open and resistanceLevel8 > low[5] and resistanceLevel8 < close[5] and resistanceLevel8 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel8 < high and resistanceLevel8 > close and resistanceLevel8 > open and resistanceLevel8 < high[1] and resistanceLevel8 > close[1] and resistanceLevel8 > open[1] or
mode == twoWicks and redCandle and resistanceLevel8 < high and resistanceLevel8 > close and resistanceLevel8 > open and resistanceLevel8 < high[2] and resistanceLevel8 > close[2] and resistanceLevel8 > open[2] or
mode == twoWicks and redCandle and resistanceLevel8 < high and resistanceLevel8 > close and resistanceLevel8 > open and resistanceLevel8 < high[3] and resistanceLevel8 > close[3] and resistanceLevel8 > open[3] or
mode == twoWicks and redCandle and resistanceLevel8 < high and resistanceLevel8 > close and resistanceLevel8 > open and resistanceLevel8 < high[4] and resistanceLevel8 > close[4] and resistanceLevel8 > open[4] or
mode == twoWicks and redCandle and resistanceLevel8 < high and resistanceLevel8 > close and resistanceLevel8 > open and resistanceLevel8 < high[5] and resistanceLevel8 > close[5] and resistanceLevel8 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel8 > low and resistanceLevel8 < close and resistanceLevel8 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel8 < high and resistanceLevel8 > close and resistanceLevel8 > open
sellSignal := true
if mode == touch and resistanceLevel8 > low and resistanceLevel8 < high
touchSignal := true
// S&R 9 Level
if mode == twoWicks and greenCandle and supportLevel9 > low and supportLevel9 < close and supportLevel9 < open and supportLevel9 > low[1] and supportLevel9 < close[1] and supportLevel9 < open[1] or
mode == twoWicks and greenCandle and supportLevel9 > low and supportLevel9 < close and supportLevel9 < open and supportLevel9 > low[2] and supportLevel9 < close[2] and supportLevel9 < open[2] or
mode == twoWicks and greenCandle and supportLevel9 > low and supportLevel9 < close and supportLevel9 < open and supportLevel9 > low[3] and supportLevel9 < close[3] and supportLevel9 < open[3] or
mode == twoWicks and greenCandle and supportLevel9 > low and supportLevel9 < close and supportLevel9 < open and supportLevel9 > low[4] and supportLevel9 < close[4] and supportLevel9 < open[4] or
mode == twoWicks and greenCandle and supportLevel9 > low and supportLevel9 < close and supportLevel9 < open and supportLevel9 > low[5] and supportLevel9 < close[5] and supportLevel9 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel9 < high and supportLevel9 > close and supportLevel9 > open and supportLevel9 < high[1] and supportLevel9 > close[1] and supportLevel9 > open[1] or
mode == twoWicks and redCandle and supportLevel9 < high and supportLevel9 > close and supportLevel9 > open and supportLevel9 < high[2] and supportLevel9 > close[2] and supportLevel9 > open[2] or
mode == twoWicks and redCandle and supportLevel9 < high and supportLevel9 > close and supportLevel9 > open and supportLevel9 < high[3] and supportLevel9 > close[3] and supportLevel9 > open[3] or
mode == twoWicks and redCandle and supportLevel9 < high and supportLevel9 > close and supportLevel9 > open and supportLevel9 < high[4] and supportLevel9 > close[4] and supportLevel9 > open[4] or
mode == twoWicks and redCandle and supportLevel9 < high and supportLevel9 > close and supportLevel9 > open and supportLevel9 < high[5] and supportLevel9 > close[5] and supportLevel9 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel9 > low and supportLevel9 < close and supportLevel9 < open
buySignal := true
if mode == wick and redCandle and supportLevel9 < high and supportLevel9 > close and supportLevel9 > open
sellSignal := true
if mode == touch and supportLevel9 > low and supportLevel9 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel9 > low and resistanceLevel9 < close and resistanceLevel9 < open and resistanceLevel9 > low[1] and resistanceLevel9 < close[1] and resistanceLevel9 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel9 > low and resistanceLevel9 < close and resistanceLevel9 < open and resistanceLevel9 > low[2] and resistanceLevel9 < close[2] and resistanceLevel9 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel9 > low and resistanceLevel9 < close and resistanceLevel9 < open and resistanceLevel9 > low[3] and resistanceLevel9 < close[3] and resistanceLevel9 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel9 > low and resistanceLevel9 < close and resistanceLevel9 < open and resistanceLevel9 > low[4] and resistanceLevel9 < close[4] and resistanceLevel9 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel9 > low and resistanceLevel9 < close and resistanceLevel9 < open and resistanceLevel9 > low[5] and resistanceLevel9 < close[5] and resistanceLevel9 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel9 < high and resistanceLevel9 > close and resistanceLevel9 > open and resistanceLevel9 < high[1] and resistanceLevel9 > close[1] and resistanceLevel9 > open[1] or
mode == twoWicks and redCandle and resistanceLevel9 < high and resistanceLevel9 > close and resistanceLevel9 > open and resistanceLevel9 < high[2] and resistanceLevel9 > close[2] and resistanceLevel9 > open[2] or
mode == twoWicks and redCandle and resistanceLevel9 < high and resistanceLevel9 > close and resistanceLevel9 > open and resistanceLevel9 < high[3] and resistanceLevel9 > close[3] and resistanceLevel9 > open[3] or
mode == twoWicks and redCandle and resistanceLevel9 < high and resistanceLevel9 > close and resistanceLevel9 > open and resistanceLevel9 < high[4] and resistanceLevel9 > close[4] and resistanceLevel9 > open[4] or
mode == twoWicks and redCandle and resistanceLevel9 < high and resistanceLevel9 > close and resistanceLevel9 > open and resistanceLevel9 < high[5] and resistanceLevel9 > close[5] and resistanceLevel9 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel9 > low and resistanceLevel9 < close and resistanceLevel9 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel9 < high and resistanceLevel9 > close and resistanceLevel9 > open
sellSignal := true
if mode == touch and resistanceLevel9 > low and resistanceLevel9 < high
touchSignal := true
// S&R 10 Level
if mode == twoWicks and greenCandle and supportLevel10 > low and supportLevel10 < close and supportLevel10 < open and supportLevel10 > low[1] and supportLevel10 < close[1] and supportLevel10 < open[1] or
mode == twoWicks and greenCandle and supportLevel10 > low and supportLevel10 < close and supportLevel10 < open and supportLevel10 > low[2] and supportLevel10 < close[2] and supportLevel10 < open[2] or
mode == twoWicks and greenCandle and supportLevel10 > low and supportLevel10 < close and supportLevel10 < open and supportLevel10 > low[3] and supportLevel10 < close[3] and supportLevel10 < open[3] or
mode == twoWicks and greenCandle and supportLevel10 > low and supportLevel10 < close and supportLevel10 < open and supportLevel10 > low[4] and supportLevel10 < close[4] and supportLevel10 < open[4] or
mode == twoWicks and greenCandle and supportLevel10 > low and supportLevel10 < close and supportLevel10 < open and supportLevel10 > low[5] and supportLevel10 < close[5] and supportLevel10 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel10 < high and supportLevel10 > close and supportLevel10 > open and supportLevel10 < high[1] and supportLevel10 > close[1] and supportLevel10 > open[1] or
mode == twoWicks and redCandle and supportLevel10 < high and supportLevel10 > close and supportLevel10 > open and supportLevel10 < high[2] and supportLevel10 > close[2] and supportLevel10 > open[2] or
mode == twoWicks and redCandle and supportLevel10 < high and supportLevel10 > close and supportLevel10 > open and supportLevel10 < high[3] and supportLevel10 > close[3] and supportLevel10 > open[3] or
mode == twoWicks and redCandle and supportLevel10 < high and supportLevel10 > close and supportLevel10 > open and supportLevel10 < high[4] and supportLevel10 > close[4] and supportLevel10 > open[4] or
mode == twoWicks and redCandle and supportLevel10 < high and supportLevel10 > close and supportLevel10 > open and supportLevel10 < high[5] and supportLevel10 > close[5] and supportLevel10 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel10 > low and supportLevel10 < close and supportLevel10 < open
buySignal := true
if mode == wick and redCandle and supportLevel10 < high and supportLevel10 > close and supportLevel10 > open
sellSignal := true
if mode == touch and supportLevel10 > low and supportLevel10 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel10 > low and resistanceLevel10 < close and resistanceLevel10 < open and resistanceLevel10 > low[1] and resistanceLevel10 < close[1] and resistanceLevel10 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel10 > low and resistanceLevel10 < close and resistanceLevel10 < open and resistanceLevel10 > low[2] and resistanceLevel10 < close[2] and resistanceLevel10 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel10 > low and resistanceLevel10 < close and resistanceLevel10 < open and resistanceLevel10 > low[3] and resistanceLevel10 < close[3] and resistanceLevel10 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel10 > low and resistanceLevel10 < close and resistanceLevel10 < open and resistanceLevel10 > low[4] and resistanceLevel10 < close[4] and resistanceLevel10 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel10 > low and resistanceLevel10 < close and resistanceLevel10 < open and resistanceLevel10 > low[5] and resistanceLevel10 < close[5] and resistanceLevel10 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel10 < high and resistanceLevel10 > close and resistanceLevel10 > open and resistanceLevel10 < high[1] and resistanceLevel10 > close[1] and resistanceLevel10 > open[1] or
mode == twoWicks and redCandle and resistanceLevel10 < high and resistanceLevel10 > close and resistanceLevel10 > open and resistanceLevel10 < high[2] and resistanceLevel10 > close[2] and resistanceLevel10 > open[2] or
mode == twoWicks and redCandle and resistanceLevel10 < high and resistanceLevel10 > close and resistanceLevel10 > open and resistanceLevel10 < high[3] and resistanceLevel10 > close[3] and resistanceLevel10 > open[3] or
mode == twoWicks and redCandle and resistanceLevel10 < high and resistanceLevel10 > close and resistanceLevel10 > open and resistanceLevel10 < high[4] and resistanceLevel10 > close[4] and resistanceLevel10 > open[4] or
mode == twoWicks and redCandle and resistanceLevel10 < high and resistanceLevel10 > close and resistanceLevel10 > open and resistanceLevel10 < high[5] and resistanceLevel10 > close[5] and resistanceLevel10 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel10 > low and resistanceLevel10 < close and resistanceLevel10 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel10 < high and resistanceLevel10 > close and resistanceLevel10 > open
sellSignal := true
if mode == touch and resistanceLevel10 > low and resistanceLevel10 < high
touchSignal := true
// S&R 11 Level
if mode == twoWicks and greenCandle and supportLevel11 > low and supportLevel11 < close and supportLevel11 < open and supportLevel11 > low[1] and supportLevel11 < close[1] and supportLevel11 < open[1] or
mode == twoWicks and greenCandle and supportLevel11 > low and supportLevel11 < close and supportLevel11 < open and supportLevel11 > low[2] and supportLevel11 < close[2] and supportLevel11 < open[2] or
mode == twoWicks and greenCandle and supportLevel11 > low and supportLevel11 < close and supportLevel11 < open and supportLevel11 > low[3] and supportLevel11 < close[3] and supportLevel11 < open[3] or
mode == twoWicks and greenCandle and supportLevel11 > low and supportLevel11 < close and supportLevel11 < open and supportLevel11 > low[4] and supportLevel11 < close[4] and supportLevel11 < open[4] or
mode == twoWicks and greenCandle and supportLevel11 > low and supportLevel11 < close and supportLevel11 < open and supportLevel11 > low[5] and supportLevel11 < close[5] and supportLevel11 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel11 < high and supportLevel11 > close and supportLevel11 > open and supportLevel11 < high[1] and supportLevel11 > close[1] and supportLevel11 > open[1] or
mode == twoWicks and redCandle and supportLevel11 < high and supportLevel11 > close and supportLevel11 > open and supportLevel11 < high[2] and supportLevel11 > close[2] and supportLevel11 > open[2] or
mode == twoWicks and redCandle and supportLevel11 < high and supportLevel11 > close and supportLevel11 > open and supportLevel11 < high[3] and supportLevel11 > close[3] and supportLevel11 > open[3] or
mode == twoWicks and redCandle and supportLevel11 < high and supportLevel11 > close and supportLevel11 > open and supportLevel11 < high[4] and supportLevel11 > close[4] and supportLevel11 > open[4] or
mode == twoWicks and redCandle and supportLevel11 < high and supportLevel11 > close and supportLevel11 > open and supportLevel11 < high[5] and supportLevel11 > close[5] and supportLevel11 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel11 > low and supportLevel11 < close and supportLevel11 < open
buySignal := true
if mode == wick and redCandle and supportLevel11 < high and supportLevel11 > close and supportLevel11 > open
sellSignal := true
if mode == touch and supportLevel11 > low and supportLevel11 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel11 > low and resistanceLevel11 < close and resistanceLevel11 < open and resistanceLevel11 > low[1] and resistanceLevel11 < close[1] and resistanceLevel11 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel11 > low and resistanceLevel11 < close and resistanceLevel11 < open and resistanceLevel11 > low[2] and resistanceLevel11 < close[2] and resistanceLevel11 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel11 > low and resistanceLevel11 < close and resistanceLevel11 < open and resistanceLevel11 > low[3] and resistanceLevel11 < close[3] and resistanceLevel11 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel11 > low and resistanceLevel11 < close and resistanceLevel11 < open and resistanceLevel11 > low[4] and resistanceLevel11 < close[4] and resistanceLevel11 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel11 > low and resistanceLevel11 < close and resistanceLevel11 < open and resistanceLevel11 > low[5] and resistanceLevel11 < close[5] and resistanceLevel11 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel11 < high and resistanceLevel11 > close and resistanceLevel11 > open and resistanceLevel11 < high[1] and resistanceLevel11 > close[1] and resistanceLevel11 > open[1] or
mode == twoWicks and redCandle and resistanceLevel11 < high and resistanceLevel11 > close and resistanceLevel11 > open and resistanceLevel11 < high[2] and resistanceLevel11 > close[2] and resistanceLevel11 > open[2] or
mode == twoWicks and redCandle and resistanceLevel11 < high and resistanceLevel11 > close and resistanceLevel11 > open and resistanceLevel11 < high[3] and resistanceLevel11 > close[3] and resistanceLevel11 > open[3] or
mode == twoWicks and redCandle and resistanceLevel11 < high and resistanceLevel11 > close and resistanceLevel11 > open and resistanceLevel11 < high[4] and resistanceLevel11 > close[4] and resistanceLevel11 > open[4] or
mode == twoWicks and redCandle and resistanceLevel11 < high and resistanceLevel11 > close and resistanceLevel11 > open and resistanceLevel11 < high[5] and resistanceLevel11 > close[5] and resistanceLevel11 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel11 > low and resistanceLevel11 < close and resistanceLevel11 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel11 < high and resistanceLevel11 > close and resistanceLevel11 > open
sellSignal := true
if mode == touch and resistanceLevel11 > low and resistanceLevel11 < high
touchSignal := true
// S&R 12 Level
if mode == twoWicks and greenCandle and supportLevel12 > low and supportLevel12 < close and supportLevel12 < open and supportLevel12 > low[1] and supportLevel12 < close[1] and supportLevel12 < open[1] or
mode == twoWicks and greenCandle and supportLevel12 > low and supportLevel12 < close and supportLevel12 < open and supportLevel12 > low[2] and supportLevel12 < close[2] and supportLevel12 < open[2] or
mode == twoWicks and greenCandle and supportLevel12 > low and supportLevel12 < close and supportLevel12 < open and supportLevel12 > low[3] and supportLevel12 < close[3] and supportLevel12 < open[3] or
mode == twoWicks and greenCandle and supportLevel12 > low and supportLevel12 < close and supportLevel12 < open and supportLevel12 > low[4] and supportLevel12 < close[4] and supportLevel12 < open[4] or
mode == twoWicks and greenCandle and supportLevel12 > low and supportLevel12 < close and supportLevel12 < open and supportLevel12 > low[5] and supportLevel12 < close[5] and supportLevel12 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel12 < high and supportLevel12 > close and supportLevel12 > open and supportLevel12 < high[1] and supportLevel12 > close[1] and supportLevel12 > open[1] or
mode == twoWicks and redCandle and supportLevel12 < high and supportLevel12 > close and supportLevel12 > open and supportLevel12 < high[2] and supportLevel12 > close[2] and supportLevel12 > open[2] or
mode == twoWicks and redCandle and supportLevel12 < high and supportLevel12 > close and supportLevel12 > open and supportLevel12 < high[3] and supportLevel12 > close[3] and supportLevel12 > open[3] or
mode == twoWicks and redCandle and supportLevel12 < high and supportLevel12 > close and supportLevel12 > open and supportLevel12 < high[4] and supportLevel12 > close[4] and supportLevel12 > open[4] or
mode == twoWicks and redCandle and supportLevel12 < high and supportLevel12 > close and supportLevel12 > open and supportLevel12 < high[5] and supportLevel12 > close[5] and supportLevel12 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel12 > low and supportLevel12 < close and supportLevel12 < open
buySignal := true
if mode == wick and redCandle and supportLevel12 < high and supportLevel12 > close and supportLevel12 > open
sellSignal := true
if mode == touch and supportLevel12 > low and supportLevel12 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel12 > low and resistanceLevel12 < close and resistanceLevel12 < open and resistanceLevel12 > low[1] and resistanceLevel12 < close[1] and resistanceLevel12 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel12 > low and resistanceLevel12 < close and resistanceLevel12 < open and resistanceLevel12 > low[2] and resistanceLevel12 < close[2] and resistanceLevel12 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel12 > low and resistanceLevel12 < close and resistanceLevel12 < open and resistanceLevel12 > low[3] and resistanceLevel12 < close[3] and resistanceLevel12 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel12 > low and resistanceLevel12 < close and resistanceLevel12 < open and resistanceLevel12 > low[4] and resistanceLevel12 < close[4] and resistanceLevel12 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel12 > low and resistanceLevel12 < close and resistanceLevel12 < open and resistanceLevel12 > low[5] and resistanceLevel12 < close[5] and resistanceLevel12 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel12 < high and resistanceLevel12 > close and resistanceLevel12 > open and resistanceLevel12 < high[1] and resistanceLevel12 > close[1] and resistanceLevel12 > open[1] or
mode == twoWicks and redCandle and resistanceLevel12 < high and resistanceLevel12 > close and resistanceLevel12 > open and resistanceLevel12 < high[2] and resistanceLevel12 > close[2] and resistanceLevel12 > open[2] or
mode == twoWicks and redCandle and resistanceLevel12 < high and resistanceLevel12 > close and resistanceLevel12 > open and resistanceLevel12 < high[3] and resistanceLevel12 > close[3] and resistanceLevel12 > open[3] or
mode == twoWicks and redCandle and resistanceLevel12 < high and resistanceLevel12 > close and resistanceLevel12 > open and resistanceLevel12 < high[4] and resistanceLevel12 > close[4] and resistanceLevel12 > open[4] or
mode == twoWicks and redCandle and resistanceLevel12 < high and resistanceLevel12 > close and resistanceLevel12 > open and resistanceLevel12 < high[5] and resistanceLevel12 > close[5] and resistanceLevel12 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel12 > low and resistanceLevel12 < close and resistanceLevel12 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel12 < high and resistanceLevel12 > close and resistanceLevel12 > open
sellSignal := true
if mode == touch and resistanceLevel12 > low and resistanceLevel12 < high
touchSignal := true
// S&R 13 Level
if mode == twoWicks and greenCandle and supportLevel13 > low and supportLevel13 < close and supportLevel13 < open and supportLevel13 > low[1] and supportLevel13 < close[1] and supportLevel13 < open[1] or
mode == twoWicks and greenCandle and supportLevel13 > low and supportLevel13 < close and supportLevel13 < open and supportLevel13 > low[2] and supportLevel13 < close[2] and supportLevel13 < open[2] or
mode == twoWicks and greenCandle and supportLevel13 > low and supportLevel13 < close and supportLevel13 < open and supportLevel13 > low[3] and supportLevel13 < close[3] and supportLevel13 < open[3] or
mode == twoWicks and greenCandle and supportLevel13 > low and supportLevel13 < close and supportLevel13 < open and supportLevel13 > low[4] and supportLevel13 < close[4] and supportLevel13 < open[4] or
mode == twoWicks and greenCandle and supportLevel13 > low and supportLevel13 < close and supportLevel13 < open and supportLevel13 > low[5] and supportLevel13 < close[5] and supportLevel13 < open[5]
buySignal := true
if mode == twoWicks and redCandle and supportLevel13 < high and supportLevel13 > close and supportLevel13 > open and supportLevel13 < high[1] and supportLevel13 > close[1] and supportLevel13 > open[1] or
mode == twoWicks and redCandle and supportLevel13 < high and supportLevel13 > close and supportLevel13 > open and supportLevel13 < high[2] and supportLevel13 > close[2] and supportLevel13 > open[2] or
mode == twoWicks and redCandle and supportLevel13 < high and supportLevel13 > close and supportLevel13 > open and supportLevel13 < high[3] and supportLevel13 > close[3] and supportLevel13 > open[3] or
mode == twoWicks and redCandle and supportLevel13 < high and supportLevel13 > close and supportLevel13 > open and supportLevel13 < high[4] and supportLevel13 > close[4] and supportLevel13 > open[4] or
mode == twoWicks and redCandle and supportLevel13 < high and supportLevel13 > close and supportLevel13 > open and supportLevel13 < high[5] and supportLevel13 > close[5] and supportLevel13 > open[5]
sellSignal := true
if mode == wick and greenCandle and supportLevel13 > low and supportLevel13 < close and supportLevel13 < open
buySignal := true
if mode == wick and redCandle and supportLevel13 < high and supportLevel13 > close and supportLevel13 > open
sellSignal := true
if mode == touch and supportLevel13 > low and supportLevel13 < high
touchSignal := true
if mode == twoWicks and greenCandle and resistanceLevel13 > low and resistanceLevel13 < close and resistanceLevel13 < open and resistanceLevel13 > low[1] and resistanceLevel13 < close[1] and resistanceLevel13 < open[1] or
mode == twoWicks and greenCandle and resistanceLevel13 > low and resistanceLevel13 < close and resistanceLevel13 < open and resistanceLevel13 > low[2] and resistanceLevel13 < close[2] and resistanceLevel13 < open[2] or
mode == twoWicks and greenCandle and resistanceLevel13 > low and resistanceLevel13 < close and resistanceLevel13 < open and resistanceLevel13 > low[3] and resistanceLevel13 < close[3] and resistanceLevel13 < open[3] or
mode == twoWicks and greenCandle and resistanceLevel13 > low and resistanceLevel13 < close and resistanceLevel13 < open and resistanceLevel13 > low[4] and resistanceLevel13 < close[4] and resistanceLevel13 < open[4] or
mode == twoWicks and greenCandle and resistanceLevel13 > low and resistanceLevel13 < close and resistanceLevel13 < open and resistanceLevel13 > low[5] and resistanceLevel13 < close[5] and resistanceLevel13 < open[5]
buySignal := true
if mode == twoWicks and redCandle and resistanceLevel13 < high and resistanceLevel13 > close and resistanceLevel13 > open and resistanceLevel13 < high[1] and resistanceLevel13 > close[1] and resistanceLevel13 > open[1] or
mode == twoWicks and redCandle and resistanceLevel13 < high and resistanceLevel13 > close and resistanceLevel13 > open and resistanceLevel13 < high[2] and resistanceLevel13 > close[2] and resistanceLevel13 > open[2] or
mode == twoWicks and redCandle and resistanceLevel13 < high and resistanceLevel13 > close and resistanceLevel13 > open and resistanceLevel13 < high[3] and resistanceLevel13 > close[3] and resistanceLevel13 > open[3] or
mode == twoWicks and redCandle and resistanceLevel13 < high and resistanceLevel13 > close and resistanceLevel13 > open and resistanceLevel13 < high[4] and resistanceLevel13 > close[4] and resistanceLevel13 > open[4] or
mode == twoWicks and redCandle and resistanceLevel13 < high and resistanceLevel13 > close and resistanceLevel13 > open and resistanceLevel13 < high[5] and resistanceLevel13 > close[5] and resistanceLevel13 > open[5]
sellSignal := true
if mode == wick and greenCandle and resistanceLevel13 > low and resistanceLevel13 < close and resistanceLevel13 < open
buySignal := true
if mode == wick and redCandle and resistanceLevel13 < high and resistanceLevel13 > close and resistanceLevel13 > open
sellSignal := true
if mode == touch and resistanceLevel13 > low and resistanceLevel13 < high
touchSignal := true
// Plot S&R Level Touches & Wicks Signals
plotchar(arrowOn ? buySignal : na, title="Buy Signal", char="🠕", location=location.belowbar, color=color.lime, size=size.normal)
plotchar(arrowOn ? sellSignal : na, title="Sell Signal", char="🠗", location=location.abovebar, color=color.red, size=size.normal)
plotchar(arrowOn ? touchSignal : na, title="Touch Signal", char="🠗", location=location.abovebar, color=color.aqua, size=size.normal)
//Remove Label When No Major Level Is Given
if majorLevel1 == 0
percentFromML1 := na
if majorLevel2 == 0
percentFromML2 := na
if majorLevel3 == 0
percentFromML3 := na
//Plot Price Difference Table
dataTable = table.new(tpos, columns=1, rows=14, bgcolor=color.blue)
if barstate.islast and tableOn and srOn
table.cell(table_id=dataTable, column=0, row=0, text=percentFromRes, height=0, text_color=color.white, text_halign=text.align_left, text_valign= text.align_center, bgcolor=resistanceColor)
table.cell(table_id=dataTable, column=0, row=1, text=percentFromSup, height=0, text_color=color.white, text_halign=text.align_left, text_valign= text.align_center, bgcolor=supportColor)
table.cell(table_id=dataTable, column=0, row=2, text=percentFromML1, height=0, text_color=color.white, text_halign=text.align_left, text_valign= text.align_center, bgcolor=majorLevel1Color)
table.cell(table_id=dataTable, column=0, row=3, text=percentFromML2, height=0, text_color=color.white, text_halign=text.align_left, text_valign= text.align_center, bgcolor=majorLevel2Color)
table.cell(table_id=dataTable, column=0, row=4, text=percentFromML3, height=0, text_color=color.white, text_halign=text.align_left, text_valign= text.align_center, bgcolor=majorLevel3Color)