OPEN-SOURCE SCRIPT

Swing Break Indicator

101
//version=5
indicator("Swing Break Indicator", overlay=true)

// Input for swing length
swingLength = input(5, title="Swing Length")

// Identify swing high and swing low
swingHigh = ta.highest(high, swingLength)
swingLow = ta.lowest(low, swingLength)

// Store previous swing values
var float prevSwingHigh = na
var float prevSwingLow = na
var float lastSwingHigh = na
var float lastSwingLow = na

if high == swingHigh
prevSwingHigh := lastSwingHigh
lastSwingHigh := swingHigh

if low == swingLow
prevSwingLow := lastSwingLow
lastSwingLow := swingLow

// Conditions for Buy and Sell signals
buySignal = low < prevSwingHigh and ta.crossover(low, prevSwingHigh)
sellSignal = high > prevSwingLow and ta.crossunder(high, prevSwingLow)

// Plot Buy and Sell labels
labelPosition = 20 // Offset for label placement
if buySignal
label.new(bar_index, low - labelPosition * syminfo.mintick, "BUY", color=color.green, textcolor=color.white, style=label.style_label_down)
if sellSignal
label.new(bar_index, high + labelPosition * syminfo.mintick, "SELL", color=color.red, textcolor=color.white, style=label.style_label_up)

Aviso legal

As informações e publicações não devem ser e não constituem conselhos ou recomendações financeiras, de investimento, de negociação ou de qualquer outro tipo, fornecidas ou endossadas pela TradingView. Leia mais em Termos de uso.