vnhilton

ZigZag With ATR Filter [vnhilton]

vnhilton Updated   
(OVERVIEW)
The typical ZigZag indicator, which connects pivot points (see TradingView's Help Center regarding their indicator Pivot Points High Low, for an in depth explanation on how they are calculated) with lines, except instead of a percentage threshold, it uses ATR which adjusts for volatility of the ticker you are viewing. The ZigZag indicator can therefore be used to help visualise price legs and trends on a usually noisy looking chart.

(FEATURES)
- Toggles for pivot point label contents such as the value, the trend, or nothing at all.
- ATR and pivot point periods.
- ATR multiplier minimum threshold to plot pivots and draw lines only when this threshold is met (helps eliminate small, perhaps insignificant price movements, to have a better focus on the overall trend).
- Show the last 2 to 499 ZigZag lines.
- Uptrend, downtrend and range colors for high and low pivot labels, text labels and lines, for both confirmed and real-time plots.
- Label size, and label styles for the high and low pivots.
- Customisable width and styles (Arrow Right, Dashed, Dotted, Solid) for the ZigZag line.

In the main chart picture, labels show both the pivot point value and the trend at that point. In the picture above, on the left shows only the pivot point value, the right shows only the trend.

Picture above shows just the label with 0 contents. Also notice the last recent line being blue instead of green. This is because the current bar hasn't finished so this line is currently live and not confirmed, so is subject to change. Keep in mind even if a pivot point is confirmed, it can be updated by a subsequent higher high/lower low.

Left chart shows a minimum ATR threshold multiplier of 1x; Right chart has 2x ATR minimum threshold. Notice the left chart highlights more price legs as more price legs satisfy a less strict threshold.
Release Notes:
- Correctly formatted pivot price (using format.mintick)
Release Notes:
- Fixed issue of new pivot high/low occurring right after a pivot high/low (plotted pivots should only alternate between high and low). Solution was to add additional condition making sure pivot highs were higher than last low pivot, and pivot lows lower than last high pivot. Also changed conditional statements to using strings instead of high/low built in variables.
Release Notes:
- Changed pivot point identifier logic (now allows bar highs/lows to equal each other). Done because moves with double/triple/etc. tops/bottoms were ignored.
Release Notes:
- Decreased max zig zag lines by 1 (498 max) to make room for the potential line.

(NEW FEATURE)
- Added the potential line. Plots a line from the last pivot point to the current bar as a potential ZigZag line. When the current close is above/level/below the last pivot, the line right point attaches to the current high/close/low. The line left point attaches to the last pivot if there is only 1 pivot, or the line is sloping up/down and the last pivot is a low/high pivot, or the line is level. Else, it attaches to the 2nd last pivot.

- Customisable line width and style
- 3 line colors for when the current close is above/level/below the last pivot

Potential up line from the 2nd last pivot, which is a pivot low.

Potential down line from the last pivot, which is a pivot high.
Release Notes:
- Adjusted default ATR period to 20

(NEW FEATURES)
- Added ZigZag size label text
- Added ZigZag time label text
- Added ZigZag volume label text (with imperfect solution, so if encountering error, please use lower pivot point length or disable volume entirely (apologies))
Release Notes:
- Made label formatting neater based on differing toggle options.
Release Notes:
- Reduced max lines to 497

(NEW FEATURE)
- Potential line label
_____________________________
(I will add second order pivot ZigZag in the future when I am free. The code will also be completely revamped to be more robust, efficient and clean, written with scalability in mind. Challenges for this future update are: working out the garbage logic for 1st and 2nd order ZigZag lines (as there can only be maximum 500 lines for 1 indicator), adapting the code so that it can be used for both calculating 1st and 2nd order ZigZag lines, and tracking volume for each ZigZag line)
Release Notes:
- Fixed potential line label values
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 a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?