0% found this document useful (0 votes)
25 views

code me

This document contains a TradingView script for a ZigZag indicator, adapted from an MT4 version. It includes customizable settings for depth, deviation, backstep, colors, and transparency, along with functionality for plotting and alerting based on price movements. The script aims to enhance trading analysis by visually representing price trends and changes in direction.

Uploaded by

zakarie
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

code me

This document contains a TradingView script for a ZigZag indicator, adapted from an MT4 version. It includes customizable settings for depth, deviation, backstep, colors, and transparency, along with functionality for plotting and alerting based on price movements. The script aims to enhance trading analysis by visually representing price trends and changes in direction.

Uploaded by

zakarie
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

// This source code is subject to the terms of the Mozilla Public License 2.

0 at
https://mozilla.org/MPL/2.0/
// © Dev Lucem

//@version=5
//@author=devlucem

//
// 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
//

////////
// Seek Menu
import DevLucem/ZigLib/1 as ZigZag
indicator('012 Abu Fawwaz LIVE V2', '012 Abu Fawwaz LIVE [012] V2', true,
format.price, max_labels_count=200, max_lines_count=50)

////////
// Fetch Ingredients
// [
Depth = input.int(4, 'Depth', minval=1, step=1, group="ZigZag Config")
Deviation = input.int(5, 'Deviation', minval=1, step=1, group="ZigZag Config")
Backstep = input.int(2, 'Backstep', minval=2, step=1, group="ZigZag Config")
line_thick = input.int(2, 'Line Thickness', minval=1, maxval=4, group="Lines")
labels = input(0, "Labels Transparency", group="Labels")
upcolor = input(#058447, 'Bull Color', group="Colors")
dncolor = input(color.red, 'Bear Color', group="Colors")
lines = input(0, "Lines Transparency", group="Lines")
background = input(100, "Background Transparency", group="Colors")
label_size = switch input.int(4, "Label SIze", minval=1, maxval=5, group="Labels")
1 => size.tiny
2 => size.small
3 => size.normal
4 => size.large
5 => size.huge
repaint = input(true, 'Repaint Levels')
extend = input(false, "Extend ZigZag", group="Lines")
// ]

// ////////
// // Bake it with a simple oven this time
[direction, z1, z2] = ZigZag.zigzag(low, high, Depth, Deviation, Backstep)
string nowPoint = ""
var float lastPoint = z1.price[1]
if bool(ta.change(direction))
lastPoint := z1.price[1]

// ////////
// // Let it Cool And Serve
line zz = na
label point = na

if repaint
zz := line.new(z1, z2, xloc.bar_time, extend? extend.right: extend.none,
color.new(direction>0? upcolor: dncolor, lines), width=line_thick)
nowPoint := direction<0? (z2.price<lastPoint? "0B/1S/2B/3S": "0B/1S/2B/3S"):
(z2.price>lastPoint? "0S/1B/2S/3B": "0S/1B/2S/3B")
point := label.new(z2, nowPoint, xloc.bar_time, yloc.price,
color.new(direction<0? upcolor: dncolor, labels), direction>0?
label.style_label_down: label.style_label_up, color.new(direction>0? upcolor:
dncolor, labels), label_size)
if direction == direction[1]
line.delete(zz[1])
label.delete(point[1])
else
line.set_extend(zz[1], extend.none)
else
if direction != direction[1]
zz := line.new(z1[1], z2[1], xloc.bar_time, extend.none,
color.new(direction>0? upcolor: dncolor, lines), width=line_thick)
nowPoint := direction[1]<0? (z2.price[1]<lastPoint[1]? "LONG STOPPER":
"LONG TESTER"): (z2.price[1]>lastPoint[1]? "SHORT STOPPER": "SHORT TESTER")
point := label.new(z2[1], nowPoint, xloc.bar_time, yloc.price,
color.new(direction[1]<0? upcolor: dncolor, labels), direction[1]>0?
label.style_label_down: label.style_label_up, color.new(direction[1]>0? upcolor:
dncolor, labels), label_size)
bgcolor(direction<0? color.new(dncolor, background): color.new(upcolor,
background), title='Direction Background')
plotarrow(direction, "direction", display=display.status_line)

// ////////
// // Declare Meal Was Sweet By Force
alertcondition(nowPoint == "HH" and z2.price != z2.price[1], "New Higher High",
'Zigzag on {{ticker}} higher higher high detected at {{time}}')
alertcondition(nowPoint == "LH" and z2.price != z2.price[1], "New Lower High",
'Zigzag on {{ticker}} higher lower high detected at {{time}}')
alertcondition(nowPoint == "HL" and z2.price != z2.price[1], "New Higher Low",
'Zigzag on {{ticker}} higher lower low detected at {{time}}')
alertcondition(nowPoint == "LL" and z2.price != z2.price[1], "New Lower Low",
'Zigzag on {{ticker}} lower low detected at {{time}}')
alertcondition(direction != direction[1], 'Direction Changed', 'Zigzag on
{{ticker}} direction changed at {{time}}')
alertcondition(direction != direction[1] and direction>0, 'Bullish Direction',
'Zigzag on {{ticker}} bullish direction at {{time}}')
alertcondition(direction != direction[1] and direction<0, 'Bearish Direction',
'Zigzag on {{ticker}} bearish direction at {{time}}')

if direction != direction[1]
alert((direction<0? "Bearish": "Bullish") + " Direction Final ",
alert.freq_once_per_bar_close)

You might also like