ZigZagZigZag Indicator – Overview
This ZigZag indicator highlights the most important swing highs and swing lows on the chart, helping traders see market structure more clearly by filtering out minor price movements. It connects significant turning points with straight lines, creating a clean visual representation of trend direction and major reversals.
How It Works
Price constantly moves up and down, but not every movement is meaningful. The ZigZag indicator waits for price to make a move large enough to be considered a true swing point. Once such a movement occurs, the indicator identifies it as either a swing high or a swing low and draws a line connecting it to the previous swing.
This produces a simplified outline of market structure, making it easier to recognize trends, corrections, and major turning points.
Settings
ZigZag Length
Controls the sensitivity of the indicator.
Lower values produce more frequent swing points.
Higher values show only major swings and reduce noise.
Show ZigZag
Enables or disables the visual lines. When disabled, the indicator continues tracking swing points internally.
What You See on the Chart
Every time the market creates a confirmed swing high or swing low, the indicator draws a line to the previous swing in the opposite direction.
After a major low is confirmed, a line is drawn to the most recent high.
After a major high is confirmed, a line is drawn to the most recent low.
This creates a clear, continuous zigzag that outlines the dominant movements of the market without reacting to every small fluctuation.
Why This ZigZag Is Useful
It does not repaint once a swing is confirmed.
It provides a clean and simplified view of price structure.
It helps identify trend direction, structure breaks, impulses, and corrections.
It is useful for traders who follow price action, smart money concepts, and swing-based strategies.
Recommended Use Cases
This ZigZag indicator is suited for traders who rely on market structure analysis, including:
Swing trading
Smart Money Concepts (BOS/CHOCH detection)
Identifying impulses and pullbacks
Finding strong highs and lows
Studying overall trend direction
Search in scripts for "zigzag"
[KK] ZigZag Percent Reversal - Forecast - patterns - labels Zig Zag indicator plots points on the chart whenever prices reverse
by a percentage greater than a pre-chosen variable.
• Forecasts area based on zigzag statistics.
• Displays labels with detected patterns.
ZigZag - lucemanb
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
I have had tons of experience on the ZIGZAG indicator and thought this might help someone.
Enjoy this code. Zigzag is a good indicator in many ways and people underestimate it because of its repainting
Check out some work ave done with this script. This is some intense angle trading requested by someone
Zigzag Trend/Divergence DetectorPullbacks are always hardest part of the trade and when it happen, we struggle to make decision on whether to continue the trade and wait for recovery or cut losses. Similarly, when an instrument is trending well, it is often difficult decision to make if we want to take some profit off the table. This indicator is aimed to make these decisions easier by providing a combined opinion of sentiment based on trend and possible divergence.
⬜ Process
▶ Use any indicator to find trend bias. Here we are using simple supertrend
▶ Use any oscillator. I have added few inbuilt oscillators as option. Default used is RSI.
▶ Find divergence by using zigzag to detect pivot high/low of price and observing indicator movement difference between subsequent pivots in the same direction.
▶ Combine divregence type, divergence bias and trend bias to derive overall sentiment.
Complete details of all the possible combinations are present here along with table legend
⬜Chart Legend
C - Continuation
D - Divergence
H - Hidden Divergence
I - Indeterminate
⬜ Settings
▶ Zigzag parameters : These let you chose zigzag properties. If you check "Use confirmed pivots", then unconfirmed pivot will be ignored in the table and in the chart
▶ Oscillator parameters : Lets you select different oscillators and settings. Available oscillators involve
CCI - Commodity Channel Index
CMO - Chande Momentum Oscillator
COG - Center Of Gravity
DMI - Directional Movement Index (Only ADX is used here)
MACD - Moving average convergence divergence (Can chose either histogram or MACD line)
MFI - Money Flow Index
MOM - Momentum oscillator
ROC - Rate Of Change
RSI - Relative Strength Index
TSI - Total Strength Index
WPR - William Percent R
BB - Bollinger Percent B
KC - Keltner Channel Percent K
DC - Donchian Channel Percent D
ADC - Adoptive Donchian Channel Percent D ( Adoptive-Donchian-Channel )
▶ Trend bias : Supertrend is used for trend bias. Coloring option color candles in the direction of supertrend. More option for trend bias can be added in future.
▶ Stats : Enables you to display history in tabular format.
Overview of settings present here:
⬜ Notes
Trend detection is done only with respect to previous pivot in the same direction. Hence, if chart has too many zigzags in short period, try increasing the zigzag length or chart timeframe. Similarly, if there is a steep trend, use lower timeframe charts to dig further.
Oscillators does not always make pivots at same bar as price. Due to this some the divergence calculation may not be correct. Hence visual inspection is always recommended.
⬜ Possible future enhancements
More options for trend bias
Enhance divergence calculation. Possible options include using oscillator based zigzag as primary or using close prices based zigzag instead of high/low.
Multi level zigzag option - Can be messy to include more than one zigzag. Option can be added to chose either Level1 or Level2 zigzags.
Alerts - Alerts can only be added for confirmed pivots - otherwise it will generate too many unwanted alerts. Will think about it :)
If I get time, I will try to make a video.
Zigzag Simple [SCL]🟩 OVERVIEW
Draws zigzag lines from pivot Highs to pivot Lows. You can choose between three different ways of calculating pivots:
• True Highs and Lows
• Williams pivots
• Oscillator pivots
🟩 HOW TO USE
This indicator can be used to understand market structure, which is arguably the primary thing you need to be aware of when trading. The zigzag by itself does not display a market structure bias, nor any information about prices of pivots, HH and HL labels, or anything like that. Nevertheless, a simple zigzag is perhaps the easiest and most intuitive way to understand what price is doing.
Choose a pivot style that you like, customise the colours and line style, and enjoy!
🟩 PIVOT TYPES EXPLAINED
True Highs and Lows
This is not an invention of mine (all credit to my humble mentor), but I haven't seen anyone else code them up. A true High is a close below the low of the candle with the highest high. A true Low is a close above the high of a candle with the lowest low. These are solid, price action-based pivots that can sometimes confirm quickly.
Williams pivots
This is how most people calculate pivots. They're simply the highest high for x bars back and x bars forwards. They're the vanilla of pivots IMO: serviceable but not very interesting. They're very convenient to code because there are built-in Pine functions for them: ta.pivothigh and ta.pivotlow . They confirm a predictable number of bars after they happen, which is great for coding but also makes the trader wait for confirmation.
Oscillator pivots
This is a completely different concept, which uses momentum in order to define pivots. For example, when you get a rise in momentum and momentum then drops a configurable amount, it confirms a pivot high, and vice versa for a pivot low. I don't know if anyone else does it –- although some indicators do mark pivots in momentum itself, and plenty do divergences, I wasn't able to find one that specifically marked *pivots in price* because of pivots in momentum 🤷♂️
Anyway, while this approach needs a whole investigation on its own, here we simply plot some pivots in a smoothed RSI. This indicator doesn't plot the actual momentum values -- for a more visual understanding of how this works, refer to the examples in the OscillatorPivots library.
🟩 UNIQUE ADVANTAGES
In contrast to other zigzag indicators available, this one lets you choose between the standard and some more unique methods of generating the zigzags. Additionally, because it's based on libraries, it is relatively easy for programmers to use as a basis for experimentation.
🟩 GEEK STUFF
Although there is considerable practical use for pivot-based zigzags in trading, this script is primarily a demonstration in coding -- specifically the power of libraries!
Most of the script consists of setup, especially defining inputs. The final section sacrifices some readability for conciseness, simply to emphasise how little code you need when the heavy lifting is done by libraries .
The actual calculations and drawing are achieved in just 8 lines.
The equivalent code in the libraries is ~250 lines long.
All libraries used are my own, public and open-source:
• MarketStructure
• DrawZigZag
• OscillatorPivots
ZigZag Multi [TradingFinder] Trend & Wave Lines - Structures🔵 Introduction
"Zigzag" is an indicator that forms based on price changes. Essentially, the function of this indicator is to connect consecutive and alternating High and Low pivots. This pattern assists in analyzing price changes and can also be used to identify classic patterns. "Zigzag" is an analytical tool that, by filtering partial price movements based on the specified period, can identify price waves across different time frames (short or long term).
🔵 Reason for Creation
The combination of "short term zigzag" and "long term zigzag" enhances accuracy and reduces analysis time. In a time frame, "long term zigzag" represents the main trend, while "short term zigzag" depicts short-term waves.
🔵 How to Use
After selecting the desired time frame and adding "zigzag" to the chart, begin utilization. Keep in mind to identify the main market trend from "long term zigzag" and the minor waves from "short term zigzag".
🟣 Important: Additionally, classic patterns such as HH, LH, LL, and HL can be recognized. All traders analyzing financial markets using classic patterns and Elliot Waves can benefit from the "zigzag" indicator to facilitate their analysis.
🔵 Settings
Short term zigzag : In this section, you can adjust settings such as time frame range, display mode, color, and line width of the zigzag lines.
Short term label : This section allows you to activate or deactivate the display of zigzag labels according to your needs. You can also customize their color and size.
Long term zigzag : Here, you can adjust settings for time frame range, display mode, color, and line width of zigzag lines.
Long term label : Similar to short term label settings.
The recommended time frame for "long term zigzag" is between 9 to 15, and for "short term zigzag" is between 3 to 5.
🟣 Important Notes :
Considering the different behaviors of financial markets and various time frames, it is recommended to experiment with different time frame settings when using "zigzag" to find the best settings for each symbol and time frame, thereby preventing potential errors.
🟣 Terminology Explanations :
"HH": When the price is higher than the previous peak (Higher High).
"HL": When the price is higher than the previous low (Higher Low).
"LH": When the price is lower than the previous peak (Lower High).
"LL": When the price is lower than the previous low (Lower Low).
ZigZag SupertrendBack to my favourite supertrend. But, this time on the basis of zigzag pivots.
This is similar to forming supertrend based on pivot high lows - but instead of using pivot poitns, we are using zigzag pivots here.
Zigzag is derived using the same method as this script:
But, have removed labels and display options of zigzag. Older lines are also immediately deleted so that it can work well in lower timeframes without any error. Number of zigzaglines to be kept in memory depends on the parameter History
WaitForConfirmation option when selected only considers the confirmed zigzaglines and will ignore present zigzag line which is forming. This is not going to make much difference as the present zigzag line will be always opposite to low or high it formed and hence will not affect the stop loss levels or reversals.
WaitForClose is for supertrend determination. When checked uses close prices. If unchecked uses highs and lows for supertrend direction update.
ATR parameters allow you to set an adjustment below pivot high lows. This is required because support and resistence are often zones rather than single point. Hence, adds bit more wiggle room for trend continuation and delays frequent reversals on pullbacks.
ZigZag Smart Trend [TradingFinder] Major & Minor Structured Wave🔵 Introduction
🟣 Zigzag
Zigzag is a lagging indicator; this indicator identifies points on a price chart that have more significant changes than its previous wave and then by connecting these lines to each other, it assists traders in trend detection.
This indicator reduces random price fluctuations and attempts to make the primary price trend clearer.
🟣 Pivot
Pivots are points where the price chart changes direction. Pivots, also called reversal points, form when supply and demand forces dominate one another.
Different types of technical analysis pivots can be introduced into two categories, minor pivots, and major pivots, each of which has a specific meaning in analysis.
Major Pivot : These pivots actually indicate major changes in the direction of the chart and occur at the end of trends. Analysts seeking to reach the primary analysis focus more on major pivot points. In fact, most technical analysis tools are examined and determined based on major pivots.
Minor Pivot : This type of pivot focuses more on small and subsidiary points and directions. Therefore, it occurs at the end of corrections. Analysts focusing on minor pivots represent small trends, and it should be noted that minor pivots are not suitable for use in primary technical tools.
How to identify minor and major pivots :
Minor pivots are pivots formed between two major pivots and fail to break the opposite major pivot.
Major pivots are pivots that have either successfully broken the opposite pivot or have moved more than the previous pivot of the same type.
🔵 How to use
Based on identifying pivots and drawing zigzag lines, you can have various uses for this indicator.
Identifying support and resistance levels :
Identifying Elliott Waves :
Identifying classic patterns :
Identifying pivots with higher validity :
Identifying internal and external breakouts :
Identifying trends and range areas :
Identifying pivot types along with major and minor recognition :
MHH : Major Higher High
MLH : Major Lower High
MLL : Major Lower Low
MHL : Major Higher Low
mHH : Minor Higher High
mLH : Minor Lower High
mLL : Minor Lower Low
mHL : Minor Higher Low
🔵 Settings
Pivot Period Zigzag Line : Using this input, you can determine the pivot period for identifying zigzag swings.
Show Zigzag Line : To show or not to show the zigzag line.
Zigzag Line Color : Change the color of the zigzag line.
Zigzag Line Style : Change the Style of the zigzag line.
Zigzag Line Width : Change the Width of the zigzag line.
Show Label : To show or not to show Pivot Type.
Color Label : Change the color of the Pivot Type Label.
ZigZag Library [TradingFinder]🔵 Introduction
The "Zig Zag" indicator is an analytical tool that emerges from pricing changes. Essentially, it connects consecutive high and low points in an oscillatory manner. This method helps decipher price changes and can also be useful in identifying traditional patterns.
By sifting through partial price changes, "Zig Zag" can effectively pinpoint price fluctuations within defined time intervals.
🔵 Key Features
1. Drawing the Zig Zag based on Pivot points :
The algorithm is based on pivots that operate consecutively and alternately (switch between high and low swing). In this way, zigzag lines are connected from a swing high to a swing low and from a swing low to a swing high.
Also, with a very low probability, it is possible to have both low pivots and high pivots in one candle. In these cases, the algorithm tries to make the best decision to make the most suitable choice.
You can control what period these decisions are based on through the "PiPe" parameter.
2.Naming and labeling each pivot based on its position as "Higher High" (HH), "Lower Low" (LL), "Higher Low" (HL), and "Lower High" (LH).
Additionally, classic patterns such as HH, LH, LL, and HL can be recognized. All traders analyzing financial markets using classic patterns and Elliot Waves can benefit from the "zigzag" indicator to facilitate their analysis.
" HH ": When the price is higher than the previous peak (Higher High).
" HL ": When the price is higher than the previous low (Higher Low).
" LH ": When the price is lower than the previous peak (Lower High).
" LL ": When the price is lower than the previous low (Lower Low).
🔵 How to Use
First, you can add the library to your code as shown in the example below.
import TFlab/ZigZagLibrary_TradingFinder/1 as ZZ
Function "ZigZag" Parameters :
🟣 Logical Parameters
1. HIGH : You should place the "high" value here. High is a float variable.
2. LOW : You should place the "low" value here. Low is a float variable.
3. BAR_INDEX : You should place the "bar_index" value here. Bar_index is an integer variable.
4. PiPe : The desired pivot period for plotting Zig Zag is placed in this parameter. For example, if you intend to draw a Zig Zag with a Swing Period of 5, you should input 5.
PiPe is an integer variable.
Important :
Apart from the "PiPe" indicator, which is part of the customization capabilities of this indicator, you can create a multi-time frame mode for the indicator using 3 parameters "High", "Low" and "BAR_INDEX". In this way, instead of the data of the current time frame, use the data of other time frames.
Note that it is better to use the current time frame data, because using the multi-time frame mode is associated with challenges that may cause bugs in your code.
🟣 Setting Parameters
5. SHOW_LINE : It's a boolean variable. When true, the Zig Zag line is displayed, and when false, the Zig Zag line display is disabled.
6. STYLE_LINE : In this variable, you can determine the style of the Zig Zag line. You can input one of the 3 options: line.style_solid, line.style_dotted, line.style_dashed. STYLE_LINE is a constant string variable.
7. COLOR_LINE : This variable takes the input of the line color.
8. WIDTH_LINE : The input for this variable is a number from 1 to 3, which is used to adjust the thickness of the line that draws the Zig Zag. WIDTH_LINE is an integer variable.
9. SHOW_LABEL : It's a boolean variable. When true, labels are displayed, and when false, label display is disabled.
10. COLOR_LABEL : The color of the labels is set in this variable.
11. SIZE_LABEL : The size of the labels is set in this variable. You should input one of the following options: size.auto, size.tiny, size.small, size.normal, size.large, size.huge.
12. Show_Support : It's a boolean variable that, when true, plots the last support line, and when false, disables its plotting.
13. Show_Resistance : It's a boolean variable that, when true, plots the last resistance line, and when false, disables its plotting.
Suggestion :
You can use the following code snippet to import Zig Zag into your code for time efficiency.
//import Library
import TFlab/ZigZagLibrary_TradingFinder/1 as ZZ
// Input and Setting
// Zig Zag Line
ShZ = input.bool(true , 'Show Zig Zag Line', group = 'Zig Zag') //Show Zig Zag
PPZ = input.int(5 ,'Pivot Period Zig Zag Line' , group = 'Zig Zag') //Pivot Period Zig Zag
ZLS = input.string(line.style_dashed , 'Zig Zag Line Style' , options = , group = 'Zig Zag' )
//Zig Zag Line Style
ZLC = input.color(color.rgb(0, 0, 0) , 'Zig Zag Line Color' , group = 'Zig Zag') //Zig Zag Line Color
ZLW = input.int(1 , 'Zig Zag Line Width' , group = 'Zig Zag')//Zig Zag Line Width
// Label
ShL = input.bool(true , 'Label', group = 'Label') //Show Label
LC = input.color(color.rgb(0, 0, 0) , 'Label Color' , group = 'Label')//Label Color
LS = input.string(size.tiny , 'Label size' , options = , group = 'Label' )//Label size
Show_Support= input.bool(false, 'Show Last Support',
tooltip = 'Last Support' , group = 'Support and Resistance')
Show_Resistance = input.bool(false, 'Show Last Resistance',
tooltip = 'Last Resistance' , group = 'Support and Resistance')
//Call Function
ZZ.ZigZag(high ,low ,bar_index ,PPZ , ShZ ,ZLS , ZLC, ZLW ,ShL , LC , LS , Show_Support , Show_Resistance )
Zigzag CandlesCan't deny that I am obsessed with zigzags. Been doing some crazy experiments with it and have many more in pipeline. I believe zigzag can be used to derive better trend following methods. Here is an attempt to visualize zigzag as candlesticks. Next steps probably to derive moving average, atr (although there was an attempt of AZR made earlier) and probably supertrend too ;)
Input parameters include ZigzagLength (to calculate zigzag) and CandleSize (number of zigzag pivots in each candle)
CandleSize can be 3 or more. Every time we collect pivots which are equal to CandleSize, we derive one candle. And when we derive a candle, we remove all old pivots except the last one. Becauase, the last pivot acts as open to the next bar and is required.
Body of the candle tells the start and end zigzag pivot in the range. And Wicks signify highest and lowest pivots in the range. High and Low wicks are placed at the pivot where high and lows are formed. Hence, you can see them at different positions each time.
Thanks to @RicardoSantos for suggesting boxes for candles - while I was trying to achieve this with plotbar
Zigzag Array ExperimentalThis is experimental script for zigzag which uses type, method and array. Not recommend for actual usage, for pine script study maybe useful.
In this experiment, I use type as coded below. It seems have limitation as specially when push as array. As Trading View recommendation, pushing float and int into array especially for type not guarantee to work. I agree with that. Preferred to push array as line or label especially for types.
// @type Used for point especially for array
// @field x int value for bar_index
// @field y float value for price
// @field sty label style
// @field col color for text label
// @field str high or low string
type point
int x = na
float y = na
string sty = na
color col = na
string str = na
I simulate the arrays as below.
var dirLine = array.new()
var dirLabel = array.new()
var dirPoint = array.new()
....
dirPoint.unshift(zigzag.createPoint(0))
dirLabel.unshift(zigzag.createLabel(fontSize, 0, true))
dirLine.unshift(zigzag.createLine(width, switchLine, 0, true))
Here are some results.
ZigZag LibraryThis is yet another ZigZag library.
🔵 Key Features
1. Lightning-Fast Performance : Optimized code ensures minimal lag and swift chart updates.
2. Real-Time Swing Detection : No more waiting for swings to finalize! This library continuously identifies the latest swing formation.
3. Amplitude-Aware : Discover significant swings earlier, even if they haven't reached the standard bar length.
4. Customizable Visualization : Draw ZigZag on-demand using polylines for a tailored analysis experience.
Stay tuned for more features as this library is being continuously enhanced. For the latest updates, please refer to the release information.
🔵 API
// Import this library. Remember to check the latest version of this library and replace the version number below.
import algotraderdev/zigzag/1 as zz
// Initialize the ZigZag instance.
var zz.ZigZag zig = zz.ZigZag.new().init(
zz.Settings.new(
swingLen = 5,
lineColor = color.blue,
lineStyle = line.style_solid,
lineWidth = 1))
// Analyze the ZigZag using the latest bar's data.
zig.tick()
// Draw the ZigZag.
if barstate.islast
zig.draw()
Zigzag Chart Points█ OVERVIEW
This indicator displays zigzag based on high and low using latest pine script version 5 , chart.point which using time, index and price as parameters.
Pretty much a strip down using latest pine script function, without any use of library .
This allow pine script user to have an idea of simplified and cleaner code for zigzag.
█ CREDITS
LonesomeTheBlue
█ FEATURES
1. Label can be show / hide including text can be resized.
2. Hover to label, can see tooltip will show price and time.
3. Tooltip will show date and time for hourly timeframe and below while show date only for day timeframe and above.
█ NOTES
1. I admit that chart.point just made the code much more cleaner and save more time. I previously using user-defined type(UDT) which quite hassle.
2. I have no plan to extend this indicator or include alert just I thinking to explore log.error() and runtime.error() , which I may probably release in other publications.
█ HOW TO USE'
Pretty much similar inside mentioned references, which previously I created.
█ REFERENCES
1. Zigzag Array Experimental
2. Simple Zigzag UDT
3. Zig Zag Ratio Simplified
4. Cyclic RSI High Low With Noise Filter
5. Auto AB=CD 1 to 1 Ratio Experimental
ZigZag WavesHello All,
I am here with a new idea and script, " Zigzag Waves ". This indicator creates 3 Zigzags with different lengths, keeps the lengths of each zigzag wave and calculates/draws average waves for each zigzag. optionally it can reset the wave when zigzag direction changes and new highest/lowest found. And optionally it draws Exponential Moving Average(EMA) of the sum of waves. This idea is very new and at the moment there is no optimization for the Zigzag Periods. Maybe we altogether can improve the idea and find the best zigzag periods for different symbols and time frames.
Using the options You can play with the periods, add/remove EMA, set its color and reset the waves on new Highest/Lowest. As far as I see resetting the waves on new Highest/Lowest may bring better results.
if we enable "Reset the waves on new Highest/Lowest":
Using different periods and EMA length:
P.S. if you have ideas to improve this script, drop a comment under the script please.
Enjoy!
Multilevel ZigZag SupertrendVery much similar to :
I have slightly changed code to accommodate multiple zigzags. Also removed possibility of external source to keep it simple.
Indicator shows 2 Level zigzag based supertrends. Second zigzag used is multi level zigzag and hence, this acts as higher timeframe filter and can be considered as overall trend bias.
ZigZag reSampledthis indicator looks like the default ZigZag indicator but it uses the price action instead of the deviation%
Zigzag CloudThis is Bollinger Band built on top of Zigzags instead of regular price + something more.
Indicator presents 7 lines and cloud around it. This can be used to visualize how low or high price is with respect to its past movement.
Middle line is moving average of last N zigzag pivots
Lines adjacent to moving average are also moving averages. But, they are made of only pivot highs and pivot lows. Means, line above moving average is pivot high moving average and line below moving average is pivot low moving average.
Lines after pivot high/low moving averages are upper and lower bolllinger bands based on Moving Average Line with 2 standard deviation difference.
Outermost lines are bollinger band top of Moving average pivot high and bollinger band bottom of moving average pivot low.
[RS]Renko ZigZag V0Renko based zigzag:
mode: can be Traditional or ATR .
modeValue: can be whole number if you use ATR mode, or floating point number in case of Traditional mode.
showOverlay: displays basis Renko overlay.
Zigzag MatrixNothing fancy. Just converted the new matrix library of zigzags ( mZigzag ) into indicator as I sensed it can be useful as indicator.
On top of the standard zigzag, the indicator also tracks given oscillators, moving average and volume indicators on each pivots. More indicators can be added programmatically - but it will take up space in chart. Hence, so far I have only added option to add one per each type (moving average, oscillator and volume)
Settings are as below
Zigzag Tails [Trendoscope®] 🎲 Introducing Zigzag Tails Indicator by Trendoscope.
The Zigzag Tails Indicator, a groundbreaking tool from Trendoscope, redefines technical analysis by seamlessly integrating anchored VWAPs (Volume Weighted Average Prices) and Average Price calculations with Zigzag pivot points. This advanced indicator recalculates Average Price or VWAP from one Zigzag pivot to the next, offering unparalleled insights into market movements.
🎯 Innovative Design
Each Zigzag pivot can feature up to three distinct tails, corresponding to the high, low, and close prices of each candle. Users have the flexibility to select between Average Price and VWAP for display on their charts. By default, the indicator plots all three tails, but individual tail visibility is customizable via the settings panel.
Average Price Mode: When selected, tails depict the average price across a specified number of bars.
VWAP Mode: In this mode, tails represent the VWAP, calculated for a given price over a set number of bars.
🎯 Dynamic Dotted Tail
The Zigzag Tails Indicator features dotted tails that extend from the last Zigzag pivot to the current bar. These dotted tails dynamically adapt to market changes and are subject to repainting with the emergence of new Zigzag pivots.
When repainting is enabled, the dotted tails originate from the last unconfirmed Zigzag pivot, extending to the current bar. This setting offers a more immediate, albeit tentative, visual representation of market trends.
With repainting disabled, the dotted tails will be anchored from the last confirmed Zigzag pivot to the current bar, providing a more stable but slightly delayed market analysis.
Irrespective of the repaint option, the dotted dynamic tails is always expected to repaint.
🎯 Practical Applications
The Zigzag Tails Indicator provides more accurate support and resistance levels than traditional VWAP, rolling VWAP, or moving averages. Its precision makes it an invaluable tool for identifying trends, as well as potential trend continuations or reversals.
🛠 Indicator Settings
Zigzag Configuration:
Zigzag Length determines the loopback length for the foundational Zigzag calculation.
Number of Bars represent the calculation distance. This limitation is added to avoid runtime errors on lower timeframes. The calculations run through lots of loops. Hence, if it is run across too many bars, we may get timeout issues.
Repaint: Activating this will also display the last, unconfirmed Zigzag pivot. Since the last pivot is inherently tentative, it may repaint with the arrival of new bars. A pivot is confirmed only when a subsequent unconfirmed pivot emerges on the chart.
Tail Configuration
Tail Type: Choose between average and VWAP for the tail calculation. The average option plots a simple average, while the VWAP option calculates an anchored VWAP from pivot to pivot.
Display Options: Tailored display options for High, Low, Close prices, with customizable colors for each tail type.
Inspired by the ideas of @KioseffTrading's implementation of Zigzag Anchored VWAP
ZigZag++ FibonacciAuto Fibonacci tools are powerful ways designed to simplify your technical analysis by automatically drawing Fibonacci retracement and extension levels on your chart. This indicator is built to enhance your trading experience with clearer market moves and informative insights.
You can easily spot your waves and patterns when the percentages are moving with you.
Key Features:
Automated Fibonacci Levels: Plots Fibonacci retracement and extension levels based on recent price movements.
Multi-Timeframe Support: This indicator is your versatile companion, offering multi-timeframe functionality. You can seamlessly track Fibonacci levels across different resolutions, providing a comprehensive view of the market.
Two Types of Fibs: Retracement and Timeframe extension Fibonacci levels. Use retracements to identify potential reversal points and extensions to anticipate price targets, giving you a well-rounded perspective on market movements.
Benefits:
Save Time: No more manual Fibonacci drawing; It does this for you in real-time.
Enhanced Analysis: Gain a deeper understanding of potential support, resistance, and price targets.
User-Friendly: Suitable for traders of all levels, this indicator simplifies complex technical analysis.
For the math lovers
I started creating the ZigZag++ based on the MT4 calculation as I found it better performing than the tradingview inbuilt one. I have revised the calculation couple of times and now the final calculation is simple yet more accurate for my analysis.
First, I observe the market direction for the last Depth setting by comparing the rate at which high values reduce and low values increase. When the number of ticks set by Deviation is crossed and the last cross is more than the Backstep candles, then we have our ZigZag points.
These are the points we use in our Fibonacci calculation.
Checkout ZigLib below to use the same logic in your scripts.
Sample usage
This is a 4 Hour configuration with the default settings.
When the trend reversed, some key points I watch are 0.618 and 0.5. The market retraced back and formed the new point for the next ZigZag line on that level. This market behaviour happens quite often on these Fibonacci points. I would be looking for reversal or a break in this zone to know the next step.
Resources
ZigZag++ Lib by me; for retrieving the line points.
Fibonacci Toolkit by Lux Algo; For drawing the Timeframe Fibs. Very Amazing script.
ZigZag With ATR Filter [vnhilton](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.






















