Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //@version=4
- study("Zig Zag High Low", overlay = true)
- length = input(4, title = "High/Low length")
- h = highest(high, length * 2 + 1)
- l = lowest(low, length * 2 + 1)
- f_isMin(len) =>
- l == low[len]
- f_isMax(len) =>
- h == high[len]
- var dirUp = false
- var lastLow = high * 100
- var lastHigh = 0.0
- var timeLow = bar_index
- var timeHigh = bar_index
- var line li = na
- f_drawLine() =>
- _li_color = dirUp ? color.teal : color.orange
- line.new(
- timeHigh - length, lastHigh,
- timeLow - length, lastLow,
- xloc.bar_index, color=_li_color, width=2
- )
- if dirUp
- if (f_isMin(length) and low[length] < lastLow)
- lastLow := low[length]
- timeLow := bar_index
- line.delete(li)
- li := f_drawLine()
- if (f_isMax(length) and high[length] > lastLow)
- lastHigh := high[length]
- timeHigh := bar_index
- dirUp := false
- li := f_drawLine()
- if not dirUp
- if (f_isMax(length) and high[length] > lastHigh)
- lastHigh := high[length]
- timeHigh := bar_index
- line.delete(li)
- li := f_drawLine()
- if f_isMin(length) and low[length] < lastHigh
- lastLow := low[length]
- timeLow := bar_index
- dirUp := true
- li := f_drawLine()
- if (f_isMax(length) and high[length] > lastLow)
- lastHigh := high[length]
- timeHigh := bar_index
- dirUp := false
- li := f_drawLine()
Advertisement
Add Comment
Please, Sign In to add comment