Pivots Support Resistance ZoneThis simple script base on function of Pivot High Low to plot Support and Resistance Zone on chart with detail as below:
1. Support Zone
+ New Pivot Low is plotted
+ New Pivot Low lower previous Pivot Low
+ Upper Line of Support Zone is previous Pivot Low
+ Lower Line of Support Zone is new Pivot Low
2. Resistance Zone
+ New Pivot High is plotted
+ New Pivot High higher previous Pivot High
+ Upper Line of Resistance Zone is new Pivot High
+ Lower Line of Resistance Zone is previous Pivot High
Pivot
Price Legs: Average Heights; 'Smart ATR'Price Legs: Average Heights; 'Smart ATR'. Consol Range Gauge
~~ Indicator to show small and large price legs (based on short and long input pivot lengths), and calculating the average heights of these price legs; counting legs from user-input start time ~~
//Premise: Wanted to use this as something like a 'Smart ATR': where the average/typical range of a distinct & dynamic price leg could be calculated based on a user-input time interval (as opposed to standard ATR, which is simply the average range over a consistent repeating period, with no regard to market structure). My instinct is that this would be most useful for consolidated periods & range trading: giving the trader an idea of what the typical size of a price leg might be in the current market state (hence in the title, Consol Range gauge)
//Features & User inputs:
-Start time: confirm input when loading indicator by clicking on the chart. Then drag the vertical line to change start time easily.
-Large Legs (toggle on/off) and user-input pivot lookback/lookforward length (larger => larger legs)
-Small Legs (toggle on/off) and user-input pivot lookback/lookforward length (smaller => smaller legs)
-Display Stats table: toggle on/off: simple view- shows the averages of large (up & down), small (up & down), and combined (for each).
-Extended stats table: toggle on/off option to show the averages of the last 3 legs of each category (up/down/large/small/combined)
-Toggle on/off Time & Price chart text labels of price legs (time in mins/hours/days; price in $ or pips; auto assigned based on asset)
-Table position: user choice.
//Notes & tips:
-Using custom start time along with replay mode, you can select any arbitrary chunk of price for the purpose of backtesting.
-Play around with the pivot lookback lengths to find price legs most suitable to the current market regime (consolidating/trending; high volatility/ low volatility)
-Single bar price legs will never be counted: they must be at least 2 bars from H>>L or L>>H.
//Credits: Thanks to @crypto_juju for the idea of applying statistics to this simple price leg indicator.
Simple View: showing only the full averages (counting from Start time):
View showing ONLY the large legs, with Time & Price labels toggled ON:
lib_zigLibrary "lib_zig"
Object oriented implementation of ZigZag
method tostring(this, date_format)
Namespace types: Zigzag
Parameters:
this (Zigzag)
date_format (simple string)
method update(this)
Namespace types: Zigzag
Parameters:
this (Zigzag)
method draw(this, colors)
Namespace types: Zigzag
Parameters:
this (Zigzag)
colors (PivotColors type from robbatt/lib_pivot/19)
Zigzag
Fields:
max_pivots (series__integer)
hldata (|robbatt/lib_pivot/19;HLData|#OBJ)
pivots (array__|robbatt/lib_pivot/19;Pivot|#OBJ)
lib_pivotLibrary "lib_pivot"
Object oriented implementation of Pivot methods.
method tostring(this)
Converts HLData to a json string representation
Namespace types: HLData
Parameters:
this (HLData) : HLData
Returns: string representation of Pivot
method tostring(this, date_format)
Namespace types: Pivot
Parameters:
this (Pivot)
date_format (simple string)
method tostring(this, date_format)
Namespace types: Pivot
Parameters:
this (Pivot )
date_format (simple string)
method get_color(this, mode)
Namespace types: PivotColors
Parameters:
this (PivotColors)
mode (int)
method get_label_text(this)
Namespace types: Pivot
Parameters:
this (Pivot)
method direction(this)
Namespace types: Pivot
Parameters:
this (Pivot)
method same_direction_as(this, other)
Namespace types: Pivot
Parameters:
this (Pivot)
other (Pivot)
method exceeds(this, price)
Namespace types: Pivot
Parameters:
this (Pivot)
price (float)
method exceeds(this, other)
Namespace types: Pivot
Parameters:
this (Pivot)
other (Pivot)
method exceeded_by(this, price)
Namespace types: Pivot
Parameters:
this (Pivot)
price (float)
method exceeded_by(this, other)
Namespace types: Pivot
Parameters:
this (Pivot)
other (Pivot)
method retracement_ratio(this, lastPivot, sec_lastPivot)
Namespace types: Pivot
Parameters:
this (Pivot)
lastPivot (Pivot)
sec_lastPivot (Pivot)
ratio_target(sec_lastPivot, lastPivot, target_ratio)
Parameters:
sec_lastPivot (Pivot)
lastPivot (Pivot)
target_ratio (float)
method update(this, ref_highest, ref_lowest)
Namespace types: HLData
Parameters:
this (HLData)
ref_highest (float)
ref_lowest (float)
method update(this, bar_time, bar_idx, price, prev)
Namespace types: Pivot
Parameters:
this (Pivot)
bar_time (int)
bar_idx (int)
price (float)
prev (Pivot)
method create_next(this, bar_time, bar_idx, price)
Namespace types: Pivot
Parameters:
this (Pivot)
bar_time (int)
bar_idx (int)
price (float)
HLData
HLData wraps the data received from ta.highest, ta.highestbars, ta.lowest, ta.lowestbars, as well as the reference sources
Fields:
length (series int) : lookback length for pivot points
highest_offset (series int) : offset to highest value bar
lowest_offset (series int) : offset to lowest value bar
highest (series float) : highest value within lookback bars
lowest (series float) : lowest value within lookback bars
new_highest (series bool) : update() will set this true if the current candle forms a new highest high at the last (current) bar of set period (length)
new_lowest (series bool) : update() will set this true if the current candle forms a new lowest low at the last (current) bar of set period (length)
new_highest_fractal (series bool) : update() will set this true if the current candle forms a new fractal high at the center of set period (length)
new_lowest_fractal (series bool) : update() will set this true if the current candle forms a new fractal low at the center of set period (length)
PivotColors
Pivot colors for different modes
Fields:
hh (series color) : Color for Pivot mode 2 (HH)
lh (series color) : Color for Pivot mode 1 (LH)
hl (series color) : Color for Pivot mode -1 (HL)
ll (series color) : Color for Pivot mode -2 (LL)
Pivot
Pivot additional pivot data around basic Point
Fields:
point (Point type from robbatt/lib_plot_objects/5)
mode (series int) : can be -2/-1/1/2 for LL/HL/LH/HH
price_movement (series float) : The price difference between this and the previous pivot point in the opposite direction
retracement_ratio (series float) : The ratio between this price_movement and the previous
prev (Pivot)
Pivot HL Trading SetupThis simple script base on function of Pivot High Low to plot Trading Setup on chart with detail as below:
2. Trading Setup
2.1 Buy setup
+ New Pivot Low is plotted
+ Entry Long at market price.
+ Stoploss at Pivot Low
+ Takeprofit at Pivot High
+ Buy setup invalidation when price crossed Pivot High or Pivot Low
2.1 Sell setup
+ New Pivot High is plotted
+ Entry Short at market price.
+ Stoploss at Pivot High
+ Takeprofit at Pivot Low
+ Sell setup invalidation when price crossed Pivot High or Pivot Low
K's Pivot PointsPivot points are a popular technical analysis tool used by traders to identify potential levels of support and resistance in a given timeframe. Pivot points are derived from previous price action and are used to estimate potential price levels where an asset may experience a reversal, breakout, or significant price movement.
The calculation of pivot points involves a simple formula that takes into account the high, low, and close prices from the previous trading session or a specific period. The most commonly used pivot point calculation method is the "Standard" or "Classic" method. Here's the formula:
Pivot Point (P) = (High + Low + Close) / 3
In addition to the pivot point itself, several support and resistance levels are calculated based on the pivot point value.
K's Pivot Points try to enhance them by incorporating multiple elements and by applying a re-integration strategy to validate two events:
* Found_Support: This event represents a basing market that is bound to recover or at least shape a bounce.
* Found_Resistance: This event represents a toppish market that is bound to consolidate or at least shape a pause.
K's Pivot Points are calculated following these steps:
1. Calculate the highest of highs for the previous 24 periods (preferably hours).
2. Calculate the lowest of lows for the previous 24 periods (preferably hours).
3. Calculate a 24-period (preferably hours) moving average of the close price.
4. Calculate K's Pivot Point as the average between the three previous step.
5. To find the support, use this formula: Support = (Lowest K's pivot point of the last 12 periods * 2) - Step 1
6. To find the resistance, use this formula: Resistance = (Highest K's pivot point of the last 12 periods * 2) - Step 2
The re-integration strategy to find support and resistance areas is as follows:
* A support has been found if the market breaks the support and shapes a close above it afterwards.
* A resistance has been found if the market surpasses the resistance and shapes a close below it afterwards.
The lookback period (whether 24 and 12) can be modified but the default versions work well.
ICT Killzones + Pivots [TFO]Designed with the help of TTrades and with inspiration from the ICT Everything indicator by coldbrewrosh, the purpose of this script is to identify ICT Killzones while also storing their highs and lows for future reference, until traded through.
There are 5 Killzones / sessions whose times and labels can all be changed to one's liking. Some prefer slight alterations to traditional ICT Killzones, or use different time windows altogether. Either way, the sessions are fully customizable. The sessions will auto fit to keep track of the highs and lows made during their respective times, and these pivots will be extended until they are invalidated.
There are also 4 optional Open Price lines and 4 vertical Timestamps, where the user can change the time and style of each one as well.
To help maintain a clean chart, we can implement a Cutoff Time where all drawings will stop extending past a certain point. The indicator will apply this logic by default, as it can get messy with multiple drawings starting and stopping throughout the day at different times.
Given the amount of interest I've received about this indicator, I intend to leave it open to suggestions for further improvements. Let me know what you think & what you want to see added!
lib_trackingLibrary "lib_tracking"
tracking highest and lowest with anchor point to track over dynamic periods, e.g. to track a Session HH/LL live and get the bar/time of the LTF wick that matches the HTF HH/LL
// DESIGN DECISION
// why anchored replacements for ta.highest / ta.highestbars / ta.lowest / ta.lowestbars:
// 1. they require a fixed length/lookback which makes it easier to calculate, but
// 2. this prevents us from tracking the HH/LL of a changing timeframe, e.g. live tracking the HH/LL of a running session or unfinished higher timeframe
// 3. tracking with anchor/start/reset flag allows to persist values until the next start/reset, so no other external storage is required
track_highest(value, reset, track_this_bar)
Parameters:
value (float)
reset (bool) : boolean flag to restart tracking from this point (a.k.a anchor)
track_this_bar (bool) : allows enabling and disabling of tracking, e.g. before a session starts or after it ends, values can be kept until next reset.
track_lowest(value, reset, track_this_bar)
Parameters:
value (float)
reset (bool) : boolean flag to restart tracking from this point (a.k.a anchor)
track_this_bar (bool) : allows enabling and disabling of tracking, e.g. before a session starts or after it ends, values can be kept until next reset.
track_hl_htf(htf, value_high, value_low)
Parameters:
htf (string) : the higher timeframe in pinescript string notation
value_high (float)
value_low (float)
Returns:
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)
Trendline Pivots [QuantVue]Trendline Pivots
The Trend Line Pivot Indicator works by automatically drawing and recognizing downward trendlines originating from and connecting pivot highs or upward trendlines originating from and connecting pivot lows.
These trendlines serve as reference points of potential resistance and support within the market.
Once identified, the trend line will continue to be drawn and progress with price until one of two conditions is met: either the price closes(default setting) above or below the trend line, or the line reaches a user-defined maximum length.
If the price closes(default setting) above a down trend line or below an up trend line, an "x" is displayed, indicating the resistance or support has been broken. At the same time, the trend line transforms into a dashed format, enabling clear differentiation from active non-breached trend lines.
This indicator is fully customizable from line colors, pivot length, the number lines you wish to see on your chart and works on any time frame and any market.
Don't hesitate to reach out with any questions or concerns.
We hope you enjoy!
Cheers.
Supply and DemandThis is a "Supply and Demand" script designed to help traders spot potential levels of supply (resistance) and demand (support) in the market by identifying pivot points from past price action.
Differences from Other Scripts:
Unlike many pivot point scripts, this one offers a greater degree of customization and flexibility, allowing users to determine how many ranges of pivot points they wish to plot (up to 10), as well as the number of the most recent ranges to display.
Furthermore, it allows users to restrict the plotting of pivot points to specific timeframes (15 minutes, 30 minutes, 1 hour, 4 hours, and daily) using a toggle input. This is useful for traders who wish to focus on these popular trading timeframes.
This script also uses the color.new function for a more transparent plotting, which is not commonly used in many scripts.
How to Use:
The script provides two user inputs:
"Number of Ranges to Plot (1-10)": This determines how many 10-bar ranges of pivot points the script will calculate and potentially plot.
"Number of Last Ranges to Show (1-?)": This determines how many of the most recent ranges will be displayed on the chart.
"Limit to specific timeframes?": This is a toggle switch. When turned on, the script only plots pivot points if the current timeframe is one of the following: 15 minutes, 30 minutes, 1 hour, 4 hours, or daily.
The pivot points are plotted as circles on the chart, with pivot highs in red and pivot lows in green. The transparency level of these plots can be adjusted in the script.
Market and Conditions:
This script is versatile and can be used in any market, including Forex, commodities, indices, or cryptocurrencies. It's best used in trending markets where supply and demand levels are more likely to be respected. However, like all technical analysis tools, it's not foolproof and should be used in conjunction with other indicators and analysis techniques to confirm signals and manage risk.
A technical analyst, or technician, uses chart patterns and indicators to predict future price movements. The "Supply and Demand" script in question can be an invaluable tool for a technical analyst for the following reasons:
Identifying Support and Resistance Levels : The pivot points plotted by this script can act as potential levels of support and resistance. When the price of an asset approaches these pivot points, it might bounce back (in case of support) or retreat (in case of resistance). These levels can be used to set stop-loss and take-profit points.
Timeframe Analysis : The ability to limit the plotting of pivot points to specific timeframes is useful for multiple timeframe analysis. For instance, a trader might use a longer timeframe to determine the overall trend and a shorter one to decide the optimal entry and exit points.
Customization : The user inputs provided by the script allow a technician to customize the ranges of pivot points according to their unique trading strategy. They can choose the number of ranges to plot and the number of the most recent ranges to display on the chart.
Confirmation of Other Indicators : If a pivot point coincides with a signal from another indicator (for instance, a moving average crossover or a relative strength index (RSI) divergence), it could provide further confirmation of that signal, increasing the chances of a successful trade.
Transparency in Plots : The use of the color.new function allows for more transparent plotting. This feature can prevent the chart from becoming too cluttered when multiple ranges of pivot points are plotted, making it easier for the analyst to interpret the data.
In summary, this script can be used by a technical analyst to pinpoint potential trading opportunities, validate signals from other indicators, and customize the display of pivot points to suit their individual trading style and strategy. Always remember, however, that no single indicator should be used in isolation, and effective risk management strategies should always be employed.
ADR/AWR/AMR Average Daily+Weekly+Monthly Range[Traders Reality]Advanced ADR/AWR/AMR indicator created for Traders Reality community, as well as the greater trading community.
Thanks to the TR community discord guys: infernix, peshocore and xtech5192
Everything is modular and can be turned on/off, including a customisable table showing daily/weekly/monthly average pips/dollars.
If you just want the average daily range lines for example, you can just disable everything else. You can choose how many days to look back; as well as for weeks or months.
Check out Traders Reality on YouTube if you want to see this implemented as part of Tino's strategy that utilizes market manipulation, imbalances, times of day etc.
Price regularly reverses from ADR, making it one of the few highly valuable indicators in price action/smart money trading.
Relative Strength Index w/ STARC Bands and PivotsThis is an old script that I use with some useful RSI strategies from "Technical Analysis for the Trading Professional" 2nd edition by Constance Brown.
The base RSI comes with the option for custom length, and has some pre-configured ranges for looking at exits and entrances. The idea is to be bullish when bounces happen in the red zone during an already bullish trend or when the indicator enters green without a rejection. Be bearish if the indicator falls through the red zone or fails to enter green during an already bearish trend.
I have added the formulas used for creating STARC bands (just think fancier volatility bands) with adjustable tolerances. The idea is to look out for when the RSI touches one of the bands and reverses. This is usually indicative of a strong reversal (though the timing will be up to the trader). Best use this on shorter time frames during a volatile time of a stock's price action.
Although a little messy, there is a small segment of the script which includes pivot points. I like to use these because they make indicating local highs/lows for finding divergences easier.
Finally, I have added a couple of customizable EMAS for the RSI itself. Useful when combined with the other features!
Ticker Ratio LevelsIndicator for constructing levels of price ratios from other tickers.
The user can choose from predefined tickers such as Gold(XAU), DXY, BTC, etc.
How it works:
Takes the important extremum of the closing candle from your current chart and builds a level based on the chart selected in the settings.
This function allows you to determine the price level based on the current price and the price at the time of a certain date. To do this, it first determines the time when the last candle before the specified date occurred. Then the price at the time of this candle and at the current moment is calculated. Finally, the price level is calculated relative to the price at the time of the candle. The result of this calculation will be the price level.
How to Use:
By default, the indicator is set to 1D for the BTC chart. But you can adjust any levels on the assets you are interested in.
You can adjust the levels both in the settings and by moving them around the chart.
Simply click on the indicator name or level, and vertical lines will appear, which you can drag to any location. (The vertical lines serve as the beginning of the calculation point)
Example of work on ETH paired with DXY.
Signals and pivot divergencesScript that shows buy and sell signals for multiple indicators and divergences when there's a pivot in the price chart. The defaults are from my own laboration and don't hesitate to share your settings!
Best of trading luck!
Exhaustion Table [SpiritualHealer117]A simple indicator in a table format, is effective for determining when an individual stock or cryptocurrency is oversold or overbought.
Using the indicator
In the column "2σ" , up arrows indicate that the asset is very overbought , down arrows indicate that an asset is very oversold , and an equals sign indicates that the indicator is neutral.
In the column "σ" , up arrows indicate that the asset is overbought , down arrows indicate that an asset is oversold , and an equals sign indicates that the indicator is neutral.
What indicator is
The indicator shows the exhaustion (percentage gap between the closing price and a moving average) at 5 given lengths, 15, 30, 50, 100, and 300. It compares that to two thresholds for exhaustion: one standard deviation out and one two standard deviations out.
Seasonal pivot datesPlots approximate equinox and solstice dates, which are often zones around which market pivots occur.
Support Resistance with Breaks and RetestsThe Break and Retest indicator strives to provide a visual aid for spotting areas of continuation and pullbacks. Support and resistance levels are drawn out automatically and have sequential conditions in place to determine a breakout following an eventual retest. Additionally, there are methods in place that try and detect liquidation events and still output a retest.
Although there are options to adjust repaint settings, "potential labels" are structured in a way to detect live ongoing retest events and therefore will be the only thing in the script that will be forced to repaint.
🔳 Settings
Lookback Range: Lookback period to trigger a new support/resistance level when pivot conditions are met.
Bars Since Breakout: How many bars since breakout in order to detect a retest.
Retest Detection Limiter: Whenever a potential retest is detected, the indicator knows that a retest is about to happen. In that given situation, this input grants the ability to raise the limit on how many bars are allowed to be actively checked while a potential retest event is active. For example, if you see the potential retest label, how many bars do you want that potential retest label to be active for to eventually confirm a retest?
🔳 Repaint Options
By default, the break and retest system uses the current close value to determine a condition. (Repaints by default)
On: Allows repainting
Off - Bar Confirmation: Prevents repainting and generates alerts when the bar closes. (1 candle later)
Off - High & Low: Prevents repainting, but in return utilizes both the high and low values instead of the close which may yield a higher outcome and inaccurate results.
🔳 How it works
In the background, calculations aren't searching for the perfect retest within the zone but instead focuses its attention towards price fluctuation around the zones. This allows the indicator to yield more results than it would otherwise.
The chart below provides an example of how potential retests are established. These are updated constantly until a retest is confirmed, and deleted if not. If a potential retest is active and the next candle drops below the value when the potential retest was detected, a retest is placed..
🔳 Alerts
PSAR-Support ResistanceParabolic Support Resistance -PSAR SR is based on the Dynamic Reversal Points of Price. This indicator eliminates the false signals of regular Parabolic SAR (Stop and Reverse). The Price of previous SAR Reversal point is plotted as Support and Resistance. The idea is to trade only after the previous reversal point is crossed and a new candle formation above / below the support resistance lines.
Price moves sideways in between the S/R Lines mostly.
Buy and Sell Signals are based on normal P-SAR settings however this S/R must be considered. Please be aware that the indicator cannot be used as a stand alone. Please make required confirmations before going into action.
Disclaimer: Please use it at your own Risk.
Liquidity Swings [LuxAlgo]The liquidity swings indicator highlights swing areas with existent trading activity. The number of times price revisited a swing area is highlighted by a zone delimiting the swing areas. Additionally, the accumulated volume within swing areas is highlighted by labels on the chart. An option to filter out swing areas with volume/counts not reaching a user-set threshold is also included.
This indicator by its very nature is not real-time and is meant for descriptive analysis alongside other components of the script. This is normal behavior for scripts detecting pivots as a part of a system and it is important you are aware the pivot labels are not designed to be traded in real-time themselves.
🔶 USAGE
The indicator can be used to highlight significant swing areas, these can be accumulation/distribution zones on lower timeframes and might play a role as future support or resistance.
Swing levels are also highlighted, when a swing level is broken it is displayed as a dashed line. A broken swing high is a bullish indication, while a broken swing low is a bearish indication.
Filtering swing areas by volume allows to only show significant swing areas with an higher degree of liquidity. These swing areas can be wider, highlighting higher volatility, or might have been visited by the price more frequently.
🔶 SETTINGS
Pivot Lookback : Lookback period used for the calculation of pivot points.
Swing Area : Determine how the swing area is calculated, "Wick Extremity" will use the range from price high to the maximum between price close/open in case of a swing high, and the range from price low to the minimum between price close/open in case of a swing low. "Full Range" will use the full candle range as swing area.
Intrabar Precision : Use intrabar data to calculate the accumulated volume within a swing area, this allows obtaining more precise results.
Filter Areas By : Determine how swing areas are filtered out, "Count" will filter out swing areas where price visited the area a number of time inferior to the user set threshold. "Volume" will filter out swing areas where the accumulated volume within the area is inferior to the user set threshold.
🔹 Style
Swing High : Show swing highs.
Swing Low : Show swing lows.
Label Size : Size of the labels on the chart.
Note that swing points are confirmed after Pivot Lookback bars, as such all elements are displayed retrospectively.
Volume With ColorVolume with color helps to quickly identify accumulation or distribution.
An accumulation day is an up day with volume greater than a user selected average.
A distribution day is a down day with volume greater than a user selected average.
This indicator will highlight those days by changing the volume bar colors for an easy visual.
Pivot High/Low ComparisonThis script will show you at a glance the following trends:
Higher Highs (Green line on top)
Lower Highs (Red line on top)
Higher Lows (Green line on bottom)
Lower Lows (Red line on bottom)
It utilizes the Pivot High and Pivot Low functions to determine if the previous pivot was higher or lower than the current pivot .
Multiple Divergences (UDTs - objects) - Educational█ OVERVIEW
This script highlights the usage of User-defined Types (UDTs) and objects , and bullish /bearish divergences.
Pivotpoints are used to find divergences, the result of this script will be different against other public multiple divergences scripts.
FOR Pine Script™ CODERS
Besides the information found in CONCEPTS , the comments in the script will, hopefully ), guide you through my thought process.
█ CONCEPTS
The main principle of this script are bullish /bearish divergences, this with 3 different oscillators ( RSI , CCI , MFI )
If you want to know more about divergences, have a look at some Education and Research idea's .
On every bar, an object HLs is made, containing bar_index , high , low , and 2 bool variables ( isPh , isPl ).
On every bar, an object Osc is made, containing bar_index , o (oscillator value), and 2 bool variables ( isPh , isPl ).
If a pivothigh (ph ) is found, isPh will be true on that bar, false otherwise.
If a pivotlow (pl) is found, isPl will be true on that bar, false otherwise.
These objects are added to an array, with limited size.
If a ph is found, the script draws a testline from that ph to every previous ph , found in the array.
Then every high in between these 2 points are checked if they don't pierce the testline .
If the testline isn't broken, the Reg_Div_Piv() function will give 4 values, 1 check (not pierced) variable and the 4 points of the line.
The testline is deleted.
Once a positive check is found, the script will perform the same, but now with the Osc objects.
The script will ONLY compare Osc pivots which are maximum 1 bar away from the high/low pivot .
If everything is confirmed, a line is drawn, visible on the chart.
█ REMARKS
A label will be visible with a number, this is the amount of divergences found with the according oscillator .
EXAMPLE
Div with RSI and CCI -> 2
Div with MFI alone -> 1
Div with RSI and CCI and MFI -> 3
...
Divergences should only be used when confirmed, this is after bar close .
As an aid, lines that are not confirmed will be dotted , if confirmed, they will be solid .
The divergence check start when a ph/pl is found, after which oscillator pivot are checked.
Optionally the same can be done, when a oscillator pivot is found and then check the ph/pl ,
this should give more results, although it can make the script slower.
█ SETTINGS
Left - amount of bars at the left which needs to be lower/higher
Right - amount of bars at the right which needs to be lower/higher
Max values - maximum values in array of objects
3 oscillator settings with
• ON/OFF
• Length
• color bullish divergence
• color bearish divergence
Have FUN !