Polygonal Pivot Bands [FXSMARTLAB]The Polygonal Pivot Bands highlights key price pivots, dynamic support and resistance levels, and recent price action on a trading chart. This indicator connects pivot highs and lows with a zigzag line, extends a real-time dashed line to the latest price point, and plots diagonal support/resistance levels that adapt to price movement. These elements together provide traders with a view of significant price zones and potential trend shifts.
Key Components of the Indicator
Pivots are calculated based on user-defined lengths, specifying how many bars on either side of a high or low are required to validate it as a pivot.
Adjustable left and right pivot lengths allow traders to control the sensitivity of pivot detection, with higher values resulting in fewer, more prominent pivots, and lower values increasing sensitivity to price changes.
Zigzag Line
The zigzag line connects consecutive pivot points, filtering out smaller fluctuations and emphasizing the broader direction of price movement.
Users can customize the line's color and thickness to match their preferences, helping them focus on larger trends and potential reversal points.
By linking pivot highs and lows, the zigzag pattern highlights the overall trend and potential points of reversal.
Real-Time Connector Line
A dashed line extends from the last confirmed pivot to the latest price point, providing a real-time, bar-by-bar update of the current price relative to the previous pivot.
This line does not project future price direction but maintains an up-to-date connection with the current price, showing the distance from the last pivot.
Its color and thickness are customizable for improved visibility on the chart.
Dynamic Support and Resistance Levels
The indicator plots dynamic support and resistanc e levels by connecting recent pivot highs and lows, resulting in lines that may appear diagonal rather than strictly horizontal.
These levels move in line with price action, adapting to the natural direction of trends, and offer visual cues where price may encounter support or resistance.
Colors and thickness of these lines can be set individually, allowing traders to adjust visibility according to their preferences.
Enabling these lines gives traders an ongoing reference for critical price boundaries that align more closely with the overall trend.
Elliott Wave
Alternative Shark Harmonic Pattern [TradingFinder] ALT Shark🔵 Introduction
The Alternative Shark harmonic pattern, similar to the original Shark harmonic pattern introduced by Scott Carney, is a powerful tool in technical analysis used to identify potential reversal zones (PRZ) in financial markets.
These harmonic patterns help traders spot key turning points in market trends by relying on specific Fibonacci ratios. The Alternative Shark pattern is particularly unique due to its distinct Fibonacci retracements within the PRZ, which differentiate it from the standard Shark pattern and provide traders with more precise entry and exit signals.
By focusing on harmonic patterns and utilizing tools like the Harmonic Pattern Indicator, traders can easily identify both the Shark and Alternative Shark patterns, making it easier to find PRZs and capture potential trend reversals. This enhanced detection of potential reversal zones allows for better trade optimization and improved risk management.
Incorporating the Alternative Shark pattern into your technical analysis strategy enables you to enhance your trading performance by identifying market reversals with greater accuracy, improving the timing of your trades, and reducing risks associated with sudden market shifts.
🟣 Understanding the Types of Alternative Shark Pattern
The Alternative Shark harmonic pattern, much like the original Shark pattern, forms at the end of price trends and is divided into two types: Bullish and Bearish Alternative Shark patterns.
Bullish Alternative Shark Pattern :
This pattern typically forms at the end of a downtrend, signaling a potential reversal into an uptrend. Traders can use this pattern to identify buy entry points. The image below illustrates the core components of the Bullish Alternative Shark Pattern.
Bearish Alternative Shark Pattern :
Conversely, the Bearish Alternative Shark Pattern appears at the end of an uptrend and signals a potential reversal to a downtrend. This variation allows traders to adjust their strategies for selling. The image below outlines the characteristics of the Bearish Alternative Shark Pattern.
🟣 Differences Between Shark and Alternative Shark Patterns
Although both patterns share similar structures and serve as tools for identifying price reversals, there is one key difference between them :
AB to XA Ratio : In the Shark pattern, the AB leg retraces between 1 and 2 of the XA leg, whereas in the Alternative Shark pattern, this retracement is reduced to 0.382 to 0.618 of the XA leg. This difference in the retracement ratio leads to slightly different trade signals and can affect the timing of entry and exit points.
Other ratios and reversal signals remain consistent between the two patterns, but this difference in the AB to XA ratio provides traders with more nuanced opportunities to optimize their trades.
🔵 How to Use
🟣 Trading with the Bullish Alternative Shark Pattern
The Bullish Alternative Shark Pattern functions similarly to the traditional Bullish Shark, acting as a reversal pattern that helps traders recognize the end of a downtrend and the beginning of an uptrend.
The main distinction lies in the reduced AB retracement, which can offer more refined entry signals. Once the pattern completes, traders can look to enter buy trades and place a stop-loss below the lowest point of the pattern for effective risk management.
🟣 Trading with the Bearish Alternative Shark Pattern
The Bearish Alternative Shark Pattern operates much like the Bearish Shark pattern but with the adjusted AB to XA ratio. This difference provides traders with unique entry points for sell trades. Once the pattern is fully identified, traders can enter short positions, placing a stop-loss above the highest point of the pattern to safeguard against market fluctuations.
🔵 Setting
🟣 Logical Setting
ZigZag Pivot Period : You can adjust the period so that the harmonic patterns are adjusted according to the pivot period you want. This factor is the most important parameter in pattern recognition.
Show Valid Forma t: If this parameter is on "On" mode, only patterns will be displayed that they have exact format and no noise can be seen in them. If "Off" is, the patterns displayed that maybe are noisy and do not exactly correspond to the original pattern.
Show Formation Last Pivot Confirm : if Turned on, you can see this ability of patterns when their last pivot is formed. If this feature is off, it will see the patterns as soon as they are formed. The advantage of this option being clear is less formation of fielded patterns, and it is accompanied by the latest pattern seeing and a sharp reduction in reward to risk.
Period of Formation Last Pivot : Using this parameter you can determine that the last pivot is based on Pivot period.
🟣 Genaral Setting
Show : Enter "On" to display the template and "Off" to not display the template.
Color : Enter the desired color to draw the pattern in this parameter.
LineWidth : You can enter the number 1 or numbers higher than one to adjust the thickness of the drawing lines. This number must be an integer and increases with increasing thickness.
LabelSize : You can adjust the size of the labels by using the "size.auto", "size.tiny", "size.smal", "size.normal", "size.large" or "size.huge" entries.
🟣 Alert Setting
Alert : On / Off
Message Frequency : This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar".
Show Alert Time by Time Zone : The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
🔵 Conclusion
The Alternative Shark harmonic pattern, despite its structural similarity to the traditional Shark pattern, introduces a key difference in the AB to XA ratio, making it a valuable addition to the trader’s toolkit. This subtle variation enables traders to pinpoint reversal points with greater accuracy and fine-tune their trading strategies.
As with any technical pattern, it is crucial to use the Alternative Shark pattern in combination with other technical indicators and strong risk management practices. Incorporating this pattern into a broader trading strategy can help traders enhance their ability to detect and capitalize on market reversals more effectively.
Butterfly Harmonic Pattern [TradingFinder] Harmonic Detector🔵 Introduction
The Butterfly Harmonic Pattern is a sophisticated and highly regarded tool in technical analysis, utilized by traders to identify potential reversal points in the financial markets. This pattern is distinguished by its reliance on Fibonacci ratios and geometric configurations, which aid in predicting price movements with remarkable precision.
The origin of the Butterfly Harmonic Pattern can be traced back to the pioneering work of Bryce Gilmore, who is credited with discovering this pattern. Gilmore's extensive research and expertise in Fibonacci ratios laid the groundwork for the identification and application of this pattern in technical analysis.
The Butterfly pattern, like other harmonic patterns, is based on the principle that market movements are not random but follow specific structures and ratios.
The pattern is characterized by a distinct "M" shape in bullish scenarios and a "W" shape in bearish scenarios, each indicating a potential reversal point. These formations are identified by specific Fibonacci retracement and extension levels, making the Butterfly pattern a powerful tool for traders seeking to capitalize on market turning points.
The precise nature of the Butterfly pattern allows for the accurate prediction of target prices and the establishment of strategic entry and exit points, making it an indispensable component of a trader's analytical arsenal.
Bullish :
Bearish :
🔵 How to Use
Like other harmonic patterns, the Butterfly pattern is categorized based on how it forms at the end of an uptrend or downtrend. Unlike the Gartley and Bat patterns, the Butterfly pattern, similar to the Crab pattern, forms outside the wave 3 range at the end of a rally.
🟣 Types of Butterfly Harmonic Patterns
🟣 Bullish Butterfly Pattern
This pattern forms at the end of a downtrend and leads to a trend reversal from a downtrend to an uptrend.
🟣 Bearish Butterfly Pattern
In contrast to the Bullish Butterfly pattern, this pattern forms at the end of an uptrend and warns analysts of a trend reversal to a downtrend. In this case, traders are encouraged to shift their trading stance from buy trades to sell trades.
Advantages and Limitations of the Butterfly Pattern in Technical Analysis :
The Butterfly pattern is considered one of the precise and stable tools in financial market analysis. However, it is always important to pay special attention to the advantages and limitations of each pattern.
Here, we review the advantages and disadvantages of using the Butterfly harmonic pattern :
The main advantage of the Butterfly pattern is providing very accurate signals.
Using Fibonacci golden ratios and geometric rules, the Butterfly pattern identifies patterns accurately and systematically. (This high accuracy significantly helps investors in making trading decisions.)
Identifying this pattern requires expertise and experience in technical analysis.
Recognizing the Butterfly pattern might be complex for beginner traders. (Correct identification of the pattern necessitates mastery over geometric principles and Fibonacci ratios.)
The Butterfly harmonic pattern might issue false trading signals. (Traders usually combine the Butterfly pattern with other technical tools to confirm buy and sell signals.)
🔵 Setting
🟣 Logical Setting
ZigZag Pivot Period : You can adjust the period so that the harmonic patterns are adjusted according to the pivot period you want. This factor is the most important parameter in pattern recognition.
Show Valid Forma t: If this parameter is on "On" mode, only patterns will be displayed that they have exact format and no noise can be seen in them. If "Off" is, the patterns displayed that maybe are noisy and do not exactly correspond to the original pattern.
Show Formation Last Pivot Confirm : if Turned on, you can see this ability of patterns when their last pivot is formed. If this feature is off, it will see the patterns as soon as they are formed. The advantage of this option being clear is less formation of fielded patterns, and it is accompanied by the latest pattern seeing and a sharp reduction in reward to risk.
Period of Formation Last Pivot : Using this parameter you can determine that the last pivot is based on Pivot period.
🟣 Genaral Setting
Show : Enter "On" to display the template and "Off" to not display the template.
Color : Enter the desired color to draw the pattern in this parameter.
LineWidth : You can enter the number 1 or numbers higher than one to adjust the thickness of the drawing lines. This number must be an integer and increases with increasing thickness.
LabelSize : You can adjust the size of the labels by using the "size.auto", "size.tiny", "size.smal", "size.normal", "size.large" or "size.huge" entries.
🟣 Alert Setting
Alert : On / Off
Message Frequency : This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar".
Show Alert Time by Time Zone : The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
Sylvain Zig-Zag [MyTradingCoder]This Pine Script version of ZigZagHighLow is a faithful port of Sylvain Vervoort's original study, initially implemented in NinjaScript and later added to the thinkorswim standard library. This indicator identifies and connects swing points in price data, offering a clear visualization of market moves that exceed a specified threshold. Additionally, it now includes features for detecting and plotting support and resistance levels, enhancing its utility for technical analysis.
Overview
The Sylvain Zig-Zag study excels at highlighting significant price swings by plotting points where the price change, combined with volatility adjustments via the Average True Range (ATR), exceeds a user-defined percentage. It effectively smooths out minor fluctuations, allowing traders to focus on the primary market trends. This tool is particularly useful in identifying potential turning points, trends in price movements, and key support and resistance levels, making it a valuable addition to your technical analysis arsenal.
How It Works
The Sylvain Zig-Zag indicator works by detecting swing points in the price data and connecting them to form a zigzag pattern. A swing point is identified when the price moves a certain distance, defined by a combination of percentage change and ATR. This distance must be exceeded for a swing point to be plotted.
When the price moves upwards and exceeds the previous high by a specified percentage plus a factor of the ATR, a new high swing point is plotted. Conversely, a low swing point is plotted when the price moves downwards and exceeds the previous low by the same criteria. This ensures that only significant price moves are considered, filtering out minor fluctuations and providing a clear view of the overall market trend.
In addition to plotting zigzag lines, the indicator can now identify and draw support and resistance levels based on the detected swing points. These levels are crucial for identifying potential reversal areas and market structure.
Key Features
Swing Point Detection: Accurately identifies significant price swings by considering both percentage price change and volatility (via Average True Range).
Dynamic Support/Resistance: Automatically generates support and resistance lines based on the identified swing points, providing potential areas of price reversals.
Customizable Parameters: Tailor the indicator's sensitivity to your preferred trading style and market conditions. Adjust parameters like percentage reversal, ATR settings, and absolute/tick reversals.
Visual Clarity: Choose to display the ZigZag line, support/resistance levels, new trend icons, continuation icons, and even customize bar colors for easy visual analysis.
Trading Applications
Trend Identification: Easily visualize the prevailing market trend using the direction of the ZigZag line and support/resistance levels.
Entry/Exit Signals: Potential entry points can be identified when the price interacts with the dynamic support/resistance levels.
Stop-Loss Placement: Use recent swing points as logical places for setting stop-loss orders.
Profit Targets: Project potential price targets based on the distance between previous swing points.
Input Parameters
Several input parameters can be adjusted to customize the behavior of the Sylvain Zig-Zag indicator. These parameters allow traders to fine-tune the detection of swing points and support/resistance levels to better suit their trading strategy and the specific market conditions they are analyzing.
High Source and Low Source:
These inputs define the price points used for detecting high and low swing points, respectively. You can choose between high, low, open, or close prices for these calculations.
Percentage Reversal:
This input sets the minimum percentage change in price required for a swing to be detected. A higher percentage value will result in fewer but more significant swing points, while a lower value will detect more frequent, smaller swings.
Absolute Reversal:
This parameter allows for an additional fixed value to be added to the minimum price change and ATR change. This can be useful for increasing the distance between swing points in volatile markets.
ATR Length:
This input defines the period used for calculating the ATR, which is a measure of market volatility. A longer ATR period will smooth out the ATR calculation, while a shorter period will make it more sensitive to recent price changes.
ATR Multiplier:
This factor is applied to the ATR value to adjust the sensitivity of the swing point detection. A higher multiplier will increase the required price movement for a swing point to be plotted, reducing the number of detected swings.
Tick Reversal:
This input allows for an additional value in ticks to be added to the minimum price change and ATR change, providing further customization in the swing point detection process.
Support and Resistance:
Show S/R: Enable or disable the plotting of support and resistance levels.
Max S/R Levels: Set the maximum number of support and resistance levels to display.
S/R Line Width: Adjust the width of the support and resistance lines.
Visual Settings
The Sylvain Zig-Zag indicator also includes visual settings to enhance the clarity of the plotted swing points and trends. You can customize the color and width of the zigzag line, and enable icons to indicate new trends and continuation patterns. Additionally, the bars can be colored based on the detected trend, aiding in quick visual analysis.
Conclusion
This port of the ZigZagHighLow study from NinjaScript to Pine Script preserves the essence of Sylvain Vervoort’s methodology while adding new features for support and resistance. It provides traders with a powerful tool for technical analysis. The combination of price changes and ATR ensures that you have a robust and adaptable tool for identifying key market movements and structural levels. Customize the settings to match your trading style and gain a clearer picture of market trends, turning points, and support/resistance areas. Enjoy improved market analysis and more informed trading decisions with the Sylvain Zig-Zag indicator.
Harmonic Patterns Library [TradingFinder]🔵 Introduction
Harmonic patterns blend geometric shapes with Fibonacci numbers, making these numbers fundamental to understanding the patterns.
One person who has done a lot of research on harmonic patterns is Scott Carney.Scott Carney's research on harmonic patterns in technical analysis focuses on precise price structures based on Fibonacci ratios to identify market reversals.
Key patterns include the Gartley, Bat, Butterfly, and Crab, each with specific alignment criteria. These patterns help traders anticipate potential market turning points and make informed trading decisions, enhancing the predictability of technical analysis.
🟣 Understanding 5-Point Harmonic Patterns
In the current library version, you can easily draw and customize most XABCD patterns. These patterns often form M or W shapes, or a combination of both. By calculating the Fibonacci ratios between key points, you can estimate potential price movements.
All five-point patterns share a similar structure, differing only in line lengths and Fibonacci ratios. Learning one pattern simplifies understanding others.
🟣 Exploring the Gartley Pattern
The Gartley pattern appears in both bullish (M shape) and bearish (W shape) forms. In the bullish Gartley, point X is below point D, and point A surpasses point C. Point D marks the start of a strong upward trend, making it an optimal point to place a buy order.
The bearish Gartley mirrors the bullish pattern with inverted Fibonacci ratios. In this scenario, point D indicates the start of a significant price drop. Traders can place sell orders at this point and buy at lower prices for profit in two-way markets.
🟣 Analyzing the Butterfly Pattern
The Butterfly pattern also manifests in bullish (M shape) and bearish (W shape) forms. It resembles the Gartley pattern but with point D lower than point X in the bullish version.
The Butterfly pattern involves deeper price corrections than the Gartley, leading to more significant price fluctuations. Point D in the bullish Butterfly indicates the beginning of a sharp price rise, making it an entry point for buy orders.
The bearish Butterfly has inverted Fibonacci ratios, with point D marking the start of a sharp price decline, ideal for sell orders followed by buying at lower prices in two-way markets.
🟣 Insights into the Bat Pattern
The Bat pattern, appearing in bullish (M shape) and bearish (W shape) forms, is one of the most precise harmonic patterns. It closely resembles the Butterfly and Gartley patterns, differing mainly in Fibonacci levels.
The bearish Bat pattern shares the Fibonacci ratios with the bullish Bat, with an inverted structure. Point D in the bearish Bat marks the start of a significant price drop, suitable for sell orders followed by buying at lower prices for profit.
🟣 The Crab Pattern Explained
The Crab pattern, found in both bullish (M shape) and bearish (W shape) forms, is highly favored by analysts. Discovered in 2000, the Crab pattern features a larger final wave correction compared to other harmonic patterns.
The bearish Crab shares Fibonacci ratios with the bullish version but in an inverted form. Point D in the bearish Crab signifies the start of a sharp price decline, making it an ideal point for sell orders followed by buying at lower prices for profitable trades.
🟣 Understanding the Shark Pattern
The Shark pattern appears in bullish (M shape) and bearish (W shape) forms. It differs from previous patterns as point C in the bullish Shark surpasses point A, with unique level measurements.
The bearish Shark pattern mirrors the Fibonacci ratios of the bullish Shark but is inverted. Point D in the bearish Shark indicates the start of a sharp price drop, ideal for placing sell orders and buying at lower prices to capitalize on the pattern.
🟣 The Cypher Pattern Overview
The Cypher pattern is another that appears in both bullish (M shape) and bearish (W shape) forms. It resembles the Shark pattern, with point C in the bullish Cypher extending beyond point A, and point D forming within the XA line.
The bearish Cypher shares the Fibonacci ratios with the bullish Cypher but in an inverted structure. Point D in the bearish Cypher marks the start of a significant price drop, perfect for sell orders followed by buying at lower prices.
🟣 Introducing the Nen-Star Pattern
The Nen-Star pattern appears in both bullish (M shape) and bearish (W shape) forms. In the bullish Nen-Star, point C extends beyond point A, and point D, the final point, forms outside the XA line, making CD the longest wave.
The bearish Nen-Star has inverted Fibonacci ratios, with point D indicating the start of a significant price drop. Traders can place sell orders at point D and buy at lower prices to profit from this pattern in two-way markets.
The 5-point harmonic patterns, commonly referred to as XABCD patterns, are specific geometric price structures identified in financial markets. These patterns are used by traders to predict potential price movements based on historical price data and Fibonacci retracement levels.
Here are the main 5-point harmonic patterns :
Gartley Pattern
Anti-Gartley Pattern
Bat Pattern
Anti-Bat Pattern
Alternate Bat Pattern
Butterfly Pattern
Anti-Butterfly Pattern
Crab Pattern
Anti-Crab Pattern
Deep Crab Pattern
Shark Pattern
Anti- Shark Pattern
Anti Alternate Shark Pattern
Cypher Pattern
Anti-Cypher Pattern
🔵 How to Use
To add "Order Block Refiner Library", you must first add the following code to your script.
import TFlab/Harmonic_Chart_Pattern_Library_TradingFinder/1 as HP
🟣 Parameters
XABCD(Name, Type, Show, Color, LineWidth, LabelSize, ShVF, FLPC, FLPCPeriod, Pivot, ABXAmin, ABXAmax, BCABmin, BCABmax, CDBCmin, CDBCmax, CDXAmin, CDXAmax) =>
Parameters:
Name (string)
Type (string)
Show (bool)
Color (color)
LineWidth (int)
LabelSize (string)
ShVF (bool)
FLPC (bool)
FLPCPeriod (int)
Pivot (int)
ABXAmin (float)
ABXAmax (float)
BCABmin (float)
BCABmax (float)
CDBCmin (float)
CDBCmax (float)
CDXAmin (float)
CDXAmax (float)
🟣 Genaral Parameters
Name : The name of the pattern.
Type: Enter "Bullish" to draw a Bullish pattern and "Bearish" to draw an Bearish pattern.
Show : Enter "true" to display the template and "false" to not display the template.
Color : Enter the desired color to draw the pattern in this parameter.
LineWidth : You can enter the number 1 or numbers higher than one to adjust the thickness of the drawing lines. This number must be an integer and increases with increasing thickness.
LabelSize : You can adjust the size of the labels by using the "size.auto", "size.tiny", "size.smal", "size.normal", "size.large" or "size.huge" entries.
🟣 Logical Parameters
ShVF : If this parameter is on "true" mode, only patterns will be displayed that they have exact format and no noise can be seen in them. If "false" is, the patterns displayed that maybe are noisy and do not exactly correspond to the original pattern.
FLPC : if Turned on, you can see this ability of patterns when their last pivot is formed. If this feature is off, it will see the patterns as soon as they are formed. The advantage of this option being clear is less formation of fielded patterns, and it is accompanied by the lateest pattern seeing and a sharp reduction in reward to risk.
FLPCPeriod : Using this parameter you can determine that the last pivot is based on Pivot period.
Pivot : You need to determine the period of the zigzag indicator. This factor is the most important parameter in pattern recognition.
ABXAmin : Minimum retracement of "AB" line compared to "XA" line.
ABXAmax : Maximum retracement of "AB" line compared to "XA" line.
BCABmin : Minimum retracement of "BC" line compared to "AB" line.
BCABmax : Maximum retracement of "BC" line compared to "AB" line.
CDBCmin : Minimum retracement of "CD" line compared to "BC" line.
CDBCmax : Maximum retracement of "CD" line compared to "BC" line.
CDXAmin : Minimum retracement of "CD" line compared to "XA" line.
CDXAmax : Maximum retracement of "CD" line compared to "XA" line.
🟣 Function Outputs
This library has two outputs. The first output is related to the alert of the formation of a new pattern. And the second output is related to the formation of the candlestick pattern and you can draw it using the "plotshape" tool.
Candle Confirmation Logic :
Example :
import TFlab/Harmonic_Chart_Pattern_Library_TradingFinder/1 as HP
PP = input.int(3, 'ZigZag Pivot Period')
ShowBull = input.bool(true, 'Show Bullish Pattern')
ShowBear = input.bool(true, 'Show Bearish Pattern')
ColorBull = input.color(#0609bb, 'Color Bullish Pattern')
ColorBear = input.color(#0609bb, 'Color Bearish Pattern')
LineWidth = input.int(1 , 'Width Line')
LabelSize = input.string(size.small , 'Label size' , options = )
ShVF = input.bool(false , 'Show Valid Format')
FLPC = input.bool(false , 'Show Formation Last Pivot Confirm')
FLPCPeriod =input.int(2, 'Period of Formation Last Pivot')
//Call function
= HP.XABCD('Bullish Bat', 'Bullish', ShowBull, ColorBull , LineWidth, LabelSize ,ShVF, FLPC, FLPCPeriod, PP, 0.382, 0.50, 0.382, 0.886, 1.618, 2.618, 0.85, 0.9)
= HP.XABCD('Bearish Bat', 'Bearish', ShowBear, ColorBear , LineWidth, LabelSize ,ShVF, FLPC, FLPCPeriod, PP, 0.382, 0.50, 0.382, 0.886, 1.618, 2.618, 0.85, 0.9)
//Alert
if BearAlert
alert('Bearish Harmonic')
if BullAlert
alert('Bulish Harmonic')
//CandleStick Confirm
plotshape(BearCandleConfirm, style = shape.arrowdown, color = color.red)
plotshape(BullCandleConfirm, style = shape.arrowup, color = color.green, location = location.belowbar )
Market Structures + ZigZag [TradingFinder] CHoCH/BOS - MSS/MSB🟣 Introduction
🔵 Market Structure
Grasping market structure entails examining market behavior. Essentially, market structure refers to the formation and progression of the market within its trends.
Market structures are generally fractal and nested, leading us to classify them into internal (minor) and external (major) structures. There are several definitions of market structure, with differing perspectives such as Smart Money and ICT offering their own interpretations.
🔵 Zig Zag
The Zigzag indicator is a lagging tool that identifies points on a price chart where significant changes occur compared to the previous wave. By connecting these points, it helps traders detect trends.
This indicator minimizes random price fluctuations, aiming to clarify the primary price trend.
Pivots are points on a price chart where the direction changes. Also known as reversal points, pivots form when supply and demand forces overpower one another.
There are various types of technical analysis pivots, which can be divided into two categories: minor pivots and major pivots, each with distinct significance in analysis.
Major Pivot : These pivots signify substantial changes in the chart's direction and occur at the end of trends. Analysts focusing on primary analysis prioritize major pivot points. In fact, most technical analysis tools are evaluated and based on major pivots.
Minor Pivot : These pivots highlight smaller, subsidiary points and directions, appearing at the end of corrections. Analysts who focus on minor pivots represent small trends. It's important to note that minor pivots are not suitable for use in primary technical tools.
Identifying Minor and Major Pivots :
Minor pivots are formed between two major pivots and do not break the opposing major pivot. (Internal Pivot)
Major pivots are those that either successfully break the opposing pivot or move beyond the previous pivot of the same type. (External Pivot)
🟣 How to Use
🔵 Identifying Break of Structure (BOS)
In a given trend, such as a downtrend, a Break of Structure occurs when the price drops below the previous low and forms a new low (LL). In an uptrend, a BOS (MSB) happens when the price rises and exceeds the last high.
To confirm a trend, at least one BOS is required. The break above or below the previous high or low must be validated by the closing of at least one candle beyond that level.
🔵 Identifying Change of Character (CHOCH)
Change of Character (CHOCH) is an essential concept in market structure analysis, indicating a trend change. In other words, a trend concludes with a CHOCH (MSS). For example, in a downtrend, the price declines with BOS.
While BOS highlights the trend's strength, a CHOCH occurs when the price rises and surpasses the last high, signaling a transition from a downtrend to an uptrend.
This does not imply immediately entering a buy trade; instead, it is prudent to wait for a BOS in the upward direction to confirm the uptrend.
Unlike BOS, confirming a CHOCH does not require a candle to close; simply breaking above or below the previous high or low with the candle's wick is sufficient. The following examples illustrate bearish and bullish CHOCH.
Terms :
Market Structure Shift = MSS
Market Structure Break = MSB
🔵 Zig Zag
Based on identifying pivots and drawing zigzag lines, you can have different uses of this indicator.
Including :
Identifying pivot types along with major and minor recognition.
Identifying internal and external breakouts.
Identifying support and resistance levels.
Identifying Elliott Waves.
Identifying classic patterns.
Identifying pivots with higher validity.
Identifying trends and range areas.
🟣 Settings
Pivot Period Market Structure and ZigZag Line: Using this input, you can determine the pivot period for identifying swings.
Through the settings, you can customize the display, visibility, and color of each line as desired.
Volatility_ZigZag_LibraryThis is a Pine Script library for the public indicator "Volatility ZigZag" by brettkind. For further description, please refer to the information available on the original indicator page.
Library "Volatility_ZigZag_Library"
getValues_andStyling_VolatilityZigZag_byBrettkind(hl_src, SOURCE, length, min_dev_input, stdev_fctr, ZigZag, zz_color, zz_width, zz_devline, zz_points, zz_alert_sign, ZZ_Label, ZZ_Label_clr, rev_text, zz_bars_text, pcabs_text, avg_pcabs_text, pcrel_text, avg_pcrel_text, vol_text, avg_vol_text, input_currency)
Parameters:
hl_src (bool)
SOURCE (float)
length (int)
min_dev_input (float)
stdev_fctr (float)
ZigZag (bool)
zz_color (color)
zz_width (int)
zz_devline (bool)
zz_points (bool)
zz_alert_sign (bool)
ZZ_Label (bool)
ZZ_Label_clr (color)
rev_text (bool)
zz_bars_text (bool)
pcabs_text (bool)
avg_pcabs_text (bool)
pcrel_text (bool)
avg_pcrel_text (bool)
vol_text (bool)
avg_vol_text (bool)
input_currency (string)
getStatisticTable_VolatilityZigZag_byBrettkind(x1, Y1_array, draw_tbl)
Parameters:
x1 (int)
Y1_array (array)
draw_tbl (bool)
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 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 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 Fibonacci Golden Zone [UAlgo]🔶 Description:
The "Zigzag Fibonacci Golden Zone" aims to identify potential trend pullback points by utilizing a combination of zigzag patterns and Fibonacci "Golden Zone (0.618 - 0.786)" retracement levels. It plots zigzag lines on the price chart, highlighting significant swing highs and swing lows, and overlays Fibonacci retracement levels to indicate potential support and resistance zones. Additionally, it provides options to display buy and sell signals based on specific criteria.
🔶 Key Features:
Zigzag Lines: The indicator plots zigzag lines on the price chart, marking significant swing highs and swing lows. These lines help traders visualize the direction and magnitude of price swings.
Fibonacci Retracement Levels: The indicator overlays Fibonacci retracement levels on the chart, indicating potential support and resistance levels. These levels are derived from the Fibonacci sequence and are commonly used by traders to identify reversal points.
Fibonacci occurs again when a new zigzag low or high is created :
Before new zigzag low pivot appears,
After new Zigzag low pivot appears,
As you see new fibonacci created after new pivot found also price bounced from retracement zone.
Customization Options: Traders can customize various parameters of the indicator, such as the length of the zigzag pattern, color preferences for different elements, and visibility of price labels and buy/sell signals.
Buy/Sell Signals: The indicator generates buy and sell signals based on predefined criteria, such as price movements relative to Fibonacci levels and other market conditions. These signals can help traders identify potential entry and exit points in the market.
Example :
Disclaimer :
Please note that trading involves significant risk, and past performance is not indicative of future results. The "Zigzag Fibonacci Golden Zone" indicator is provided for informational purposes only and should not be considered financial advice. Traders should conduct their own research and analysis before making any investment decisions. Additionally, the indicator's performance may vary depending on market conditions and other factors. Users are encouraged to use the indicator as part of a comprehensive trading strategy and to exercise caution when trading in the financial markets.
Trended CVD [Mxwll]Hey!
This indicator "Trended CVD" categorizes price movement by trend (using zig zag) and calculates cumulative volume delta for the entirety of the price move.
Features
CVD calculated for the trend
CVD divergences are distinguished (uptrend and falling CVD / downtrend and rising CVD)
CVD output normalized to scale with chart, and is plotted alongside the trend
Can be used for trend confirmation (CVD trend correlating with price trend)
All regular zig-zag features available
What constitutes a trend is customizable. Can locate small, medium, large price trends with detailed user-input settings.
How-To Use Trended CVD
The image above shows one of two primary uses for the indicator.
In the left-half of the image, price is downtrending simultaneously with CVD; thereby, CVD is confirming the downtrend.
The right-half of the image shows price uptrending simultaneously with CVD; CVD is confirming the uptrend.
This information can be used to classify the "strength" of the price move, and decide to trade with it or against it.
The image above shows the second primary use for the indicator.
A slight price decrease transpires while CVD increases - CVD diverging upwards from the price trend.
This information can be used to classify the strength of the downtrend, and decide to trade against it, or abstain from trading with it.
The image above shows, subsequent to divergence, price failed to sustain "meaningful" downwards movement.
Labels oriented at the final pivot of a trend show the cumulative volume delta for the entirety of the price move (distinguishable by the superimposed zig zag line).
That's really it! A more complex concept integrated with a simple output.
Thank you!
ZigzagLiteLibrary "ZigzagLite"
Lighter version of the Zigzag Library. Without indicators and sub-component divisions
method getPrices(pivots)
Gets the array of prices from array of Pivots
Namespace types: Pivot
Parameters:
pivots (Pivot ) : array array of Pivot objects
Returns: array array of pivot prices
method getBars(pivots)
Gets the array of bars from array of Pivots
Namespace types: Pivot
Parameters:
pivots (Pivot ) : array array of Pivot objects
Returns: array array of pivot bar indices
method getPoints(pivots)
Gets the array of chart.point from array of Pivots
Namespace types: Pivot
Parameters:
pivots (Pivot ) : array array of Pivot objects
Returns: array array of pivot points
method getPoints(this)
Namespace types: Zigzag
Parameters:
this (Zigzag)
method calculate(this, ohlc, ltfHighTime, ltfLowTime)
Calculate zigzag based on input values and indicator values
Namespace types: Zigzag
Parameters:
this (Zigzag) : Zigzag object
ohlc (float ) : Array containing OHLC values. Can also have custom values for which zigzag to be calculated
ltfHighTime (int) : Used for multi timeframe zigzags when called within request.security. Default value is current timeframe open time.
ltfLowTime (int) : Used for multi timeframe zigzags when called within request.security. Default value is current timeframe open time.
Returns: current Zigzag object
method calculate(this)
Calculate zigzag based on properties embedded within Zigzag object
Namespace types: Zigzag
Parameters:
this (Zigzag) : Zigzag object
Returns: current Zigzag object
method nextlevel(this)
Namespace types: Zigzag
Parameters:
this (Zigzag)
method clear(this)
Clears zigzag drawings array
Namespace types: ZigzagDrawing
Parameters:
this (ZigzagDrawing ) : array
Returns: void
method clear(this)
Clears zigzag drawings array
Namespace types: ZigzagDrawingPL
Parameters:
this (ZigzagDrawingPL ) : array
Returns: void
method drawplain(this)
draws fresh zigzag based on properties embedded in ZigzagDrawing object without trying to calculate
Namespace types: ZigzagDrawing
Parameters:
this (ZigzagDrawing) : ZigzagDrawing object
Returns: ZigzagDrawing object
method drawplain(this)
draws fresh zigzag based on properties embedded in ZigzagDrawingPL object without trying to calculate
Namespace types: ZigzagDrawingPL
Parameters:
this (ZigzagDrawingPL) : ZigzagDrawingPL object
Returns: ZigzagDrawingPL object
method drawfresh(this, ohlc)
draws fresh zigzag based on properties embedded in ZigzagDrawing object
Namespace types: ZigzagDrawing
Parameters:
this (ZigzagDrawing) : ZigzagDrawing object
ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
Returns: ZigzagDrawing object
method drawcontinuous(this, ohlc)
draws zigzag based on the zigzagmatrix input
Namespace types: ZigzagDrawing
Parameters:
this (ZigzagDrawing) : ZigzagDrawing object
ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
Returns:
PivotCandle
PivotCandle represents data of the candle which forms either pivot High or pivot low or both
Fields:
_high (series float) : High price of candle forming the pivot
_low (series float) : Low price of candle forming the pivot
length (series int) : Pivot length
pHighBar (series int) : represents number of bar back the pivot High occurred.
pLowBar (series int) : represents number of bar back the pivot Low occurred.
pHigh (series float) : Pivot High Price
pLow (series float) : Pivot Low Price
Pivot
Pivot refers to zigzag pivot. Each pivot can contain various data
Fields:
point (chart.point) : pivot point coordinates
dir (series int) : direction of the pivot. Valid values are 1, -1, 2, -2
level (series int) : is used for multi level zigzags. For single level, it will always be 0
ratio (series float) : Price Ratio based on previous two pivots
sizeRatio (series float)
ZigzagFlags
Flags required for drawing zigzag. Only used internally in zigzag calculation. Should not set the values explicitly
Fields:
newPivot (series bool) : true if the calculation resulted in new pivot
doublePivot (series bool) : true if the calculation resulted in two pivots on same bar
updateLastPivot (series bool) : true if new pivot calculated replaces the old one.
Zigzag
Zigzag object which contains whole zigzag calculation parameters and pivots
Fields:
length (series int) : Zigzag length. Default value is 5
numberOfPivots (series int) : max number of pivots to hold in the calculation. Default value is 20
offset (series int) : Bar offset to be considered for calculation of zigzag. Default is 0 - which means calculation is done based on the latest bar.
level (series int) : Zigzag calculation level - used in multi level recursive zigzags
zigzagPivots (Pivot ) : array which holds the last n pivots calculated.
flags (ZigzagFlags) : ZigzagFlags object which is required for continuous drawing of zigzag lines.
ZigzagObject
Zigzag Drawing Object
Fields:
zigzagLine (series line) : Line joining two pivots
zigzagLabel (series label) : Label which can be used for drawing the values, ratios, directions etc.
ZigzagProperties
Object which holds properties of zigzag drawing. To be used along with ZigzagDrawing
Fields:
lineColor (series color) : Zigzag line color. Default is color.blue
lineWidth (series int) : Zigzag line width. Default is 1
lineStyle (series string) : Zigzag line style. Default is line.style_solid.
showLabel (series bool) : If set, the drawing will show labels on each pivot. Default is false
textColor (series color) : Text color of the labels. Only applicable if showLabel is set to true.
maxObjects (series int) : Max number of zigzag lines to display. Default is 300
xloc (series string) : Time/Bar reference to be used for zigzag drawing. Default is Time - xloc.bar_time.
curved (series bool) : Boolean field to print curved zigzag - used only with polyline implementation
ZigzagDrawing
Object which holds complete zigzag drawing objects and properties.
Fields:
zigzag (Zigzag) : Zigzag object which holds the calculations.
properties (ZigzagProperties) : ZigzagProperties object which is used for setting the display styles of zigzag
drawings (ZigzagObject ) : array which contains lines and labels of zigzag drawing.
ZigzagDrawingPL
Object which holds complete zigzag drawing objects and properties - polyline version
Fields:
zigzag (Zigzag) : Zigzag object which holds the calculations.
properties (ZigzagProperties) : ZigzagProperties object which is used for setting the display styles of zigzag
zigzagLabels (label )
zigzagLine (series polyline) : polyline object of zigzag lines
ZigzagLibrary "Zigzag"
Zigzag related user defined types. Depends on DrawingTypes library for basic types
method tostring(this, sortKeys, sortOrder, includeKeys)
Converts ZigzagTypes/Pivot object to string representation
Namespace types: Pivot
Parameters:
this (Pivot) : ZigzagTypes/Pivot
sortKeys (bool) : If set to true, string output is sorted by keys.
sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
Returns: string representation of ZigzagTypes/Pivot
method tostring(this, sortKeys, sortOrder, includeKeys)
Converts Array of Pivot objects to string representation
Namespace types: Pivot
Parameters:
this (Pivot ) : Pivot object array
sortKeys (bool) : If set to true, string output is sorted by keys.
sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
Returns: string representation of Pivot object array
method tostring(this)
Converts ZigzagFlags object to string representation
Namespace types: ZigzagFlags
Parameters:
this (ZigzagFlags) : ZigzagFlags object
Returns: string representation of ZigzagFlags
method tostring(this, sortKeys, sortOrder, includeKeys)
Converts ZigzagTypes/Zigzag object to string representation
Namespace types: Zigzag
Parameters:
this (Zigzag) : ZigzagTypes/Zigzagobject
sortKeys (bool) : If set to true, string output is sorted by keys.
sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
Returns: string representation of ZigzagTypes/Zigzag
method calculate(this, ohlc, indicators, indicatorNames)
Calculate zigzag based on input values and indicator values
Namespace types: Zigzag
Parameters:
this (Zigzag) : Zigzag object
ohlc (float ) : Array containing OHLC values. Can also have custom values for which zigzag to be calculated
indicators (matrix) : Array of indicator values
indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
Returns: current Zigzag object
method calculate(this)
Calculate zigzag based on properties embedded within Zigzag object
Namespace types: Zigzag
Parameters:
this (Zigzag) : Zigzag object
Returns: current Zigzag object
method nextlevel(this)
Calculate Next Level Zigzag based on the current calculated zigzag object
Namespace types: Zigzag
Parameters:
this (Zigzag) : Zigzag object
Returns: Next Level Zigzag object
method clear(this)
Clears zigzag drawings array
Namespace types: ZigzagDrawing
Parameters:
this (ZigzagDrawing ) : array
Returns: void
method drawplain(this)
draws fresh zigzag based on properties embedded in ZigzagDrawing object without trying to calculate
Namespace types: ZigzagDrawing
Parameters:
this (ZigzagDrawing) : ZigzagDrawing object
Returns: ZigzagDrawing object
method drawfresh(this, ohlc, indicators, indicatorNames)
draws fresh zigzag based on properties embedded in ZigzagDrawing object
Namespace types: ZigzagDrawing
Parameters:
this (ZigzagDrawing) : ZigzagDrawing object
ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
indicators (matrix) : Array of indicator values
indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
Returns: ZigzagDrawing object
method drawcontinuous(this, ohlc, indicators, indicatorNames)
draws zigzag based on the zigzagmatrix input
Namespace types: ZigzagDrawing
Parameters:
this (ZigzagDrawing) : ZigzagDrawing object
ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
indicators (matrix) : Array of indicator values
indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
Returns:
method getPrices(pivots)
Namespace types: Pivot
Parameters:
pivots (Pivot )
method getBars(pivots)
Namespace types: Pivot
Parameters:
pivots (Pivot )
Indicator
Indicator is collection of indicator values applied on high, low and close
Fields:
indicatorHigh (series float) : Indicator Value applied on High
indicatorLow (series float) : Indicator Value applied on Low
PivotCandle
PivotCandle represents data of the candle which forms either pivot High or pivot low or both
Fields:
_high (series float) : High price of candle forming the pivot
_low (series float) : Low price of candle forming the pivot
length (series int) : Pivot length
pHighBar (series int) : represents number of bar back the pivot High occurred.
pLowBar (series int) : represents number of bar back the pivot Low occurred.
pHigh (series float) : Pivot High Price
pLow (series float) : Pivot Low Price
indicators (Indicator ) : Array of Indicators - allows to add multiple
Pivot
Pivot refers to zigzag pivot. Each pivot can contain various data
Fields:
point (chart.point) : pivot point coordinates
dir (series int) : direction of the pivot. Valid values are 1, -1, 2, -2
level (series int) : is used for multi level zigzags. For single level, it will always be 0
componentIndex (series int) : is the lower level zigzag array index for given pivot. Used only in multi level Zigzag Pivots
subComponents (series int) : is the number of sub waves per each zigzag wave. Only applicable for multi level zigzags
microComponents (series int) : is the number of base zigzag components in a zigzag wave
ratio (series float) : Price Ratio based on previous two pivots
sizeRatio (series float)
subPivots (Pivot )
indicatorNames (string ) : Names of the indicators applied on zigzag
indicatorValues (float ) : Values of the indicators applied on zigzag
indicatorRatios (float ) : Ratios of the indicators applied on zigzag based on previous 2 pivots
ZigzagFlags
Flags required for drawing zigzag. Only used internally in zigzag calculation. Should not set the values explicitly
Fields:
newPivot (series bool) : true if the calculation resulted in new pivot
doublePivot (series bool) : true if the calculation resulted in two pivots on same bar
updateLastPivot (series bool) : true if new pivot calculated replaces the old one.
Zigzag
Zigzag object which contains whole zigzag calculation parameters and pivots
Fields:
length (series int) : Zigzag length. Default value is 5
numberOfPivots (series int) : max number of pivots to hold in the calculation. Default value is 20
offset (series int) : Bar offset to be considered for calculation of zigzag. Default is 0 - which means calculation is done based on the latest bar.
level (series int) : Zigzag calculation level - used in multi level recursive zigzags
zigzagPivots (Pivot ) : array which holds the last n pivots calculated.
flags (ZigzagFlags) : ZigzagFlags object which is required for continuous drawing of zigzag lines.
ZigzagObject
Zigzag Drawing Object
Fields:
zigzagLine (series line) : Line joining two pivots
zigzagLabel (series label) : Label which can be used for drawing the values, ratios, directions etc.
ZigzagProperties
Object which holds properties of zigzag drawing. To be used along with ZigzagDrawing
Fields:
lineColor (series color) : Zigzag line color. Default is color.blue
lineWidth (series int) : Zigzag line width. Default is 1
lineStyle (series string) : Zigzag line style. Default is line.style_solid.
showLabel (series bool) : If set, the drawing will show labels on each pivot. Default is false
textColor (series color) : Text color of the labels. Only applicable if showLabel is set to true.
maxObjects (series int) : Max number of zigzag lines to display. Default is 300
xloc (series string) : Time/Bar reference to be used for zigzag drawing. Default is Time - xloc.bar_time.
ZigzagDrawing
Object which holds complete zigzag drawing objects and properties.
Fields:
zigzag (Zigzag) : Zigzag object which holds the calculations.
properties (ZigzagProperties) : ZigzagProperties object which is used for setting the display styles of zigzag
drawings (ZigzagObject ) : array which contains lines and labels of zigzag drawing.
Volatility ZigZagIt calculates and plots zigzag lines based on volatility and price movements. It has various inputs for customization, allowing you to adjust parameters like source data, length, deviation, line styling, and labeling options.
The indicator identifies pivot points in the price movement, drawing lines between these pivots based on the deviation from certain price levels or volatility measures.
The script labels various data points at the ZigZag pivot points on the chart. These labels provide information about different aspects of the price movement and volume around these pivot points. Here's a breakdown of what gets labeled:
Price Change: Indicates the absolute and average percentage change between the two pivot points. It displays the absolute or relative change in price as a percentage. Additionally, the average absolute price increase or the average rate of increase can also be labeled.
Volume: Shows the total volume and average volume between the two pivot points.
Number of Bars: Indicates the number of bars between the current and the last pivot point.
Reversal Price: Displays the price of the reversal point (the previous pivot).
Zig-Zag Open Interest Footprint [Kioseff Trading]Hello!
This script "Zig Zag Open Interest Footprint" calculates open interest x price values for zig zag trends!
Features
Open interest footprints anchored to zig zag trends
Summed OI x price level footprints
Total OI (for each category) for the entire trend shown
Standard POC lines, in addition to separated POC lines for each category of open interest x price possibility
Up to 9999 profile rows per zigzag trend
Stylistic options for profiles
Configurable zig zag - footprints generated for small to large trends
The zigzag indicator is configurable as normal; minor and major trend volume footprints are calculable. This indicator can be thought of as "Open Interest Footprint for Trends''.
Up to 9999 open interest levels (price levels) can be calculated for each profile, thanks to the new polyline feature, allowing for less aggregation / more precision of open interest at price.
Zig Zag OI Footprints
The image above shows primary functionality!
Green = Higher OI + Higher Price
Yellow = Lower OI + Higher Price
Purple = Higher OI + Lower Price
Red = Lower OI + Lower Price
Profiles are generated for each trend identified by the zigzag indicator.
The image above shows the indicator calculating open interest x price for specific price blocks on the footprint. Aggregate open interest for the identified trend is displayed over the profile!
Neon highlighted values correspond to the highest open interest change for the category. This is a configurable option :D
The image above shows POC lines for each category of open interest x price!
Additionally, you can select to show a single POV for footprint - the single level the greatest amount of OI change occurred.
The indicator is robust enough to calculate on "long zig zags" and "short zig zags"; curved profiles can also be used!
The image above shows key levels, each OI footprint, and summed OI values for the current trend!
That's about it :D
This indicator is part of a series titled "Bull vs. Bear" - a suite of profile-like indicators I will be releasing over the coming days. Thanks for checking this out!
If you have any suggestions please feel free to share!
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 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
ZigLibLibrary "ZigLib"
Calculate the points for ZigZag++.
You can use custom data and resolution for your ZigZag++.
Sample Usage
import DevLucem/ZigLib/1 as ZigZag
= ZigZag.zigzag(low, high)
bgcolor(direction<0? color.rgb(255, 82, 82, 80): color.rgb(0, 230, 119, 80))
line zz = line.new(z1.time, z1.price, z2.time, z2.price, xloc.bar_time, width=3)
if direction==direction
line.delete(zz )
zigzag(_low, _high, depth, deviation, backstep)
Get current zigzag points and direction
Parameters:
_low (float)
_high (float)
depth (int)
deviation (int)
backstep (int)
Returns direction, chart point 1 and chart point 2
The Next Pivot [Kioseff Trading]Hello!
This script "The Next Pivot" uses various similarity measures to compare historical price sequences to the current price sequence!
Features
Find the most similar price sequence up to 100 bars from the current bar
Forecast price path up to 250 bars
Forecast ZigZag up to 250 bars
Spearmen
Pearson
Absolute Difference
Cosine Similarity
Mean Squared Error
Kendall
Forecasted linear regression channel
The image above shows/explains some of the indicator's capabilities!
The image above highlights the projected zig zag (pivots) pattern!
Colors are customizable (:
Additionally, you can plot a forecasted LinReg channel.
Should load times permit it, the script can search all bar history for a correlating sequence. This won't always be possible, contingent on the forecast length, correlation length, and the number of bars on the chart.
Reasonable Assessment
The script uses various similarity measures to find the "most similar" price sequence to what's currently happening. Once found, the subsequent price move (to the most similar sequence) is recorded and projected forward.
So,
1: Script finds most similar price sequence
2: Script takes what happened after and projects forward
While this may be useful, the projection is simply the reaction to a possible one-off "similarity" to what's currently happening. Random fluctuations are likely and, if occurring, similarities between the current price sequence and the "most similar" sequence are plausibly coincidental.
That said, if you have any ideas on cool features to add please let me know!
Thank you (:
Zigzag Trend-based Color [SteinG]Zigzag Indicator with Trend-based Color Coding and Info Table
This indicator is forked from Trendoscope's Recursive Zigzag
The Zigzag Indicator with Trend-based Color Coding and Info Table is a powerful tool for technical analysis, designed to help you identify significant price swings, visualize trends, and analyze pivot points with ease. This advanced indicator offers enhanced functionalities and improved visual representation.
The primary purpose of the Zigzag Indicator is to identify and highlight important price reversals, commonly referred to as pivot points, in a given chart. These pivot points are essential in recognizing trend changes and potential market turning points. With the Zigzag Indicator, you can quickly identify these pivotal moments and gain valuable insights into market dynamics.
One of the standout features of this indicator is the color coding applied to the Zigzag line, which intuitively reflects the trend associated with each pivot point. The color scheme is as follows:
- Green : Indicates an upward trend, representing a bullish movement in the price.
- Lime : Represents a retracement during an upward trend, indicating a temporary pullback before the uptrend resumes.
- Red : Signifies a downward trend, indicating a bearish movement in the price.
- Orange : Represents a retracement during a downward trend, indicating a temporary bounce before the downtrend resumes.
This color coding allows you to easily visualize the prevailing market sentiment and make more informed trading decisions accordingly.
In addition to the visual representation, the Zigzag Indicator also includes an informative table that provides essential details about each pivot point. The table presents the following information for each pivot point:
1. Pivot Value : The price level at which the pivot point occurs.
2. Direction : Indicates whether the pivot point represents an upward or downward trend.
3. Fibo Ratios : Displays the Fibonacci retracement levels between two consecutive pivot points, offering insights into potential support and resistance levels.
The inclusion of this comprehensive info table enables you to analyze pivot points more effectively, understand the underlying price dynamics, and identify key trading opportunities.
PivotLibrary "Pivot"
This library helps you store and manage pivots.
bias(isHigh, isHigher, prevWasHigher)
Helper function to calculate bias.
Parameters:
isHigh (bool) : (bool) Wether the pivot is a pivot high or not.
isHigher (bool) : (bool) Wether the pivot is a higher pivot or not.
@return (bool) The bias (true = bullish, false = bearish, na = neutral).
prevWasHigher (bool)
biasToString(bias)
Parameters:
bias (bool)
biasToColor(bias, theme)
Parameters:
bias (bool)
theme (Theme)
nameString(isHigh, isHigher)
Parameters:
isHigh (bool)
isHigher (bool)
abbrString(isHigh, isHigher)
Parameters:
isHigh (bool)
isHigher (bool)
tooltipString(y, isHigh, isHigher, bias, theme)
Parameters:
y (float)
isHigh (bool)
isHigher (bool)
bias (bool)
theme (Theme)
createLabel(x, y, isHigh, isHigher, prevWasHigher, settings)
Parameters:
x (int)
y (float)
isHigh (bool)
isHigher (bool)
prevWasHigher (bool)
settings (Settings)
new(x, y, isHigh, isHigher, settings)
Parameters:
x (int)
y (float)
isHigh (bool)
isHigher (bool)
settings (Settings)
newArray(size, initialValue)
Parameters:
size (int)
initialValue (Pivot)
method getFirst(this)
Namespace types: Pivot
Parameters:
this (Pivot )
method getLast(this, isHigh)
Namespace types: Pivot
Parameters:
this (Pivot )
isHigh (bool)
method getLastHigh(this)
Namespace types: Pivot
Parameters:
this (Pivot )
method getLastLow(this)
Namespace types: Pivot
Parameters:
this (Pivot )
method getPrev(this, numBack, isHigh)
Namespace types: Pivot
Parameters:
this (Pivot )
numBack (int)
isHigh (bool)
method getPrevHigh(this, numBack)
Namespace types: Pivot
Parameters:
this (Pivot )
numBack (int)
method getPrevLow(this, numBack)
Namespace types: Pivot
Parameters:
this (Pivot )
numBack (int)
method getText(this)
Namespace types: Pivot
Parameters:
this (Pivot)
method setX(this, value)
Namespace types: Pivot
Parameters:
this (Pivot)
value (int)
method setY(this, value)
Namespace types: Pivot
Parameters:
this (Pivot)
value (float)
method setXY(this, x, y)
Namespace types: Pivot
Parameters:
this (Pivot)
x (int)
y (float)
method setBias(this, value)
Namespace types: Pivot
Parameters:
this (Pivot)
value (int)
method setColor(this, value)
Namespace types: Pivot
Parameters:
this (Pivot)
value (color)
method setText(this, value)
Namespace types: Pivot
Parameters:
this (Pivot)
value (string)
method add(this, pivot)
Namespace types: Pivot
Parameters:
this (Pivot )
pivot (Pivot)
method updateLast(this, y, settings)
Namespace types: Pivot
Parameters:
this (Pivot )
y (float)
settings (Settings)
method update(this, y, isHigh, settings)
Namespace types: Pivot
Parameters:
this (Pivot )
y (float)
isHigh (bool)
settings (Settings)
Pivot
Stores Pivot data.
Fields:
x (series int)
y (series float)
isHigh (series bool)
isHigher (series bool)
bias (series bool)
lb (series label)
Theme
Attributes for customizable look and feel.
Fields:
size (series string)
colorDefault (series color)
colorNeutral (series color)
colorBullish (series color)
colorBearish (series color)
colored (series bool)
showTooltips (series bool)
showTooltipName (series bool)
showTooltipValue (series bool)
showTooltipBias (series bool)
Settings
All settings for the pivot.
Fields:
theme (Theme)