OPEN-SOURCE SCRIPT
mohamed rebouh zigzag

//
// mohamed rebouh
//version=5
//
// THIS CODE IS BASED FROM THE MT4 ZIGZAG INDICATOR
// THE ZIGZAG SETTINGS FOR THE MAIN ONE ON TRADINGVIEW DO NOT WORK THE SAME AS MT4
// I HOPE U LOVE IT
//
indicator(' mohamed rebouh ', overlay=true)
// inputs
Depth = input(12, title='Depth') // Depth
Deviation = input(5, title='Deviation') // Deviation
// ZigZag
var lastlow = 0.0
var lasthigh = 0.0
data(x) =>
d = request.security(syminfo.tickerid, timeframe.period, x)
d
getLow(x, y, z, a) =>
lastlow1 = y
v = data(x)
m = v == lastlow1 or data(z) - v > a * syminfo.mintick
if v != lastlow1
lastlow1 := v
if m
v := 0.0
v
[v, lastlow1]
getHigh(x, y, z, a) =>
lasthigh1 = y
v = data(x)
m = v == lasthigh1 or v - data(z) > a * syminfo.mintick
if v != lasthigh1
lasthigh1 := v
if m
v := 0.0
v
[v, lasthigh1]
[v, e] = getLow(ta.lowest(Depth), lastlow, low, Deviation)
lastlow := e
zBB = v != 0.0
[v1, e1] = getHigh(ta.highest(Depth), lasthigh, high, Deviation)
lasthigh := e1
zSS = v1 != 0.0
zigzagDirection = -1
zigzagHigh = 0
zigzagLow = 0
zigzagDirection := zBB ? 0 : zSS ? 1 : nz(zigzagDirection[1], -1)
virtualLow = zigzagLow[1] + 1
if not zBB or zBB and zigzagDirection == zigzagDirection[1] and low > low[virtualLow]
zigzagLow := nz(zigzagLow[1]) + 1
zigzagLow
virtualHigh = zigzagHigh[1] + 1
if not zSS or zSS and zigzagDirection == zigzagDirection[1] and high < high[virtualHigh]
zigzagHigh := nz(zigzagHigh[1]) + 1
zigzagHigh
line zigzag = line.new(bar_index - zigzagLow, low[zigzagLow], bar_index - zigzagHigh, high[zigzagHigh], color=color.red, style=line.style_solid, width=2)
if zigzagDirection == zigzagDirection[1]
line.delete(zigzag[1])
// mohamed rebouh
//version=5
//
// THIS CODE IS BASED FROM THE MT4 ZIGZAG INDICATOR
// THE ZIGZAG SETTINGS FOR THE MAIN ONE ON TRADINGVIEW DO NOT WORK THE SAME AS MT4
// I HOPE U LOVE IT
//
indicator(' mohamed rebouh ', overlay=true)
// inputs
Depth = input(12, title='Depth') // Depth
Deviation = input(5, title='Deviation') // Deviation
// ZigZag
var lastlow = 0.0
var lasthigh = 0.0
data(x) =>
d = request.security(syminfo.tickerid, timeframe.period, x)
d
getLow(x, y, z, a) =>
lastlow1 = y
v = data(x)
m = v == lastlow1 or data(z) - v > a * syminfo.mintick
if v != lastlow1
lastlow1 := v
if m
v := 0.0
v
[v, lastlow1]
getHigh(x, y, z, a) =>
lasthigh1 = y
v = data(x)
m = v == lasthigh1 or v - data(z) > a * syminfo.mintick
if v != lasthigh1
lasthigh1 := v
if m
v := 0.0
v
[v, lasthigh1]
[v, e] = getLow(ta.lowest(Depth), lastlow, low, Deviation)
lastlow := e
zBB = v != 0.0
[v1, e1] = getHigh(ta.highest(Depth), lasthigh, high, Deviation)
lasthigh := e1
zSS = v1 != 0.0
zigzagDirection = -1
zigzagHigh = 0
zigzagLow = 0
zigzagDirection := zBB ? 0 : zSS ? 1 : nz(zigzagDirection[1], -1)
virtualLow = zigzagLow[1] + 1
if not zBB or zBB and zigzagDirection == zigzagDirection[1] and low > low[virtualLow]
zigzagLow := nz(zigzagLow[1]) + 1
zigzagLow
virtualHigh = zigzagHigh[1] + 1
if not zSS or zSS and zigzagDirection == zigzagDirection[1] and high < high[virtualHigh]
zigzagHigh := nz(zigzagHigh[1]) + 1
zigzagHigh
line zigzag = line.new(bar_index - zigzagLow, low[zigzagLow], bar_index - zigzagHigh, high[zigzagHigh], color=color.red, style=line.style_solid, width=2)
if zigzagDirection == zigzagDirection[1]
line.delete(zigzag[1])
Script de código abierto
Siguiendo fielmente el espíritu de TradingView, el creador de este script lo ha publicado en código abierto, permitiendo que otros traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Puede utilizarlo de forma gratuita, pero tenga en cuenta que la publicación de este código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones que ofrecemos, no implican ni constituyen un asesoramiento financiero, ni de inversión, trading o cualquier otro tipo de consejo o recomendación emitida o respaldada por TradingView. Puede obtener información adicional en las Condiciones de uso.
Script de código abierto
Siguiendo fielmente el espíritu de TradingView, el creador de este script lo ha publicado en código abierto, permitiendo que otros traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Puede utilizarlo de forma gratuita, pero tenga en cuenta que la publicación de este código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones que ofrecemos, no implican ni constituyen un asesoramiento financiero, ni de inversión, trading o cualquier otro tipo de consejo o recomendación emitida o respaldada por TradingView. Puede obtener información adicional en las Condiciones de uso.