OPEN-SOURCE SCRIPT

Highs, Lows, BOS, and Reversals

//version=5
indicator("Highs, Lows, BOS, and Reversals", overlay=true)

// User Input
length = input.int(10, minval=1, title="Length")
bosThreshold = input.float(0.5, title="BOS Threshold (%)") / 100 // BOS threshold percentage

// Highs and Lows Calculation
highestHigh = ta.highest(high, length)
lowestLow = ta.lowest(low, length)

// Plotting Highs and Lows as Lines
plot(highestHigh, color=color.red, linewidth=2, title="Highest High")
plot(lowestLow, color=color.green, linewidth=2, title="Lowest Low")

// Detecting Break of Structure (BOS)
var float previousHigh = na
var float previousLow = na
var bool bosUp = false
var bool bosDown = false

if (not na(previousHigh) and high > previousHigh)
bosUp := true
if (not na(previousLow) and low < previousLow)
bosDown := true

// BOS Conditions and Plotting
bosUpCondition = bosUp and high > previousHigh
bosDownCondition = bosDown and low < previousLow

plotshape(bosUpCondition, location=location.abovebar, color=color.blue, style=shape.labelup, title="BOS Up")
plotshape(bosDownCondition, location=location.belowbar, color=color.orange, style=shape.labeldown, title="BOS Down")

// Reversal Condition (Potential Reversal after BOS)
reversalUp = bosUpCondition and close > highestHigh
reversalDown = bosDownCondition and close < lowestLow

plotshape(reversalUp, location=location.abovebar, color=color.green, style=shape.labelup, title="Reversal Up")
plotshape(reversalDown, location=location.belowbar, color=color.red, style=shape.labeldown, title="Reversal Down")

// Store High and Low for Next Bar
previousHigh := highestHigh
previousLow := lowestLow

// Optional: Plot lines to visualize the highs and lows (for better clarity)
plotlineHigh = line.new(bar_index[length], highestHigh, bar_index, highestHigh, color=color.red, width=1, style=line.style_dotted)
plotlineLow = line.new(bar_index[length], lowestLow, bar_index, lowestLow, color=color.green, width=1, style=line.style_dotted)
Chart patterns

Open-source script

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

Want to use this script on a chart?

Disclaimer