NQ Hourly Retracements - 12y Stats with LevelsHour Stats with Levels - TradingView Indicator Description
IMPORTANT: NQ FUTURES ONLY
This indicator is specifically designed for and calibrated to NQ (Nasdaq-100 E-mini) futures only. The statistical data is derived exclusively from 13 years of NQ price action (2013-2025). Do not use this indicator on any other asset, ticker, or market as the statistics will not be applicable and may lead to incorrect trading decisions.
Overview
"Hour Stats with Levels" is a statistical analysis indicator that provides real-time probability-based insights into hourly price behavior patterns. The indicator combines historical pattern recognition with live price action to help traders anticipate potential sweep and reversal scenarios within each trading hour.
Originality and Core Concept
This indicator is based on a comprehensive statistical analysis of 12y years of 1-minute NQ futures data, examining a specific price pattern: when an hourly candle opens inside the previous hour's range. Unlike generic support/resistance indicators, this tool provides hour-specific, context-aware probabilities based on 30,000+ historical occurrences of this pattern.
The originality lies in three key areas:
Pattern-Specific Statistics: Rather than applying generic technical analysis, the indicator only activates when the current hour opens within the previous hour's range, providing relevant statistics for this exact scenario.
Context-Aware Probabilities: Statistics are differentiated based on whether the current hour opened above or below the previous hour's open, recognizing that bullish and bearish opening contexts produce different behavioral patterns.
Comprehensive Retracement Tracking: The indicator tracks four independent retracement levels after a sweep occurs, showing the probability of price returning to: the swept level itself (90+% probability), the 50% level, the current hour's open, and the opposite extreme.
How It Works
The Core Pattern
The indicator monitors a specific price structure:
Setup Condition: The current hourly candle opens inside (between) the previous hour's high and low
Sweep Event: Price then breaks above the previous high (high sweep) or below the previous low (low sweep)
Retracement Analysis: After a sweep, the indicator tracks whether price retraces to key levels
Statistical Foundation
The underlying analysis processed 1-minute bar data from 2013-2025, identifying every instance where an hourly candle opened inside the previous hour's range. For each occurrence, the system tracked:
Whether the high, low, or both were swept during that hour
The distance of the sweep measured as a percentage of the previous hour's range
Whether price retraced to four key levels: the swept level, the 50% point, the current open, and the opposite extreme
These measurements were aggregated for all 24 hours of the trading day, with separate statistics for bullish contexts (opening above previous open) and bearish contexts (opening below previous open), creating 48 unique statistical profiles.
Sweep Distance Percentiles
The "reversal levels" are drawn based on historical sweep distance distributions:
25th Percentile: 75% of historical sweeps were larger than this distance. This represents a conservative reversal zone where smaller, contained sweeps typically reverse.
Median (50th Percentile): The midpoint of all historical sweep distances. Half of all sweeps reversed before reaching this level, half extended beyond it.
75th Percentile: Only 25% of sweeps extended beyond this distance. This represents an extended sweep zone where price has historically shown exhaustion.
For example, if the previous hour's range was 20 points and the median high sweep distance is 40% of range, the median reversal level would be placed 8 points above the previous high.
How to Use the Indicator
Sweeps were calculated using 1m data - as such, it's recommended to use the indicator on a 1min chart
Visual Components
Hour Delimiter (Gray Vertical Line)
Marks the start of each new hour
Helps identify when new statistics become active
Sweep Markers
Green "H" label: High sweep has occurred this hour
Red "L" label: Low sweep has occurred this hour
Markers appear on the exact bar where the sweep happened
Target Levels (Blue Lines)
Prev Open: Previous hour's opening price
Prev High: Previous hour's highest price (sweep target)
Prev Low: Previous hour's lowest price (sweep target)
Prev 50%: Midpoint of previous hour's range
Current Open: Current hour's opening price (key retracement target)
Reversal Levels (Purple Dashed Lines)
Positioned beyond the previous high/low based on historical sweep percentiles
Three levels above previous high (for high sweeps)
Three levels below previous low (for low sweeps)
These represent statistically-derived zones where sweeps typically exhaust
The Statistics Table
The table dynamically updates each hour and displays different statistics based on whether the current hour opened above or below the previous hour's open.
Status Row
Shows current state: waiting for sweep, or which sweep(s) have occurred
If waiting, indicates which sweep is more probable based on historical data
SWEEP PROBABILITIES Section
High Sweep: Historical probability (%) that price will sweep the previous high this hour
Low Sweep: Historical probability (%) that price will sweep the previous low this hour
Both Sweeps: Historical probability (%) that price will sweep both levels this hour
These probabilities are derived from counting how many times each pattern occurred in similar historical contexts. For example, "High Sweep: 73.18%" means that in 73.18% of historical occurrences where the hour opened in this same context (same hour of day, same position relative to previous open), price swept the previous high before the hour closed.
AFTER HIGH SWEEP → Section
These statistics activate only after a high sweep has occurred. They show the probability of price retracing to various levels:
→ Prev High: Probability that price returns to (or below) the level it just swept. This is typically 90%+ because sweeps often act as "false breakouts" or liquidity grabs before reversal.
→ 50% Level: Probability that price retraces at least halfway back into the previous hour's range. This represents a moderate retracement.
→ Current Open: Probability that price retraces all the way back to where the current hour opened. This indicates a complete reversal of the sweep move.
→ Prev Low: Probability that price retraces entirely through the previous range to touch the opposite extreme. This represents a full reversal pattern.
AFTER LOW SWEEP → Section
Mirror of the above, but for low sweeps:
→ Prev Low: Retracement to the swept low level (90%+ probability)
→ 50% Level: Retracement to middle of range
→ Current Open: Full retracement to current hour's open
→ Prev High: Complete reversal to opposite extreme
Important Note on Retracement Statistics: These percentages are tracked independently. A 90% probability of returning to the swept level doesn't mean there's only a 10% chance of deeper retracement. Price can (and often does) retrace through multiple levels sequentially. The percentages show how many times price reached at least that level, not where it stopped.
Trading Applications
Anticipating Sweeps
When an hour opens inside the previous range, check the probabilities. If "High Sweep: 70%" and "Low Sweep: 30%", you know there's a 70% historical likelihood of an upside sweep occurring this hour. This doesn't guarantee it will happen, but provides statistical context for potential setups.
Reversal Trading
The most reliable pattern in the data is the 90%+ retracement probability to swept levels. When a sweep occurs, traders can anticipate a retracement back to at least the swept level in the vast majority of cases. The reversal level percentiles help identify where sweeps may exhaust.
Position Management
The retracement probabilities help manage existing positions. For example, if you're long and a high sweep occurs, you know there's a 90%+ chance of at least some retracement to the swept level, which might inform profit-taking or stop-loss decisions.
Confluence with Current Open
The "Current Open" retracement statistics (typically 60-70%) highlight the magnetic quality of the hour's opening price. After a sweep, price frequently returns to test this level.
Customization Options
The indicator offers extensive visual customization:
Toggle on/off: hour delimiters, sweep markers, target levels, reversal levels, statistics table
Customize colors, line widths, and styles for all visual elements
Adjust label sizes and table position
Show/hide individual target levels and reversal percentiles
Limitations and Considerations
Pattern-Specific: The indicator only provides statistics when the current hour opens inside the previous hour's range. If the hour opens outside this range (gaps up or down), the statistics are not applicable.
Historical Probabilities: The percentages represent historical frequencies, not predictions. A 70% probability means it happened 70% of the time historically, not that it will definitely happen 7 out of 10 times going forward.
NQ-Specific Calibration: All statistics are derived from NQ futures data. Market behavior, volatility, and patterns differ across assets.
Hour-Specific Behavior: Different hours show dramatically different statistics. For example, the 9 AM EST hour (market open) shows much higher sweep probabilities (80%+) than the 5 PM EST hour (30-50%) due to differing liquidity and volatility conditions.
No Guarantee of Execution: While a 90% retracement probability is high, it means 10% of the time, price did NOT retrace. Always use proper risk management.
Technical Notes
The indicator uses hourly timeframe data via request.security() to determine previous hour values
Sweep detection occurs in real-time on the chart's timeframe
Statistics are hardcoded from the comprehensive backtested analysis (not calculated on-the-fly)
The indicator stores static values at the start of each hour to ensure consistency as the hour progresses
All percentage values are rounded to one decimal place for clarity
This indicator provides a statistically-grounded framework for understanding hourly price behavior in NQ futures. By combining real-time pattern detection with comprehensive historical analysis, it offers traders probabilistic insights to inform decision-making process within the specific context of each trading hour.
Hourly
Average hourly move by @zeusbottradingThis Pine Script called "Average hourly move by @zeusbottrading" calculates and displays the average percentage price movement for each hour of the day using the full available historical data.
How the script works:
It tracks the high and low price within each full hour (e.g., 10:00–10:59).
It calculates the percentage move as the range between high and low relative to the average price during that hour.
For each hour of the day, it stores the total of all recorded moves and the count of occurrences across the full history.
At the end, the script computes the average move for each hour (0 to 23) and determines the minimum and maximum averages.
Using these values, it creates a color gradient, where the hours with the lowest average volatility are red and the highest are green.
It then displays a table in the top-right corner of the chart showing each hour and its average percentage move, color‑coded according to volatility.
What it can be used for:
Identifying when the market is historically most volatile or calm during the day.
Helping plan trade entries and exits based on expected volatility.
Comparing hourly volatility patterns across different markets or instruments.
Adjusting position size and risk management according to the anticipated volatility in a particular hour.
Using long-term historical data to understand recurring daily volatility patterns.
In short, this script is a useful tool for traders who want to fine‑tune their trading strategies and risk management by analyzing time‑based volatility profiles.
Hourly Ranges [QuantVue]The "Hourly Ranges" indicator is designed to track and visualize the price ranges for each hour of the trading day. It calculates the difference between the high and low prices, as well as the differences between the high and open, and the open and low prices for each hourly candle. This data is stored and used to draw range lines on the chart.
This indicator is particularly useful for traders who want to monitor how price behaves during specific hours, identify potential support and resistance levels, and make trading decisions based on historical hourly price data.
Traders can use the hourly ranges to gauge market volatility and set expectations for price movement within each hour. The drawn levels on the chart represent the average high (resistance) and low (support) price ranges for each hour. These levels can serve as potential entry or exit points for trades, offering clear markers for setting stop-loss or take-profit orders.
By observing how price interacts with these hourly levels, traders can confirm trends or spot reversals. For example, if the price repeatedly touches and bounces off a specific hourly support level, it could indicate strong buying interest at that level.
The average range calculation gives traders a sense of the typical price movement during specific hours. This helps in assessing whether the market is more volatile during certain periods, which can be crucial for adjusting trading strategies and position sizing.
This indicator is particularly useful for traders who want to monitor how price behaves during specific hours, identify potential support and resistance levels, and make trading decisions based on historical hourly price data.
Period SeparatorA useful indicator designed to display vertical line separators at specified periods, for example every hour or every 4 hours.
To use this indicator, you must be in a timeframe lower than the specified timeframe on the indicator.
I haven't found any other scripts that allow for custom time frames so I created my own :)
Let me know if you have any suggestions.
Hourly MidlineDescription:
The indicator displays horizontal line in the middle of each hourly candle. You can change the source for calculating the middle level (either middle between High and Low of hourly candle, or middle between Open and Close). It is intended for use on minutely timeframes.
Parameters:
- Source -> source for calculating the middle level
- Line width -> width of the middle lines
- Line color -> color of the middle lines
- Show 1H candle levels -> display the levels used to calculate middle level
Time of Day - Volatility Report█ OVERVIEW
The indicator analyses the volatility and reports statistics by the time of day.
█ CONCEPTS
Around the world and at various times, different market participants get involved in the markets. How does this affect the market?
Knowing this gets you better prepared and improves your trading. Here are some ideas to explore:
When is the market busy and quiet?
What time is it the most volatile?
Which pairs in your watchlist are moving while you are actively trading?
Should you adjust your trading time? Should you change your trading pairs?
When does your strategy perform the best?
What entry times do your winners have in common? What about the exit times of your losers?
Is it worth keeping your trade open overnight?
Bitcoin (UTC+0)
Gold (UTC+0)
Tesla, Inc. (UTC+0)
█ FEATURES
Selectable time zones
Display the statistics in your geographical time zone (or other market participants), the exchange time zone, or UTC+0.
Configurable outputs
Output the report statistics as mean or median.
█ HOW TO USE
Plot the indicator and visit the 1H timeframe.
█ NOTES
Gaps
The indicator includes the volatility from gaps.
Calculation
The statistics are not reported from absolute prices (does not favor trending markets) nor percentage prices (does not depict the different periods of volatility that markets can go through). Instead, the script uses the prices relative to the average range of previous days (daily ATR).
Extended trading session
The script analyses extended hours when activated on the chart.
Daylight Saving Time (DST)
The exchange time or geographical time zone selected may observe Daylight Saving Time. For example, NASDAQ:TSLA always opens at 9:30 AM New York time but may see different opening times in another part of the globe (New York time corresponds to UTC-4 and UTC-5 during the year).
Trade HourThis script is just finds the best hour to buy and sell hour in a day by checking chart movements in past
For example if the red line is on the 0.63 on BTC/USDT chart it mean the start of 12AM hour on a day is the best hour to buy (all based on
It's just for 1 hour time-frame but you can test it on other charts.
IMPORTANT: You can change time Zone in strategy settings.to get the real hours as your location timezone
IMPORTANT: Its for now just for BTC/USDT but you can optimize and test for other charts...
IMPORTANT: A green and red background color calculated for show the user the best places of buy and sell (green : positive signal, red: negative signals)
settings :
timezone : We choice a time frame for our indicator as our geo location
source : A source to calculate rate of change for it
Time Period : Time period of ROC indicator
About Calculations:
1- We first get a plot that just showing the present hour as a zigzag plot
2- So we use an indicator ( Rate of change ) to calculate chart movements as positive and negative numbers. I tested ROC is the best indicator but you can test close-open or real indicator or etc as indicator.
3 - for observe effects of all previous data we should indicator_cum that just a full sum of indicator values.
4- now we need to split this effects to hours and find out which hour is the best place to buy and which is the best for sell. Ok we should just calculate multiple of hour*indicator and get complete sum of it so:
5- we will divide this number to indicator_cum : (indicator_mul_hour_cum) / indicator_cum
6- Now we have the best hour to buy! and for best sell we should just reverse the ROC indicator and recalculate the best hour for it!
7- A green and red background color calculated for show the user the best places of buy and sell that dynamically changing with observing green and red plots(green : positive signal, red: negative signals) when green plot on 15 so each day on hour 15 the background of strategy indicator will change to 15 and if its go upper after some days and reached to 16 the background green color will move to 16 dynamically.
Hourly Range SeparatorHourly Range Separator is a useful tool to display a hourly vertical line separator in less than 1H timeframes like as 1M, 5M, 15M and etc.
You can change Lines color, style and width from Indicator settings.
Notice : We used vline() function for building this Indicator.
Good trading to all ...
Hour Vertical LinesPlots a vertical line on each hour. Only goes back so far.
This indicator is great to look at the structure of the 15m, 5m, 3m, or 1m within the block of a 60m candle.
RexDog Hour Close LinesThe RexDog Hour Close Lines plots the last 4 previous hour (60 minute) closes. Extremely helpful indicator for traders who trade on lower timeframes below the 60.
The plotted lines are also offset to represent that hours close location on the chart-- but keep the below in mind.
The offset is set for a default resolution of 5 minutes. In that chart timeframe, the offset is correct as to the close location. Changing the timeframe to 3m for instance the offset is not accurate to that particular bar. I am sure there is a simple way to do this but maybe I'm just not smart enough to figure it out. Either way, the offset in any timeframe is easy to distinguish the oldest hour close to the newest.
This indicator has the following options:
You can enable or disable any previous 4 hour close line
You can change all line sizes
You can change all line colors. I do apologize if it's inconvenient that I've defaulted the lines to different colors.
I've limited the visibility to only periods below 60 minutes-- but and maybe there is a better way to do this (if so please share). The limit is based on the most common periods below 60: 1, 2, 3, 5, 10, 12, 15, and 30.
Will most likely release the 240 and 30-minute version of this I have on a few charts.
Hourly Time SeparatorI made this indicator mostly for personal use but there may be few others who would like to have vertical lines occur every day in specific our on chart.
I am no developer and all I did was copy @allanster's work and delete few lines and duplicate few others. Code will be open for anyone to edit since it was not my code to start with after all. Hopefully this one helps to someone.
Excitement - Crypto Surfer v1For those of us who need more excitement in our crypto journey besides just HODL, here’s a simple crypto robot that trades on the hourly (1H) candles. I call it the Crypto Surfer because it uses the 20 and 40 EMAs (Exponential Moving Averages) to decide when to enter and exit; price tends to “surf” above these EMAs when it is bullish, and “sink” below these EMAs when it is bearish. An additional 160 SMA (Simple Moving Average) with slope-angle detection, was added as a bull / bear filter to reduce the sting of drawdowns, by filtering-out long trades in a prolonged bear market.
USER NOTES:
- This script will buy $10,000 USD worth of crypto-currency per trade.
- It will only open one trade at a time.
- It has been backtested on all the high market cap coins such as Bitcoin, Ethereum, Binance Coin, Polkadot, Cardano.
- It should be run on the Hourly (H1) chart.
- In general, this moving average strategy *should be* profitable for 80% to 90% of the coins out there
- The 160 SMA filter with slope angle detection is designed to stop you from going long in a bear market.
- It is recommended you copy this script and modify it to suit your preferred coin during backtesting, before running live.
- Trading is inherently risky (exciting), and I shall not be liable for any losses you incur, even if these losses are due to sampling bias.
Weekly/Daily/Hourly/Minutes Colored Background IntervalsThis is my "Weekly/Daily/Hourly/Minutes Colored Background Intervals" assistant. I wouldn't describe it as an indicator, it just exhibits coloration of referenced periods of time with bgcolor() in Pine. With the arrival of 2021, I pondered the necessity of needing a visualization pre-2021 to visually recognize periodicity of market movements by the week, day, hour, or an adjustable period of minutes. While this script is simply generic, I hope you may find useful in your endeavors as a member on TradingView.
Explaining the script's usage, the "Minutes" input can be adjusted from anywhere between 5-55 minutes for only intraday. This can be modified to accommodate 90 minutes (1.5hrs) or any other minutes period desirable by tweaking certain numbers up to 1440. Minutes and Hourly backgrounds are disabled by default for most daily traders. Changing the input() code to `true` will provide them on by default when the script loads, if you choose that route. Each time periods background color is enable/disable capable. All of the colors are easily adjustable to any combination you can ponder for your visual acuity with the color swatch provided by input(type=input.color). The coloring can be "swapped" by input() depending on how you wish to start and end the day visually. I thought this would come in handy. The weekly background can have different starting points, whether it be Sunday, Monday, or any other day such as Friday for example.
The entire script's contents isn't intended for complete re-use as is for publicly published scripts. It's more along the lines of code that could be used to personally modify indicators you have, depending on the time frames you may actually be trading on. The code is basically modular, so you can use bits and pieces of it in your personally modified Pine Editor scripts that you wish to customize for yourself. I will say that the isXxx() functions are completely reusable in any script without any need for author permission inquiries from me, as easy as copy and paste. Those may come in handy for many folks. If you find them useful in certain circumstances, use isXxx() functions as you please. Day of the week detection by functions will have applications beyond my current intended use for them.
Of notable mention, this is a miniature lesson by example of how the new input(type=input.color) may be used. I'm also using `var` inside functions to aid in computational efficiency of the script runtime. The colors are permanently stored at the very beginning of the scripts operation inside the function and just reused from that point onward. Its a rare use case, but well suited for this scripts intention. Once again I have demonstrated the "Power of Pine" for developers of any experience level to learn from via code elegance.
When available time provides itself, I will consider your inquiries, thoughts, and concepts presented below in the comments section, should you have any questions or comments regarding this indicator. When my indicators achieve more prevalent use by TV members , I may implement more ideas when they present themselves as worthy additions. Have a profitable future everyone!
Key Levels [@treypeng]Draws horizontal lines for Daily, Hourly (1) and Weekly levels. Really handy to switch on quickly when scalping.
Light blue: Previous hour OHLC
Thick light blue: Previous hour Close / current hour Open
Dark blue: Yesterday OHLC
Thick dark blue: Yesterday Close / today Open
Purple: Weekly Open
It's a bit ugly, I'd prefer horizontal rays instead of lines stretching back across the chart but I couldn't figure out how to do this in PineScript. If I get it sorted, I'll publish an update.
Reset Every (Indicator)Nearly identical to the price version , this configurable indicator retains the max and min value of a chart for the time duration you specify. The difference with this one is that it can be applied to any other indicator, not just price.
Applied to volume:
Reset Every (Price)Someone requested a high/low price indicator that would reset the "remembered" prices daily. I started out doing just that, and then decided to make it much more configurable.
Choose the units (minutes, hours, days, weeks, months) and the number of those units, and this will reset the highest/lowest value remembered to the current values on your chosen time interval.
This should work with any time interval you desire, within reason...asking for resets every 4000 hours on a monthly chart will probably not work.
GE, monthly, every 7 months:
Ford, weekly, every 18 months:
Dow Jones Industrial Average, weekly, every 90 days:
LTCBTC, daily, every 10 days:
ETHUSD, 30 minutes, every 10 days:
BTCUSD, 1 minute, every 10 hours:
EURUSD, 1 minute, every 50 minutes:
Also, I am about to publish another version of this with just one source input that can be applied to any indicator...stay tuned!
8ma34 EURUSD 1h 480tp 950slCrossing 8 sma and 34 sma on the 1h chart (close) of EURUSD.
If sma (8) crossing up sma (34) then open a long on closed bar with +480 pips for the take profit and -950 pips for the stop loss.
If sma (8) crossing down sma (34) then open a short on closed bar with -480 pips for the take profit and +950 pips for the stop loss.
Simple Moving Average StrategyThis is a modification of MOVINGAVG CROSS with different inputs of bar lengths that work with a great average percentage with not much drawdown. I ran the strategy tester with GBPUSD on 1 hour time frame.
CM_Hourly PivotsSimple Code for Hourly Pivot Points Requested by user pippo
Inputs Tab:
Turn On/Off Pivots
Turn On/Off R3/S3


















