ZigZag With ATR Filter [vnhilton]

vnhilton Atualizado   
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.

- 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.
Notas de Lançamento:
- Correctly formatted pivot price (using format.mintick)
Notas de Lançamento:
- 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.
Notas de Lançamento:
- 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.
Notas de Lançamento:
- Decreased max zig zag lines by 1 (498 max) to make room for the potential line.

- 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.
Notas de Lançamento:
- Adjusted default ATR period to 20

- 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))
Notas de Lançamento:
- Made label formatting neater based on differing toggle options.
Notas de Lançamento:
- Reduced max lines to 497

- 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)
Notas de Lançamento:
- Fixed potential line label values
Script de código aberto

Dentro do verdadeiro espírito TradingView, o autor deste script publicou ele como um script de código aberto, para que os traders possam compreender e checar ele. Um viva ao autor! Você pode usá-lo gratuitamente, mas a reutilização deste código em uma publicação é regida pelas Regras da Casa. Você pode favoritá-lo para usá-lo em um gráfico.

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.

Quer usar esse script no gráfico?