Volatility Estimator - YZ & RSThe Yang-Zheng Volatility Estimator (YZVE) integrates both intra-candle and inter-candle dynamics, such as overnight and weekend price changes, offering a more detailed analysis compared to traditional methods. The YZVE is proposed to improve over the standard deviation by accounting for the open, high, low, and close prices of trading periods, instead of only the close prices, and attempts to supplant the Parkinson's Volatility Estimator (PVE) by a also capturing inter-candle dynamics. The YZVE is calculated by this formula:
YZ Volatility Squared σ_YZ² = k * σ_o² + σ_rs² + (1 - k) * σ_c²
where k is a weighting factor that adjusts the emphasis between the overnight and close-to-close components, popularly estimated as:
k = 0.34 / (1.34 + (N+1) / (N-1))
where N is the lookback period. Optionally, users may opt to override this calculation with a specified constant (off by default). Next, the
Overnight Volatility Squared σ_o² = (log(O_t / C_(t-1)))²
measures the volatility associated with overnight price changes, from the previous candle's closing price C_(t-1) to the current candle's opening price O_t. It captures the market's reaction to news and events that occur outside of regular trading hours to reflect risk associated with holding positions over non-trading hours and gaps.
Next, the The Rogers-Satchell Volatility Estimator (RSVE) serves as an intermediary step in the computation of YZVE. It aggregates the logarithmic ratios between high, low, open, and close prices within each trading period, focusing on intra-candle volatility without assuming zero inter-candle drift as commonly implicitly assumed in other volatility models:
Rogers-Satchell Volatility Squared σ_rs² = (log(H_t / C_t) * log(H_t / O_t)) + (log(L_t / C_t) * log(L_t / O_t))
Finally,
Close-to-Close Volatility Squared σ_c² = (log(C_t / C_(t-1)))²
measures the volatility from the close of one candle to the close of the next. It reflects the typical candle volatility, similar to naive standard deviation.
This script also includes an option for users to apply the simpler RS Volatility exclusively, focusing on intraday price movements. Additionally, it offers a choice for normalization between 0 and 1, turning the estimator into an oscillator for comparing current volatility to recent levels. Horizontal lines at user-defined levels are also available for clearer visualization. Both are off by default.
References:
Yang, D., & Zhang, Q. (2000). Drift-independent volatility estimation based on high, low, open, and close prices. The Journal of Business, 73(3), 477-491.
Rogers, L.C.G., & Satchell, S.E. (1991). Estimating variance from high, low and closing prices. Annals of Applied Probability, 1(4), 504-512.
Cari dalam skrip untuk "high low"
MTF BB+KC Avg
Bollinger Bands (BB) are a widely used technical analysis created by John Bollinger in the early 1980’s. Bollinger Bands consist of a band of three lines which are plotted in relation to instrument prices. The line in the middle is usually a Simple Moving Average (SMA) set to a period of 20 days (The type of trend line and period can be changed by the trader; however a 20 day moving average is by far the most popular). This indicator does not plot the middle line. The Upper and Lower Bands are used as a way to measure volatility by observing the relationship between the Bands and price. Typically the Upper and Lower Bands are set to two standard deviations away from the middle line, however the number of standard deviations can also be adjusted in the indicator.
Keltner Channels (KC) are banded lines similar to Bollinger Bands and Moving Average Envelopes. They consist of an Upper Envelope above a Middle Line (not plotted in this indicator) as well as a Lower Envelope below the Middle Line. The Middle Line is a moving average of price over a user-defined time period. Either a simple moving average or an exponential moving average are typically used. The Upper and Lower Envelopes are set a (user-defined multiple) of a range away from the Middle Line. This can be a multiple of the daily high/low range, or more commonly a multiple of the Average True Range.
This indicator is built on AVERAGING the BB and KC values for each bar, so you have an efficient metric of AVERAGE volatility. The indicator visualizes changes in volatility which is of course dynamic.
What to look for
High/Low Prices
One thing that must be understood about this indicator's plots is that it averages by adding BB levels to KC levels and dividing by 2. So the plots provide a relative definition of high and low from two very popular indicators. Prices are almost always within the upper and lower bands. Therefore, when prices move up near the upper or lower bands or even break through the band, many traders would see that price action as OVER-EXTENDED (either overbought or oversold, as applicable). This would preset a possible selling or buying opportunity.
Cycling Between Expansion and Contraction
Volatility can generally be seen as a cycle. Typically periods of time with low volatility and steady or sideways prices (known as contraction) are followed by period of expansion. Expansion is a period of time characterized by high volatility and moving prices. Periods of expansion are then generally followed by periods of contraction. It is a cycle in which traders can be better prepared to navigate by using Bollinger Bands because of the indicators ability to monitor ever changing volatility.
Walking the Bands
Of course, just like with any indicator, there are exceptions to every rule and plenty of examples where what is expected to happen, does not happen. Previously, it was mentioned that price breaking above the Upper Band or breaking below the Lower band could signify a selling or buying opportunity respectively. However this is not always the case. “Walking the Bands” can occur in either a strong uptrend or a strong downtrend.
During a strong uptrend, there may be repeated instances of price touching or breaking through the Upper Band. Each time that this occurs, it is not a sell signal, it is a result of the overall strength of the move. Likewise during a strong downtrend there may be repeated instances of price touching or breaking through the Lower Band. Each time that this occurs, it is not a buy signal, it is a result of the overall strength of the move.
Keep in mind that instances of “Walking the Bands” will only occur in strong, defined uptrends or downtrends.
Inputs
TimeFrame
You can select any timeframe froom 1 minute to 12 months for the bar measured.
Length of the internal moving averages
You can select the period of time to be used in calculating the moving averages which create the base for the Upper and Lower Bands. 20 days is the default.
Basis MA Type
Determines the type of Moving Average that is applied to the basis plot line. Default is SMA and you can select EMA.
Source
Determines what data from each bar will be used in calculations. Close is the default.
StdDev/Multiplier
The number of Standard Deviations (for BB) or Multiplier (for KC) away from the moving averages that the Upper and Lower Bands should be. 2 is the default value for each indicator.
Realized volatility differentialAbout
This is a simple indicator that takes into account two types of realized volatility: Close-Close and High-Low (the latter is more useful for intraday trading).
The output of the indicator is two values / plots:
an average of High-Low volatility minus Close-Close volatility (10day period is used as a default)
the current value of the indicator
When the current value is:
lower / below the average, then it means that High-Low volatility should increase.
higher / above then obviously the opposite is true.
How to use it
It might be used as a timing tool for mean reversion strategies = when your primary strategy says a market is in mean reversion mode, you could use it as a signal for opening a position.
For example: let's say a security is in uptrend and approaching an important level (important to you).
If the current value is:
above the average, a short position can be opened, as High-Low volatility should decrease;
below the average, a trend should continue.
Intended securities
Futures contracts
Ouside Bar First high/low DetectorIndicator wenting to the lower time frame(if compare with current chart time frame) and seek what happened first, the low of previouse bar was updated first or the high of previouse bar.
In some trading strategies need to know exactly sequence of actions for outside bars to program the logic for testing on deep history.
If first was updated the high of previouse bar indicator will draw green diamond above the outside bar. If first was updated the low of previouse bar then indicator will draw red diamon below the ouside bar.
In cases where both side diamonds is plotted it meant the current Lower time frame resolution is not enough to clear figure out what was first Low of High, need choose lower resolution.
I did not found ready to use examples and made my own.
I hope it will be usefull for you.
Best Regards.
Custom Swing Index [AstroHub]Custom Swing Index - Unleashing Precision in Trend Analysis
🌟 Overview:
The Custom Swing Index is a meticulously crafted tool that empowers traders with advanced insights into market dynamics, specifically focusing on identifying potential trend reversals. Developed by AstroHub, this indicator stands out for its unique combination of price-related calculations, ratios, and averages, providing a comprehensive and nuanced view of market sentiment.
📈 Key Components:
Price Calculation:
- Price Change: Captures the difference between the current and previous closing prices.
- High and Low Points: Analyzes the high and low points of each bar for crucial price movement data.
Ratios and Averages:
- Upper-Lower Shadow Ratio: Measures the relationship between the upper and lower shadows.
- Open-Close Ratio: Evaluates the ratio of opening to closing prices.
- Sum Price Changes: Sums up price changes over a specified period.
Differences and Shadows:
- Open-Close Difference: Considers the difference between opening and closing prices.
- Upper and Lower Shadow Ratios: Examines the proportions of upper and lower shadows.
Bar Size Metrics:
- Average Bar Size: Determines the average size of each bar.
- High-Low Difference: Measures the difference between the high and low points.
Swing Indicator Calculation:
- The Custom Swing Index is the result of combining these components, creating a dynamic metric that reflects potential trend reversals.
🚥 How to Use:
Understanding the Indicator:
- Bullish signals may be indicated when the swing index surpasses a defined threshold.
- Bearish signals may be indicated when the swing index falls below the negative threshold.
Visual Interpretation:
- Color-coded bars enhance visual interpretation, turning green for bullish conditions and red for bearish conditions.
Entry Points:
- Look for entry points where circle markings are present, indicating potential opportunities.
Alerts:
- Integrated alerts keep traders informed of significant swings, ensuring timely decision-making.
HL range by durgaThe script we've been working on is an indicator designed to display the high-low range of the last candlestick on a TradingView chart. It does so by plotting two lines: one for the high and another for the low of the last completed candlestick.
Additionally, the script includes a label that shows the numerical value of the high-low range. This label is positioned between the plotted lines, showing the difference between the high and low prices of the last candlestick.
The script operates in real-time, updating dynamically as new candlesticks form. Furthermore, it automatically removes the label after the close of the candlestick, maintaining a clean and clutter-free chart.
This indicator can help traders quickly visualize and assess the range of the last completed candlestick, aiding in their analysis of price action.
AllTimeHighLowLibrary "AllTimeHighLow"
Provides functions calculating the all-time high/low of values.
hi(val)
Calculates the all-time high of a series.
Parameters:
val (float) : Series to use (`high` is used if no argument is supplied).
Returns: The all-time high for the series.
lo(val)
Calculates the all-time low of a series.
Parameters:
val (float) : Series to use (`low` is used if no argument is supplied).
Returns: The all-time low for the series.
Hosoda Waves ABCThe Hosoda Waves indicator was devised by Goichi Hosoda, the creator of the Ichimoku system, with the idea that previous highs and lows could determine future price ranges to which the market would react. Hosoda's projections include the NT, N, V, and E waves, derived from calculations based on both upward and downward ABC swings. The calculations for Hosoda's waves are as follows:
NT Wave = C + (C - A)
N Wave = B + (B - A)
V Wave = B + (B - C)
E Wave = C + (B - A)
This indicator visually represents the calculations by Hosoda. Additionally, Hosoda indicated time cycles: 9, 17, 26, 33, 42, 51, 65, 76, etc., which are not integrated into this indicator as they are not considered effective in contemporary times.
Once applied to the chart, the interactive Pine Script tool version 5 will prompt you to identify 3 points of "low-high-low" or "high-low-high," both for upward and downward movements. Once clicked, these price points can be moved. If you change the time frame or market instrument, the indicator must be removed because it remains tied to the prices where it was initially drawn.
Time-itTime-it = Time based indicator
The Time-it indicator parses data by the day of week. Every tradeable instrument has its own personality. Some are more volatile on Mondays, and some are more bullish / bearish on Fridays or any day in between. The key metrics Time-it parses is range, open, high, low, close and +volume-.
The Time-it parsed data is printed in a table format. The table, position, size & color and text color & size can be changed to your preference. Each column parsed data is the last 10 which is numbered 0-9 which refers to the number of the selected day bars ago. For example: if Monday is chosen, 0 is the last closed Monday bar and 9 is the last closed Monday 9 Monday bars ago.
Range = measures the range between high and low for the day.
Open = is the opening price for the day.
High = is the high price for the day.
Low = is the low price for the day.
Close = is the closing price for the day.
+volume- = is the positive or negative volume for the day.
Default settings:
*Represents a how to use tooltip*
Source = ohlc4
* The source used for MA
MA length = 20
* The moving average used
Day bar color on / off
* checked on / unchecked off
Monday = blue
Tuesday = yellow
Wednesday = purple
Thursday = orange
Friday = white
Saturday = red
Sunday = green
Day M, T, W, TH, F, ST, SN.
* Parsed data for the day of week tables
Table, position, size & color:
Top, middle, bottom, left, center, right
* Table position on the chart.
Frame width & border width = 1
Text color and text size
Border color and frame color
Decimal place = 0
* example: use 0 for a round number, use 4 for Forex
*** The Time-it indicator uses parts and/or pieces of code from "Tradingview Up/Down Volume" and "Tradingview Financials on Chart".
rezgaaLibrary "rezgaa"
Provides functions calculating the all-time high/low of values.
hi(val)
Calculates the all-time high of a series.
Parameters:
val (float) : Series to use (`high` is used if no argument is supplied).
Returns: The all-time high for the series.
lo(val)
Calculates the all-time low of a series.
Parameters:
val (float) : Series to use (`low` is used if no argument is supplied).
Returns: The all-time low for the series.
[TTI] Closing Range Indicator📜 ––––HISTORY & CREDITS––––
This Pine Script Utility indicator, titled " Closing Range Indicator," is designed and developed by TintinTrading but inspired by the teaching of Investor's Business Daily (IBD) and William O'Neil. It aims to help traders identify the closing range of a given timeframe, either daily or weekly.
🦄 –––UNIQUENESS–––
The unique feature of this indicator lies in its ability to simulate a functionality of Closing Range calculation based on hovering of the mouse over the close. It employs a conditional display that allows the user to set the indicator as 'invisible' without removing it from the chart and hence provides a numerical closing range value when hovering over the indicator.
🛠️ ––––WHAT IT DOES––––
The Closing Range Indicator calculates the closing range of a trading bar in terms of percentages. It computes the difference between the closing price and the low price of the bar, and then divides it by the range of the bar.
A stock that closes on the high would display 100%
A stock that closes on the low would display 0%
Generally, the higher the percentage the more bullish the close but there are exceptions to this rule.
The indicator can operate on two timeframes:
Daily : Computes the closing range based on the daily high, low, and closing prices.
Weekly : Computes the closing range based on the weekly high, low, and closing prices. If you enable the weekly it will show the weekly close on all daily timeframes. Meaning that if the week Closing range is 54.15% on Friday, it will show the value 54.15% for all days prior to Friday from the same week.
The indicator places a label at the close of each bar, with the label's tooltip showing the calculated closing range percentage. I generally hide the label and just reference the tooltip calculation with a a hoover on top of the bar.
💡 ––––HOW TO USE IT––––
Installation: Add the indicator to your TradingView chart by searching for " Closing Range Indicator" in the indicator library.
Reorder: Reorder the indicator so that it sits as the first indicator (even above the price) on the Pane. This will make sure that you always trigger the tooltip functionality.
Go to Settings:
Timeframe: Choose between daily ('D') and weekly ('W') timeframes from the settings.
Visibility: Enable the 'Make Invisible' option if you want the indicator to be hidden.
Interpretation:
A higher percentage indicates that the closing price is closer to the high of the range, signaling bullish sentiment.
A lower percentage indicates bearish sentiment.
Tooltip: Hover over the label to view the closing range in percentage terms.
All Candlestick Patterns on Backtest [By MUQWISHI]▋ INTRODUCTION :
The “All Candlestick Patterns on Backtest” indicator generates a table that offers a clear visualization of the historical return percentages for each candlestick pattern strategy over a specified time period. This table serves as an organized resource, serving as a launching point for in-depth research into candle formations. It may help to rectify any misconceptions surrounding candlestick patterns, refine trading approaches, and it could be foundation to make informed decisions in trading journey.
_______________________
▋ OVERVIEW:
_______________________
▋ CREDIT:
Credit to public technical “*All Candlestick Patterns*” indicator.
_______________________
▋ TABLE:
_______________________
▋ CHART:
_______________________
▋ INDICATOR SETTINGS:
#Section One: Table Setting
#Section Two: Backtest Setting
(1) Backtest Starting Period.
Note: If the datetime of the first candle on the chart is after the entreated datetime, the calculation will start from the first candle on the chart.
(2) Initial Equity ($).
(3) Leverage: Current Equity x Leverage Value.
(4) Entry Mode:
- “At Close”: Execute entry order as soon as the candle confirmed.
- “Breakout High (Low for Short)”: Stop limit buy order, entry order will be executed as soon as the next candle breakout the high of last pattern’s candle (low for short)
(5) Cancel Entry Within Bars: This option is applicable with {Entry Mode = Breakout High (Low for Short)}, to cancel the Entry Order if it's not executed within certain selected number of bars.
(6) Stoploss Range: the range refers to high of pattern - low of pattern.
(7) Risk:Reward: the calculation of risk:reward range start from entry price level. For example: A pattern triggered with range 10 points, and entry price is 100.
- For 1:1~risk:reward would the stoploss at 90 and takeprofit at 110.
- For 1:3~risk:reward would the stoploss at 90 and takeprofit at 130.
#Section Three: Technical & Candle Patterns
_______________________
▋ Comments:
This table was developed for research and educational purposes.
Candlestick patterns are almost similar as seen in “*All Candlestick Patterns*” indicator.
The table results should not be taken as a major concept to build a trading decision.
Personally, I see candlestick patterns as a means to comprehend the psychology of the market, and help to follow the price action.
Please let me know if you have any questions.
Thank you.
PDHL levels with INTRADAY Auto FIBThe present script includes Previous day High/low levels and once the PDH or PDL breaks the present bar's background changes color according to the direction of price breakout.
It's helpful when working on lower timeframe charts with small screen space, so that the user can know that the PDHL has been taken out in one glance at the chart instead of scrolling all around to find out whether the PDH or PDL are broken or not.
The high and low of day before yesterday are also plotted for reference.
The intraday fib levels get drawn taking present day's high and low into account, useful to mark support/retest levels.
The color of the intraday AUTO FIB high and low lines also change from gray to respective assigned colors once the present day price crosses PDH or PDL this is helpful while viewing charts on mobile app.
Disclaimer: Only for studying price movement ideas, trading is not advised.
Support Resistance Classification [LuxAlgo]The Support Resistance Classification indicator shows SR levels from a user-defined range using higher time-frame data (HTF). Levels are classified 1 through 10 based on their strength, with lower values indicating stronger support/resistance levels.
This indicator doesn't use visible range functionality, in contrast to our Support Resistance Classification (VR) indicator, it uses a set lookback period to find support/resistance levels.
Since both techniques cannot be used together in 1 script, we developed a separate, NON-VR version.
🔶 USAGE
Certain indicators on higher timeframes can provide longer-term support/resistance levels on lower timeframes. Users can use the provided levels and use them as references for future support/resistance levels.
The classification algorithm measures the strength of a support/resistance level using the set range and is in a range of 1 to 10, with higher values indicating a weaker support/resistance.
Supports/resistances highlighted by the indicator can be used for future applications by marking them on the chart (quickly done with alt + h).
🔶 DETAILS
All calculations are based on what is seen in the last amount of bars, which is the period between the blue vertical line and the last candle:
Since only Swings which are not broken are included, every break would exclude that swing. Therefore, even when 'value' is chosen at Settings ('Value'), breaks are always calculated on the entire line.
🔶 SETTINGS
Lookback: Amount of bars from current bar to x bars back , this is the period where support/resistance levels are calculated.
Fade: After x breaks the line becomes invisible
Value:
value:
• SMA, upper/lower: the breaks are triggered on the moving average itself
• Fibonacci Pivot Point levels, Previous High, Previous Low: only last HTF values can be used for breaks
• Swings (see SWING SETTINGS)
line:
• SMA, upper/lower: the breaks are triggered on the entire line, based on its latest value
• Fibonacci Pivot Point Levels, Previous High, Previous Low: breaks are triggered on the entire line, based on its latest value
• Swings (see SWING SETTINGS)
🔹 Swing Settings
Swings are always calculated at the current timeframe, setting an HTF is not applicable to Swings.
Left/Right: for Swing calculation ( pivothigh , pivotlow )
Show: enables you to see the pivot points
🔹 Set
N°: The concerning number
TYPE:
• SMA (Simple Moving Average)
• Previous High/Low
• Upper/Lower ( Bollinger Bands )
• Pivot Point levels : "Fibonacci"
LENGTH: sets the 'Number of bars', needed for calculations (applicable for SMA, upper/lower)
MULT: sets the 'Standard deviation factor' (only applicable for upper/lower - BB)
HTF: sets 'Higher Time Frame' (applicable for SMA, upper/lower, Previous High/Low, Fibonacci)
🔹 Show Values
You can make up to 5 values visible (if you want to check/verify), except for Swings (see SWING SETTINGS)
To do so, enable (A -> E), and choose the N° you want to see.
This also is a useful tool if you're not sure which value you want to set.
Support Resistance Classification (VR) [LuxAlgo]The Support Resistance Classification (VR) indicator shows SR levels on any chart's visible range using higher time-frame data (HTF). Levels are classified 1 through 10 based on their strength, with lower values indicating stronger support/resistance levels.
This indicator uses visible range functionality, whereas if you adjust your chart to show previous price data, the indicator may show new levels.
🔶 USAGE
Certain indicators on higher timeframes can provide longer term support/resistance levels on lower timeframes. Users can use the provided levels on a chart visible range and use them as reference for future support/resistance levels.
The classification algorithm measures the strength of a support/resistance level using the entire chart visible range and is in a range of 1 to 10, with higher values indicating a weaker support/resistance.
Supports/resistances highlighted by the indicator can be used for future applications by marking them on the chart (quickly done with alt + h).
🔶 DETAILS
All calculations are based on what you see on the Visible Chart, as such changing the chart will recalculate the indicator.
Since only Swings which are not broken are included, every break would exclude that swing. Therefore, even when 'value' is chosen at Settings ('Value'), breaks are always calculated on the entire line.
🔶 SETTINGS
Fade: After x breaks the line becomes invisible
Value:
value:
• SMA, upper/lower: the breaks are triggered on the moving average itself
• Fibonacci Pivot Point levels, Previous High, Previous Low: only last HTF values can be used for breaks
• Swings (see SWING SETTINGS)
line:
• SMA, upper/lower: the breaks are triggered on the entire line, based on its latest value
• Fibonacci Pivot Point Levels, Previous High, Previous Low: breaks are triggered on the entire line, based on its latest value
• Swings (see SWING SETTINGS)
🔹 Swing Settings
Swings are always calculated at current timeframe, setting a HTF is not applicable on Swings.
Left/Right: for Swing calculation ( pivothigh , pivotlow )
Show: enables you to see the pivot points
🔹 Set
N°: The concerning number
TYPE:
• SMA (Simple Moving Average)
• Previous High/Low
• Upper/Lower ( Bollinger Bands )
• Pivot Point levels : "Fibonacci"
LENGTH: sets the 'Number of bars', needed for calculations (applicable for SMA, upper/lower)
MULT: sets the 'Standard deviation factor' (only applicable for upper/lower - BB)
HTF: sets 'Higher Time Frame' (applicable for SMA, upper/lower, Previous High/Low, Fibonacci)
🔹 Show Values
You can make up to 5 values visible (if you want to check/verify), except for Swings (see SWING SETTINGS)
To do so, enable (A -> E), and choose the N° you want to see.
This also is a useful tool if you're not sure which value you want to set.
Time Series Model IndicatorHello,
I am releasing this time series modelling indicator.
Brief overview of the indicator's functionality:
The Time Series Model indicator is a technical analysis tool that calculates and visualizes a linear regression line based on historical price data. It assesses the trend direction and provides an outer band around the regression line to indicate potential support and resistance levels. The indicator also detects outliers in the price data and calculates correlations between the time variable and the closing price. It offers various customization options such as input length, user-defined hours in advance, display settings for tables and fills, and the ability to show variable correlations. Overall, this indicator aims to help traders identify trends, potential reversals, and price extremes in a given time series.
Specific Functions:
Slope Calculations: The indicator calculates the slope and intercept of the regression line using the specified length of assessment (user defined). It also computes the residuals, standard error of the regression, and the upper and lower bounds of the standard error region. Additionally, it calculates multiple standard deviation bands around the regression line. The slope will change to green if the stock is in an uptrend and to red if the stock is in a downtrend.
Outliers: This feature detects extreme positive and negative outliers based on the z-score calculated from the price data. It highlights the outliers with a red background color to red if this option is selected.
Correlation to Time Assessments: This feature performs trend assessments based on the correlation between time and price data. It identifies uptrends, downtrends, falling trends, rising trends, etc.
Outerband Plots: This feature plots the regression line, standard error bands, and multiple standard deviation bands around the regression line. It also fills the areas between these lines.
Trend Assessment: This feature further assesses the trend based on the strength of the correlation. It identifies strong up or down trends, moderate trends, weak trends, no trend, etc.
Linear Regression Time Data: This section retrieves price data (close, high, low, open) for the specified timeframe and stores them in arrays for a linear regression analysis.
Define LinReg Variables: This section calculates linear regression lines and their upper and lower control limits for the close, low and high prices. It also calculates the correlation between close price and time.
Manual assessments: This feature allows for the manual assessment of time series data. The user can input a look forward for hours in the future and get the predicted price range based on the current time relationship. See image below:
Calculating model "fit": The indicator will display the amount of time the stock closes within and outside its respective bands to ascertain the degree of "fit" (see image below):
Explanations:
The outer cloud: The outer, tealish green cloud represents the regression line + 1.5 standard deviations from the regression line.
The inner cloud: The inner, white coloured cloud represents the immediate time series range calculated through regression of the open, high and low price of the ticker.
Correlations:
The ability of the indicator to calculate correlations on both the smaller and larger timeframes are its strongest feature. You can see the formation of trends by tracking the correlation over the length of the time series model's assessment. You can also track the degree of change. The image below shows the correlation table:
In this image, we can see that the stock is in a moderate downtrend manifested by a correlation of -0.73 (purple arrow).
This downtrend is weakening as manifested by a positive change of 0.05 on the shorter timeframe.
If we scroll down on the table and see the Close, High and Low, we can see that the larger trend over time is a downtrend and that this downtrend is actually strengthening. We know this by the negative change (negative change = significant inverse relationship to time is increasing. i.e. as time increases, the stock price decreases proportionately).
So what does negative correlation to time mean?
If a stock's price exhibits a negative correlation to time, it implies that there is a systematic relationship between the passage of time and the stock's price movement in the opposite direction. This finding could have several potential implications for traders and investors. Firstly, it suggests that the stock's price tends to decrease as time progresses, indicating a downward trend or bearish sentiment. This information might be useful for traders looking to capitalize on short-selling or hedging strategies. Secondly, it could indicate a potential opportunity to predict future price movements based on the timing of negative correlations. By understanding the relationship between time and price, investors may be able to make more informed decisions about when to buy or sell the stock. Lastly, a negative correlation to time may also suggest the influence of external factors or market conditions that systematically impact the stock's performance over time. Therefore, monitoring this correlation can provide insights into broader market dynamics and help investors better understand the stock's behavior.
What about a positive correlation to time?
If a stock's price demonstrates a positive correlation to time, it means that there is a consistent relationship between the passage of time and the stock's price movement in the same direction. This positive correlation to time can have significant implications for traders and investors. Firstly, it indicates a potential upward trend or bullish sentiment, suggesting that the stock's price tends to increase as time progresses. This information can be valuable for investors seeking long-term growth opportunities or looking to capitalize on upward price movements. Secondly, a positive correlation to time may provide insights into the stock's historical performance patterns and help identify potential buying or selling opportunities based on the timing of positive correlations. Additionally, understanding this correlation can aid in assessing the stock's overall trajectory and identifying potential market trends. It's important to note that positive correlation to time does not guarantee future performance, but it can offer valuable information to inform investment decisions.
Because this indicator is pretty big, I have done an overview and tutorial video which I will link below:
As always, please leave your comments and suggestions below.
I thank you for taking the time to read and check out this indicator.
Safe trades everyone and enjoy your weekend!
Custom Trend Indicator with Reversal ArrowsThe Custom Trend Indicator with Reversal Arrows is a user-friendly script designed to help traders identify trends and trend reversals on the TradingView platform. This indicator analyzes price action and generates trend lines based on user-defined rules for uptrends, downtrends, and no-trend conditions. Additionally, it highlights trend reversal points with arrows for easy identification.
Features:
Customizable Line Offset Multiplier: Allows users to set the distance between the trend line and the candlesticks. This makes the trend lines more visually discernible.
Trend Identification:
Uptrend: The indicator plots a green line when the current high, low, and close are greater than the previous high, low, and close, respectively.
Downtrend: The indicator plots a red line when the current high, low, and close are less than the previous high, low, and close, respectively.
No Trend: The indicator plots a black line when neither an uptrend nor a downtrend is identified.
Trend Reversal Arrows: The script displays green arrows pointing upwards for bullish trend reversals and red arrows pointing downwards for bearish trend reversals.
To use this indicator, simply copy and paste the provided Pine Script into the Pine editor on TradingView, and add the indicator to your chart. This powerful and customizable tool will enhance your ability to identify trends and capitalize on trend reversals in your trading strategy.
Please note that this indicator is intended for educational purposes only and should not be considered as financial advice. Always perform your own due diligence and consult with a financial professional before making any trading decisions.
NSDT Fair Value GapThis script is our version of the "Fair Value Gap".
A Fair Value Gap is nothing more than a series of 3 candles with a gap between a candle high/low and a candle high/low two candles prior.
For example:
A Gap Up - the Low of a candle is higher than the High of two candles back.
A Gap Down - the High of a candle is lower than the Low of two candles back.
Typically, on a Gap Up, the trader would wait for the price to re-enter the Gap, and take a Long position.
Typically, on a Gap Down, the trader would wait for the price to re-enter the Gap, and take a Short position.
We found that simply trading through the Gaps (fill the gap) produced a better result. So we reversed the procedure and the colors to show our suggested direction.
We have added inputs so the trader can determine the size of the Gaps to be plotted on the chart. A minimum and maximum can be set.
The number of Gaps to be displayed can be adjusted.
There is a option to remove Gaps that had been filled, to help keep a clean chart.
RD Key Levels (Weekly, Daily, Previous vWAP)The RexDog Key Levels indicator plots the weekly open, daily open, and the previous day vWAP close.
These are all critical price levels (zones) to know when trading any market or instrument. These areas are also high probability reaction areas that you can trade using simple confirmation trading patterns.
First, I'll cover an overview of the indicator then I'll share general usage tips.
Weekly Open - default is white/orange. White is when price is above the weekly open. Orange is when price is below the weekly open.
Weekly High/Low - there are options to turn on the weekly high and lows. Default plot is circles. Green is the high. Red is the low.
Daily Open - default is green/red. Green is when price is above the daily open. Red is when price is below the daily open.
Previous vWAPs - aqua single lines. These are the closing price of the daily vWAPs.
Top Indicators - The triangles at the top of the chart signify is price is currently above or below the weekly open. This is helpful on lower timeframe charts (5m, 15m) to get a quick indication when price is far extended beyond the weekly open. Green triangle = above weekly open. Red triangle = below weekly open.
General Usage
Each one of these levels are important levels markets look use for continuation or failure of momentum and bias. I also find it extremely helpful to think of these levels as magnets, dual magnets. They both attract and repel price at the same time. Now you might say, how is that helpful to have opposing views at the same time? Be indifferent to direction, create your own rules on when these price zones repel or attract price, I have my own.
Here's the easiest way to use these price levels.
As price approaches one of these levels to expect a reaction. A reaction is price is going in one direction and price hits a price level zone and reacts in the opposite direction.
These are price zones, sometimes you will see a reaction right at the price but visualize these areas as zones of reaction.
A high percentage of the time when price approaches these level zones there will be a reaction. So trade the reaction .
How do you do that?
Simple. Trade patterns that repeat. I have 3 solid patterns I trade around these key levels:
The first pattern is early entry with precise scale in rules and a very effective protective stop loss placement.
The second pattern is wait for confirmation that the level holds. This requires more patience and for you to fully trust the chart. The benefit of this pattern is with confirmation you have even more precise stop placement.
There is a bonus third pattern I trade around these levels. I call this the confirmation and bluff entry. It's a combination of both of the patterns above. You wait for confirmation but on any pull back you call the bluff on the market and enter on key test. Trade management here is critical. In addition to the pattern you trade you should have a series of failure patterns that tell you to get out of the trade, I use 2 primary failure patterns.
I trade all markets, same system, same rules, so I'll show a few examples.
Usually I start with Bitcoin but let's start with equities:
BA - Boeing - 8 Trades
Here we see weekly low patterns, previous week low test, vwAP hold patterns, day magnets and day holding. Then 2 week failures and a double hold pattern.
These are all straightforward trades to execute following really simple patterns.
BTCUSD Previous vWAP and Day Open Trades
We see here on the circle areas both daily open and previous day vWAP zone tests. Within this chart are all 3 highly effective patterns I trade.
SPY - 7 High Probability Trades
Here we see a pDay vWAP mixed with a daily failure. Next a daily retest, then a pDay vWAP failure, then a vWAP capture and test. Then a double weekly failure test (great trade there) and finally a daily test.
I could provide more examples but most are just derivatives of the above examples.
Balance Zone ExtensionBalance zones are an aspect of trading that many traders notice. Balance Zones are formed when a market is in equilibrium and respects a certain high and low multiple times. These zones could also be called accumulation or distribution areas depending on the price action. If the term "choppy" is used to describe a given markets price action, it is probably a fair statement to say that the market is currently in a Balance Zone.
This script is a take on vwaptrader1's teachings where you take a balance zone and "double it" to get a target if/when it does break out of balance. It provides an automated way of extending levels based on a given balance range.
The lines plotted by the script are calculated based off of the balance high/low inputs, how many sections are desired per zone, and how many boxes to plot based on the other user inputs.
Warning: Due to a current limitation of the Pine, this script is only allowed to plot up to 500 lines total. If you start to notice lines starting to disappear or you begin getting a script error, double check the input settings as the script may have crossed the 500 line threshold.
This can be used in conjunction with Fixed Range Volume Profile . Select the balance range with the Fixed Volume Profile . Note the Value Area High and Value Area Low prices and input those into the balance range High/Low inputs.
Use to create price targets from Balance Zone Breakouts
A recent example of this idea in action on ticker ES1! 2 hour chart where the balance range was found and the target (double the box size of the balance range) was hit.
Another example of this same concept but on a normal security like AAPL but on a 30 minute chart:
Extending the usefulness even further to crypto on BTCUSD with a 5 minute chart:
Use to create reference levels for future price action
The other way to utilize this is to provide future reference levels from a key balance range from the past.
Here is another example utilizing the AMD daily chart . First, a balance zone was noted for all of 2017:
Moving forward to the most recent price action in 2023, notice that the box extension levels are still fairly well respected almost 6 years later!
Dynamic Reactor [CHE]This simple Pine script is an implementation of the Dynamic Reactor indicator. The indicator is designed to dynamically adjust to market conditions and identify trend reversals.
The indicator takes one input parameter: the length of the Dynamic Reactor. The script calculates the high, low, and midpoint values of the Dynamic Reactor using a simple moving average (SMA) function. The plot colors are determined by the current price in relation to the high and low values. If the price is above the high value, the plot is colored green. If the price is below the low value, the plot is colored red. Otherwise, the plot is colored gray. The area between the high and low values is filled with a transparent color to help visualize the range of the indicator.
Three Bar Gap (Simple Price Action - with 1 line plot)This script is tailored towards experienced traders who prefer to view raw price charts during live execution. It searches for a three-bar pattern of what is colloquially called "fair value gap", or "imbalance" and uses a single line to plot the results. The goal is to display price in a way that is as simple as possible so that chart readers who don't prefer to add indicators on their screen will still find this indicator as an acceptable option to consider for.
From a code perspective, this script explores a new PineScript feature called UDT (user-defined types). This is an incredible update because it brings developers one step close to having the ability to create abstract data types.
█ What is price action?
Experienced traders will tell you that the chart that they use for live execution is raw, clean, and uses no indicators. They say they execute on price action, so what exactly is price action?
There is no formal definition to it, but one can agree that it implies the process of analyzing price without considering the fundamentals, without needing to know what the news was about, and without needing to know any of the Greeks (except for the desire to “seek alpha” Ha.haa...). This is not to say that price action traders are executing in their own vacuums without the need to know what is happening around the world. Surely fundamentals and financial models can be used beforehand for developing a bias for what is being traded, but it’s price-first at the moment of execution. That said, Factor (A) is Price.
Factor (B) is time-perception, it’s how the trader reads the tape. How the trader perceives price to change with respect to time is valuable information. Interpretation of "time" will be elaborated in the next section that talks about candlestick patterns detected by this script.
Putting this together, price action means the analysis of price movement by only considering (A) price, and (B) time, to predict which direction the market will move. A speculative trader is timing the market with the expectation to make a quick in-and-out profit; she/she is using price action. On the other hand, a long term investor holding a diversified portfolio with a strategy based on modern portfolio theory combined with fundamental analysis (at this point candlesticks are irrelevant) but has one additional criteria of, say, can only go Long on a stock when it has closed Green on Daily; he/she is also considered to be executing on price action.
█ Candlestick patterns
This script calculates the displacement of highs and lows over three consecutive bars.
A) Down move = When High of the recent confirmed bar is lower than the Low of the previous-previous candle
B) Up move = When Low of the recent confirmed bar is higher than the High of the previous-previous candle
(Note that its the confirmed bar that is being talked about, so it does not repaint)
An ATR filter will be applied to reduce the number of lines generated as many times they might just be associated with minor price changes.
Interpretations:
When price moves quickly across three bars, it can be thought that it has gapped. Although the candle in the middle appears to be solid, it’s not from a conceptual perspective. This is because time itself is arbitrary; timeframes don’t necessarily have to be fixed intervals. Take stocks with regular trading hours for example, if price makes a breakaway gap and you bundle the after-hours and pre-market sessions together as one candle, never minding that intervals should be fixed, then you will see the exact three-bar-gap patterns. Similar happens during intraday sessions on lower timeframes, if you zoom-in closer, you’ll see that ticks within the middle candle are sparsely dispersed. This is why it's called a gap.
█ Parameters with fixed inputs & assumptions used:
ATR is used for filtering out minor movements that will likely be deemed as irrelevant by trader for the purpose of live execution. The following inputs are required:
A) ATR lookback period
B) Multiplier
The product of ATR(len=A) and B produces a threshold for minimum distance that price must gap by. Initially, it was proposed to be only based on one ATR, but often an ATR is too wide and using it will filter out too many lines. Because of this observation, a multiplier (Parameter B) has been introduced to allow users to apply fractional ATR as a threshold.
█ Applications:
For trend followers: Follow the direction of the gap. Entering above recent high/low points above/below the first impulse with a stop-limit order is a viable tactic.
For contrarians fading a trend: The mid-point is a good point of reference for predicting potential areas of support/resistance.
MLExtensionsLibrary "MLExtensions"
normalizeDeriv(src, quadraticMeanLength)
Returns the smoothed hyperbolic tangent of the input series.
Parameters:
src : The input series (i.e., the first-order derivative for price).
quadraticMeanLength : The length of the quadratic mean (RMS).
Returns: nDeriv The normalized derivative of the input series.
normalize(src, min, max)
Rescales a source value with an unbounded range to a target range.
Parameters:
src : The input series
min : The minimum value of the unbounded range
max : The maximum value of the unbounded range
Returns: The normalized series
rescale(src, oldMin, oldMax, newMin, newMax)
Rescales a source value with a bounded range to anther bounded range
Parameters:
src : The input series
oldMin : The minimum value of the range to rescale from
oldMax : The maximum value of the range to rescale from
newMin : The minimum value of the range to rescale to
newMax : The maximum value of the range to rescale to
Returns: The rescaled series
color_green(prediction)
Assigns varying shades of the color green based on the KNN classification
Parameters:
prediction : Value (int|float) of the prediction
Returns: color
color_red(prediction)
Assigns varying shades of the color red based on the KNN classification
Parameters:
prediction : Value of the prediction
Returns: color
tanh(src)
Returns the the hyperbolic tangent of the input series. The sigmoid-like hyperbolic tangent function is used to compress the input to a value between -1 and 1.
Parameters:
src : The input series (i.e., the normalized derivative).
Returns: tanh The hyperbolic tangent of the input series.
dualPoleFilter(src, lookback)
Returns the smoothed hyperbolic tangent of the input series.
Parameters:
src : The input series (i.e., the hyperbolic tangent).
lookback : The lookback window for the smoothing.
Returns: filter The smoothed hyperbolic tangent of the input series.
tanhTransform(src, smoothingFrequency, quadraticMeanLength)
Returns the tanh transform of the input series.
Parameters:
src : The input series (i.e., the result of the tanh calculation).
smoothingFrequency
quadraticMeanLength
Returns: signal The smoothed hyperbolic tangent transform of the input series.
n_rsi(src, n1, n2)
Returns the normalized RSI ideal for use in ML algorithms.
Parameters:
src : The input series (i.e., the result of the RSI calculation).
n1 : The length of the RSI.
n2 : The smoothing length of the RSI.
Returns: signal The normalized RSI.
n_cci(src, n1, n2)
Returns the normalized CCI ideal for use in ML algorithms.
Parameters:
src : The input series (i.e., the result of the CCI calculation).
n1 : The length of the CCI.
n2 : The smoothing length of the CCI.
Returns: signal The normalized CCI.
n_wt(src, n1, n2)
Returns the normalized WaveTrend Classic series ideal for use in ML algorithms.
Parameters:
src : The input series (i.e., the result of the WaveTrend Classic calculation).
n1
n2
Returns: signal The normalized WaveTrend Classic series.
n_adx(highSrc, lowSrc, closeSrc, n1)
Returns the normalized ADX ideal for use in ML algorithms.
Parameters:
highSrc : The input series for the high price.
lowSrc : The input series for the low price.
closeSrc : The input series for the close price.
n1 : The length of the ADX.
regime_filter(src, threshold, useRegimeFilter)
Parameters:
src
threshold
useRegimeFilter
filter_adx(src, length, adxThreshold, useAdxFilter)
filter_adx
Parameters:
src : The source series.
length : The length of the ADX.
adxThreshold : The ADX threshold.
useAdxFilter : Whether to use the ADX filter.
Returns: The ADX.
filter_volatility(minLength, maxLength, useVolatilityFilter)
filter_volatility
Parameters:
minLength : The minimum length of the ATR.
maxLength : The maximum length of the ATR.
useVolatilityFilter : Whether to use the volatility filter.
Returns: Boolean indicating whether or not to let the signal pass through the filter.
backtest(high, low, open, startLongTrade, endLongTrade, startShortTrade, endShortTrade, isStopLossHit, maxBarsBackIndex, thisBarIndex)
Performs a basic backtest using the specified parameters and conditions.
Parameters:
high : The input series for the high price.
low : The input series for the low price.
open : The input series for the open price.
startLongTrade : The series of conditions that indicate the start of a long trade.`
endLongTrade : The series of conditions that indicate the end of a long trade.
startShortTrade : The series of conditions that indicate the start of a short trade.
endShortTrade : The series of conditions that indicate the end of a short trade.
isStopLossHit : The stop loss hit indicator.
maxBarsBackIndex : The maximum number of bars to go back in the backtest.
thisBarIndex : The current bar index.
Returns: A tuple containing backtest values
init_table()
init_table()
Returns: tbl The backtest results.
update_table(tbl, tradeStatsHeader, totalTrades, totalWins, totalLosses, winLossRatio, winrate, stopLosses)
update_table(tbl, tradeStats)
Parameters:
tbl : The backtest results table.
tradeStatsHeader : The trade stats header.
totalTrades : The total number of trades.
totalWins : The total number of wins.
totalLosses : The total number of losses.
winLossRatio : The win loss ratio.
winrate : The winrate.
stopLosses : The total number of stop losses.
Returns: Updated backtest results table.