Higher Timeframe Candle LevelsThis is an indicator that shows higher time frame candle levels from various preset timeframes. These higher time frame candles act as support and resistance levels, so look for reversals and continuations off of these levels. When price exceeds the high or low of these levels, you should look for breakouts in the same direction and trade with the trend.
It includes candle levels for the following timeframes: 1 hour, 4 hour, 1 day, 1 week, 1 month, 1 quarter and 1 year. The indicator also includes a trend candle coloring feature, trend strength scoring table, stop loss feature, line identification labels, alerts for trend changes, alerts for level touches and full customization of all options.
How To Trade With This Indicator
These higher timeframe candle levels will act as support and resistance levels, so look for price to react at any of the levels you have turned on and then look for potential bounce or reversal signs at those levels so you can trade those direction changes. Price outside of the higher timeframe candle highs and low typically signals a breakout as well, so look for price to continue after passing the highs or lows.
You can use the direction of the higher timeframe candles as your trend as well. Try to only trade in the direction of the trend of the higher timeframes to increase the likelihood of your trade going in your favor.
The highs and lows of daily and up levels are excellent levels to find quick reversal off of. Watch for price action to struggle to break through these levels and then trade the reversal. If price breaks through these levels easily, watch for price to retest the level and then continue beyond that level. Trade the retest in the direction of the trend.
The open, close and midline levels are excellent for trading bounces. Watch for price to form wicks beyond these levels and close on the other side and use that as a sign that price may bounce there. Use that with price action to confirm your trade and then take trades off of those level bounces.
Use the alerts for daily and up timeframe level touches across all of your favorite markets so that way you are always notified in real time when price is at a level that could provide a potential trading opportunity.
Higher Time Frame Candle Levels
The indicator shows the current candle open, previous open, previous high, previous low, previous close and previous candle body midline levels of each candle for each time frame. This helps you easily see what is going on with the higher time frame candles and read the price action from your lower time frame charts.
Each candle level will paint red if it was a down candle or green if it was an up candle, except the midlines and current candle open lines, those are a different color for easy differentiation. The line colors can be customized to your preferences in the settings and you can also toggle the candle body coloring on or off, as well as change the color of the candle body background.
Each timeframe can be adjusted to your preferences, allowing you to turn all of the levels on or off. You can also adjust how many previous candles show up on your chart so you can backtest it and see for yourself how accurate these levels are.
When adjusting the number of candles, you will get a notification if you have more than 500 lines turned on, so just turn down the number of levels for whatever timeframe you can’t see on your chart to lower that number below 500. The notification will go away once you are under 500 lines again. Each candle has 6 lines if all levels are turned on for that timeframe: open, current candle open, close, high, low and midline. The default settings keep you under 500 lines total, so just be aware of that limitation when adjusting those numbers and adjust the number of levels down on the timeframes that are not useful on the current chart bar.
You can also extend the levels right on any time frame from the daily levels and above. This is useful when price is breaking above or below all levels and you need to know if there are any other previous candle levels in the way as price moves away from the most recent higher time frame candles.
To understand the intraday trend of each higher time frame, look to see where price is at according to each higher time frame candle. If the price is above the midline of the candle, it is bullish. If the price is above the candle body it is more bullish. If the price is above the high, it is very bullish. If the price is below the midline of the candle, it is bearish. If the price is below the candle body it is more bearish. If the price is below the low, it is very bearish. Make sure you backtest this yourself and go through lots of historical data to get a feel for how price reacts to these levels and establishes the trend. Then use that trend information to your advantage and trade in the direction of the trend.
Since users are limited to a certain amount of historical bars based on which Tradingview plan you have, some longer timeframe levels won’t show up because the start of that candle is too far back in history. You will get a notification at the top of that chart if that happens. It will tell you to lower the display timeframe for that timeframe until that notification goes away, which means it was able to plot the most recent candle for that timeframe on your chart.
Trend Candle Coloring
The indicator includes a feature that paints the candles based on whether the current time frame candles are above or below the most recent midline, candle body or high & low of a higher time frame candle of your choice. This helps you see the overall trend of the higher timeframe so you can trade with the trend.
The candle coloring will have an up color, down color and neutral color which can all be customized to suit your preferences. If the current time frame candle close is above the setting you choose, it will show the up color. If the current time frame candle close is below the setting you choose, it will show the down color. If the current time frame candle close is equal to or in the middle of the setting you chose, it will show the neutral color.
So, for example if you set it to candle body, then it will show the up color if the current candle is above the top of the candle body, down color if it is below the bottom of the candle body and neutral color if it is inside the candle body. This helps you wait for price action to move beyond the inside of the previous higher time frame candle before taking a position when price is breaking out of that previous candle so you can trade the momentum of that move. The candle coloring is fully customizable, but make sure to turn off your candle coloring on other indicators and your chart settings for it to show up properly.
Trend Strength Scoring Table
The trend strength scoring table displays a table at the bottom of the screen(table position is customizable), showing a score for the trend strength of each higher time frame. If the current candle close is above the midline, its strength is 1. If the current candle close is above the midline, but below the top of the candle body, its strength is 2. If the current candle close is above the high, its strength is 3. The same goes for below the midline, bottom of the candle body and below the low, but the scores would be negative 1, 2 or 3 instead.
This trend strength table allows you to quickly identify the trend on each higher time frame so you can wait until the trend is the same across all time frames before placing a trade in the direction of the trend. It also shows a total score on the far right side that adds all of the current trend scores together to give you a total strength score. Try to only trade when that number is very high compared to how many time frames you have turned on. Each time frame can have up to a maximum score of 3 if bullish and -3 if bearish. Each time frame in the table can be turned on or off to suit your preferences.
Stop Loss Feature
There is also a stop loss feature that you can set to whatever time frame you choose and whatever direction you chose, such as long or short. It will follow the most recent higher time frame candle’s trend using one of the following settings: candle body, high & low or midline. Once a new higher time frame candle is created, the stop loss will update to the most recent candle’s levels so you can use these levels as a trailing stop loss to maximize your wins.
If you have it set to use the candle body and it is set to long mode, then the stop loss will use the previous higher time frame candle’s lowest candle body level. So if it was an up candle previously, it will use the open. If it was a down candle previously, it will use the close. The opposite is true for short positions.
The stop loss will start working once you turn it on in the settings and will update automatically as new higher time frame candles are formed. It also shows a line of where the stop loss was previously since it was turned on.
I recommend using the high & low setting, especially when the market starts trending.
Candle Level Identification Labels
There are labels for each level starting with the 4 hour time frame and above so you can easily tell what level of each candle you are looking at, even if the rest of the candle is not showing within the chart pane. You can customize the label coloring for up candles and down candles and midlines as well as adjust the number of bars that the labels are offset from the current bar so they are visible on your chart without overlapping the current price action or other indicator labels. Labels for each time frame can be turned on or off as needed. The 1 hour labels were not included because it clogs up the chart, but it has labels for all time frames from the 4 hour candles and up.
Alerts
The indicator includes alerts for when the trend has changed to the opposite direction. The trend change alert is based on your settings for the Trend Candle Coloring. Whatever settings you have the trend candle coloring set to, will be used to set up your alerts. The Trend Candle Coloring setting must be turned on as well when creating your alerts for it to work properly. Make sure to backtest your settings and then create your alerts.
It also has alerts for when price is touching an open or close, high or low, midline or any of those levels for each timeframe. This allows you to be notified when price touches one of these levels so you can check the chart and look for potential trade opportunities if price wants to bounce off of that level. To make it easy for you to get alerts on many different tickers, just use the alert for any level touch on whatever timeframes you want.
Other Indicators To Pair This With
Use this in combination with our Trend Strength Indicator so you can visually see the historic and current trend for all of these levels. You should also use our Breakout Scanner to find other markets with strong trends so you always know which market is trending the strongest and can trade those. Trend Strength Indicator, Higher Timeframe Candle Levels and the Breakout Scanner all use the same levels and calculate the trend scores the same way so they are designed to work together to help you quickly be able to read a chart and find what direction to trade in.
Highertimeframe
Trend Strength IndicatorThis is a Trend Strength Indicator that shows you the immediate trend and historical trend of price for up to 7 higher timeframes.
It shows the strength of each timeframe by showing a red or green dot based on where price is at compared to the previous higher timeframe candle. The brighter red or green the dot is, the stronger the trend is compared to that higher timeframe candle.
The colors and timeframes can be customized to suit your preference and you can also turn off as many timeframes as you’d like if you want less time frames to show up on the indicator.
It also includes alerts for when all timeframes are bullish or all timeframes are bearish.
Keep these timeframes set to higher time frames than your chart so you can trade in the direction of the overall higher timeframe trend.
Bullish Scoring & Colors
If the current candle close is above the midline of the higher time frame candle, it is given a score of 1 and a dark green dot. If the current candle close is above the higher timeframe candle body, then it is given a score of 2 and a medium green dot. If the current candle close is above the high of the higher time frame candle, it is given a score of 3 and a bright green dot.
The higher the score the stronger the bullish trend and the brighter green the dot will be.
Bearish Scoring & Colors
If the current candle close is below the midline of the higher timeframe candle, it is given a score of -1 and a dark red dot. If the current candle close is below the higher timeframe candle body, then it is given a score of -2 and a medium red dot. If the current candle close is below the low of the higher timeframe candle, it is given a score of -3 and a bright red dot.
The lower the score, the stronger the bearish trend and the brighter red the dot will be.
Trend Scoring Modes
We gave you the option to set the trend scoring mode to either score based on price above or below the midline for quick and easy trend identification, or using the midline, candle body and highs and lows to give you a more detailed view of the trend strength. You can switch between these modes by selecting your preferred mode in the settings panel. The default is Open, High, Low, Close + Midline.
Sending Trend Direction To External Indicators
We coded in the ability to use the trend strength score as a signal that you can use to filter other indicators. This feature is great for notifying signal generating indicators what direction the market is trending in so that the signal generating indicator only gives signals in the direction of the trend.
This feature works by providing a data output of 1, 0 or -1. 1 means the trend is bullish, 0 means the trend is neutral and -1 means the trend is bearish.
This score is calculated by using the score of each timeframe that is turned on and checking if all timeframes are in the same direction or not. So if 3 timeframes are turned on and they are all bullish, the indicator will provide a data output of 1. This tells your external indicators that the trend is bullish.
This data output can be found in the data window and is labeled Trend Direction To Send To External Indicators.
At the bottom of the settings panel, there is a setting called Trend Score Threshold For External Indicators. This setting is the score threshold that all timeframes will need to meet to allow a trend strength signal to go through. So if set to 1, then all timeframes must be scored 1 or higher for bullish or -1 or lower for bearish. If set to 2, then all timeframes must be 2 or higher for bullish or -2 or lower for bearish. If set to 3, then all timeframes must be 3 for bullish or -3 for bearish. If all timeframes have met this threshold, then a bullish or bearish signal can be sent to your external indicator as a trend filter.
Labels
There are labels to the right of each row of dots, telling you which timeframe is which so you can easily identify what timeframe each row is showing the trend for.
Alerts
You can set alerts for when all timeframes are bullish or when all timeframes are bearish. If you have some time frames turned off at the time of creating your alerts, then it will only require all timeframes that are on to be all bullish or bearish to generate an alert. Make sure to set your alerts to once per bar close to ensure you don’t get premature alerts that aren’t yet valid.
Backtesting
This indicator helps you quickly identify and backtest the trend direction, how strong that trend is on multiple timeframes and helps you spot reversals and trend continuations. Make sure you look back at a lot of historical data to see how price moves when trend changes take place and how well price continues in each direction compared to the overall trend. This will help you gain confidence in reading the indicator and using it to your advantage when trading.
Best Way To Use The Indicator
This indicator is designed to help you quickly identify the trend on various different timeframes. The brighter the green dots are, the stronger the bullish trend is. The brighter the red dots are, the stronger the bearish trend is.
Trade in the direction of the trend. If the colors are mixed green and red, then price is likely to chop back and forth, so only trade the extremes of the ranges when that happens.
When most of the lower timeframe dots are the same color, that means it is a strong trend and you should place trades in the direction of the trend to be safe. The lower timeframes will start trending before the higher timeframes, so take notice of the lower timeframe colors starting to agree with each other and then take advantage of the trend that is forming.
You can also spot reversals with this indicator by watching for the lower timeframes to start changing color after a strong trend in one direction. The lower timeframes will start to change color one by one, indicating that the trend is actually changing direction.
For best results, make sure you wait for the trend to show all bullish or all bearish at the same time before you place any trades. If you can be patient enough to do that, you will increase the probability of winning your trade because you are trading with the direction of the overall higher timeframe trend which is typically an easy way to win more trades. Of course wait for pullbacks during the trend so you can keep a tight stop loss after entering your trade.
If you are scalping, you can turn off the higher timeframes and just use the 1 hour through 1 day. This won’t be as reliable as using all timeframes and waiting for them to align, but it is suitable for scalping quick intraday movements.
Other Indicators To Pair This With
Use this in combination with our Higher Timeframe Candle Levels indicator so you can see all of these levels being used to calculate the trend strength scores and watch how price reacts to those levels. You should also use our Breakout Scanner to find other markets with strong trends so you always know which market is trending the strongest and can trade those. Trend Strength Indicator, Higher Timeframe Candle Levels and the Breakout Scanner all use the same levels and calculate the trend scores the same way so they are designed to work all together to help you quickly be able to read a chart and find what direction to trade in.
VWAP Multi-TimeframeThis is a multi-timeframe VWAP indicator that provides volume weighted average price calculations for the following time periods:
15min
30min
1H
2H
4H
6H
8H
12H
1D
1W
1M
3M
6M
1Y
You can use the lower timeframes for short term trend control areas and use the longer timeframes for long term trend control areas. Trade in the direction of the trend and watch for price reactions that you can trade when price gets close to or touches any of these levels.
This indicator will provide a data plot value of 1 for bullish when price is above all VWAPs that are turned on, -1 for bearish when price is below all VWAPs that are turned on and 0 for neutral when price is not above or below all VWAPs. Use this 1, -1, 0 value as a filter on your signal generating indicators so that you can prevent signals from coming in unless they are in the same direction as the VWAP trend.
Features
Trend direction value of 1, -1 or 0 to send to external indicators so you can filter your signal generating indicators using the VWAP trend.
Trend table that shows you whether price is above or below all of the major VWAPs. This includes the daily, weekly, monthly and yearly VWAPs.
Trend coloring between each VWAP and the close price of each candle so you can easily identify the trend direction.
Customization
Set the source value to use for all of the VWAP calculations. The default is HLC3.
Turn on or off each VWAP.
Change the color of each VWAP line.
Change the thickness of each VWAP line.
Turn on or off labels for each VWAP or turn all labels on or off at once.
Change the offset length from the current bar to the label text.
Change the label text color.
Turn on or off trend coloring for each VWAP.
Change the color for up trends and down trends.
Turn on or off the trend direction display table.
Change the location of the trend direction display table.
Adjust the background and text colors on the trend direction display table.
How To Use The Trend Direction Filtering Feature
The indicator will provide a data plot value of 1 for bullish when price is above all of the VWAPs that are turned on, a value of -1 for bearish when price is below all of the VWAPS that are turned on and a value of 0 for neutral when price is above and below some of the VWAPs that are turned on.
The name of the value to use with your external indicators will show up as: VWAP Multi-Timeframe: Trend Direction To Send To External Indicators
Make sure to use that as your source on your external indicators to get the correct values.
This 1, -1 or 0 value can then be used by another external indicator to tell the indicator what is allowed to do. For instance if you have another indicator that provides buy and sell signals, you can use this trend direction value to prevent your other indicator from giving a sell signal when the VWAP trend is bullish or prevent your other indicator from giving a buy signal when the VWAP trend is bearish.
You will need to program your other indicators to use this trend filtering feature, but this indicator is already set up with this filtering code so you can use it with any other indicator that you choose to filter(if you know how to customize pine script).
Markets You Can Use This Indicator On
This indicator uses volume and price to calculate values, so it will work on any chart that provides volume and price data.
Previous Key Levels (fadi)Previous Key Levels indicator is a highly configurable OHLC levels tool designed to provide traders with the ability to plot multiple levels while minimizing screen clutter. This indicator is perfect for those who want to monitor various timeframes simultaneously without overloading their charts with unnecessary information.
How to Use It
This indicator offers traders the flexibility to track up to 6 higher timeframes (HTFs) and multiple candles for each timeframe. For example, a trader can choose to monitor the OHLC of the last four 4-hour candles, providing a comprehensive view of significant price levels over different periods.
Key Features
Highly Configurable: Customize the number of timeframes and candles to suit your trading strategy.
Minimal Screen Clutter: Efficiently plot multiple levels without overwhelming your chart.
Flexible Application: Ideal for identifying support and resistance levels, liquidity sweeps, target levels, and more, adapting to various trading styles.
Traders have diverse trading styles and preferences. Some may use these levels to identify support and resistance zones, while others might look for liquidity sweeps or set target levels. By offering a high degree of customization, the Previous Key Levels indicator caters to the unique needs of individual traders, helping them make informed decisions based on historical price action across multiple timeframes.
Timeframe Settings
Toggle to track 6 HTF settings and the number of candles to track for each.
Limit to next HTFs only can be used to limit the HTF levels displayed based on the current timeframe.
Hide Above will disable the indicator above the specified interval.
Offset to Left and Right are used to specify where the level line starts and ends based on the current candle.
Offset between HTFs extends HTF levels to become more readable.
HTF Settings
Choice of the OHLC levels to track.
Specify the color, line style, and line width for each level.
Mark the start of that level, for example, draw a vertical line where the 4H candle has started.
Trace back to draw optional lines to track back to the origin of the level.
Label Settings
Highly configurable labels that allow traders to customize the labels to their liking.
Label color, background, and size.
Customize using up to 9 configurable parts.
Fading Levels
To prevent clutter, the indicator offers the option to change the transparency of the levels based on their distance from the current price. The distance is calculated based on a configurable Average True Range (ATR).
Change Transparency to a percentage of its current color.
Range should be within X candles will fade any level that is X candles length away from the current price.
ATR length used in calculation will calculate the average size of candles in the calculation.
libTFLibrary "libTF"
libTF: Find higher/lower TF automatically
This library to find higher/lower TF from current timeframe(timeframe.period) for Pine Script version6(or higher).
Basic Algorithm
Using a timeframe scale Array and timeframe.in_seconds() function to find higher/lower timeframe.
Return value is na if could not find TF in the timeframe scale.
The timeframe scale could be changed by the parameter 'scale'(CSV).
How to use
1. Set higher/lower TF
higher()/lower() function returns higher/lower TF.
Default timeframe scale is "1, 5, 15, 60, 240, 1D, 1M, 3M, 12M".
example:
htf1 = higher()
htf2 = higher(htf1)
ltf1 = lower()
ltf2 = lower(ltf1)
2. Set higher/lower TF using your timeframe scale
The timeframe scale could be changed by the parameter.
example:
myscale="1,60,1D,1M,12M"
htf1 = higher(timeframe.period,myscale)
htf2 = higher(htf1,myscale)
ltf1 = lower(timeframe.period,myscale)
ltf2 = lower(ltf1,myscale)
3. How to use with request.*() function
na value is set if no higher/lower TF in timeframe scale.
It returns current timeframe's value, when na value as timeframe parameter in request.*().
As bellow, if it should be na when timeframe is na.
example:
return_value_request_htf1 = na(htf1)?na:request.security(syminfo.tickerid,htf1,timeframe.period)
return_value_request_ltf1 = na(ltf1)?na:request.security(syminfo.tickerid,ltf1,timeframe.period)
higher(tf, scale)
higher: find higher TF from TF string.
Parameters:
tf (string) : default value is timeframe.period.
scale (string) : TF scale in CSV. default is "1,5,15,60,240,1D,1W,1M,3M,12M".
Returns: higher TF string.
lower(tf, scale)
lower: find lower TF from TF string.
Parameters:
tf (string) : default value is timeframe.period.
scale (string) : TF scale in CSV. defalut is "1,5,15,60,240,1D,1W,1M,3M,12M".
Returns: lower TF string.
Higher Time Frame Strat [QuantVue]The Higher Time Frame Strat Indicator is a tool that helps traders visualize and analyze price action from a higher timeframe (HTF) on their current chart. It applies the Strat method, a trading strategy focused on identifying key price action setups by observing how current price bars relate to previous ones. This helps in understanding the market's structure and determining potential trading opportunities based on higher timeframe data.
Key Concepts:
Strat Basics:
Type 1 Bar (Inside Bar): The current bar's high is lower than the previous bar's high, and its low is higher than the previous bar's low. This signifies a consolidation, or indecision, as the price is contained within the previous bar's range.
Type 2 Bar (Directional Bar): The current bar either breaks above the previous bar's high (bullish) or stays above the previous bar's low (bearish), indicating a continuation in the price direction.
Type 3 Bar (Outside Bar): The current bar breaks both above the previous bar's high and below the previous bar's low, showing volatility and a potential reversal.
Higher Timeframe Visualization:
The indicator uses a user-defined higher timeframe (default: 1 hour) and plots the last three higher timeframe candles on the current chart.
Strat Classification:
When a new higher timeframe candle forms, the indicator draws a semi-transparent box around the candle's range (high to low), along with the Strat type label. This provides a visual cue to the trader about the structure of the newly formed candle and how it fits into the overall market movement.
The script classifies each higher timeframe candle as one of the Strat types (1, 2, or 3). Based on the relationship between the current candle and the previous candle's high/low, it assigns a label ("1", "2", or "3"), helping traders quickly identify the price action setup on the higher timeframe.
How to Use the Indicator:
Trend Continuation: Look for Type 2 bars, which indicate a continuation in the current trend. For example, a Type 2 up suggests the price is breaking above the previous high, potentially signaling further upward movement.
Reversals: Type 3 bars show increased volatility, where the price breaks both above and below the previous bar's range. This could indicate a reversal, so be prepared for a potential change in direction.
Consolidation: Inside bars (Type 1) signify a tightening range and can signal the beginning of a breakout once the price moves outside of the previous bar's high or low.
By combining these price action concepts with the visualization of higher timeframe data, traders can potentially get earlier entry and exits as a higher timeframe set up forms.
Higher-timeframe requests█ OVERVIEW
This publication focuses on enhancing awareness of the best practices for accessing higher-timeframe (HTF) data via the request.security() function. Some "traditional" approaches, such as what we explored in our previous `security()` revisited publication, have shown limitations in their ability to retrieve non-repainting HTF data. The fundamental technique outlined in this script is currently the most effective in preventing repainting when requesting data from a higher timeframe. For detailed information about why it works, see this section in the Pine Script™ User Manual .
█ CONCEPTS
Understanding repainting
Repainting is a behavior that occurs when a script's calculations or outputs behave differently after restarting it. There are several types of repainting behavior, not all of which are inherently useless or misleading. The most prevalent form of repainting occurs when a script's calculations or outputs exhibit different behaviors on historical and realtime bars.
When a script calculates across historical data, it only needs to execute once per bar, as those values are confirmed and not subject to change. After each historical execution, the script commits the states of its calculations for later access.
On a realtime, unconfirmed bar, values are fluid . They are subject to change on each new tick from the data provider until the bar closes. A script's code can execute on each tick in a realtime bar, meaning its calculations and outputs are subject to realtime fluctuations, just like the underlying data it uses. Each time a script executes on an unconfirmed bar, it first reverts applicable values to their last committed states, a process referred to as rollback . It only commits the new values from a realtime bar after the bar closes. See the User Manual's Execution model page to learn more.
In essence, a script can repaint when it calculates on realtime bars due to fluctuations before a bar's confirmation, which it cannot reproduce on historical data. A common strategy to avoid repainting when necessary involves forcing only confirmed values on realtime bars, which remain unchanged until each bar's conclusion.
Repainting in higher-timeframe (HTF) requests
When working with a script that retrieves data from higher timeframes with request.security() , it's crucial to understand the differences in how such requests behave on historical and realtime bars .
The request.security() function executes all code required by its `expression` argument using data from the specified context (symbol, timeframe, or modifiers) rather than on the chart's data. As when executing code in the chart's context, request.security() only returns new historical values when a bar closes in the requested context. However, the values it returns on realtime HTF bars can also update before confirmation, akin to the rollback and recalculation process that scripts perform in the chart's context on the open bar. Similar to how scripts operate in the chart's context, request.security() only confirms new values after a realtime bar closes in its specified context.
Once a script's execution cycle restarts, what were previously realtime bars become historical bars, meaning the request.security() call will only return confirmed values from the HTF on those bars. Therefore, if the requested data fluctuates across an open HTF bar, the script will repaint those values after it restarts.
This behavior is not a bug; it's simply the default behavior of request.security() . In some cases, having the latest information from an unconfirmed HTF bar is precisely what a script needs. However, in many other cases, traders will require confirmed, stable values that do not fluctuate across an open HTF bar. Below, we explain the most reliable approach to achieve such a result.
Achieving consistent timing on all bars
One can retrieve non-fluctuating values with consistent timing across historical and realtime feeds by exclusively using request.security() to fetch the data from confirmed HTF bars. The best way to achieve this result is offsetting the `expression` argument by at least one bar (e.g., `close [1 ]`) and using barmerge.lookahead_on as the `lookahead` argument.
We discourage the use of barmerge.lookahead_on alone since it prompts the function to look toward future values of HTF bars across historical data, which is heavily misleading. However, when paired with a requested `expression` that includes a one-bar historical offset, the "future" data the function retrieves is not from the future. Instead, it represents the last confirmed bar's values at the start of each HTF bar, thus preventing the results on realtime bars from fluctuating before confirmation from the timeframe.
For example, this line of code uses a request.security() call with barmerge.lookahead_on to request the close price from the "1D" timeframe, offset by one bar with the history-referencing operator [ ] . This line will return the daily price with consistent timing across all bars:
float htfClose = request.security(syminfo.tickerid, "1D", close , lookahead = barmerge.lookahead_on)
Note that:
• This technique only works as intended for higher-timeframe requests .
• When designing a script to work specifically with HTFs, we recommend including conditions to prevent request.security() from accessing timeframes equal to or lower than the chart's timeframe, especially if you intend to publish it. In this script, we included an if structure that raises a runtime error when the requested timeframe is too small.
• A necessary trade-off with this approach is that the script must wait for an HTF bar's confirmation to retrieve new data on realtime bars, thus delaying its availability until the open of the subsequent HTF bar. The time elapsed during such a delay varies with each market, but it's typically relatively small.
👉 Failing to offset the function's `expression` argument while using barmerge.lookahead_on will produce historical results with lookahead bias , as it will look to the future states of historical HTF bars, retrieving values before the times at which they're available in the feed. See the `lookahead` and Future leak with `request.security()` sections in the Pine Script™ User Manual for more information.
Evolving practices
The fundamental technique outlined in this publication is currently the only reliable approach to requesting non-repainting HTF data with request.security() . It is the superior approach because it avoids the pitfalls of other methods, such as the one introduced in the `security()` revisited publication. That publication proposed using a custom `f_security()` function, which applied offsets to the `expression` and the requested result based on historical and realtime bar states. At that time, we explored techniques that didn't carry the risk of lookahead bias if misused (i.e., removing the historical offset on the `expression` while using lookahead), as requests that look ahead to the future on historical bars exhibit dangerously misleading behavior.
Despite these efforts, we've unfortunately found that the bar state method employed by `f_security()` can produce inaccurate results with inconsistent timing in some scenarios, undermining its credibility as a universal non-repainting technique. As such, we've deprecated that approach, and the Pine Script™ User Manual no longer recommends it.
█ METHOD VARIANTS
In this script, all non-repainting requests employ the same underlying technique to avoid repainting. However, we've applied variants to cater to specific use cases, as outlined below:
Variant 1
Variant 1, which the script displays using a lime plot, demonstrates a non-repainting HTF request in its simplest form, aligning with the concept explained in the "Achieving consistent timing" section above. It uses barmerge.lookahead_on and offsets the `expression` argument in request.security() by one bar to retrieve the value from the last confirmed HTF bar. For detailed information about why this works, see the Avoiding Repainting section of the User Manual's Other timeframes and data page.
Variant 2
Variant 2 ( fuchsia ) introduces a custom function, `htfSecurity()`, which wraps the request.security() function to facilitate convenient repainting control. By specifying a value for its `repaint` parameter, users can determine whether to allow repainting HTF data. When the `repaint` value is `false`, the function applies lookahead and a one-bar offset to request the last confirmed value from the specified `timeframe`. When the value is `true`, the function requests the `expression` using the default behavior of request.security() , meaning the results can fluctuate across chart bars within realtime HTF bars and repaint when the script restarts.
Note that:
• This function exclusively handles HTF requests. If the requested timeframe is not higher than the chart's, it will raise a runtime error .
• We prefer this approach since it provides optional repainting control. Sometimes, a script's calculations need to respond immediately to realtime HTF changes, which `repaint = true` allows. In other cases, such as when issuing alerts, triggering strategy commands, and more, one will typically need stable values that do not repaint, in which case `repaint = false` will produce the desired behavior.
Variant 3
Variant 3 ( white ) builds upon the same fundamental non-repainting approach used by the first two. The difference in this variant is that it applies repainting control to tuples , which one cannot pass as the `expression` argument in our `htfSecurity()` function. Tuples are handy for consolidating `request.*()` calls when a script requires several values from the same context, as one can request a single tuple from the context rather than executing multiple separate request.security() calls.
This variant applies the internal logic of our `htfSecurity()` function in the script's global scope to request a tuple containing open and `srcInput` values from a higher timeframe with repainting control. Historically, Pine Script™ did not allow the history-referencing operator [ ] when requesting tuples unless the tuple came from a function call, which limited this technique. However, updates to Pine over time have lifted this restriction, allowing us to pass tuples with historical offsets directly as the `expression` in request.security() . By offsetting all items in a tuple `expression` by one bar and using barmerge.lookahead_on , we effectively retrieve a tuple of stable, non-repainting HTF values.
Since we cannot encapsulate this method within the `htfSecurity()` function and must execute the calculations in the global scope, the script's "Repainting" input directly controls the global `offset` and `lookahead` values to ensure it behaves as intended.
Variant 4 (Control)
Variant 4, which the script displays as a translucent orange plot, uses a default request.security() call, providing a reference point to compare the difference between a repainting request and the non-repainting variants outlined above. Whenever the script restarts its execution cycle, realtime bars become historical bars, and the request.security() call here will repaint the results on those bars.
█ Inputs
Repainting
The "Repainting" input (`repaintInput` variable) controls whether Variant 2 and Variant 3 are allowed to use fluctuating values from an unconfirmed HTF bar. If its value is `false` (default), these requests will only retrieve stable values from the last confirmed HTF bar.
Source
The "Source" input (`srcInput` variable) determines the series the script will use in the `expression` for all HTF data requests. Its default value is close .
HTF Selection
This script features two ways to specify the higher timeframe for all its data requests, which users can control with the "HTF Selection" input (`tfTypeInput` variable):
1) If its value is "Fixed TF", the script uses the timeframe value specified by the "Fixed Higher Timeframe" input (`fixedTfInput` variable). The script will raise a runtime error if the selected timeframe is not larger than the chart's.
2) If the input's value is "Multiple of chart TF", the script multiplies the value of the "Timeframe Multiple" input (`tfMultInput` variable) by the chart's timeframe.in_seconds() value, then converts the result to a valid timeframe string via timeframe.from_seconds() .
Timeframe Display
This script features the option to display an "information box", i.e., a single-cell table that shows the higher timeframe the script is currently using. Users can toggle the display and determine the table's size, location, and color scheme via the inputs in the "Timeframe Display" group.
█ Outputs
This script produces the following outputs:
• It plots the results from all four of the above variants for visual comparison.
• It highlights the chart's background gray whenever a new bar starts on the higher timeframe, signifying when confirmations occur in the requested context.
• To demarcate which bars the script considers historical or realtime bars, it plots squares with contrasting colors corresponding to bar states at the bottom of the chart pane.
• It displays the higher timeframe string in a single-cell table with a user-specified size, location, and color scheme.
Look first. Then leap.
ICT HTF Candles [Source Code] (fadi)Plotting a configurable higher timeframe on current chart's timeframe helps visualize price movement without changing timeframes. It also plots FVG and Volume Imbalance on the higher timeframe for easier visualization.
With ICT concepts, we usually wait for HTF break of structure and then find an entry on a lower timeframe. With this indicator, we can set it to the HTF and watch the develop of price action until the break of structure happens. We can then take an entry on the current timeframe.
Settings
HTF Higher timeframe to plot
Number of candles to display The number of higher timeframe candles to display to the right of current price action
Body/Border/Wick The candle colors for the body, border, and wick
Padding from current candles The distance from current timeframe's candles
Space between candles Increase / decrease the candle spacing
Candle width The size of the candles
Imbalance
Fair Value Gap Show / Hide FVG on the higher timeframe
Volume Imbalance Show / Hide Volume Imbalance on the higher timeframe
Trace
Trace lines Extend the OHLC lines of the higher timeframe and the source of each
Label Show/Hide the price levels of the OHLC
HighLowBox+220MAs[libHTF]HighLowBox+220MAs
This is a sample script of libHTF to use HTF values without request.security().
import nazomobile/libHTFwoRS/1
HTF candles are calculated internally using 'GMT+3' from current TF candles by libHTF .
To calcurate Higher TF candles, please display many past bars at first.
The advantage and disadvantage is that the data can be generated at the current TF granularity.
Although the signal can be displayed more sensitively, plots such as MAs are not smooth.
In this script, assigned ➊,➋,➌,➍ for htf1,htf2,htf3,htf4.
HTF candles
Draw candles for HTF1-4 on the right edge of the chart. 2 candles for each HTF.
They are updated with every current TF bar update.
Left edge of HTF candles is located at the x-postion latest bar_index + offset.
DMI HTF
ADX/+DI/DI arrows(8lines) are shown each timeframes range.
Current TF's is located at left side of the HighLowBox.
HTF's are located at HighLowBox of HTF candles.
The top of HighLowBox is 100, The bottom of HighLowBox is 0.
HighLowBox HTF
Enclose in a square high and low range in each timeframe.
Shows price range and duration of each box.
In current timeframe, shows Fibonacci Scale inside(23.6%, 38.2%, 50.0%, 61.8%, 76.4%)/outside of each box.
Outside(161.8%,261.8,361.8%) would be shown as next target, if break top/bottom of each box.
In HTF, shows Fibonacci Level of the current price at latest box only.
Boxes:
1 for current timeframe.
4 for higher timeframes.(Steps of timeframe: 5, 15, 60, 240, D, W, M, 3M, 6M, Y)
HighLowBox TrendLine
Draw TrendLine for each HighLow Range. TrendLine is drawn between high and return high(or low and return low) of each HighLowBox.
Style of TrendLine is same as each HighLowBox.
HighLowBox RSI
RSI Signals are shown at the bottom(RSI<=30) or the top(RSI>=70) of HighLowBox in each timeframe.
RSI Signal is color coded by RSI9 and RSI14 in each timeframe.(current TF: ●, HTF1-4: ➊➋➌➍)
In case of RSI<=30, Location: bottom of the HighLowBox
white: only RSI9 is <=30
aqua: RSI9&RSI14; <=30 and RSI9RSI14
green: only RSI14 <=30
In case of RSI>=70, Location: top of the HighLowBox
white: only RSI9 is >=70
yellow: RSI9&RSI14; >=70 and RSI9>RSI14
orange: RSI9&RSI14; >=70 and RSI9=70
blue/green and orange/red could be a oversold/overbought sign.
20/200 MAs
Shows 20 and 200 MAs in each TFs(tfChart and 4 Higher).
TFs:
current TF
HTF1-4
MAs:
20SMA
20EMA
200SMA
200EMA
HTF Support & Resistance [QuantVue]The "HTF Support / Resistance" indicator highlights critical price levels across multiple timeframes helping you recognize major support/resistance areas.
Whether you're a day trader needing to understand the current day's price action, or a long-term investor looking to analyze yearly trends, this indicator can be a valuable addition to your trading toolkit.
The daily levels, which can be enabled or disabled according to your preference, will give you insights into the open, high, and low levels for the current and previous day.
Similarly, weekly levels provide information for the current and previous weeks, while monthly levels cover the current and previous months.
In addition, the indicator offers more extended views through its quarterly and yearly levels. These will help you understand long-term trends and major support/resistance areas, and they can be particularly beneficial for major support/resistance levels.
Features:
🔹Visualization: View support and resistance levels from Daily, Weekly, Monthly, Quarterly, and Yearly timeframes.
🔹Customizable Appearance: Tailor the display colors and line styles for each level according to your preferences.
🔹Clear Labeling: Each level is clearly labeled for quick identification.
🔹Extension Option: Opt to extend the support and resistance lines across the chart for better visualization.
Give this indicator a BOOST and COMMENT your thoughts!
We hope you enjoy.
Cheers.
Higher Time Frame {HTF} Candles [QuantVue]Introducing the Higher Time Frame {HTF} Candles from QuantVue!
This script was developed to help you visually emphasize higher time frame (HTF) candles.
Higher time frames reduce the 'noise' inherent in lower time frames, providing a clearer, more accurate picture of the market's movements.
By examining higher time frames, you can better identify trends, reversals, and key areas of support and resistance.
The Higher Time Frame Candles indicator overlays higher time frame data directly onto your current chart.
You can easily specify the higher time frame candles you'd like to view, and the indicator will overlay the higher time frame candles directly over the corresponding current time frame bars.
This indicator by default will display the most current higher time frame candle plus the previous 5 candles.
Give this indicator a BOOST and COMMENT your thoughts!
We hope you enjoy.
Cheers.
Weekly and daily separatorsThis script plots vertical line between each trading week (thick, solid) and smaller lines (dotted) between each trading day. This helps kepping a better overview on the aspect of time on the higher timeframes below 1D. The distance of the lines to the top and bottom of the chart is controlled by your chart settings menu under Appearance -> Margins.
Higher TimeFrame Smooth Moving AveragesScript is designed for those who dislike how plotting a moving average from a higher timeframe on a lower timeframe chart results in a choppy zigzag line when using the standard request.security(syminfo.ticker,"x",ta.sma(src,len)) method.
My more elegant solution was to translate the chart's current timeframe, and the selected higher timeframe into seconds, then check if selected timeframe is Larger than chart timeframe, but not so large that too many bars would be necessary. Then the quotient is calculated by dividing the chosen timeframe (value in seconds) by the chart's timeframe (value in seconds).
Then take that quotient and multiply it by the chosen length. This gives us how many bars of the chart's timeframe would be used in calculating the higher timeframe Moving Average
Use the value to calculate a moving average of choice (SMA,EMA,WMA,LRC,DEMA,TEMA,TRIMA,FRAMA) thanks to @TradingView 's ta library () and @alexgrover 's () for their functions supporting series as length, making this possible.
Basically, get how many of the current chart's bars are in the higher timeframe moving average and use that as the length for calculation using chart's timeframe.
If the higher timeframe relative is too large relative to chart's timeframe, due to bar referencing limits some combinations may not be possible under current limitations, but most will work by either moving chart's timeframe higher or higher timeframe lower assuming you aren't trying to do something too extreme like plotting a weekly moving average onto a 30 second chart etc.
JZ_Chaikin HTF Volatility BreakoutFirst off, all credit to Harry Potter as this is a minor customization of his indicator.
Basic additions:
-- Added a Higher Timeframe that is set to Daily but can be changed. Timeframe does wait until barstate.isconfirmed so won't repaint.
-- Added HMA smoothing line to both Chart and HTF. Can be used as it's own signal, as confirmation or in combination with faster signal line -- Breakout signal & Range Highlight use both.
-- Added optional coloring of HMA based on whether increasing or decreasing.
-- Added a low volatility option that highlights Range/No Trade zones. Defval is off so needs to be selected from inputs.
Breakout Signals are very simple and both take the HTF signal and HMA. When the faster Volatility line rises from below zero and comes within the range of -10 to 0, AND the HMA signals is increasing (and also below zero) for confirmation, generates a breakout signal of an incoming big move. You can alter the breakout threshold to be greater or less than -10, I just found that works best for filtering out the noise and false signals. Won't catch everything, but pretty reliable when it does.
Tested mostly on BTC so can't vouch for other assets and would likely need modification.
I've JUST taught myself coding from scratch (and to say I'm an amateur is an understatement), so apologies in advance if anything is unclear or could be coded better. Open to any suggestions.
Trampoline DotsTrampoline Dots (Price Divergence)
Higher Time Frame Price Divergence:
Trampoline Dots serve as a "quick bounce" tool. These little dots will trigger whenever the higher aggregation MACD is above / below zero and the price is below / above the 50 period simple moving average. When these criteria are met, the price is usually under pressure of strong divergence, more often than not price will sharply reverse into the trend direction usually within the next few bars.
The Use of The Trampoline Dots:
This indicator can serve multiple ways. Obviously the main use case is the price divergence. These "dots" will not give you any precise & exact entry. But rather a zone of possible incoming reversal. There is no timing to it. All these dots will do is warn you about potential sharp reversal in the upcoming bars. It can be used by itself alone for sure, but the best way to utilize the dots is to use them in combination of other trend or momentum studies. The best signals are the ones that are within the larger time frame trend. Another great thing is that the visuals are really straight-forward and simple. It is either green dot or a red dot. Nothing more, nothing less. Also since the indicator is pretty small, it can be easily layered onto other studies as well which can create an additional confirmation for different patterns or setups.
Which Time Frame Are Reliable?
This indicator works on any time frame. But the most "stable" one is the daily & hourly time frame. My personal favorite is the hourly since these divergences can produce amazing entries in the daily trends (which are usually hidden on the daily chart). In the most aggresive trends, I like to see the green dots triggering around the 8 EMA and 13 EMA. Daily chart can show the daily and weekly (big divergences) that can take multiple days & weeks to resolve.
Hope it helps.
Higher Time Frame Average True RangesPurpose: This script will help an options trader asses risk and determine good entry and exit strategies
Background Information: The true range is the greatest of: current high minus the current low; the absolute value of the current high minus the previous close; and the absolute value of the current low minus the previous close. The Average True Range (ATR) is a 14-day moving average of the true range. Traders use the ATR indicator to assess volatility in stocks and decide when to enter and exit trades. It is important to note the limitations of using True Range and ATR: These indications cannot tell you the direction of your options trade (call vs. put) and they cannot tell you whether a particular trend is about to reverse. However, it can be used to assess if volatility has peaked for a particular direction and time period.
How this script works: This indicator calculates true range for the daily (DTR), weekly (WTR), and monthly (MTR) time frames and compares it to the Average True Range (ATR) for each of those time frames (DATR, WATR, and MATR). The comparison is displayed into a colored table in the upper right-hand corner of the screen. When a daily, weekly, or monthly true range reaches 80% of its respective ATR, the row for that time frame will turn Orange indicating medium risk for staying in the trade. If the true range goes above 100% of the respective ATR, then the row will turn Red indicating high risk for staying in the trade. When the row for a time period turns red, volatility for the time period has likely peaked and traders should heavily consider taking profits. It is important to note these calculations start at different times for each time frame: Daily (Today’s Open), Weekly (Monday’s Open), Monthly (First of the Month’s Open). This means if it’s the 15th of the month then the Monthly True Range is being calculated for the trading days in the first half of the month (approximately 10 trade days).
The script also plots three sets of horizontal dotted lines to visually represent the ATR for each time period. Each set is generated by adding and subtracting the daily, weekly, and monthly ATRs from that time periods open price. For example, the weekly ATR is added and subtracted from Mondays open price to visually represent the true range for that week. The DATR is represented by red lines, the WATR is represented by the green lines, and the MATR is represented by the blue lines. These plots could also be used to assess risk as well.
How to use this script: Use the table to assess risk and determine potential exit strategies (Green=Low Risk, Orange=Medium Risk, Red=High Risk. Use the dotted lines to speculate what a stock’s price could be in a given time period (Daily=Red, Weekly=Green, and Monthly=Blue). And don’t forget the true range’s calculation and plots starts at the beginning of each time period!
All for One Moving AverageThis is a collection of all the moving averages available. Some are built-in, a couple were tricky to source out.
Higher timeframes can be specified so you aren't limited to your chart setting.
Repainting has been disabled by default.
There is also an option to use Heikin Ashi candles as the input source rather than standard bars.
Hope that someone finds this useful.
If you'd like anything added please DM me and I'll include it!
Feel free to copy this into your own strategies/indicators.
~Dark
CH-I: Trend - Higher Timeframe BodyI took the script for the built-in indicator for candle bodies of a higher timeframe (www.tradingview.com) which has a fixed border width and style and added the possibility to customize both the border width and the border style or to even disable the display of any border at all, which makes the presentation of those boxes more flexible.
HTF CandlesThis draws candlesticks from higher time frames on the current chart. I tried to keep the script simple using some newly introduced Pine capabilities.
To change the options like the higher time frame and candle colors, check the indicator settings.
Looking forward to your opinions!
HTF Candles by DGThigher timeframe (multi timeframe) candles
a simple study introducing new pine function box.new
HTF Trend FilterTrend filter based on higher timeframe candles. Can be used as entry filters.
Checks if last 3 higher timeframe candles are in fully ascending order or fully descending order. Additionally you can also check if close price is above min of last two highs or below max of last two lows.
Lime and Orange candles imply partial trend in higher timeframe. (only last 3 candles align)
Green and Red candles imply complete trend. (last 3 candles align along with current close price).
Just an experiment. Can be further improved,
Multi Time Frame CandlesHello Traders,
This script can show (upto) 3 candles of another time frames without changing chart time frame realtime . You can choose the time frame and number of candles in the options. You have option to change body and wick colors as well.
in this example number of candles is 2:
You can set body and wick colors:
In this example, weekly candles are shown on 1h chart:
Enjoy!
HTF Candlestick Patterns [TradingView] vX by DGTCandlesticks are graphical representations of price movements for a given period of time. They are commonly formed by the opening, high, low, and closing prices of a financial instrument. They have their origins in the centuries-old Japanese rice trade and have made their way into modern day price charting.
It’s important to note that candlestick patterns aren’t necessarily a buy or sell signal by themselves. They are instead a way to look at market structure and a potential indication of an upcoming opportunity. It is always useful to look at candlestick patterns in context like any other market analysis tool and candlestick patterns are most useful when used in combination with other techniques. There are countless candlestick patterns that traders can use to identify areas of interest on a chart, where some candlestick patterns may provide insights into the balance between buyers and sellers, others may indicate a reversal, continuation, or indecision.
Reversal patterns are quite useful when used in context. Reversal patterns should form at the bottom of a downtrend or at the top of an uptrend. Otherwise, they are not a reversal patterns, but continuation patterns. Most reversal patterns require confirmation such as price move in the direction of reversal accompanied by appropriate trading volume. The reversal patterns can further be confirmed through other means of traditional technical analysis—like trend lines, momentum, oscillators, or volume indicators—to reaffirm buying or selling pressure. The patterns themselves do not guarantee that the trend will reverse. Investors should always confirm reversal by the subsequent price action before initiating a trade.
This study implements some of the most commonly used candlestick patterns in a context with directional movement indicator. On request users can adjust the strong trend threshold from dialog box, eighter can disabled correlation with directional movement indicator. To add additional sight to analysis the simple moving averages of 20, 50, 100 and 200 periods are added (configurable)
You may add additional indicators of your choice. Colored DMI, BB Cloud or Price Distance to its MAs may help
Enjoy it!
Disclaimer: The script is for informational and educational purposes only. Use of the script does not constitutes professional and/or financial advice. You alone the sole responsibility of evaluating the script output and risks associated with the use of the script. In exchange for using the script, you agree not to hold dgtrd tradingview user liable for any possible claim for damages arising from any decision you make based on use of the script






















