Session Profitability Visualizer
What it shows
Session Profitability Visualizer breaks the trading day into its 24 hours and shows, for each hour, how price has historically behaved on your chart. It answers a simple statistical question: "When this market trades at 09:00 vs. 14:00 vs. 20:00, how have bars in that hour tended to move?"
For every hour with enough data it displays a table with:
- Hour — the hour-of-day bucket (00:00–23:00) in the symbol's exchange timezone
- Cum move — the cumulative close-minus-open of all completed bars in that hour (in points, or in % if you select the percent metric)
- Bars — how many completed bars contributed to that bucket (the sample size)
- % Pos — the share of those bars that closed above their open
Rows are tinted green or red by the sign of the cumulative move, with color intensity scaled by magnitude relative to the strongest hour, so the "heavier" hours stand out at a glance. An optional (off by default) background shading tints the chart by the historical statistics of the hour the current bar belongs to.
How it works
On every completed intraday bar inside the lookback window, the script:
1. Determines the bar's hour of day using the symbol's exchange timezone (syminfo.timezone).
2. Computes the bar's move — either close − open in points, or (close − open) / open × 100 in percent, depending on the Metric input.
3. Adds that move to the hour's running sum, increments the hour's bar count, and increments a positive-bar counter when the move is positive.
The per-hour sums, counts, and positive counts are held in three 24-element arrays. The table is rendered once on the last bar from those arrays. There is no request.security() call, no reference to future data, and only confirmed bars are counted — the statistics do not repaint on historical data (the live, still-forming bar is excluded until it closes).
Inputs
- Lookback (bars) — how many recent bars feed the statistics (default 5000). Larger windows are more stable; smaller windows react faster to regime changes.
- Metric — Points (close − open) or Percent (bar return %). Percent is more comparable across price levels and long histories.
- Min samples per hour — hours with fewer completed bars than this are hidden (default 30), so thin buckets don't masquerade as meaningful.
- Table position — where the table sits on the chart.
- Shade background — optional tint of the current bar's hour by its historical stats (off by default).
How to use it
Apply it to any intraday chart (15m or 1h are good starting points — on a 15m chart each hour bucket gets four bars per session). Look for hours where the cumulative move and the % positive rate agree and the sample count is healthy; those are the hours where the market has shown a persistent directional lean on your symbol. Compare the same symbol on different lookbacks to see whether the pattern is stable or an artifact of one period.
Limitations — please read
- Hour buckets use the symbol's exchange timezone, not your chart's display timezone. A "09:00" row on NASDAQ symbols means 09:00 America/New_York regardless of your local clock.
- Bar close-minus-open is a directional proxy, not trade P&L. It ignores spreads, slippage, position sizing, and intrabar path.
- The statistics are a historical observation, not a prediction. An hour that has drifted up for 5000 bars can stop doing so at any time; sample sizes shrink quickly on higher intraday timeframes.
- The script is intraday-only by design; on daily and above it shows an explanatory message instead of statistics.
This is a statistical visualization tool. It does not generate signals or recommendations of any kind.
Indicator

Indicator

Indicator

MTF Candle Bias TableMTF Candle Bias Table
Brought to my attention by Max Algo — credit and appreciation to them for sharing this.
A clean, at-a-glance multi-timeframe dashboard that tells you where price is biased across up to 7 timeframes simultaneously — no more flipping between charts.
What it shows:
For each timeframe you choose, the table displays:
Candle — whether the current candle is bullish or bearish (close vs. open)
Bias — directional bias based on whether price has breached the prior bar's high or low
Trend — whether price is trading above or below a configurable EMA (default 50)
Hold/Fade — whether price is holding the bias level or fading it
Score — a confluence score (0–3) combining candle, trend, and hold alignment
Accuracy % — a rolling back-tested accuracy rate showing how often the bias predicted the next candle's direction correctly, over a selectable lookback period (1 day to 1 month)
A Bias Score row at the bottom gives you an instant bull vs. bear count across all visible timeframes, color-coded green or red based on overall market lean.
A session label (NY Open, Midday, PM Close, Globex, Overnight) keeps you oriented in the trading day at all times.
Customization:
Enable/disable any of the 7 timeframes individually
Toggle columns on/off (Trend, Hold, Score, Accuracy)
Vertical or Horizontal table layout
Symbols-only mode for a more compact view
Full color and position control
Great for confluence-based trading — use it to quickly confirm whether multiple timeframes agree before entering a trade.
Here's a breakdown of each feature straight from the logic in the code:
TREND
The trend column compares the current closing price to an EMA (default 50, but you can change the length). If close is above the EMA, it shows "↑ ABOVE" (bullish). If close is below the EMA, it shows "↓ BELOW" (bearish). This is calculated on each timeframe independently, so your 1m and 1D can show completely different trend readings. It's essentially asking: is price on the right side of the moving average on this timeframe?
HOLD vs. FADE
This column is tied directly to the Bias. Once a bias is established (bull or bear), Hold/Fade tells you whether price is respecting that bias level or failing it.
If the bias is bullish (price broke the prior bar's high), Hold checks whether the current close is still above that prior bar's high. If yes → ✓ HOLD. If not → ✗ FADE.
If the bias is bearish (price broke the prior bar's low), it checks whether the current close is still below that prior bar's low. If yes → ✓ HOLD. If not → ✗ FADE.
If there's no bias (neutral), it just shows a dash.
Think of it as a confidence check — a bias that's holding is stronger than one that's already fading.
SCORE (0–3)
The score is a simple confluence counter that adds up how many things are aligned with the bias. It scores a point for each of the following:
Candle agrees with bias — the current candle is bullish and bias is bullish, or both bearish
Trend agrees with bias — price is on the correct side of the EMA relative to the bias direction
Hold is active — price is holding the bias level (not fading)
So a score of 3/3 means everything is aligned: the bias is set, the candle confirms it, the trend supports it, and price is holding the level. A score of 0 or a dash means the bias exists but nothing else is confirming it. Neutral biases always show a dash regardless.
ACCURACY %
This is the most unique feature. It tracks, historically, how often the bias on each timeframe correctly predicted the direction of the next completed candle. Here's how it works:
Each time a new bar closes on a given timeframe, the indicator looks back at what the bias signal was on the previous completed bar
It then checks whether that bias was correct — did a bullish bias lead to a bullish close? Did a bearish bias lead to a bearish close?
It keeps a rolling log of those results (1 = correct, 0 = wrong) and calculates the percentage of correct predictions
The lookback window is controlled by your Accuracy Period setting (1 Day, 3 Days, 1 Week, 2 Weeks, or 1 Month), and it automatically scales the number of bars based on the timeframe
The color coding gives you a quick read:
🟢 Green (60%+) — the bias signal has been reliably predictive
🟡 Yellow (50–59%) — marginally better than a coin flip
🔴 Red (below 50%) — the signal has been more wrong than right recently
This helps you know which timeframes are currently giving trustworthy signals and which ones to treat with skepticism. Indicator

Indicator

NQ Hourly Retracements - 12y Stats with LevelsHour Stats with Levels - PulseWire 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. Indicator

Indicator

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.
Indicator

Indicator

Indicator

Indicator

Strategy

Indicator

Indicator

Indicator

Indicator

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 PulseWire.
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! Indicator

Indicator

Indicator

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! Indicator

Strategy

Strategy

Indicator
