COT-Trader Seasonality - Indexed Geometric PathCOT-Trader Seasonality is a visual research indicator designed to study seasonal tendencies in futures, commodities, indices and other markets.
The script focuses on one specific question:
How has a market typically behaved throughout the calendar year when historical years are compared on a normalized basis?
Instead of averaging raw historical prices, the indicator indexes each historical year to a base value of 100 at the first available trading day of that year. This makes different years comparable across changing price regimes.
This is especially useful for markets such as commodities and futures, where long-term price levels can change significantly over time.
Methodology
The indicator uses an Indexed Geometric Seasonal Path approach:
1. Each historical year is indexed to 100 at its first available trading day.
2. Each following trading day is converted into a relative factor versus that year’s starting value.
3. For each calendar day, the geometric mean of the indexed historical factors is calculated.
4. The resulting seasonal curves are plotted on a synthetic January-to-December seasonal scale.
The geometric approach is used because price development is multiplicative. A 10% gain followed by a 10% loss does not return a market to its original level. Working with relative factors is therefore more appropriate than directly averaging absolute historical prices.
Displayed Curves
The indicator can display:
• 10Y Main Seasonal Curve
• 5Y Seasonal Curve
• 15Y Seasonal Curve
• 20Y Seasonal Curve
• Current Year / YTD indexed path
• Previous Year indexed path
• Synthetic seasonal month scale
The 10Y curve is the main reference curve. The 5Y, 15Y and 20Y curves are included as comparison views to help evaluate whether shorter-term seasonal tendencies differ from longer-term historical behavior.
The current year line stops at the latest available data point. It is not extended into the future.
How to Use
This indicator can be used to:
• compare the current year against historical seasonal tendencies
• identify periods where several seasonal curves move in a similar direction
• compare shorter-term and longer-term seasonal behavior
• study whether the current year is behaving normally or as an outlier
• support broader market research together with positioning, fundamentals, volatility and risk analysis
The month labels shown in the indicator are a synthetic seasonal month scale. They are not the same as the chart’s real time axis.
What This Indicator Does Not Do
This script does not generate buy or sell signals.
It does not predict future prices.
It does not automatically identify the best seasonal trading window.
It does not include stop-loss, take-profit, position sizing or strategy backtesting logic.
It is intended as a visual research tool, not as a standalone trading system.
Limitations
Seasonality describes historical tendencies, not certainties. Markets can deviate significantly from historical seasonal patterns due to macroeconomic conditions, weather, supply-demand shocks, positioning, volatility, futures contract rolls or other market-specific factors.
For futures and continuous contracts, historical data quality and roll methodology can influence the visual result.
The indicator should be used as one part of a broader analytical process.
Initial public release.
Features:
• Indexed geometric seasonal path calculation
• Fixed 10Y main seasonal curve
• 5Y, 15Y and 20Y comparison curves
• Current year / YTD indexed path
• Previous year indexed path
• Synthetic January-to-December seasonal month scale
• Built-in legend and methodology table
This indicator is designed for visual seasonal research and does not generate trading signals. Indicator

Time AnchorsTime Anchors
Plots up to 10 horizontal price anchors and up to 10 vertical time markers at user-configured times of day. Designed for futures traders who track key intraday times — session opens, economic releases, hour boundaries.
Horizontal lines capture the open price of the bar that opens at the specified time (e.g., 09:30) and extend that level forward, with the time label aligned to the right and vertically centered on the price.
Vertical lines mark a specific time of day, extending top-to-bottom across the chart, with a stacked time label pinned to the bottom of the visible viewport.
Daily reset. Both line types are wiped at the start of every futures trading day (18:00 NY) — the chart only ever shows today's anchors.
Per-line styling. Each of the 20 slots independently configures:
Time (HH:MM, 24-hour)
Line style — solid / dashed / dotted
Line color
Label color
Label size — tiny / small / normal / large / huge
Global settings
Timezone — default America/New_York
Show horizontal lines / Show vertical lines — master toggles
Label offset (bars) — gap between line endpoint and the right-side label
Horizontal line width / Vertical line width
Disable a slot by clearing its Time field.
Timeframe note. Detection requires the chart bar to open exactly at the configured minute. Works cleanly on 1m, 5m, 15m, 30m, and NY-aligned 1h. On non-aligned timeframes (e.g., a 4h chart not anchored to NY), times that fall between bar opens are silently skipped.
Credits. Uses the PineCoders VisibleChart library for viewport-aware label positioning. Indicator

Indicator

Zero to Hero + Buy / Sell Labels + DashboardZero to Hero is a comprehensive market-readiness meter that distills five powerful technical factors into a single, easy‑to‑read Hero Score (0‑100). It helps you avoid low‑probability chop and only trade when the odds are stacked in your favour. The indicator draws clear entry signals, dynamic stop‑loss and take‑profit levels, and a vibrant dashboard so you always know whether the market is in “hero” mode or still a “zero”.
How It Works
The Hero Score is built from five independent components, each contributing up to 20 points:
Trend Alignment – Price above fast & slow EMAs, and EMAs stacked correctly.
Momentum – RSI in the healthy zone (50‑70 for longs).
Volume – Volume above its moving average, confirming participation.
Volatility – ATR% inside a “Goldilocks” range (not too quiet, not too wild).
Price Structure – Higher highs/higher lows (bullish) or lower highs/lower lows (bearish) based on pivot points.
The Bull Hero Score measures readiness for long trades; the Bear Hero Score does the same for shorts.
When a score crosses your chosen threshold (default 80 for longs, 20 for shorts), the indicator issues a non‑repainting signal.
What You’ll See on the Chart
Buy / Sell Labels – “🦸 HERO LONG” or “🦹 HERO SHORT” appear when the setup is confirmed.
Stop‑Loss & Take‑Profit Lines – Automatically placed at 1.5× ATR and 2.5× ATR from entry (customisable).
Risk‑Reward Shading – A translucent grey box between stop and target makes your trade plan instantly visible.
Hero Meter – A lower‑pane histogram shows the Hero Scores building up, with threshold lines for quick visual reference.
Info Dashboard – A colourful, easy‑to‑read table in the top‑right corner showing all five component scores, ATR%, volume ratio, and your current stop/target when a signal is active.
How to Use It
Wait until the dashboard says “🦸 LONG” or “🦹 SHORT”.
Check the dashboard – all five components should be showing green or positive values.
Enter the trade in the direction indicated.
Set your stop exactly where the red dashed line is drawn.
Take profit at the green dashed line.
Do nothing when the dashboard says “⚪ WAIT”. Patience is the edge.
Inputs & Customisation
All thresholds can be adjusted via the settings panel:
Hero Long / Short Threshold – Sensitivity of signals (default 80 / 20).
EMA lengths – Fast & Slow EMAs for trend detection.
RSI period – Used in momentum scoring.
Volume & Volatility filters – Minimum volume ratio, acceptable ATR% range.
Risk Management – ATR multiplier for stop‑loss and take‑profit.
Dashboard toggle – Show/hide the info panel.
Best For
Swing & position traders who want high‑confidence setups.
Intraday traders looking to filter out low‑volume chop.
Any market – stocks, forex, crypto, indices.
All timeframes (works best on 15min – daily).
Important Notes
Signals are non‑repainting (confirmed on bar close).
No indicator predicts the future – this tool highlights high‑probability conditions only.
Always use proper risk management.
Past performance does not guarantee future results.
Risk Disclaimer
This indicator is provided for educational purposes only. It does not constitute financial advice. Trading involves substantial risk of loss. Always do your own analysis and never trade with money you cannot afford to lose.
Take your trading from zero to hero – only when the market gives you the green light.
Indicator

Institutional 7-Point Checklist█ INSTITUTIONAL 7-POINT PRE-TRADE CHECKLIST v2.0 █
█ Pine Script® v6 █
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OBJECTIVE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Most retail traders show up at 9:30 AM with no plan. They react to 5-minute noise and get chopped to pieces. This indicator solves that.
It runs a 7-point institutional checklist automatically — pulling data from the 4H, 1H, and daily timeframes — and displays a real-time pass/fail panel directly on your chart. Before you take a single trade, the panel tells you whether TODAY is even a trading day, what direction to expect, where to enter, and what to target.
The framework combines two proven concepts:
▸ 4H Chart Analysis — reading institutional expansion vs consolidation for structural bias
▸ Session Profiling — checking whether Asia or London reversed to classify New York as continuation or reversal
v2.0 adds the layers that give you complete market context without switching timeframes:
▸ Multi-timeframe liquidity mapping (Daily, Weekly, Monthly highs/lows)
▸ Anchored VWAP (Daily, Weekly, Monthly) for institutional cost basis
▸ Smart moving averages at the periods that actually matter per timeframe
▸ Midnight Open reference line
▸ Smart nearest-liquidity detection across all tiers
Everything new is an optional toggle. The default view stays clean — just the checklist, PDH/PDL, Daily VWAP, and the 4H 20 EMA. Power users turn on the layers they want.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THE 7 CHECKS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 1. Is the 4H expanding?
Evaluates the last three completed 4H candles. "Expanding" means ≥2 candles have bodies larger than the expansion multiplier × ATR(20), AND the most recent candle has small wicks relative to its range. If the 4H is consolidating → no trade today.
✅ 2. Did the prior session reverse or consolidate?
Tracks Asia (6 PM – 2 AM ET) and London (2 AM – 5 AM ET) in real time. A session "reversed" if it swept a key level and closed back through it. "Consolidated" if its range was under 40% of the daily ATR.
✅ 3. Continuation or reversal day?
▸ Any prior session reversed → NY = CONTINUATION
▸ No session reversed → NY = REVERSAL
✅ 4. Nearest FVG (entry zone)
Scans the 1H for 3-candle Fair Value Gaps — unfilled imbalances from aggressive expansion. Identifies the nearest bullish or bearish FVG with its midpoint price. This is your entry zone.
✅ 5. Nearest external liquidity (target) — NEW: SMART MULTI-TF
Now scans across Daily, Weekly, and Monthly levels (whichever are enabled) and automatically identifies the closest liquidity pool above and below price. The panel shows the tier label (PDH, PWH, PMH, etc.) so you know which level matters most right now. Bigger pools = stronger magnets.
✅ 6. Has price swept external liquidity? (trigger) — NEW: ANY TIER
Monitors sweeps across all enabled tiers. If price takes out PWH while PDH hasn't been swept, that still counts — any tier sweep is a valid trigger. The panel lists exactly which levels have been swept today.
✅ 7. One-sentence bias (auto-generated)
Combines all findings into a single actionable statement:
"4H expanding bearish. NY=CONTINUATION. Pullback into FVG → target PDL."
NEW: CONTEXT ROW
Below the 7 checks, a context line shows price position relative to Daily VWAP and 4H 20 EMA. Example: "above VWAP | above 4H EMA" — a quick confluence check without reading the chart.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NEW IN v2.0: LIQUIDITY HIERARCHY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Not all liquidity is equal. A daily level might produce a 10-point displacement on NQ. A weekly level might produce 50 points. A monthly level could fuel a full trend day.
▸ Previous Day H/L (PDH/PDL) — ON by default
Yesterday's range extremes. Stop losses from day traders. Blue dashed lines.
▸ Previous Week H/L (PWH/PWL) — OFF by default
Swing trader stops. Much larger pool than daily. Purple dashed lines.
▸ Previous Month H/L (PMH/PML) — OFF by default
Institutional swing and fund allocation levels. Orange solid lines (thicker for visual hierarchy).
▸ Midnight Open — OFF by default
Price at 00:00 ET. Directional separator for ICT-style analysis. Gray dotted line. Above midnight open = bullish lean, below = bearish lean.
Each tier has its own color and line weight so you can glance at the chart and instantly see which pool price is approaching. The smart detection in Checks 5 and 6 automatically picks the nearest level regardless of tier.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NEW IN v2.0: ANCHORED VWAP
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VWAP shows where the majority of institutional money actually transacted. It's not just an average — it's the volume-weighted cost basis.
▸ Daily VWAP — ON by default (amber)
Anchored to today's open. The single most referenced level by institutional algorithms during NY session. When price is above VWAP, institutions are in profit and likely to defend it. Below = underwater.
▸ Weekly VWAP — OFF by default (purple)
Anchored to Monday's open. Broader lens on net bullish/bearish flow for the week. Confirms your 4H bias: if 4H is expanding bullish AND price is above weekly VWAP = confluence.
▸ Monthly VWAP — OFF by default (orange)
Background context. Rarely comes into play intraday, but when price tests monthly VWAP at a weekly liquidity level = high-conviction zone.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NEW IN v2.0: MOVING AVERAGES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Each MA is chosen for a specific purpose at its timeframe. No filler MAs — every line earns its place on the chart.
▸ 5-MIN 9/21 EMA — execution pair — OFF by default (cyan / indigo)
After your sweep + displacement, the 5m 9 EMA crossing above/below the 21 EMA confirms micro order-flow shift. The gap between them acts as a dynamic FVG — separation = imbalance, convergence = equilibrium.
WHY 9 AND 21: The 9 EMA covers roughly 45 minutes — one micro session. The 21 EMA covers ~105 minutes — the 9:30–11:00 kill zone. Together they capture the rhythm of institutional execution.
▸ 1H 9/21 EMA — intraday pulse — OFF by default (cyan / indigo, stepline)
The 9 EMA represents one full trading session (~6.5 hours). If price rides the 1H 9 EMA during expansion = clean momentum. The 21 EMA covers about two trading days — the intraday trend anchor. Price whipping above/below the 1H 9 EMA = chop warning.
WHY 9 AND 21: On the 1H, 9 periods = one session's worth of candles. 21 periods ≈ two full sessions. These match the session profiling logic in Check 2 — you're seeing the same structure as numbers.
▸ 4H 20 EMA — swing direction — ON by default (green, stepline, thick)
This is the primary MA. It represents roughly one trading week. Institutional swing traders watch the 4H 20 EMA for pullback entries. When your expansion candles are pushing away from this level = strong momentum. When they're drifting back = fading expansion.
WHY 20: On the 4H chart, 20 periods = ~3.3 trading days. This captures the core weekly rhythm — the period where institutional swing positions are managed.
▸ DAILY 20 EMA — monthly trend — OFF by default (yellow, stepline)
Roughly one month of trading days. If price is above the D 20 EMA, the intermediate trend supports your intraday bias. Below it, your bullish setups have headwind.
WHY 20: 20 trading days ≈ 1 calendar month. This is the standard period institutional portfolio managers use for intermediate trend assessment.
▸ DAILY 50 SMA — quarterly trend — OFF by default (orange, stepline)
About 2.5 months of data. When the D 20 EMA is above the D 50 SMA = healthy trend. When they converge or cross = transition zone where 4H consolidation becomes more common. Background context, not a trade trigger.
WHY 50: 50 trading days ≈ one quarter. Fund managers and institutional desks use this as the boundary between "trending" and "mean-reverting."
IMPORTANT: Higher-timeframe MAs projected onto a 5-min chart appear as staircase lines (stepline style). This is correct — the staircase shows you exactly where the value was when the higher timeframe last printed. It's not a bug; it's a feature.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT APPEARS ON YOUR CHART
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DEFAULT VIEW (clean — what loads when you first add the indicator):
▸ Checklist panel with all 7 checks + context row
▸ PDH/PDL liquidity lines (blue dashed)
▸ FVG zone (green or red shaded box)
▸ Daily VWAP (amber line)
▸ 4H 20 EMA (green stepline)
▸ Summary badge: TRADE READY / WAIT FOR SETUP / NO TRADE TODAY
OPTIONAL LAYERS (toggle on in settings):
▸ PWH/PWL (purple dashed)
▸ PMH/PML (orange solid, thicker)
▸ Midnight Open (gray dotted)
▸ Weekly VWAP (purple line)
▸ Monthly VWAP (orange line)
▸ 5m 9/21 EMA pair (cyan/indigo)
▸ 1H 9/21 EMA pair (cyan/indigo stepline)
▸ D 20 EMA (yellow stepline)
▸ D 50 SMA (orange stepline)
▸ Price labels on all level lines
All colors are fully customizable in settings.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FULL PROPERTIES / SETTINGS REFERENCE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THRESHOLDS:
▸ Expansion multiplier (1.5) — body must exceed this × ATR(20). Raise for volatile instruments, lower for quieter ones.
▸ Max wick-to-range ratio (0.35) — candle must be cleaner than this threshold to count as expansion.
▸ 4H candles to evaluate (4) — how many candles the script considers for expansion profiling.
SESSIONS:
▸ Asia session (1800–0200) — overnight accumulation window
▸ London session (0200–0500) — primary reversal window
▸ New York session (0930–1600) — execution window
▸ Timezone (America/New_York) — also supports America/Chicago, Europe/London, Asia/Tokyo, UTC
LIQUIDITY LEVELS:
▸ Previous Day H/L (on) — blue dashed, width 2
▸ Previous Week H/L (off) — purple dashed, width 2
▸ Previous Month H/L (off) — orange solid, width 3
▸ Midnight Open (off) — gray dotted, width 1
▸ All colors are customizable per tier
ANCHORED VWAP:
▸ Daily VWAP (on) — amber, width 2
▸ Weekly VWAP (off) — purple, width 2
▸ Monthly VWAP (off) — orange, width 1
MOVING AVERAGES:
▸ 5m 9/21 EMA (off) — cyan fast / indigo slow
▸ 1H 9/21 EMA (off) — cyan fast / indigo slow, stepline
▸ 4H 20 EMA (on) — green, stepline, thick
▸ D 20 EMA (off) — yellow, stepline
▸ D 50 SMA (off) — orange, stepline
▸ All colors customizable
FAIR VALUE GAP:
▸ Plot FVGs on chart (on) — green box = bullish, red box = bearish
DISPLAY:
▸ Show checklist panel (on)
▸ Panel position (top_right) — 6 positions available
▸ Panel text size (small) — tiny / small / normal / large / huge
▸ Header/summary text size (normal) — controls title and badge
▸ Show price labels on levels (on) — small tags at the right edge of each line
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE — STEP BY STEP
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETUP:
1. Add to a 5-minute chart (NQ, ES, or your instrument)
2. The panel auto-populates from 4H, 1H, and daily data — no timeframe switching needed
3. Toggle on additional layers as desired in settings
MORNING ROUTINE:
6:00 AM — Open chart. Panel shows:
▸ Check 1: 4H expanding? If ❌ → no trade today, done
▸ Check 2: What did Asia and London do?
▸ Check 3: Continuation or reversal day?
▸ Context: Price vs VWAP and 4H EMA alignment
6:15 AM — Read auto-generated bias (Check 7). Write it down.
9:15 AM — Panel updates:
▸ Check 4: FVG present? Zone is shaded on chart
▸ Check 5: Nearest liquidity above/below with tier labels
9:30 AM — Watch for Check 6 to flip green (sweep at any tier)
TRADE READY (all checks green):
▸ Drop to 5-min for timing
▸ Wait for displacement + CISD in your bias direction
▸ Use 5m 9/21 EMA cross as micro-confirmation (if enabled)
▸ Enter after confirmation
▸ Stop above/below the sweep
▸ Target the opposite liquidity pool
10:30 AM — In profit, stopped out, or no setup. Done for the day.
KEY RULES:
▸ Check 1 is ❌ → close the laptop
▸ Can't write bias in one sentence → no trade
▸ 0–2 trades per day max
▸ The indicator identifies CONDITIONS, not entries. Final execution is yours.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RECOMMENDED SETUPS BY STYLE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MINIMALIST (learning the framework):
ON: Checklist panel, PDH/PDL, FVG, Daily VWAP, 4H 20 EMA
OFF: Everything else
→ Clean chart, just the essentials. Master the 7 checks first.
INTERMEDIATE (adding confluence):
ADD: PWH/PWL, Midnight Open, 5m 9/21 EMA pair
→ Weekly liquidity for bigger targets, midnight open for directional lean, execution MAs for timing entries.
FULL CONTEXT (experienced trader):
ADD: PMH/PML, Weekly VWAP, 1H 9/21 EMA, D 20 EMA, D 50 SMA
→ Complete institutional map. Every level you might need is on one chart. Use price labels (on) to read values at a glance.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALERTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Three built-in alert conditions:
▸ "4H began expanding" — morning wake-up call: today is potentially a trade day
▸ "External liquidity swept" — fires on the first sweep of ANY enabled tier (PDH, PWH, PMH, etc.)
▸ "ALL CHECKS PASSED" — all 7 conditions met. Eyes on chart — setup is live.
Set via: right-click chart → Add alert → select indicator → choose condition
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MA PERIOD RATIONALE — WHY THESE NUMBERS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Every period was chosen to align with a real institutional time horizon:
5m 9 EMA = ~45 min = one micro-session (the opening drive)
5m 21 EMA = ~105 min = the 9:30–11:00 AM kill zone window
1H 9 EMA = ~1.4 days = one full trading session
1H 21 EMA = ~3.2 days = two full sessions (matches session profiling)
4H 20 EMA = ~3.3 days = one trading week's core rhythm
D 20 EMA = ~1 month = intermediate trend (monthly portfolio reviews)
D 50 SMA = ~2.5 months = quarterly trend (fund allocation cycles)
The 4H 20 EMA is ON by default because it's the single most useful MA for this framework — it directly represents the timeframe the entire strategy is built on.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
UNDERLYING ALGORITHM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The entire framework rests on one cycle:
External liquidity → Internal liquidity → External liquidity
(Sweep stops) → (Fill the FVG) → (Target opposite stops)
▸ The 4H chart tells you the DIRECTION
▸ The session profile tells you the TIMING
▸ The VWAP tells you the INSTITUTIONAL COST BASIS
▸ The MAs tell you whether STRUCTURE supports your bias
▸ The 5-minute chart is for EXECUTION ONLY
You read the book from chapter 1, not from the last page.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TUNING TIPS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
"Check 1 always red" — lower expansion multiplier to 1.2 or 1.0. Different instruments have different volatility profiles.
"FVG never shows" — there's no unfilled 1H gap right now. Wait for the next expansion candle.
"Session labels wrong" — set the Timezone dropdown to match your chart's exchange timezone.
"VWAP looks flat" — if your instrument has no volume data (some forex/CFD feeds), VWAP defaults to HLC3. Switch to a data feed that provides volume, or disable VWAP.
"Too many lines on chart" — start with the Minimalist setup (see Recommended Setups). Only toggle on new layers after you've used the basic setup for at least a week.
"4H EMA appears as staircase" — this is correct. Higher-timeframe data on a lower-timeframe chart updates in steps. The staircase shows you the exact value at the last 4H close.
"Panel covers price" — change panel position to a different corner, or reduce text size.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TIMEFRAMES & INSTRUMENTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Designed for: 5-minute chart (execution timeframe)
Internally references: 4H (bias), 1H (FVG), Daily/Weekly/Monthly (liquidity + MAs)
Works on: Futures (NQ, ES, YM, RTY), Forex, Crypto, Equities
Best suited for: Intraday traders with a 9:30–11:00 AM ET window
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY PINE SCRIPT v6
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This script is written in Pine Script v6 — the latest version of PulseWire's language (released Nov 2024). Benefits over v5:
▸ Strict boolean logic — booleans are always true or false, never na. Eliminates an entire class of edge-case bugs in complex conditions like the multi-check panel.
▸ Short-circuit evaluation — and/or operations stop evaluating the moment the result is determined. Significant performance improvement for scripts with many compound conditions (which this checklist uses heavily).
▸ Future-proof — all new PulseWire features going forward are v6 exclusive. Dynamic requests, footprint data, enhanced arrays, and upcoming additions will only work on v6.
▸ Cleaner integer division — 5/2 now correctly returns 2.5 instead of 2. Important for any ratio calculations (expansion multiplier, wick ratios).
If you're migrating from the v1 script (which was v5), the logic is identical — v6 just makes it faster and more reliable.
x.com/tsmake
Developed after reading: x.com
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DISCLAIMER
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This indicator is an EDUCATIONAL TOOL designed to enforce trading discipline. It does NOT generate buy/sell signals, does NOT constitute financial advice, and does NOT guarantee profitability. The checklist identifies structural conditions — the final entry decision, risk management, and position sizing are entirely your responsibility.
Trading futures, equities, options, forex, and crypto carries significant risk of loss. Past performance does not guarantee future results. Backtest thoroughly, start with a simulator, and never risk capital you cannot afford to lose. Consult a licensed financial advisor before making trading decisions.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TAGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ICT, Smart Money, Liquidity, Fair Value Gap, FVG, Session Profile, VWAP, PDH, PDL, PWH, PWL, PMH, PML, Institutional, Checklist, Pre-Market, Bias, External Liquidity, Internal Liquidity, Moving Average, 4H, NQ, ES, Futures, Forex Indicator

Indicator

Anomaly Rejection Channel [ARC] ProAnomaly Rejection Channel Pro
📝 Description
The Anomaly Rejection Channel Pro is an advanced, multi-dimensional trading indicator designed to identify high-probability reversal zones (liquidity traps) and price anomalies.
Instead of relying on a single metric, ARC Pro combines dynamic volatility channels (VWMA + ATR), volume spread analysis, price action anatomy (wick rejection), and Multi-TimeFrame (MTF) alignment to filter out market noise. It excels at spotting "Bull Traps" and "Bear Traps"—moments where price breaches a key volatility band but fails to sustain momentum due to volume exhaustion or climax, signaling a high likelihood of a reversal.
Whether you are scalping on lower timeframes or swing trading, the built-in presets and adaptive volatility logic dynamically adjust to current market conditions.
⚙️ Settings & Parameters
📊 Channel Settings
Parameter Preset: Quick-select profiles (Conservative, Balanced, Aggressive, Scalping) that automatically adjust the ATR multiplier, wick requirements, and volume thresholds.
VWMA/ATR Period: The lookback period for calculating the baseline Volume-Weighted Moving Average and the Average True Range.
Base ATR Multiplier: Defines the width of the channel. A higher value requires a larger price deviation to trigger a signal.
Adaptive Multiplier (Volatility): When enabled, the indicator automatically narrows the channel during low volatility and widens it during high volatility to prevent false signals.
🎯 Signal Filters
Volume MA Period: The baseline period to determine relative volume strength.
Volume Exhaustion / Climax Ratio: The specific multipliers used to detect abnormal volume behavior (either drying up or spiking) at the channel extremes.
Min Wick % of Range: The minimum required rejection wick size relative to the total candle body (e.g., a value of 0.4 means the rejection wick must be at least 40% of the candle's total range).
Min Absolute Wick Size (points): An optional hard filter to ignore signals if the rejection wick is too small in absolute point value.
📈 Trend Context
Filter Signals by Trend: Blocks signals that go against the directional momentum of the built-in Trend Line.
Trend Line Period: The smoothing period for the internal trend-detection logic.
Allow Counter-Trend Signals: If enabled, the indicator will print signals against the main trend, which is useful for aggressive mean-reversion trading.
✅ Signal Confirmation
Require Next Candle Confirmation: The signal is only validated if the subsequent candle confirms the reversal direction.
Confirmation: Close Inside Channel: Requires the confirming candle to close back inside the ARC bands, validating the "trap".
Signal Delay (bars): Shifts the visual signal X bars forward (useful for aligning alerts with external execution bots).
🌐 Multi-TimeFrame (MTF)
Use Higher TF Confirmation: Syncs your current chart with a higher timeframe to ensure macro-trend alignment.
Higher TimeFrame: Select the MTF resolution (e.g., 240 for 4-Hour).
MTF Mode: Choose how the higher timeframe filters the local chart:
Trend Only: Local signals must align with the MTF trend.
Rejection Only: Local signals require an active rejection/trap on the MTF.
Trend+Rejection: Combines both filters for maximum accuracy.
Strict Mode: Blocks all signals if the MTF status shows a "Conflict".
🎨 Signal Display
Show Signal Strength (Color): Color-codes the TRAP labels based on confluence (Red/Green for strong, Orange/Lime for moderate).
Mode: Trade Breakouts: Reverses the logic to trade momentum breakouts instead of mean-reversion traps.
Alerts: Configure to fire once per bar or on every tick. Indicator

Pro Levels & Zones [MTE]Pro Levels & Zones
An intraday futures overlay that combines pivot-based supply and demand zones with multi-session key levels and a confluence-based signal filter. The core idea is that zones alone generate too many potential entries — by requiring alignment across multiple independent factors before labeling a zone touch, the indicator filters out low-conviction setups and highlights where several references converge.
HOW IT WORKS
Supply & Demand Zone Detection
Zones are built from 60-minute pivot highs and pivot lows using a 3-bar left / 3-bar right pivot structure. When a pivot high is confirmed, the area between the candle's high and the top of its body becomes a supply zone (red). When a pivot low is confirmed, the area between the candle's low and the bottom of its body becomes a demand zone (green). Zones extend forward in real time and are automatically removed when price closes beyond the zone boundary or when the zone exceeds a configurable age limit (default: 500 bars). Only the 3 most recent zones per side are kept to avoid chart clutter.
Confluence Scoring (signal filter)
When price enters a fresh (unused) zone, the indicator checks up to 5 independent factors before printing a signal:
1. Volume delta direction — estimated from the bar's close position within its range. A buy signal requires positive delta; a sell signal requires negative delta.
2. VWAP proximity — whether price is near the session VWAP (within 0.15% of current price).
3. Key level proximity — whether price is near a relevant prior-session level (PDH, PDL, PMH, PML).
4. POC proximity — whether price is near the intraday volume Point of Control.
5. VWAP trend bias — whether price is on the "right side" of VWAP for the signal direction (buy below VWAP, sell above).
Each matching factor adds 1 to the score. The signal label displays the count (e.g., "Buy 4/5") so traders can see at a glance how many factors aligned. A configurable cooldown (default: 12 bars) prevents repeated signals in the same area. An additional filter requires bearish candle close for sells and bullish candle close for buys.
Note: The confluence score is simply a count of how many factors happen to align at the moment of zone contact. A higher count does not predict or guarantee a successful trade. It is a filtering tool, not a performance metric.
SESSION LEVELS & KEY LEVELS
The indicator tracks and displays levels from multiple sessions:
- London session high/low — plotted as live-updating steplines during the session, then held after session close.
- Asia session high/low — same behavior, off by default.
- Key levels drawn as dashed horizontal lines: Previous Day High/Low/Close (PDH/PDL/PDC), Pre-Market High/Low (PMH/PML), Previous Week High/Low (PWH/PWL), Overnight High/Low (ONH/ONL), and the RTH Opening Print. All are off by default and individually toggleable.
Previous day and week values use request.security() with a offset and lookahead_on, which is the standard method to reference the prior completed period without future data leakage.
ADDITIONAL TOOLS (all off by default)
- VWAP — standard session-anchored VWAP using ohlc4 as source.
- POC — intraday volume Point of Control calculated by distributing each bar's volume into a 100-bin histogram across the RTH price range, then finding the bin with the highest accumulated volume. Resets daily.
- Fair Value Gaps — bullish and bearish imbalances detected when a gap exists between bar 's low and bar 's high (or vice versa), filtered by a minimum percentage size (default: 0.15%). FVGs auto-expire after 40 bars. Maximum 6 active FVGs.
- Opening Range — plots the RTH opening range as a box (15 or 30 minute, configurable). Extends through the session.
WHY THIS COMBINATION
Most zone-based approaches generate signals every time price touches a zone, regardless of context. This indicator addresses that by requiring zone contact AND directional volume AND candle confirmation before printing anything, then layering additional context (VWAP, key levels, POC) as a visible confluence count. The result is fewer signals that occur only at zones where multiple independent references happen to converge.
The session levels (London, Asia, pre-market, overnight) are included because futures often react at session boundaries, and having them as toggleable overlays avoids needing separate indicators cluttering the chart.
HOW TO USE
1. Apply to a 1-15 minute intraday futures chart (defaults tuned for NQ on 5 min).
2. Adjust "Min Zone Size" for your instrument (NQ: 20-50 pts, ES: 5-15 pts).
3. Watch for Buy/Sell labels at zone touches. Higher confluence counts (4/5, 5/5) mean more factors aligned — use your own judgment on whether the context supports a trade.
4. Toggle key levels on/off depending on which session references matter to your trading approach.
5. All features are independently toggleable. Start with zones + signals, then add levels as needed.
DEFAULT SETTINGS
- Zones: ON, min size 20 pts, max age 500 bars
- Signals: ON, cooldown 12 bars, volume delta confirmation ON
- London session levels: ON
- All other levels and tools: OFF
LIMITATIONS
- Volume delta is estimated from bar close position within range — it is not true order flow data.
- POC uses a 100-bin histogram which is an approximation, not tick-level volume profile.
- Confluence scoring counts factor alignment but does not predict outcomes. Past confluence patterns do not guarantee future results.
- Zone detection has a 3-bar lag due to pivot confirmation.
- Designed for futures instruments. Adjust zone size settings for other markets.
Indicator

Indicator

Indicator

fsl_futuresLibrary "fsl_futures"
Futures helpers for PulseWire.
Provides month code constants and utilities for determining allowed / major
contract months per futures root (e.g., SI uses HKNUZ).
allMonthCodes()
Returns the standard CME-style futures month codes as an array.
Returns: array of month codes in order: F,G,H,J,K,M,N,Q,U,V,X,Z
allMonthCodesStr()
Returns all month codes as a single string for quick membership checks.
Returns: string "FGHJKMNQUVXZ"
majorMonthsByRoot(product_root)
Returns the major month-code subset for a given futures root.
If the root is not mapped, defaults to all months.
Parameters:
product_root (string) : Futures root symbol, e.g. "SI", "ES", "CL"
Returns: string of allowed month codes (e.g., "HKNUZ" for SI), otherwise "FGHJKMNQUVXZ"
allowedMonthsByRoot(product_root)
Returns the allowed month-code subset for a given futures root.
If the root is not mapped, defaults to all months.
Parameters:
product_root (string) : Futures root symbol, e.g. "SI", "ES", "CL"
Returns: string of allowed month codes (e.g., "HKNUZ" for SI), otherwise "FGHJKMNQUVXZ"
isMajorMonth(product_root, month_code)
Checks whether a month code is major for a given futures root.
Parameters:
product_root (string) : Futures root symbol, e.g. "SI"
month_code (string) : Single-letter month code, e.g. "H"
Returns: bool true if month_code is included in the major set for that root
isAllowedMonth(product_root, month_code)
Checks whether a month code is allowed for a given futures root.
Parameters:
product_root (string) : Futures root symbol, e.g. "SI"
month_code (string) : Single-letter month code, e.g. "H"
Returns: bool true if month_code is included in the allowed set for that root Library

Indicator

Thermal Momentum Gauge [JOAT]Thermal Momentum Gauge
Introduction
The Thermal Momentum Gauge is an open-source institutional-grade pressure and volatility monitoring system that combines market pressure measurement, volatility temperature analysis, volume steam detection, and multi-factor explosion identification into a unified oscillator. This sophisticated system integrates multiple proven momentum methodologies to identify high-probability explosive move conditions where pressure, temperature, and steam factors converge.
The indicator is designed for traders who understand that explosive market moves occur when multiple pressure systems align simultaneously. By synthesizing RSI pressure, WaveTrend momentum, Money Flow Index analysis, Stochastic pressure, ATR temperature, Bollinger Band width, volume steam detection, and confluence scoring, this tool helps identify structural market explosion points with thermal precision.
Why This Integration Exists
This indicator combines seven distinct pressure and volatility measurement frameworks that complement each other:
Multi-Component Pressure System: Combines RSI, WaveTrend, MFI, and Stochastic RSI for comprehensive pressure measurement
Thermal Temperature Analysis: Uses ATR and Bollinger Band width to measure market volatility temperature
Volume Steam Detection: Analyzes volume spikes and directional volume pressure for steam identification
Explosion Detection Engine: Multi-factor confluence system that identifies when all pressure systems align
Momentum Confirmation System: Ensures signals occur at genuine turning points through momentum analysis
Pressure Zone Classification: Defines thermal zones from extreme oversold to extreme overbought
Signal Filtering System: Prevents overlapping signals while maintaining precision timing
Each component addresses different aspects of market thermal dynamics. Pressure measurement reveals directional bias, temperature analysis shows volatility energy, steam detection indicates volume explosions, and confluence scoring quantifies setup quality. Together, they create a comprehensive thermal view that traditional single-dimension momentum indicators cannot provide.
Core Components Explained
1. Multi-Component Pressure System (0-100 Scale)
The system combines four pressure measurements for comprehensive analysis:
RSI Pressure:
RSI Pressure = RSI(close, rsi_length) // Standard 0-100 scale
WaveTrend Pressure:
ESA = ema(hlc3, wt_channel_length)
D = ema(abs(hlc3 - ESA), wt_channel_length)
CI = (hlc3 - ESA) / (0.015 * D)
WT1 = ema(CI, wt_average_length)
WT Pressure = (WT1 + 100) / 2 // Normalize -100 to 100 → 0 to 100
MFI Pressure:
MFI Pressure = MFI(hlc3, mfi_length) // Money Flow Index 0-100
Stochastic RSI Pressure (Optional):
Stochastic RSI = Stochastic(RSI(close, rsi_length), stoch_length)
Stoch Pressure = sma(Stochastic RSI, 3)
Combined Pressure:
Total Pressure = (RSI + WT + MFI + Stoch) / 4 // With Stochastic
Total Pressure = (RSI + WT + MFI) / 3 // Without Stochastic
2. Thermal Temperature System (0-100 Scale)
Measures market volatility energy through dual methods:
ATR-Based Temperature:
ATR Percentage = (ATR(atr_length) / close) * 100
ATR Temperature = ATR Percentage * temperature_multiplier
Bollinger Band Width Temperature (Optional):
BB Basis = sma(close, bb_length)
BB Deviation = bb_multiplier * stdev(close, bb_length)
BB Width = ((BB Upper - BB Lower) / BB Basis) * 100
BB Temperature = BB Width * 5 // Scale to 0-100
Combined Temperature:
Temperature = min((ATR Temperature + BB Temperature) / 2, 100) // With BB
Temperature = min(ATR Temperature, 100) // Without BB
3. Volume Steam Detection (0-100 Scale)
Analyzes volume explosions and directional pressure:
Volume Steam Base:
Volume Ratio = volume / sma(volume, volume_length)
Steam Base = Volume Ratio * 50
Volume Delta (Optional):
Buy Volume = close > open ? volume : 0
Sell Volume = close < open ? volume : 0
Volume Delta = (Buy Volume - Sell Volume) / volume * 50
Combined Steam:
Steam = min(Steam Base + abs(Volume Delta), 100)
Steam Classifications:
- Steam Burst: Steam > steam_threshold (default 80)
- Extreme Steam: Steam > 90
- Volume Spike Direction: Bullish (close > open) or Bearish (close < open)
4. Explosion Detection Engine
Multi-factor confluence system with momentum confirmation:
Momentum Confirmation:
Pressure Momentum = change(Total Pressure)
Pressure Acceleration = change(Pressure Momentum)
Momentum Shift = (momentum > 0 AND momentum <= 0) OR (momentum < 0 AND momentum >= 0)
Confluence Score (0-5):
Confluence Components:
- Pressure Factor: Total Pressure > pressure_threshold ? 1 : 0
- Temperature Factor: Temperature > temperature_threshold ? 1 : 0
- Steam Factor: Steam > steam_threshold ? 1 : 0
- WaveTrend Extreme: WT Pressure > 80 OR WT Pressure < 20 ? 1 : 0
- Extreme Steam: Steam > 90 ? 1 : 0
Confluence Score = Sum of all factors (0-5)
Explosion Conditions:
Explosion = Confluence Score >= minimum_confluence AND (Momentum Shift OR abs(Pressure Acceleration) > 2)
Bull Explosion = Explosion AND Total Pressure > 50 AND Pressure Momentum > 0
Bear Explosion = Explosion AND Total Pressure < 50 AND Pressure Momentum < 0
Perfect Explosion (Rare):
Perfect Explosion = Confluence Score == 5 AND abs(Pressure Momentum) > 3
Perfect Bull = Perfect Explosion AND Total Pressure > 50 AND Pressure Momentum > 0
Perfect Bear = Perfect Explosion AND Total Pressure < 50 AND Pressure Momentum < 0
5. Thermal Zone Classification
The system defines seven thermal pressure zones:
Extreme Overbought: Pressure > 80 (Critical thermal level)
Overbought: Pressure 70-80 (High thermal level)
Neutral High: Pressure 55-70 (Warm thermal level)
Equilibrium: Pressure 45-55 (Neutral thermal zone)
Neutral Low: Pressure 30-45 (Cool thermal level)
Oversold: Pressure 20-30 (Low thermal level)
Extreme Oversold: Pressure < 20 (Critical thermal level)
6. Signal Filtering System
Prevents overlapping signals while maintaining precision:
Minimum Bars Between Signals = 8
Signal Filtering Logic:
- Perfect signals take priority over regular explosions
- Regular explosions are filtered if perfect signal occurred recently
- Warning signals are filtered if explosion signals are active
- Steam bursts are filtered to minimum 3 bars apart
Visual Elements
Thermal Pressure Wave: Main oscillator with thermal gradient coloring and glow effects
Component Pressures: Individual RSI, WT, MFI, and Stochastic lines (hidden by default)
Temperature Background: Heat map style background coloring based on volatility temperature
Steam Burst Histograms: Volume spike visualization with directional coloring
Thermal Zone References: Critical levels at 20, 30, 50, 70, 80 with neutral zone highlighting
Explosion Markers: Diamond shapes for perfect explosions, triangles for regular explosions
Warning Signals: Circle markers for approaching explosion conditions
Pressure Meter: Visual gauge showing current pressure level with thermal gradient
Dashboard: Comprehensive real-time display of all thermal components and status
How Components Work Together
The integration creates a thermal momentum analysis approach:
Layer 1 - Pressure Measurement: Multi-component system reveals directional pressure across four dimensions
Layer 2 - Temperature Analysis: Volatility measurement shows market energy and expansion potential
Layer 3 - Steam Detection: Volume analysis identifies explosive energy release conditions
Layer 4 - Momentum Confirmation: Ensures signals occur at genuine turning points, not random noise
Layer 5 - Confluence Scoring: Quantifies setup quality by counting aligned factors
Layer 6 - Explosion Detection: Identifies rare moments when all thermal systems align
Layer 7 - Signal Filtering: Prevents overlap while maintaining precision timing
Example scenario: Pressure reaches extreme oversold (Layer 1) with high temperature (Layer 2), volume steam burst (Layer 3), momentum shift confirmation (Layer 4), confluence score of 5 (Layer 5), triggering perfect bull explosion (Layer 6) with proper signal filtering (Layer 7). This represents maximum thermal alignment for explosive upward move.
Input Parameters
Pressure Settings:
RSI Length: Period for RSI calculation (default: 14)
WT Channel Length: WaveTrend channel period (default: 10)
WT Average Length: WaveTrend smoothing period (default: 21)
MFI Length: Money Flow Index period (default: 14)
Stochastic Length: Stochastic RSI period (default: 14)
Use Stochastic Pressure: Toggle fourth pressure component
Temperature Settings:
ATR Length: Average True Range period (default: 14)
Temperature Multiplier: Sensitivity adjustment (default: 10.0)
Use Bollinger Band Width: Toggle BB width temperature component
BB Length: Bollinger Band period (default: 20)
BB Multiplier: Bollinger Band deviation (default: 2.0)
Volume Settings:
Volume MA Length: Volume average period (default: 20)
Steam Threshold: Volume spike multiplier (default: 2.0)
Use Volume Delta: Toggle directional volume analysis
Show Volume Spikes: Toggle volume spike visualization
Explosion Settings:
Pressure Threshold: Minimum pressure for explosion (default: 80)
Temperature Threshold: Minimum temperature for explosion (default: 70)
Steam Threshold: Minimum steam for explosion (default: 80)
Minimum Confluence Score: Required factors for explosion (default: 3)
Show Explosion Warnings: Toggle warning markers
How to Use This Indicator
Step 1: Assess Thermal Pressure
Check the main pressure gauge and current thermal zone classification in the dashboard.
Step 2: Monitor Temperature Levels
High temperature (>70) indicates market energy building for potential explosive moves.
Step 3: Watch for Steam Bursts
Volume steam bursts (>80) show explosive energy release with directional bias.
Step 4: Check Confluence Score
Scores ≥3 indicate multiple thermal factors aligning for explosion potential.
Step 5: Wait for Momentum Confirmation
Explosions require momentum shifts or acceleration to confirm genuine turning points.
Step 6: Identify Explosion Signals
Perfect explosions (diamond markers) offer highest probability, regular explosions (triangles) offer good probability.
Step 7: Monitor Warning Signals
Warning markers indicate approaching explosion conditions - prepare for potential signals.
Best Practices
Use on 15-minute to 4-hour timeframes for optimal thermal detection
Focus on extreme thermal zones (<20 or >80) for highest explosion probability
Perfect explosions are rare but offer exceptional risk:reward opportunities
Temperature confirmation adds conviction to pressure-based signals
Steam direction (bullish/bearish) should align with expected explosion direction
Confluence scores ≥4 significantly increase explosion probability
Warning signals help prepare for upcoming explosion opportunities
Thermal zone transitions often precede significant price movements
Indicator Limitations
Thermal pressure can remain extreme longer than expected during strong trends
Perfect explosions are rare - patience required for highest probability setups
Temperature spikes during news events may create false explosion signals
Steam bursts don't guarantee immediate price movement - timing varies
Confluence scoring is mathematical, not predictive of future performance
Component pressures may conflict, requiring interpretation skills
Signal filtering may delay signals in rapidly changing market conditions
Requires understanding of multi-factor thermal analysis concepts
Technical Implementation
Built with Pine Script v6 using:
Multi-component pressure calculation with optional Stochastic RSI integration
Dual-method temperature analysis using ATR and Bollinger Band width
Advanced volume steam detection with directional bias measurement
Multi-factor confluence scoring system with momentum confirmation
Thermal gradient coloring system with glow effects and heat map backgrounds
Anti-overlap signal filtering with priority-based signal management
Real-time pressure meter visualization with thermal zone classification
Comprehensive dashboard with component breakdown and explosion status
The code is fully open-source and can be modified to suit individual trading styles and preferences.
Originality Statement
This indicator is original in its thermal momentum integration approach. While individual components (RSI, WaveTrend, MFI, ATR, volume analysis) are established concepts, this integration is justified because:
It synthesizes seven distinct thermal and momentum methodologies into a unified system
The multi-component pressure system provides comprehensive momentum analysis beyond single indicators
Thermal temperature analysis combines volatility measurements for energy assessment
Volume steam detection adds explosive energy context to momentum signals
Multi-factor confluence scoring quantifies setup quality across all thermal dimensions
Perfect explosion detection identifies rare, high-probability explosive move conditions
Each component contributes unique thermal information: pressure measurement reveals directional momentum, temperature analysis shows volatility energy, steam detection indicates volume explosions, confluence scoring quantifies alignment, and momentum confirmation ensures signal quality. The integration's value lies in identifying moments when all thermal systems align simultaneously for explosive market moves.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss and is not suitable for all investors.
Thermal momentum analysis and explosion detection are analytical concepts that do not guarantee future price movement. Past performance and backtested results do not guarantee future results. Market conditions change, and thermal patterns that worked historically may not work in the future.
Always use proper risk management, including stop losses and position sizing appropriate for your account size and risk tolerance. Never risk more than you can afford to lose. Consider consulting with a qualified financial advisor before making investment decisions.
The author is not responsible for any losses incurred from using this indicator. Users assume full responsibility for all trading decisions made using this tool.
-Made with passion by officialjackofalltrades Indicator

Session Statistical Levels## Session Statistical Levels
A universal session range statistics indicator that calculates the historical distribution of how each trading session has behaved and plots those levels forward from the current session's opening price. Works on any instrument, any timeframe, and tracks up to four sessions simultaneously — Asia, London, New York, and a fully configurable custom session.
Everything here is derived live from your chart's own price history. The levels update at the open of each new session and extend rightward as the session develops.
---
## IMPORTANT DISCLAIMER
All statistics are calculated in real time from your chart's own bar history within the chosen lookback window. This means:
- Statistics will differ between users depending on chart history available and the lookback setting chosen.
- The indicator requires a minimum of 2 completed sessions to begin drawing levels, but meaningful statistics require at least 20–30 sessions. The more history available, the more stable the percentile estimates.
- Past session behaviour does not guarantee future outcomes. Any individual session can deviate significantly from historical distributions, particularly around major news events or unusual volatility conditions.
- The indicator is most meaningful on instruments with well-defined, recurring session structure — futures, forex, and index products tend to work best.
---
## Core Concept
At the open of each tracked session, the indicator looks back through all completed sessions within the lookback window and asks: *how large was this session's range, and how far did price travel above and below the opening price?* It builds a statistical distribution from those completed sessions and draws the key percentile levels as horizontal lines extending forward from the current session's open price.
Every level is expressed as an **offset from the session open** — so a level labelled "NY P75" placed 200 points above the NY open means that in 75% of historical NY sessions, the session high was within 200 points of the open. The mirror level 200 points below means the same applies to the downside.
This gives you a live, continuously updated picture of where price is relative to what is historically normal for the current session.
---
## Sessions
Four sessions are tracked, each independently toggled:
**Asia** — 7:00 PM to 2:00 AM ET. Captures the overnight Asian market session.
**London** — 2:00 AM to 8:00 AM ET. Captures the European open and London session.
**New York** — 8:00 AM to 4:00 PM ET. Captures the US cash equity and futures session.
**Custom Session** — User-defined. You specify the start time, end time (both in HHMM format, Eastern Time), and a display label. This can be used to isolate any sub-session you find useful — for example, the opening drive (8:00–10:00 AM), the London close overlap (10:00 AM–12:00 PM), or an overnight Globex window. All the same statistics and levels are calculated for the custom session as for the named sessions.
All session times use the **America/New_York timezone** and do not automatically adjust for daylight saving transitions in other regions.
---
## Levels Explained
All levels are drawn as horizontal lines extending from the session open bar. They are extended bar by bar throughout the session. Each level appears both **above** (positive offset) and **below** (negative offset) the session open, reflecting that the distribution is applied symmetrically — the session could run in either direction.
### Median (P50)
The median session range. Half of all historical sessions in the lookback window had a total range smaller than this, half had larger. This is the central reference point — if price has already moved the median range from the open, the session has covered "normal" territory.
Displayed as a dashed line above and below the open, labelled e.g. `NY Med` and `NY -Med`.
### IQR Band (P25 / P75)
The interquartile range — the middle 50% of historical session ranges. The P75 line above the open means 75% of sessions had their high within this distance of the open; the P25 line means 25% of sessions exceeded this level on the upside.
Together the P25 and P75 lines form a band representing where the session range most commonly falls. Price moving beyond the P75 level is entering the upper quarter of historical sessions by range. An optional fill between these lines visually highlights the band.
Displayed as dotted lines, labelled e.g. `NY P75` / `NY P25`.
### P10 / P90
The outer 80% band. The P90 level above the open represents a large range day — only 10% of historical sessions have extended further. The P10 level is the inner boundary, below which only 10% of sessions failed to reach.
These levels help identify when a session is developing into an unusually large or unusually small range day. An optional fill between the outer and inner bands provides additional visual context.
Labelled e.g. `NY P90` / `NY -P90`, `NY P10` / `NY -P10`.
### P95
An optional extreme outlier level. Only 5% of sessions have extended beyond this distance from the open. Useful for identifying historically rare range expansions — not shown by default as they are rarely reached and can visually clutter the chart.
### Mean
The arithmetic average session range, plotted symmetrically above and below the open. Because session ranges tend to have a right-skewed distribution (occasional very large range days pull the average up), the mean is typically somewhat higher than the median. When the mean and median are noticeably different, it indicates the presence of outlier sessions in the lookback window.
Displayed as a dashed line, labelled e.g. `NY Mean` / `NY -Mean`.
### Mean ± 1 Standard Deviation
Optional. Plots lines one standard deviation above and below the mean range. Note that standard deviation assumes a roughly normal distribution, which session ranges typically do not follow — they tend to be right-skewed with fat tails. For this reason the StDev bands are disabled by default and the percentile-based levels (which make no distributional assumptions) are preferred. The tooltip in the settings explicitly flags this limitation.
Labelled e.g. `NY +1SD` / `NY -1SD`.
---
## Directional MAE / MFE Levels
This is the most distinctive feature of the indicator, and requires some explanation.
The indicator tracks each completed session as either **bullish** (closed above the opening price) or **bearish** (closed below the opening price). For each category it separately records:
- **MFE (Maximum Favourable Excursion)** — how far price moved in the winning direction before the session closed. For bull sessions this is the maximum distance above the open; for bear sessions it is the maximum distance below the open.
- **MAE (Maximum Adverse Excursion)** — how far price moved against the eventual session direction before recovering. For bull sessions this is the maximum distance price dropped below the open before closing higher; for bear sessions it is the maximum distance price rose above the open before closing lower.
From these directional arrays the indicator calculates and plots:
**Bull MFE50** — the median upside excursion on bull sessions. In 50% of sessions that closed above the open, price ran at least this far above the open at some point during the session. Plotted above the open.
**Bull MFE75** — the 75th percentile upside excursion on bull sessions. A higher-probability upside target for sessions that are developing as bullish.
**Bull MAE50** — the median adverse dip on bull sessions. Even in sessions that ultimately closed higher, price dipped at least this far below the open half the time. Plotted below the open. This is a guide to how much heat a long position from the open has historically needed to absorb before the session recovered.
**Bear MFE50** — the median downside excursion on bear sessions. In 50% of sessions that closed below the open, price fell at least this far. Plotted below the open.
**Bear MFE75** — the 75th percentile downside excursion on bear sessions.
**Bear MAE50** — the median adverse rally on bear sessions. Even in sessions that ultimately closed lower, price bounced at least this far above the open half the time. Plotted above the open.
### How to Use MAE / MFE
The MAE levels are particularly useful for position sizing and stop placement. If the Bull MAE50 for the NY session is 40 points, then a stop placed less than 40 points below the NY open on a long trade has historically been triggered in more than half of all ultimately bullish sessions — not because the trade was wrong, but because intraday chop reached that depth before the session recovered. Knowing this helps calibrate stop distance relative to historical session behaviour.
The MFE levels are useful as probabilistic targets. If NY Bull MFE75 is 150 points above the open, that level represents a target that 75% of historical bull sessions have reached or exceeded on the upside.
**Important:** the MAE/MFE levels are only drawn when there are at least 2 sessions of each type (bull or bear) in the lookback window. On instruments or sessions with very few bull or bear sessions in the lookback period, these levels may not appear or may be based on a very small sample.
The bull/bear session count is visible in the stats table (shown as e.g. `15b/12B` — 15 bull sessions, 12 bear sessions).
---
Stats Table
The stats table provides a numerical summary of the range distribution for each active session. It is shown at the bottom of the chart and updates on the last bar.
Session — Session name, plus bull/bear session count (e.g. NY 45b/38B). The bull count (lowercase b) shows how many sessions in the lookback window closed above their opening price; the bear count (uppercase B) shows how many closed below.
N — Total number of completed sessions in the lookback window for this session. This is your effective sample size — if it is low, treat the percentile levels with less confidence.
P25 — 25th percentile of session ranges in points. Three quarters of historical sessions had a range larger than this. A session still inside this level is developing as an unusually narrow range day.
P50 Med — Median (50th percentile) session range in points. Half of historical sessions had a smaller range, half had larger. This is the central reference point for what a typical session looks like.
P75 — 75th percentile of session ranges in points. Only one quarter of historical sessions exceeded this range. Price moving beyond the P75 level on the chart means the session is in the upper quarter of historical range days.
P90 — 90th percentile of session ranges in points. Only 10% of historical sessions exceeded this range. A session reaching the P90 level is a statistically large range day.
Mean/SD — The arithmetic mean session range and its standard deviation, both in points, displayed as mean/SD. Because session ranges tend to be right-skewed, the mean will typically be somewhat higher than the median. A large gap between the two indicates the presence of outlier sessions pulling the average up.
Sessions that are currently toggled off are shown with a grey background. The bottom row shows the current lookback setting as a reminder.
All range values in the table are in the **native points of the instrument** — the same units as the price axis.
---
## Fills
When fills are enabled, semi-transparent shaded regions are drawn between the P25/P75 band and between the P10/P90 band. These provide a quick visual read of where the session range typically falls without needing to read individual level labels. The fill colours are independently configurable. Fills are extended bar by bar as the session progresses alongside the lines.
---
## How to Use This Indicator
**At the session open:** The levels are drawn immediately from the opening bar. Note where price is relative to the P25, P50 and P75 levels — this sets the context for how large a range you might expect.
**During the session:** As price moves away from the open, the levels tell you where you are in the historical distribution. Price passing through the P75 level means the range has entered the upper quarter of historical sessions. Price still inside the P25 level late in the session suggests a narrow, below-average day.
**For target setting:** The MFE levels (bull or bear depending on the direction the session is developing) provide historically grounded targets. The P50 MFE is a conservative target; P75 MFE is more ambitious but still within the range of the majority of directional sessions.
**For stop placement:** The MAE levels provide context for how much adverse movement has historically occurred even in ultimately successful sessions. Stops placed tighter than the MAE50 level have historically been triggered in more than half of all sessions that eventually moved in the intended direction.
**Comparing sessions:** With multiple sessions visible simultaneously, you can compare how the current session's range compares to the Asia or London session that preceded it. An NY session already exceeding the Asia P90 level early in the day is developing into an unusually large range day by historical standards.
**The custom session** is most useful for isolating specific intraday windows you trade. For example, setting it to 09:30–11:00 gives you statistics purely for the opening drive, without the full-day NY range diluting the picture.
---
## Inputs and Settings
### Global Settings
- **Lookback Sessions** *(default: 100, minimum: 10)* — Number of completed sessions used to build the statistical distributions. Applies to all four sessions. Higher values give more stable percentile estimates but are less responsive to recent regime changes. Lower values track recent conditions more closely but are more susceptible to small-sample noise. A minimum of 30–50 sessions is recommended for reliable percentile estimates; the tooltip suggests 50+.
- **Label Size** *(default: Tiny)* — Size of the text labels on all level lines. Options: Tiny, Small, Normal.
- **Show Stats Table** — Toggle the summary table on or off.
- **Table Position** — Place the table in any corner: Top Left, Top Right, Bottom Left, Bottom Right.
### Sessions
- **Asia (7pm – 2am ET)** — Toggle Asia session levels on or off.
- **London (2am – 8am ET)** — Toggle London session levels on or off.
- **NY (8am – 4pm ET)** — Toggle New York session levels on or off.
- **Custom Session** — Toggle the custom session on or off. When enabled, three further inputs appear:
- **Custom Start (HHMM ET)** — Session start time in 24-hour format, Eastern Time. E.g. `0930` for 9:30 AM.
- **Custom End (HHMM ET)** — Session end time. E.g. `1200` for noon.
- **Custom Label** — The name shown on level labels and in the stats table for this session.
### Levels to Show
- **Median (P50)** — Toggle median lines on or off.
- **IQR Band (P25 / P75)** — Toggle the interquartile range lines and fill on or off.
- **P10 / P90** — Toggle the outer percentile lines and fill on or off.
- **P95 (extreme sessions)** — Toggle the P95 extreme level on or off. Off by default.
- **Mean** — Toggle mean lines on or off.
- **Mean +/- 1 StDev** — Toggle standard deviation bands on or off. The tooltip notes these are less reliable for skewed data and percentile levels are preferred.
- **MAE / MFE (bull+bear sep.)** — Toggle the directional max adverse/favourable excursion levels on or off. The tooltip explains these are excursions from the session open.
- **Separate Bull/Bear levels** — When MAE/MFE is enabled, this toggle determines whether bull and bear levels are drawn separately (on) or combined (off). Keeping this on is recommended as combining directional excursion data from bull and bear sessions produces less meaningful levels.
### Style
All colours are individually configurable:
- **Median color** *(default: near black)*
- **IQR color** *(default: dark grey)*
- **P10/P90 color** *(default: medium grey)*
- **P95 color** *(default: muted red)*
- **Mean color** *(default: dark blue)*
- **StDev color** *(default: medium blue)*
- **MAE color** *(default: muted red)* — used for adverse excursion levels
- **MFE color** *(default: muted green)* — used for favourable excursion levels
- **IQR fill** *(default: very light grey, 92% transparent)*
- **P10/P90 fill** *(default: very light grey, 96% transparent)*
- **Show fills** — Master toggle for all band fills.
---
## Limitations
**Lookback window applies across all sessions equally.** The same lookback count is used for Asia, London, NY, and custom. If you set a lookback of 100, each session independently accumulates up to 100 completed sessions. There is no cross-session weighting — a day with an unusual Asia session does not automatically influence the NY statistics for that day.
**Total number of completed sessions actually captured in the lookback window for this session. This may be significantly lower than your chosen lookback setting — on higher timeframes, PulseWire's bar history limit means fewer historical bars are available, which directly reduces how many completed sessions the indicator can see. If you have set a lookback of 100 but the table shows N=18, your chart does not have enough history loaded for that timeframe. Switching to a lower timeframe or scrolling back further to load more history will increase the session count. If N is low, treat the percentile levels with less confidence.
**Bull/bear split reduces effective sample size.** When MAE/MFE is enabled, the directional arrays only contain sessions of each respective type. With a lookback of 100 sessions and a roughly 50/50 bull/bear split, each directional array will have approximately 50 sessions. With more extreme splits or smaller lookbacks, the directional levels may be based on fewer sessions than the overall range statistics. Always check the bull/bear count in the stats table.
**Session times are fixed to ET.** The indicator does not adapt to other timezone daylight saving changes. Users in regions that observe different DST schedules may notice sessions shifting by one hour at certain times of year.
**Custom session must fit within a single calendar day boundary in ET.** Overnight sessions that cross midnight require careful setup — the standard Asia session (which crosses midnight ET) works correctly because it uses a predefined time string, but custom sessions that cross midnight may not behave as expected depending on how PulseWire resolves the time range.
**Standard deviation limitation.** As noted in the settings tooltip, session ranges are typically right-skewed — occasional very large range days create a long upper tail. Standard deviation assumes a symmetric normal distribution and will underestimate tail risk. The percentile-based levels (P90, P75 etc.) make no distributional assumptions and are more reliable for characterising the actual shape of the distribution.
**Timeframe sensitivity.** The indicator tracks session opens and closes bar by bar. On high timeframes (1H or above), session boundary detection may miss the exact opening bar or fail to capture intrabar session transitions accurately. Recommended timeframes are 1-minute through 30-minute charts. On lower timeframes, more bars are available and session boundaries are captured precisely.
**Past statistics do not predict future outcomes.** A P75 level means that 75% of historical sessions stayed within that range — it does not mean price will stop there, reverse there, or that the current session will follow the historical distribution. Use these levels as probabilistic context, not as targets or stops in isolation.
---
## Technical Notes
- Session ranges and directional excursions are stored in separate per-session arrays, trimmed to the lookback limit using a FIFO approach (oldest session dropped when the limit is reached)
- Lines and fills are extended bar by bar throughout each session using stored object references
- Compatible with all instruments and all timeframes; most accurate on timeframes of 30 minutes or below Indicator

NY vs Asia Statistical Levels## NY vs Asia Statistical Levels
A context-driven overlay indicator that calculates live statistics from your chart's own session history and plots probabilistic price levels for the New York session based on how the preceding Asia session developed and where NY opened relative to it.
This is not a signal generator. It is a statistical framework — a way of answering the question: *given today's Asia range and where NY opened, what does a "typical" session look like from here?*
---
## IMPORTANT DISCLAIMER
All statistics displayed by this indicator are calculated in real time from your chart's own price history. The lookback window is user-defined (default: 100 sessions). This means:
- The indicator requires sufficient chart history to build meaningful statistics. A minimum of 20–30 matching sessions per bucket is recommended before placing significant weight on the numbers.
- Statistics will differ between users depending on their chart's available history and the chosen lookback setting.
- Past session statistics do not guarantee future outcomes. Any individual session can and will deviate significantly from historical norms.
- This indicator is designed for **futures markets that trade with a clear Asia/London/NY session structure** (e.g. NQ, ES, CL, Gold). It is less meaningful on instruments with no meaningful Asia session.
---
## What This Indicator Does
At the New York open (8:00 AM ET), the indicator classifies where NY opened relative to the preceding Asia range into one of four **buckets**:
- **Inside Lower Half** — NY opened within the Asia range, below the Asia midpoint
- **Inside Upper Half** — NY opened within the Asia range, above the Asia midpoint
- **Above Asia High** — NY opened above the Asia session high
- **Below Asia Low** — NY opened below the Asia session low
It then looks back through your chart's history and retrieves only the sessions that match today's bucket. From those sessions it calculates the statistical distribution of:
- How far NY extended above the Asia high
- How far NY extended below the Asia low
- How large the total NY range was, expressed as a multiple of that day's Asia range
- Where price typically reversed from its high or low extension
These distributions are used to draw **probabilistic price levels** on the chart for the current NY session, each labelled with a percentile and a historical hit rate.
---
## Session Boxes
Three coloured boxes are drawn to visually define the session ranges:
- **Asia Box** (default orange) — 7:00 PM to 2:00 AM ET. Tracks the overnight Asia session high and low.
- **London Box** (default blue) — 2:00 AM to 8:00 AM ET. Tracks the London session range.
- **NY Box** (default red) — 8:00 AM to 4:00 PM ET. Expands in real time throughout the NY session.
All boxes can be toggled on or off independently, and their colours, fill transparency and outline visibility are all configurable.
---
## Price Levels
All levels are drawn at the NY open and extend rightward through the session. When a level is touched during the NY session, its line and label turn grey and a ✓ is prepended to the label, confirming it has been hit.
### Asia Range Grid
A symmetrical grid of levels placed at exact multiples of the Asia range above and below the NY open price. For example, if the Asia range was 100 points and NY opened at 21,000, the +1x level sits at 21,100 and the −1x level at 20,900.
Each grid label shows the multiple (e.g. `+2x AR`) and a **hit rate percentage in brackets** — the percentage of past sessions in the current bucket where the NY range covered at least that many Asia ranges in that direction. This tells you how common it is for price to reach each grid level.
The number of multiples displayed above and below (1x through to a user-defined maximum) is configurable.
### Extension Levels (ExtHi / ExtLo)
These levels mark where price has historically **broken out beyond the Asia range boundaries**.
- **ExtHi P50 / P75 / P90** — placed above the Asia high. These are the 50th, 75th, and 90th percentile of how far above the Asia high NY has extended in the current bucket. The P50 level is the *median* extension — half of matching sessions extended at least this far above the Asia high.
- **ExtLo P50 / P75 / P90** — placed below the Asia low, on the same basis.
Each label also shows its **hit rate** — the percentage of past sessions where price actually reached at least that extension level. Since a P50 level is by definition the median, you would expect approximately 50% of sessions to hit it; the displayed hit rate confirms this from your actual data.
When NY opens **inside** the Asia range, both ExtHi and ExtLo levels are drawn, as price could break either direction. When NY opens **above the Asia high**, only ExtHi levels are drawn (ExtLo is less relevant when price has already gapped out). The reverse applies for opens below the Asia low.
### Reversal Levels (RevHi / RevLo)
These answer a different question: **if price extends through the Asia high or low, where does it typically pull back to?**
- **RevHi P50 / P75** — anchored to the ExtHi P50 level. These mark the 50th and 75th percentile of the full range from the extension peak back down to the NY low. In practical terms, RevHi P50 is the level that price has historically reversed back to (or through) in 50% of sessions that extended above the Asia high.
- **RevLo P50 / P75** — the mirror image below the Asia low.
Note: Reversal levels only populate once the indicator has enough sessions in the current bucket where NY actually broke the Asia boundary. If few sessions in the bucket did so, these levels may not appear.
---
## Stats Table
The stats table updates live throughout the NY session and summarises the statistical context for the current day. It can be positioned in any corner of the chart.
| Row | What it shows |
|---|---|
| **Asia Range (pts)** | Today's completed Asia session range in points |
| **Asia Range Z-Score** | How many standard deviations today's Asia range is from the rolling mean. Positive = above average, negative = below average. |
| **Asia Range Pctile** | Percentile rank of today's Asia range within your lookback window. 80th percentile means today's range was larger than 80% of recent sessions. |
| **NY Open vs Asia** | Which of the four buckets today's NY open falls into |
| **Bucket Sessions** | How many sessions in your lookback history match today's bucket. This is the sample size driving all levels and stats. |
| **Sessions Captured** | Total sessions in the lookback window (across all buckets). Lower than your lookback setting means your chart doesn't have enough history loaded. |
| **Median NY Rng (x)** | The median NY range across matching sessions, expressed as a multiple of the Asia range. A value of 2.5x means half of similar sessions had a NY range smaller than 2.5 Asia ranges, half had larger. |
| **Avg NY Rng (x)** | The arithmetic mean of the same NY range multiples. Will be higher than the median if a few large-range sessions pull the average up. |
| **Median NY Rng (pts)** | Median NY Rng (x) multiplied by today's Asia range. This is the expected NY range in price points if today follows a typical session. |
| **Avg NY Rng (pts)** | Avg NY Rng (x) multiplied by today's Asia range. |
| **NY Range (pts)** | The live current NY range (high minus low) in points. Updates every bar during the NY session. |
| **Complete (med)** | Current NY range as a percentage of the Median NY Rng (pts). 50% means you're halfway through a typical session's expected range. 100% means today has already matched the median. Over 100% means today is an above-median range session. |
| **Complete (avg)** | The same calculation but relative to the average expected range instead of the median. |
### How to Read the Completion Rows
The Complete (med) and Complete (avg) rows are live progress indicators during the NY session. They answer: *how much of a typical session's range has already been covered?*
- **Below 100%** — the session range is still within what's historically normal. There may be more range to develop.
- **At 100%** — today's range has matched the median (or average) of past sessions in this bucket.
- **Above 100%** — today is already an above-average range session. This doesn't mean the session is over, but it provides context that you're in an extended move relative to history.
Because the median and mean can differ substantially (particularly in buckets that occasionally see very large range days), it is worth watching both. If Complete (med) is at 120% but Complete (avg) is still at 80%, the session has exceeded a typical day but remains within range of what the average session produces.
---
## How to Use This Indicator
This indicator is best treated as a **contextual framework** to sit alongside your existing analysis rather than as a standalone strategy.
**At the NY open:** Note the bucket (NY Open vs Asia row), check the Bucket Sessions count to confirm you have adequate history, and note the Median and Avg range expectations in points. This tells you roughly what a normal session looks like from here.
**During the session:** Watch the Extension levels for potential targets or reaction points if price is trending. The hit rate percentages on the grid and extension labels tell you how often price has historically reached each level — higher hit rates suggest higher-probability targets.
**If price breaks the Asia high or low:** The Reversal levels become relevant. They mark where price has historically pulled back to after the extension, which may provide fading or re-entry context.
**The completion rows** are most useful as a session progresses. A session at 30% complete early in the day is normal; a session still at 30% with an hour to go suggests a narrow-range day. A session at 150% complete early suggests unusual volatility.
---
## Inputs and Settings
### General
- **Lookback Sessions** *(default: 100)* — The number of completed NY sessions the indicator draws statistics from. All four buckets share this lookback pool. Higher values provide more stable statistics; lower values are more responsive to recent conditions. Note that each bucket will contain roughly one quarter of this number on average — with 100 sessions lookback, each bucket may have around 20–30 matching sessions, which is a reasonable minimum.
- **Label Size** *(default: Small)* — Size of the text labels on price levels. Options: Tiny, Small, Normal.
- **Show Stats Table** — Toggle the stats table on or off.
- **Table Position** — Position the table in any corner of the chart: Top Left, Top Right, Bottom Left, Bottom Right.
- **Table Text Size** *(default: Tiny)* — Font size inside the stats table. Options: Tiny, Small, Normal.
### Session Ranges
- **Show Asia/London/NY Range Box** — Toggle each session box independently.
- **Box Fill Transparency** *(default: 90)* — Controls how transparent the session box fill is. 90 = very faint, 50 = much more visible.
- **Box Outline** — Toggle the dotted border around each session box.
- **Asia/London/NY Box Color** — Colour picker for each session box.
### Asia Range Grid (from NY Open)
- **Show Asia Range Grid** — Toggle the grid on or off.
- **Multiples above & below open** *(default: 3)* — How many Asia range multiples to draw above and below the NY open. Setting this to 3 draws ±1x, ±2x, and ±3x levels.
- **Grid Level Color** — Colour of all grid lines and labels.
- **Grid Line Style** — Solid, Dashed, or Dotted.
- **Grid Line Width** — Thickness of grid lines, 1–4.
### Statistical Levels
- **Show Extension Levels** — Toggle ExtHi/ExtLo P50/75/90 levels on or off.
- **Show Reversal Levels** — Toggle RevHi/RevLo P50/75 levels on or off.
- **Extension Above Color** — Colour for upside extension levels (ExtHi).
- **Extension Below Color** — Colour for downside extension levels (ExtLo).
- **Reversal Level Color** — Colour for reversal levels.
- **Hit Level Color** — Colour that levels and labels change to once they have been touched during the session.
---
## Limitations
**Sample size is everything.** The statistics are only as reliable as the number of matching sessions in your lookback window. If your chart has limited history, or if today falls in a less-common bucket (e.g. "Above Asia High" or "Below Asia Low"), the bucket may contain very few sessions and the levels should be treated with correspondingly less confidence. Always check the Bucket Sessions row before relying on the numbers.
**Timeframe requirements.** The indicator tracks session highs and lows bar by bar. On very high timeframes (e.g. 1H or 4H), session boundaries may not be captured accurately. Recommended timeframes are 1-minute through 30-minute charts. The stats table will show fewer sessions captured on higher timeframes due to limited bar history on PulseWire.
**Session times are fixed to America/New_York timezone.** Sessions are defined as: Asia 7:00 PM–2:00 AM ET, London 2:00 AM–8:00 AM ET, New York 8:00 AM–4:00 PM ET. These do not adjust for other regions' daylight saving transitions.
**Reversal levels require extension sessions only.** The RevHi levels are calculated only from sessions where NY actually broke above the Asia high. If few sessions in the bucket did this, the reversal levels may not appear or may be based on a very small sample.
**This is a statistical tool, not a predictive model.** A hit rate of 70% means that in 30% of past sessions, the level was not reached. Any individual session can diverge significantly from historical patterns, particularly around major news events, earnings, or unusual macro conditions.
**The indicator looks back in time, not forward.** All statistics are derived from completed sessions that match today's conditions. The market regime may shift, and probabilities that held over a historical period may not persist indefinitely.
---
## Technical Notes
- Written in Pine Script v5
- Uses `max_lines_count=500`, `max_labels_count=500`, `max_boxes_count=300`
- All statistics are calculated live on the chart from rolling arrays — nothing is hard-coded
- Level lines are extended 5 bars beyond the NY open to ensure they are visible on the opening candle
- The stats table updates on every bar during the NY session and on the last bar of the chart
- Compatible with all instruments and timeframes, though most meaningful on futures with a clear Asia/NY session structure on timeframes between 1-minute and 30-minute Indicator

Precision Confluence Trading Strategy [JOAT]Precision Confluence Trading Strategy
Introduction
The Precision Confluence Trading Strategy is an open-source algorithmic trading system that combines Central Pivot Range (CPR) analysis, Hull Moving Average (HMA) ribbon alignment, WaveTrend oscillator signals, multi-oscillator divergence detection, ADX trend strength, volume confirmation, Smart Money Concepts (FVG, Order Blocks, Liquidity Sweeps), and multi-timeframe analysis into a comprehensive confluence-based strategy. This mashup creates an institutional-grade trading system designed to identify high-probability setups where multiple independent analytical frameworks simultaneously signal the same direction.
The strategy addresses a fundamental challenge in algorithmic trading: single-factor systems produce too many false signals and lack robustness across different market conditions. By requiring confluence across 9 different analytical components before entering trades, this system significantly reduces false signals and focuses capital on only the highest-quality setups where technical, momentum, volume, and institutional factors all align.
Chart showing strategy entries with confluence dashboard on 4H timeframe
Why This Mashup Exists
This strategy combines nine analytical frameworks that address different aspects of market analysis:
CPR Analysis: Identifies key pivot levels where institutional algorithms make decisions
HMA Ribbon: Measures trend quality through 5-layer moving average alignment
WaveTrend Oscillator: Detects momentum cycles and overbought/oversold conditions
Multi-Oscillator Divergence: Identifies momentum exhaustion across RSI, MACD, Stochastic RSI
ADX Trend Strength: Quantifies trend strength to avoid weak, choppy markets
Volume Confirmation: Validates moves with volume analysis and delta calculations
Smart Money Concepts: Tracks institutional footprints (FVG, Order Blocks, Liquidity Sweeps)
Multi-Timeframe Analysis: Ensures directional alignment across 15M, 1H, and 4H timeframes
Key Moving Averages: Confirms position relative to SMA 50/200 institutional levels
Each component addresses a different market dimension: CPR provides static structure, HMA shows trend quality, WaveTrend captures momentum cycles, Divergences warn of exhaustion, ADX measures trend strength, Volume confirms genuine moves, SMC reveals institutional behavior, MTF ensures alignment, and Key MAs provide institutional context. Together, they create a multi-dimensional analysis system that no single indicator can provide.
The mashup is justified because these components use fundamentally different data and methodologies (pivot calculations, weighted moving averages, wave oscillators, directional movement, volume analysis, price inefficiencies, multi-timeframe data, simple moving averages) that respond to different market conditions. When they align, it indicates genuine high-probability setup rather than noise from a single analytical method.
Core Strategy Logic
1. CPR Analysis Component (0-15 points)
Central Pivot Range provides structural reference levels:
// Daily and Weekly CPR calculation
= calcCPR(dHigh, dLow, dClose)
= calcCPR(wHigh, wLow, wClose)
// CPR scoring
cprBullScore = 0
cprBullScore += close > dPivot and close > wPivot ? 10 : 0
cprBullScore += close > dTC ? 3 : 0
cprBullScore += cprNarrow ? 2 : 0 // Narrow CPR = breakout potential
cprBearScore = 0
cprBearScore += close < dPivot and close < wPivot ? 10 : 0
cprBearScore += close < dBC ? 3 : 0
cprBearScore += cprNarrow ? 2 : 0
CPR contribution: Up to 15 points for strong position relative to pivots with narrow CPR indicating breakout potential.
2. HMA Ribbon Alignment Component (0-15 points)
5-layer Hull Moving Average ribbon measures trend quality:
// Calculate 5 HMAs
hma8 = hullMA(close, 8)
hma13 = hullMA(close, 13)
hma21 = hullMA(close, 21)
hma34 = hullMA(close, 34)
hma55 = hullMA(close, 55)
// Full alignment check
hmaFullBullish = hma8 > hma13 and hma13 > hma21 and hma21 > hma34 and hma34 > hma55
hmaFullBearish = hma8 < hma13 and hma13 < hma21 and hma21 < hma34 and hma34 < hma55
// EMA cloud
emaCloudBullish = emaFast > emaSlow
// HMA scoring
hmaRibbonBullScore = 0
hmaRibbonBullScore += hmaBullish ? 5 : 0
hmaRibbonBullScore += hmaFullBullish ? 7 : 0 // Full alignment = strong trend
hmaRibbonBullScore += emaCloudBullish ? 3 : 0
HMA contribution: Up to 15 points for full ribbon alignment with EMA cloud confirmation.
3. WaveTrend Oscillator Component (0-15 points)
WaveTrend detects momentum cycles and extreme conditions:
= calcWaveTrend(hlc3, wtChannelLen, wtAverageLen)
// WaveTrend signals
wtCrossUp = ta.crossover(wt1, wt2)
wtCrossDown = ta.crossunder(wt1, wt2)
wtOversold = wt1 < -60
wtOverbought = wt1 > 60
// WaveTrend scoring
wtBullScore = 0
wtBullScore += wtCrossUp and wtOversold ? 8 : wtCrossUp ? 5 : 0
wtBullScore += wtBullDiv ? 5 : 0 // Divergence adds weight
wtBullScore += wtMomentumBullish ? 2 : 0
WaveTrend contribution: Up to 15 points for crossover in extreme zone with divergence and momentum confirmation.
4. Multi-Oscillator Divergence Component (0-10 points)
Tracks divergences across RSI, MACD, and Stochastic RSI:
// Divergence detection
rsiBullDiv = price LL and rsi HL
wtBullDiv = price LL and wt1 HL
strongBullDiv = rsiBullDiv and wtBullDiv
// Divergence scoring
divBullScore = 0
divBullScore += rsiBullDiv ? 5 : 0
divBullScore += strongBullDiv ? 5 : 0 // Multiple oscillators = stronger signal
Divergence contribution: Up to 10 points for multi-oscillator divergence indicating momentum exhaustion.
5. ADX Trend Strength Component (0-10 points)
ADX quantifies trend strength to avoid choppy markets:
= ta.dmi(adxLength, adxLength)
strongTrend = adx > adxThreshold // Default: 20
trendBullish = plus > minus
// ADX scoring
adxBullScore = strongTrend and trendBullish ? 10 : trendBullish ? 5 : 0
ADX contribution: Up to 10 points for strong trend (ADX > 20) in correct direction.
6. Volume Confirmation Component (0-10 points)
Volume analysis validates genuine institutional participation:
volMA = ta.sma(volume, volMaLength)
highVolume = volume > volMA * 1.5
climaxVolume = volume > volMA * 3.0
// Volume delta
volumeDelta = ta.cum(buyVolume) - ta.cum(sellVolume)
deltaRising = volumeDelta > volumeDeltaMA
// Volume scoring
volBullScore = 0
volBullScore += volConfirmedBull ? 7 : bullishVolume ? 5 : 0
volBullScore += climaxVolume and close > open ? 3 : 0
Volume contribution: Up to 10 points for high volume with rising delta confirming institutional buying.
7. Smart Money Concepts Component (0-10 points)
SMC tracks institutional order flow patterns:
// Fair Value Gaps
significantBullFVG = bullishFVG and fvgSize > 0.3%
// Order Blocks
bullishOB = bearish candles + strong bullish candle + high volume
// Liquidity Sweeps
volConfirmedSweepLow = sweep below recent low + high volume
// Displacement
bullishDisplacement = large candle (> 2x ATR) + climax volume
// SMC scoring
smcBullScore = 0
smcBullScore += significantBullFVG ? 2 : 0
smcBullScore += bullishOB ? 2 : 0
smcBullScore += volConfirmedSweepLow ? 2 : 0
smcBullScore += bullishDisplacement ? 3 : 0
SMC contribution: Up to 10 points for multiple institutional footprints (FVG + OB + Sweep + Displacement).
8. Multi-Timeframe Analysis Component (0-15 points)
Ensures directional alignment across higher timeframes:
// Request higher timeframe data
= request.security(syminfo.tickerid, "15", htfTrend())
= request.security(syminfo.tickerid, "60", htfTrend())
= request.security(syminfo.tickerid, "240", htfTrend())
// Alignment check
mtfBullish = htf15mDir == 1 and htf1hDir == 1 and htf4hDir == 1
mtfStrongBullish = mtfBullish and htf15mStrong and htf1hStrong and htf4hStrong
// MTF scoring
mtfBullScore = 0
mtfBullScore += mtfStrongBullish ? 15 : mtfBullish ? 10 : htf1hDir == 1 ? 5 : 0
MTF contribution: Up to 15 points for all three higher timeframes aligned with strong trends.
9. Key Moving Average Component (0-10 points)
Position relative to institutional moving averages:
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
goldenCross = sma50 > sma200
// MA scoring
maBullScore = 0
maBullScore += close > sma50 ? 3 : 0
maBullScore += close > sma200 ? 4 : 0
maBullScore += goldenCross ? 3 : 0
MA contribution: Up to 10 points for price above key MAs with Golden Cross.
Dashboard showing confluence score breakdown by component
Total Confluence Scoring System
The strategy calculates total confluence score (0-100) by summing all components:
bullConfluenceScore = cprBullScore + // 0-15
hmaRibbonBullScore + // 0-15
wtBullScore + // 0-15
divBullScore + // 0-10
adxBullScore + // 0-10
volBullScore + // 0-10
smcBullScore + // 0-10
mtfBullScore + // 0-15
maBullScore // 0-10
// Total: 0-100
Entry signals require:
Bullish confluence score >= minConfluenceScore (default: 70)
Bearish confluence score < 30 (avoid conflicting signals)
Optional session filter (London/NY sessions only)
Signal tiers:
LONG: Confluence score >= 70
STRONG LONG: Confluence score >= 80
ULTRA LONG: Confluence score >= 90 (rare, highest probability)
Risk Management System
The strategy implements comprehensive risk controls:
1. ATR-Based Position Sizing
atr = ta.atr(14)
stopLossDistance = atr * 2
// Calculate position size based on risk
accountSize = strategy.equity
riskAmount = accountSize * (riskPercent / 100) // Default: 2%
positionSize = riskAmount / stopLossDistance
2. Dynamic Stop Loss and Take Profit
// Dynamic stop based on market structure
dynamicStopBull = math.min(close - stopLossDistance, ta.lowest(low, 10))
// Take profit based on risk:reward ratio
takeProfit = close + (stopLossDistance * rewardRatio) // Default: 2:1
3. Breakeven Management
// Move stop to breakeven when profit reaches threshold
if close >= entryPrice + (stopLossDistance * breakevenTrigger) // Default: 1.0 R:R
strategy.exit("Long Exit", "Long", stop=entryPrice, limit=takeProfit)
4. Trailing Stop (Optional)
if useTrailingStop
trailDistance = close * (trailOffset / 100) // Default: 1.5%
strategy.exit("Long Exit", "Long", trail_offset=trailDistance)
Strategy Execution Logic
// Long Entry
if longSignal and strategy.position_size == 0
stopLoss = dynamicStopBull
takeProfit = close + (stopLossDistance * rewardRatio)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", stop=stopLoss, limit=takeProfit)
// Label with confluence score
label.new(bar_index, low,
"LONG Score: " + str.tostring(bullConfluenceScore),
style=label.style_label_up,
color=entryColor)
// Short Entry (mirror logic)
if shortSignal and strategy.position_size == 0
// Similar logic for short trades
Performance Dashboard
The strategy displays a comprehensive 12-row dashboard:
Row 1: Component header
Row 2: Current position (LONG/SHORT/FLAT)
Row 3: Total confluence score (bull/bear)
Row 4: CPR component score
Row 5: HMA Ribbon component score
Row 6: WaveTrend component score
Row 7: Divergence component score
Row 8: ADX component score
Row 9: Volume component score
Row 10: SMC component score
Row 11: MTF component score
Row 12: Equity and P&L percentage
Strategy Parameters
Strategy Settings:
Use Multi-Timeframe Confirmation: Enable MTF analysis (default: enabled)
Use Divergence Signals: Enable divergence component (default: enabled)
Use Smart Money Concepts: Enable SMC component (default: enabled)
Use Volume Confirmation: Enable volume component (default: enabled)
Use CPR Levels: Enable CPR component (default: enabled)
Use WaveTrend Signals: Enable WaveTrend component (default: enabled)
Use HMA Alignment: Enable HMA component (default: enabled)
Use Session Filter: Trade only during London/NY sessions (default: enabled)
Minimum Confluence Score: Threshold for entry (default: 70, range: 50-100)
Risk Management:
Risk Per Trade %: Percentage of equity to risk (default: 2.0%, range: 0.1-10%)
Reward:Risk Ratio: Take profit multiplier (default: 2.0, range: 1.0-5.0)
Use Trailing Stop: Enable trailing stop (default: enabled)
Trailing Stop %: Trail distance (default: 1.5%, range: 0.1-5.0%)
Use Breakeven: Move stop to breakeven (default: enabled)
Breakeven Trigger: R:R threshold to move stop (default: 1.0, range: 0.5-3.0)
Indicator Parameters:
RSI Length: Period for RSI (default: 14)
ADX Length: Period for ADX (default: 14)
ADX Threshold: Minimum ADX for strong trend (default: 20)
Volume MA Length: Period for volume average (default: 20)
HMA Length: Period for HMA (default: 21)
WaveTrend Channel Length: (default: 10)
WaveTrend Average Length: (default: 21)
Backtesting Configuration
Default strategy properties:
Initial Capital: $10,000
Default Qty Type: Percent of Equity
Default Qty Value: 10%
Commission Type: Percent
Commission Value: 0.1% (10 basis points)
Slippage: 2 ticks
Max Bars Back: 5000
These settings represent realistic trading conditions for the average trader. Commission and slippage account for typical broker fees and execution costs.
How to Use This Strategy
Step 1: Configure Components
Enable/disable components based on your trading style. All components enabled provides maximum filtering but fewer trades.
Step 2: Set Confluence Threshold
Adjust minimum confluence score. Higher threshold (80-90) = fewer, higher-quality trades. Lower threshold (60-70) = more frequent trades.
Step 3: Configure Risk Parameters
Set risk per trade (1-2% recommended) and reward:risk ratio (2:1 minimum recommended). Enable breakeven and trailing stop for protection.
Step 4: Backtest Thoroughly
Run backtests on multiple timeframes and market conditions. Aim for 100+ trades for statistical significance. Review win rate, profit factor, and drawdown.
Step 5: Analyze Component Contribution
Use dashboard to see which components contribute most to winning trades. Consider adjusting weights or disabling low-value components.
Step 6: Forward Test
Paper trade the strategy before risking real capital. Verify that live results align with backtest expectations.
Best Practices
Use on 15-minute to 4-hour timeframes for optimal signal quality
Confluence score above 80 produces highest win rate but fewer trades
Enable all components for maximum filtering in volatile markets
Disable some components for more frequent trades in trending markets
Session filter (London/NY only) significantly improves results
Risk 1-2% per trade maximum for sustainable trading
Aim for minimum 2:1 reward:risk ratio
Review dashboard component scores to understand trade quality
Backtest on minimum 6-12 months of data
Verify 100+ trades in backtest for statistical validity
Strategy Limitations
Confluence-based systems produce fewer trades - may not suit active traders
Requires all components to align - perfect setups are rare
Backtesting results may not reflect live trading with slippage and latency
Multi-timeframe analysis can cause repainting on lower timeframes
High confluence threshold (90+) may produce too few trades for some markets
Commission and slippage significantly impact profitability
Strategy optimized for trending markets - may underperform in ranges
Past performance does not guarantee future results
Requires understanding of all components for effective parameter tuning
Complex system with many parameters - over-optimization risk
Backtesting Considerations
When evaluating backtest results:
Sample Size: Minimum 100 trades for statistical significance
Win Rate: 40-60% is realistic for 2:1 R:R strategy
Profit Factor: Above 1.5 is good, above 2.0 is excellent
Max Drawdown: Should be less than 20% of initial capital
Sharpe Ratio: Above 1.0 indicates good risk-adjusted returns
Trade Frequency: Should match your trading availability
Equity Curve: Should show steady growth, not erratic spikes
Consecutive Losses: Prepare for 5-10 consecutive losses
Adjust parameters if:
Win rate < 35% with 2:1 R:R (increase confluence threshold)
Too few trades (< 50 in 6 months) (decrease confluence threshold or disable some components)
Max drawdown > 25% (reduce risk per trade or increase confluence threshold)
Profit factor < 1.2 (strategy may not be viable)
Technical Implementation
Built with Pine Script v6 using:
9-component confluence scoring system
CPR calculations with width analysis
5-layer HMA ribbon with full alignment detection
WaveTrend oscillator with divergence tracking
Multi-oscillator divergence detection (RSI, MACD, Stoch RSI)
ADX trend strength measurement
Volume analysis with delta calculations
Smart Money Concepts (FVG, OB, Liquidity Sweeps, Displacement)
Multi-timeframe analysis (15M, 1H, 4H)
ATR-based dynamic position sizing
Breakeven and trailing stop management
Comprehensive 12-row dashboard
Session filtering (London/NY)
The code is fully open-source and can be modified to adjust component weights, confluence thresholds, and risk parameters.
Originality Statement
This strategy is original in its comprehensive multi-component confluence approach. While individual components (CPR, HMA, WaveTrend, Divergences, ADX, Volume, SMC, MTF, Key MAs) are established analytical tools, this mashup is justified because:
It integrates 9 independent analytical frameworks using fundamentally different data and methodologies
The confluence scoring system quantifies setup quality across all components (0-100 scale)
Each component addresses a different market dimension (structure, trend, momentum, strength, volume, institutional flow, timeframe alignment)
Tiered signal system (LONG/STRONG/ULTRA) provides graduated confidence levels
Comprehensive risk management with ATR-based sizing, breakeven, and trailing stops
Component-level dashboard allows traders to understand what drives each trade
Session filtering aligns with institutional trading hours
Integration reveals complete market picture that no single indicator provides
Each component contributes unique information: CPR provides structure, HMA shows trend quality, WaveTrend captures momentum cycles, Divergences warn of exhaustion, ADX measures strength, Volume confirms moves, SMC reveals institutional behavior, MTF ensures alignment, and Key MAs provide institutional context. The strategy's value lies in requiring confluence across these independent frameworks, significantly reducing false signals and focusing capital on only the highest-probability setups where all factors align.
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss and is not suitable for all investors.
Backtesting results do not guarantee future performance. Past results, whether real or indicated by historical tests, are not indicative of future results. There are frequently sharp differences between backtested results and actual results subsequently achieved by any trading strategy.
The confluence score is a mathematical calculation based on current market data, not a prediction of future price movement. High confluence scores do not ensure profitable trades. Market conditions change, and strategies that worked historically may not work in the future.
Commission and slippage settings in backtests may not accurately reflect live trading conditions. Real trading results will vary based on execution quality, market liquidity, broker fees, and other factors not captured in backtesting.
No representation is being made that any account will or is likely to achieve profits or losses similar to those shown in backtests. Users should thoroughly test any strategy in a paper trading environment before risking real capital.
Always use proper risk management. Never risk more than you can afford to lose. The default 2% risk per trade is a guideline - adjust based on your personal risk tolerance and account size. Consider consulting with a qualified financial advisor before making investment decisions.
The author is not responsible for any losses incurred from using this strategy. Users assume full responsibility for all trading decisions made using this tool.
-Made with passion by officialjackofalltrades Strategy

NQ Hourly Retracement Levels# NQ Hourly Retracement Levels
## Overview
This indicator identifies key price levels derived from hourly opens and midpoints formed during the overnight session (6:00 PM – 7:00 AM New York time) and displays them at the start of the New York futures session (8:00 AM ET). Each level is annotated with a statistically-derived hit rate — the historical probability that price will retrace to that level at some point during the 8:00 AM – 4:00 PM NY futures session.
⚠️ IMPORTANT: These statistics are derived exclusively from NQ (Nasdaq 100 E-mini futures) 1-minute data spanning 2013–2025 (~3,785 trading days). They are only valid when applied to NQ futures. Do not use this indicator on ES, YM, RTY, equities, forex, crypto, or any other instrument — the hit rates will not apply.
---
## What Problem Does This Solve?
During the NY futures session, price frequently retraces to levels established in the overnight session before making its directional move. Knowing which overnight levels have the highest historical probability of being touched — and how far away price currently is from them — helps traders identify high-probability targets and plan entries accordingly.
Rather than eyeballing overnight structure, this indicator quantifies it: each level shown on the chart has been tested across thousands of sessions to determine how reliably price returns to it.
---
## How the Statistics Were Calculated
### Data
- Instrument: NQ (Nasdaq 100 E-mini Futures, continuous contract)
- Source data timeframe: 1-minute bars
- Date range: January 2013 – March 2025
- Total days analysed: ~3,785 NY trading sessions
### Methodology
For each trading day, the following were calculated for every hourly level from 12:00 AM through 7:00 AM NY time (opens and midpoints):
1. Level price — For opens, the first 1-minute bar's open at the start of that hour. For midpoints, the high-to-low midpoint of the entire hourly candle ((high + low) / 2).
2. Retracement check — During the NY futures session (8:00 AM – 4:00 PM ET), every 1-minute bar was checked to see if its high-low range contained the level price (i.e., low ≤ level ≤ high). If yes, the level was marked as "hit" for that day.
3. Hit rate — The percentage of days on which the level was hit: retraced_days / total_days × 100.
4. Session pattern — Each day was classified into one of four patterns based on the relationship between the London session range (2:00 AM – 8:00 AM) and the Asia session range (8:00 PM – 2:00 AM):
- London Engulfs Asia: London high > Asia high AND London low < Asia low
- Asia Engulfs London: Asia high ≥ London high AND Asia low ≤ London low
- London Partial Up: London high > Asia high AND London low ≥ Asia low
- London Partial Down: London low < Asia low AND London high ≤ Asia high
5. Pattern-conditional hit rates — Hit rates were recalculated separately within each of the four session patterns, giving more precise probabilities when the morning pattern is known.
6. Adverse Excursion (MAE) — For each retracement, the maximum adverse move was tracked: how far price moved away from the level (in % terms) before eventually hitting it. This was used to derive a typical "tolerance band" per level — the MAE % shown in the table. In the indicator, this value serves as a reference threshold: the Distance from Level column uses it to colour-code how close current price is to each level, giving a sense of whether the level is immediately in play or still some distance away.
### Important Caveats
- Hit rates are historical averages. Any individual session can and will deviate.
- Hit rates do not indicate direction — they only say that price touched the level, not whether it reversed or broke through.
- A level being "hit" does not constitute a trade signal. It is one input among many.
- Statistics are based on the continuous NQ futures contract. Minor differences may exist between contract months or between NQ and MNQ (Micro NQ).
---
## Levels Displayed
At 8:00 AM NY time, the indicator draws horizontal lines for up to 16 overnight levels, subject to the Minimum Hit Rate % filter. Levels are drawn from most recent to oldest:
- 7–8am Mid — High/low midpoint of the 7:00–8:00 AM hourly candle
- 7am Open — Open price of the 7:00 AM hour
- 6–7am Mid — High/low midpoint of the 6:00–7:00 AM hourly candle
- 6am Open — Open price of the 6:00 AM hour
- 5–6am Mid — High/low midpoint of the 5:00–6:00 AM hourly candle
- 5am Open — Open price of the 5:00 AM hour
- 4–5am Mid — High/low midpoint of the 4:00–5:00 AM hourly candle
- 4am Open — Open price of the 4:00 AM hour
- 3–4am Mid — High/low midpoint of the 3:00–4:00 AM hourly candle
- 3am Open — Open price of the 3:00 AM hour
- 2–3am Mid — High/low midpoint of the 2:00–3:00 AM hourly candle
- 2am Open — Open price of the 2:00 AM hour
- 1–2am Mid — High/low midpoint of the 1:00–2:00 AM hourly candle
- 1am Open — Open price of the 1:00 AM hour
- 12–1am Mid — High/low midpoint of the 12:00–1:00 AM hourly candle
- 12am Open — Open price of the 12:00 AM hour
Lines are colour-coded by their MAE tier (see MAE % explanation below) so you can visually distinguish tighter from wider levels at a glance. Each line is labelled with the level name and its hit rate percentage.
Lines extend bar-by-bar through the NY session and are optionally removed when price touches them (see Remove Level When Hit input).
---
## The Statistics Table
The table (displayed during the NY session) provides a live, per-bar reference for the top 11 levels. It has five columns:
### Column 1 — Level
The name of the overnight level (e.g. "7-8am Mid", "6am Open").
### Column 2 — Hit %
The historical hit rate for this level given today's session pattern. If the pattern cannot yet be determined, the overall (pattern-agnostic) hit rate is shown instead. Levels are listed in descending order of hit rate.
### Column 3 — MAE %
The typical Maximum Adverse Excursion tier for this level. This is the approximate percentage move away from the level that was observed in historical data before price eventually retraced — a rough guide to how much drawdown a position targeting this level may experience before it pays off.
MAE colour coding (also applied to the level lines on the chart):
- Blue (≤ 0.25%) — Very tight. Price tended to reach the level quickly with minimal adverse move.
- Purple (≤ 0.30%) — Tight. Small adverse excursion typical.
- Deep Orange (≤ 0.35%) — Moderate. Some heat expected.
- Teal (≤ 0.40%) — Moderate-wide.
- Orange (≤ 0.45%) — Wide. Requires more tolerance.
- Pink (≤ 0.50%) — Wide. Older or more distant levels.
### Column 4 — Dist Now (live, updates every bar)
The current distance between the last close price and the level, expressed as a percentage: abs(close − level) / close × 100.
Colour coding:
- Green — Distance ≤ MAE %. Price is within the typical adverse excursion range. Level is right here and very much in play.
- Yellow — Distance ≤ 2× MAE %. Price is approaching. Worth watching closely.
- Orange — Distance ≤ 3× MAE %. Level is possible but price needs to travel further to reach it.
- Grey — Distance > 3× MAE %. Level is far away, lower priority for the current bar.
Once a level has been hit, this cell shows "Hit ✓" in teal rather than a distance.
### Column 5 — Status
- Pending (yellow) — Level has not yet been touched this session.
- Hit ✓ (teal) — Price has traded through this level at some point during today's NY session.
### Header rows
- Active Session — Confirms the NY session is live (shown in red). Outside NY hours the table shows "Closed".
- Pattern — The detected London/Asia session pattern for today. This determines which set of conditional hit rates is shown.
- Active Levels — The number of level lines currently drawn on the chart (decreases as levels are hit and removed, if that option is enabled).
---
## Session Boxes
In addition to the level lines, the indicator draws session range boxes for three sessions:
- NY Session (8:00 AM – 4:00 PM ET) — Red by default
- London Session (2:00 AM – 8:00 AM ET) — Blue by default
- Asia Session (8:00 PM – 2:00 AM ET) — Orange by default
Each box tracks the high and low of its session in real time. These boxes serve both as visual context and as the input to the London/Asia pattern detection logic.
---
## Inputs Reference
### Trading Sessions
- Show NY Session (default: On) — Draws the NY session range box.
- NY Session Colour (default: Red) — Colour of the NY box border and background tint.
- Show London Session (default: On) — Draws the London session range box.
- London Session Colour (default: Blue) — Colour of the London box.
- Show Asia Session (default: On) — Draws the Asia session range box.
- Asia Session Colour (default: Orange) — Colour of the Asia box.
- Range Area Transparency (default: 90) — Opacity of the session box fill. 0 = fully opaque, 100 = invisible.
- Range Outline (default: On) — Whether to draw the session box border.
### Hourly Levels
- Show Hourly Levels at NY Open (default: On) — Master toggle. Draws all overnight levels at 8:00 AM.
- Show Hourly Opens (default: On) — Whether to include hourly open levels.
- Show Hourly Midpoints (default: On) — Whether to include hourly midpoint levels.
- Minimum Hit Rate % to Display (default: 75%) — Only levels with a hit rate at or above this threshold are drawn. Raise it to reduce clutter; lower it to see more levels. 75% is a reasonable default for NQ.
- Line Width (default: 1) — Thickness of the level lines. Range: 1–5.
- Retracement Line Style (default: Dashed) — Visual style of the level lines: Solid, Dashed, or Dotted.
- Label Size (default: Small) — Size of the text labels on each line: Tiny, Small, Normal, or Large.
- Remove Level When Hit (default: On) — When enabled, a level line and its label are deleted the moment price touches the level. Keeps the chart clean as the session progresses. Disable if you want all levels to remain visible throughout the session.
### Table Settings
- Show Statistics Table (default: On) — Master toggle for the stats table.
- Stats Table Position (default: Bottom Right) — Where the table appears on the chart. Options: Bottom/Middle/Top combined with Left/Center/Right.
- Stats Table Size (default: Small) — Text size inside the table: Auto, Tiny, Small, Normal, Large, or Huge.
---
## Recommended Usage
1. Apply only to NQ futures (CME: NQ1!, NQ continuous, or a specific front-month contract). The statistics do not transfer to other instruments.
2. Use on a timeframe of 1 minute to 15 minutes for the level lines and distance column to be most meaningful. On higher timeframes, individual bars may span several levels simultaneously.
3. Check the Pattern row in the table at the NY open. The indicator automatically applies pattern-conditional hit rates — so the percentages shown already reflect the historical accuracy for today's specific London/Asia relationship. The Asia Engulfs London pattern historically produces the highest hit rates across nearly all levels; London Engulfs Asia tends to produce the lowest. If the pattern shows as "Unknown" (rare, typically on the first bars of a chart load), the indicator falls back to overall hit rates.
4. Focus on green Dist Now cells at the NY open — these are levels price is already at or very close to. Green means you are within the typical adverse excursion zone, so risk is relatively defined.
5. Use the MAE % as a stop/risk guide — if price is at a level with a 0.25% MAE, a stop placed beyond 0.25% from the level is consistent with how the historical data behaved. This is not a hard rule but a statistical reference point.
6. Hit rate ≠ trade signal. A 94% hit rate on the 7–8am midpoint means price touched that level on 94% of historical days. It says nothing about whether price reversed, broke through, or what the risk/reward of any particular trade was.
---
## Known Limitations
- Replay / historical bars: The Dist Now column is live and reflects the current bar's close. On historical bars it will show the closing price of that bar, not today's live price.
- Pattern detection requires completed sessions: If the London or Asia session data is incomplete (e.g. on the first few bars of a new chart load), the pattern may show as "Unknown" and overall hit rates will be used instead of pattern-conditional rates.
- Level collisions: If two levels are very close in price (within ~0.5 points), their labels may overlap. Switching Label Size to Tiny can help if this is an issue on your layout.
- Contract rollovers: Around futures contract expiry, price gaps can cause overnight levels to be further from price than usual. Exercise judgement during roll weeks.
---
## Methodology Notes
Pattern classification, hit rate calculation, and adverse excursion analysis were computed from 12 years of NQ 1-minute data using Python (pandas). All times are New York (Eastern) time. Indicator

NY 5m & 15m Orb - Statistics & LTF Candle structureNY Opening Range (Enhanced with LTF) - NQ Futures Only
⚠️ IMPORTANT: NQ FUTURES ONLY
This indicator and ALL statistical probabilities are based on 12 years of historical analysis of NQ (Nasdaq-100 E-mini futures) ONLY. The probabilities, median extensions, and predictions are NOT applicable to ES, stocks, forex, or any other instruments. Use on other instruments at your own risk - the statistics will not be valid.
What This Indicator Does
The NY Opening Range (ORB) indicator tracks and visualizes the first 5 minutes (9:30-9:35 AM ET) and first 15 minutes (9:30-9:45 AM ET) of the New York trading session, providing:
Opening Range Zones - Visual boxes showing the high, low, and midpoint of each timeframe
Statistical Extension Levels - Median price targets based on 12 years of NQ data analysis
Lower Timeframe (LTF) Candles - Displays 1-minute candles from the OR period positioned to the right of current price for detailed structure analysis
Live Statistics Table - Real-time probability calculations that update as conditions are met throughout the session
The indicator helps traders identify high-probability setups by showing where price is statistically likely to move based on:
Opening range direction (bullish/bearish)
Which extreme formed first (high or low)
Whether price has broken the range
Current market structure
Key Features
5-Minute ORB (9:30-9:35 AM ET)
Opening range box with customizable bullish/bearish colors
Midpoint line (optional)
Median extension levels at +0.41% (high) and -0.45% (low)
1-minute LTF candles showing internal structure
Extension probability: 84.9% (upside), 81.0% (downside)
15-Minute ORB (9:30-9:45 AM ET)
Opening range box with customizable bullish/bearish colors
Midpoint line (optional)
Median extension levels at +0.38% (high) and -0.42% (low)
1-minute LTF candles showing internal structure
Extension probability: 77.2% (upside), 73.5% (downside)
Statistics Table
The table displays real-time probabilities for:
Direction: Whether the OR candle was bullish or bearish
Extreme First: Which level (high or low) was touched first during the OR period
Extension ↑/↓: Probability that price will break above the high or below the low
Midpoint Retest: Likelihood of price returning to test the midpoint (varies 71-88% based on conditions)
IB Prediction: Predicted direction of Initial Balance (9:30-10:30 AM, varies 50-74%)
Next Break: Most likely direction of next range break (varies 59-80%)
Session Close: Predicted direction of 4:00 PM cash close (varies 49-74%)
Each statistic shows a status indicator:
🟡 Pending (yellow): Condition hasn't been confirmed yet
🟢 Validated (teal): Condition has been met and confirmed
Configuration & Inputs
5-Minute ORB Settings
Colors:
Bullish Color: Color for bullish OR candles (default: bright green)
Bearish Color: Color for bearish OR candles (default: purple)
Bullish Fill / Bearish Fill: Semi-transparent fill colors for the range box
Range Display:
Range Style: Line style for high/low (Solid/Dashed/Dotted)
Width: Border width (1-10)
Show Midline: Toggle midpoint line visibility
Midline Style & Width: Customization for midpoint line
Median Extensions:
Show Median Extensions: Toggle extension levels
Extension Style & Width: Line customization
Show Extension Labels: Display percentage labels on extension lines
LTF Candles:
Show LTF Candles: Toggle 1-minute candle display
Number of Candles: How many recent candles to show (1-20, default: 5)
Offset: Distance from current bar in bars (default: 5)
Candle Spacing: Space between LTF candles (1-5)
Candle Width: Width of each LTF candle body (1-5)
LTF Bullish/Bearish Colors: Colors for LTF candles
Show LTF High/Low Lines: Display range of LTF candles
LTF Range Style, Width & Color: Customization for LTF range lines
15-Minute ORB Settings
(Same structure as 5-minute, with different defaults for LTF offset: 35 bars, and 15 candles)
Labels & Display
Show High/Low/Mid Labels: Toggle price level labels
Show Prices: Include actual price values in labels
Position: Place labels on Left or Right side of range
Statistics Table
Show Statistics Table: Toggle table visibility
Table Position: 9 position options (Top/Middle/Bottom × Left/Center/Right)
Table Size: Text size (Auto/Tiny/Small/Normal/Large/Huge)
Important Notes About LTF Candles
⚠️ Chart Timeframe Requirements:
LTF candles will NOT render properly if your chart timeframe is higher than the ORB timeframe:
For 5-minute ORB: Use chart timeframe ≤ 5 minutes
For 15-minute ORB: Use chart timeframe ≤ 15 minutes
Recommended chart timeframes: 1-minute, 2-minute, or 5-minute for best LTF candle visualization.
The LTF candles are "frozen" at the end of the OR period and displayed to the right of the orb box for the session. They show the internal 1-minute structure of how the opening range formed, which can be valuable for:
Identifying the order of extreme formation
Seeing liquidity sweeps or stop hunts
Understanding the microstructure of the opening auction
How to Read the Statistics Table
The statistics table uses a conditional probability system based on the 5-minute and 15-minute ORB characteristics:
Initial Conditions (Always Shown)
Direction: Bullish if close ≥ open, Bearish if close < open - Always validated
Extreme First: Which level (high or low) was touched first during the OR period - Validated after OR period ends
Progressive Statistics (Shown When Conditions Met)
Extension ↑/↓: Base probabilities that price will eventually break the high/low
Midpoint Retest: Probability varies based on direction + extreme first combination
IB Prediction: Predicted Initial Balance direction based on ORB pattern
Next Break: Most likely next level to break (high or low) based on current conditions
Session Close: Predicted 4PM close direction - only shown after a breakout occurs
Status Indicators
🟡 Pending: Waiting for condition to occur (you're watching for it)
🟢 Validated: Condition has been confirmed (it happened)
Example Interpretation:
5-MIN ORB
Direction: Bullish
Extreme First: Low First
Extension ↑: 84.9%
Extension ↓: 81.0%
Midpoint Retest: 81.8%
IB Prediction: Bullish 68.7%
Next Break: High 79.9%
Session Close: Bullish 67.1%
This tells you:
The 5-min candle closed bullish
The low was tested before the high during 9:30-9:35
Price has broken below the low (Extension ↓ validated)
Despite breaking the low, there's a 79.9% chance the high breaks next
If the high breaks, there's a 67.1% chance of a bullish cash close
Median Extension Levels Explained
The extension levels are NOT stop loss or take profit targets. They represent the median (50th percentile) price extension observed over 12 years of data when the high or low was breached.
5-Minute ORB:
High Extension: +0.41% above the OR high (median upside extension)
Low Extension: -0.45% below the OR low (median downside extension)
15-Minute ORB:
High Extension: +0.38% above the OR high
Low Extension: -0.42% below the OR low
These levels show where price typically extends to, but:
50% of extensions go further than these levels
50% of extensions don't reach these levels
They are reference points, not guarantees
Disclaimer
These Are Statistics, Not Predictions
All probabilities shown in this indicator are derived from historical analysis of 12 years of NQ futures data. They represent what has happened historically, not what will happen.
Important Limitations:
A 75% probability means it happened 75% of the time historically - but also failed 25% of the time
Past performance does not guarantee future results
Market conditions change; regime changes can invalidate historical patterns
Statistics are based on NQ futures only - not valid for other instruments
Risk Warning:
Do NOT trade based solely on these probabilities
Always use proper risk management and position sizing
These statistics should be ONE input among many in your trading decisions
No indicator, system, or probability can eliminate trading risk
You can lose money even when trading "high probability" setups
Recommended Use:
Use probabilities as confluence with your existing trading strategy
Combine with price action, order flow, and market context
Track the statistics yourself to verify they remain valid
Be aware that widely-known statistical edges tend to diminish over time
Technical Considerations
The indicator uses request.security and request.security_lower_tf which may cause repainting on the last bar
LTF candles are "frozen" after the OR period ends to prevent repainting
All statistics are calculated in real-time but validate only after conditions are fully met
The Initial Balance (9:30-10:30 AM) is used for certain probability calculations
Use at your own risk. Trade responsibly. Indicator

Initial Balance Statistical MappingInitial Balance Statistical Mapping
Overview
The Initial Balance (Enhanced) indicator is a sophisticated trading tool designed specifically for NQ (Nasdaq-100 E-mini Futures) during New York trading hours. It provides data-driven insights based on comprehensive analysis of 12 years of 1-minute price data (2013-2025), offering traders probabilistic forecasts for intraday price movement based on the market's behavior during the critical first hour of trading.
What is Initial Balance?
Initial Balance (IB) refers to the price range established during the first hour of the New York cash session (9:30-10:30 AM ET). This concept, pioneered by legendary trader Peter Steidlmayer as part of Market Profile theory, represents a critical period where the market establishes its initial value area for the day.
The IB high and low create key reference points that professional traders use throughout the session to:
Identify potential support and resistance levels
Gauge market directional bias
Set realistic profit targets
Assess market volatility and range expectations
Statistical Foundation
This indicator is built on rigorous statistical analysis of 12+ years of NQ futures data (over 3,000 trading sessions), examining:
Opening Range Patterns: 5-minute and 15-minute opening ranges
Initial Balance Characteristics: Directional bias, extreme formation sequence, and closing position
Breakout Behavior: Which IB boundary breaks first and subsequent price action
Midpoint Dynamics: Probability and timing of midpoint retests
Session Outcomes: Correlation between IB patterns and daily close direction
Extension Targets: Historical percentile-based price projections beyond IB boundaries
The statistical combinations tracked include:
IB direction (bullish vs bearish) × Extreme formed first (high vs low) × Close position (above vs below midpoint)
Post-break behavior (confirmation, reversal, or range-bound)
Conditional probabilities for over 16 unique market scenarios
Visual Components
1. IB Box
A shaded rectangular area highlighting the first hour's price range:
Top boundary: IB High
Bottom boundary: IB Low
Midpoint line: The 50% level of the IB range
Customizable colors for the fill, border, and midpoint
2. Extension Levels
Percentile-based price targets above and below the IB boundaries, calculated from historical extension data:
Above IB High:
25th percentile: +0.14% extension
Median (50th): +0.31% extension (default display)
75th percentile: +0.60% extension
90th percentile: +1.00% extension
Below IB Low:
25th percentile: -0.16% extension
Median (50th): -0.38% extension (default display)
75th percentile: -0.79% extension
90th percentile: -1.37% extension
These levels represent targets that historically occur at the specified frequency. For example, the median extension suggests that 50% of the time, the market extends at least this amount beyond the IB boundary when it breaks out.
3. Statistics Table
A dynamic information panel displaying real-time probabilities and historical context (detailed in "Interpreting the Statistics Table" section below).
Input Parameters
Calculation Period
IB Period: Default 0930-1030 (9:30-10:30 AM ET)
Defines the time window for Initial Balance calculation
Should match the first hour of NY cash session
Regular Trading Hours: Default 0930-1600 (9:30 AM - 4:00 PM ET)
Extension lines only display during these hours
Statistics table appears during RTH only
Prevents visual clutter during overnight sessions
Display Options
Show IB Box: Toggle the shaded IB range rectangle
Only Show Current IB: When enabled, previous days' IB boxes are removed (keeps chart clean)
Show Extension Labels: Display percentile labels on extension lines
Show Extensions: Individual toggles for each extension level
Colors
IB Box Color: Customize the shaded range fill (default: semi-transparent blue)
Box Border Color: Border line color (default: gray)
Midpoint Color: Midpoint line color (default: gray)
Extension Color: All extension lines and labels (default: blue)
Styling
Line Style: Choose Solid, Dashed, or Dotted for IB box borders and midpoint
Extension Line Style: Separate style control for extension levels
Extension Line Width: 1-4 pixels thickness
Extension Label Size: Tiny/Small/Normal/Large/Huge
Statistics Table
Table Position: 9 placement options (corners, edges, center)
Table Size: Auto/Tiny/Small/Normal/Large/Huge
Sessions for IB Stats: Number of previous sessions (5-250) to calculate rolling IB range statistics
Higher values = more stable averages
Lower values = more responsive to recent market conditions
Default: 50 sessions
Interpreting the Statistics Table
The statistics table is the analytical core of this indicator, providing probabilities derived from 12 years of historical NQ data. It updates in real-time as the trading day progresses.
Section 1: IB Characteristics
IB Direction
Bullish (green): IB close > IB open
Bearish (red): IB close < IB open
This reflects whether the first hour closed higher or lower than it opened
Extreme First
High First: The IB high was established before the IB low during the first hour
Low First: The IB low was established before the IB high
This sequence often indicates early momentum direction
Close Position
Above Midpoint: IB close is above the midpoint of the IB range
Below Midpoint: IB close is below the midpoint
This shows where buying/selling pressure finished within the range
Section 2: Historical Pattern & Probabilities
Historical Pattern
Shows the number of sessions (out of 3,000+) that match the current IB combination
Example: "151 sessions" means this exact pattern (e.g., Bullish + High First + Close Above Mid) occurred 151 times
Larger sample sizes (>100) provide more reliable probabilities
Smaller samples (<50) should be interpreted with appropriate caution
Next Break
Predicts which IB boundary will break first:
HIGH: Price likely to exceed IB high before IB low
LOW: Price likely to breach IB low before IB high
Neither: Higher probability that both boundaries remain intact for the session
Shows the highest probability outcome with its percentage
Based on what actually happened in similar historical sessions
Midpoint Retest
Probability that price will return to the IB midpoint at some point during the session
Initially shows "PENDING" status (orange)
Updates to "✓ CONFIRMED" (green) when the midpoint is touched after IB formation
Calculated based on sessions where price left the midpoint (>0.1% threshold) and returned
Average/median time to retest is tracked in the underlying data
Session Close
Highlighted row (green background): The key predictive metric
Predicts whether the NY cash session (9:30 AM - 4:00 PM ET) will close:
Bullish: Close > IB open (green)
Bearish: Close < IB open (red)
Shows the probability of the more likely outcome
This is arguably the most actionable statistic for directional bias
Section 3: IB Range Statistics
Current Range
The actual point value of today's IB range (IB High - IB Low)
Useful for comparing to historical norms
Mean (X/Yd)
Average IB range over the lookback period
"X/Y" indicates X sessions were captured out of Y lookback days
May be less than lookback if some days had incomplete data or early closures
Percentile Rank (color-coded cell)
Shows where today's IB range ranks relative to recent sessions:
Blue tint (<20th percentile): Unusually narrow range - expect potential expansion
Light gray (20-60th): Normal range
Dark gray (60-80th): Above average range
Red tint (>80th percentile): Unusually wide range - may indicate high volatility or potential consolidation
Format: "92nd" means today's range is larger than 92% of the last n sessions (n is defined by the lookback period)
Section 4: Post-Break Analysis (Dynamic Section)
This section appears only after the IB high or IB low is broken, replacing the standard table with expanded statistics.
━ IB HIGH BROKEN ━ or ━ IB LOW BROKEN ━
Orange header indicates which boundary was exceeded
Triggers when price definitively breaks through IB high or low
Historical Breaks
Number of times this specific pattern (IB direction + close position + break direction) occurred historically
Example: "1134 times" means this combination has broken the IB high 1,134 times in the dataset
Mid Retest Prob
Probability that price will return to test the IB midpoint after breaking out
Critical for entry/re-entry decisions and stop placement
Percentages typically range from 40-65% depending on the pattern
If Retest Occurs:
Shows three potential outcomes if the midpoint is retested after the break:
Bounce Back UP/DOWN (Confirmation - green text)
After breaking IB high and retesting midpoint → bounces back up (confirms bullish breakout)
After breaking IB low and retesting midpoint → bounces back down (confirms bearish breakdown)
This is the "successful retest" scenario traders often look for
Reverse to LOW/HIGH (Reversal - red text)
After breaking IB high and retesting → reverses and breaks IB low (failed breakout)
After breaking IB low and retesting → reverses and breaks IB high (failed breakdown)
The "trap" scenario that catches breakout traders
Stays in Range (neutral text)
Price retests midpoint but then remains between the midpoint and the opposite IB extreme
No additional breakout in either direction
Consolidation/balance scenario
Example Interpretation:
━ IB HIGH BROKEN ━
Historical Breaks: 1134 times
Mid Retest Prob: 44.9%
If Retest Occurs:
Bounce Back UP : 41.3% (confirms the high break)
Reverse to LOW : 39.1% (breaks IB low instead)
Stays in Range : 19.6% (consolidates)
This tells you:
This pattern has broken the IB high 1,134 times historically
There's a 44.9% chance price will retest the midpoint after breaking
IF it retests, there's roughly an equal chance it bounces back up (41.3%) or reverses to break the low (39.1%)
Only 19.6% of retests result in consolidation
This would be a high-risk breakout due to the near-equal probability of confirmation vs. reversal
How the Statistics Are Calculated
Data Collection Methodology
The Python analysis script processes:
12+ years of 1-minute NQ futures data (2013-2025)
3,000+ trading sessions
Only NY cash session data (9:30 AM - 4:00 PM ET)
Adjusted for early closures (holidays, half days)
Conditional Probability Framework
The indicator uses a nested conditional probability structure:
Level 1: IB Direction
Bullish (close > open) vs Bearish (close < open)
Level 2: IB Extreme Sequence
High First vs Low First
Determined by which extreme was reached first during IB formation
Level 3: IB Close Position
Close Above Midpoint vs Close Below Midpoint
Where within the range did the IB close?
Level 4: Break Direction
Which boundary broke first after IB?
High Breaks / Low Breaks / Neither
Level 5: Midpoint Retest Behavior (post-break)
Did midpoint get retested after break?
If yes: Confirmed / Reversed / Stayed in Range
This creates specific combinations like:
"Bullish IB + Low First + Close Above Mid" → 76.7% bullish session close (1,281 historical occurrences)
"Bearish IB + High First + Close Below Mid" → 73.9% breaks low first (1,127 occurrences)
Extension Percentile Calculations
For each session, the maximum extension beyond each IB boundary is measured:
High Extension: (Session High - IB High) / IB High × 100
Low Extension: (IB Low - Session Low) / IB Low × 100
These extensions are collected across all sessions, and percentiles are calculated:
25th percentile: 25% of sessions extend at least this far
50th percentile (Median): 50% of sessions extend at least this far
75th percentile: 75% of sessions extend at least this far
90th percentile: 90% of sessions extend at least this far
Note: Sessions with no extension (price never exceeded the IB boundary) are included in the dataset as zero-extension values. This is statistically important because it means:
The median extension of +0.31% above IB high means 50% of ALL sessions (including those that never broke the high) extended at least this far
This is a conservative, realistic measure of actual market behavior
IB Range Percentile Rank
The rolling percentile rank compares today's IB range to the previous N sessions (default 50):
Collect IB ranges for the past 50 sessions
Count how many of those ranges were smaller than today's range
Divide by total sessions and multiply by 100
Example: If 34 of the past 50 sessions had smaller IB ranges than today:
Percentile = (34/50) × 100 = 68th percentile
Today's range is larger than 68% of recent sessions
Real-Time Validation & Updates
The statistics table evolves as the trading day progresses:
Pre-IB Formation (9:30-10:30 AM)
Table shows "PENDING" for all fields in orange
No predictions yet, as IB hasn't formed
Useful as a reminder that IB is still forming
IB Formation Complete (10:30 AM)
All IB characteristics are determined and displayed
Historical pattern sample size is shown
Probabilities are populated based on the specific IB combination
"Midpoint Retest" shows expected probability with "PENDING" status
During Trading Session (10:30 AM - 4:00 PM)
Midpoint Retest status updates from "PENDING" to "✓ CONFIRMED" if midpoint is touched
Table remains stable showing initial probabilities
Extension levels continue to be displayed
After IB Breakout
Entire table is dynamically rebuilt when IB high or low is broken
Post-break statistics section is added
Shows refined probabilities specific to the break direction
Midpoint retest probability is now specific to post-break behavior
End of Session (4:00 PM)
Table is removed from chart
IB box and extensions remain visible for reference
Resets for next trading session
Practical Trading Applications
1. Directional Bias
Use the "Session Close" prediction to establish your directional bias for the day
Higher percentages (>70%) suggest stronger historical edge
Consider trading with the bias rather than against it
2. Breakout Trading
"Next Break" probability helps anticipate which boundary is more likely to break
Wait for confirmation, but prepare for the higher-probability direction
Use extension levels as initial profit targets
3. Mean Reversion
High "Midpoint Retest" probabilities (>80%) suggest mean reversion opportunities
After a break, if retest probability is high, consider waiting for the pullback
Post-retest statistics help determine whether to fade or trade with the move
4. Risk Management
Wide IB ranges (>75th percentile) may suggest:
Higher volatility day requiring wider stops
Potential for consolidation or smaller extensions
More challenging trading conditions
Narrow IB ranges (<25th percentile) may suggest:
Compressed volatility ready to expand
Potential for larger extensions when breakouts occur
Clearer directional moves
5. Trade Filtering
Use the statistics to avoid low-probability setups
If "Session Close" and "Next Break" align (both bullish or both bearish), confidence is higher
Conflicting signals suggest a more balanced, range-bound day
6. Exit Strategy
Extension percentiles provide logical profit targets:
Conservative: 25th percentile (smaller move, higher hit rate)
Moderate: 50th percentile (median expectation)
Aggressive: 75th-90th percentile (larger move, lower hit rate)
After a midpoint retest, use the post-retest probabilities to decide whether to hold or exit
Important Notes & Disclaimers
Timeframe Specificity
This indicator is designed exclusively for NQ futures
Statistics are derived from NY cash session hours only (9:30 AM - 4:00 PM ET)
Do not use on other instruments or timeframes without independent validation
The IB period should always be set to the first hour of the NY session
Statistical Interpretation
Probabilities are not certainties - a 70% probability means 30% of the time the opposite occurs
Sample size matters - combinations with <50 occurrences should be treated with caution
Market conditions evolve - the 12-year dataset includes various market regimes, but future behavior may differ
Past performance ≠ future results - these statistics are educational and analytical tools, not guarantees
Best Practices
Use this indicator as one component of a comprehensive trading plan
Combine with price action, volume analysis, and market context
Paper trade strategies based on these statistics before risking real capital
Keep a trading journal to track how probabilities play out in real-time
Adjust position sizing based on probability strength and your risk tolerance
Data Quality
Statistics are based on continuous NQ futures data (rollover-adjusted)
Early session closures, half days, and holidays are included in the dataset
Gaps and overnight moves are not considered in the analysis (only RTH data)
The indicator auto-detects early closures and adjusts the RTH end time accordingly
Technical Requirements
Platform: PulseWire (Pine Script v5)
Instrument: NQ (Nasdaq-100 E-mini Futures) recommended; adaptable to ES or YM with separate validation
Timeframe: Works on any intraday timeframe (1-min, 5-min, 15-min, etc.)
Lower timeframes (1-5 min) recommended for precision
Session Settings: Chart timezone should be set to "America/New_York" or equivalent for accurate IB timing
Data Requirements: Sufficient historical data to populate IB range statistics (minimum 50 sessions)
Version History & Updates
Current Version: Enhanced Initial Balance with Conditional Statistics (v1.0)
Key Features:
12-year statistical foundation (2013-2025)
16+ conditional pattern combinations
Dynamic post-break analysis
Real-time midpoint retest validation
Percentile-based extension targets
Rolling IB range analysis
Comprehensive statistics table
Conclusion
The Initial Balance (Enhanced) indicator transforms 12 years of market data into actionable, probabilistic insights for NQ traders. By understanding the historical behavior of specific IB patterns, traders can:
Make more informed directional decisions
Set realistic profit targets based on statistical extension frequencies
Anticipate mean reversion opportunities with midpoint retest probabilities
Manage risk with context-aware range analysis
Avoid low-probability setups and focus on higher-edge opportunities
This is not a "black box" system or a magic formula. It's a transparent, data-driven framework that provides historical context to inform your trading decisions. The statistics table doesn't tell you what will happen - it tells you what has historically happened when similar patterns emerged, allowing you to trade with probabilistic edges rather than guesses. Indicator

Indicator

NeuraEdge ORB - Opening Range Breakout IndicatorOVERVIEW
NeuraEdge ORB is an open-source Opening Range Breakout indicator that automates the classic 15-minute ORB strategy. The indicator tracks the first 15 minutes of market action (9:30-9:45 AM ET), identifies breakouts above or below this range, and generates trading signals with automated stop loss and take profit calculations.
The Opening Range Breakout concept is based on the observation that the initial price action after market open often establishes directional bias for the trading session, as institutional order flow and overnight gap reactions manifest during this window.
CORE METHODOLOGY
Opening Range Construction:
The indicator uses session-based time detection to identify the 9:30-9:45 AM Eastern Time window. During this period, it tracks the highest high and lowest low to establish the opening range boundaries. The range is marked complete when the 15-minute window closes.
Calculation process:
OR High = Maximum high value during the 15-minute window
OR Low = Minimum low value during the 15-minute window
OR Midpoint = (OR High + OR Low) / 2
Range Size = OR High - OR Low (compared to 14-period ATR for context)
Breakout Detection:
The indicator identifies breakouts using close-price confirmation to reduce false signals from wicks:
Bullish breakout: Close above OR High (with previous close at or below OR High)
Bearish breakout: Close below OR Low (with previous close at or above OR Low)
The indicator tracks whether each direction has already broken to prevent duplicate signals on the same range.
Entry Type Logic:
Two entry methodologies are supported:
Breakout Mode - Signals immediately upon range break. Enters on the breakout bar when close confirms direction.
Retest Mode - Waits for price to break the range, then pullback to touch the range level before entering. Cancels if price moves too far beyond midpoint. This provides better entry prices with tighter stop losses.
Volume Confirmation:
Optional volume filter compares current bar volume to 20-period simple moving average. Requires volume > 1.2x average to validate breakout strength and filter low-conviction moves.
Fair Value Gap (FVG) Integration:
Optional confluence filter that checks for unfilled FVG in the breakout direction:
Bullish FVG detected when: current bar's low > two bars ago high (creating gap)
Bearish FVG detected when: current bar's high < two bars ago low (creating gap)
Minimum FVG size: 0.3x ATR to filter noise
FVG considered filled when price retraces to gap midpoint
Signals only generate when an unfilled FVG exists in the breakout direction, adding institutional order flow confluence.
Risk Management Calculations:
Three stop loss placement methods:
Opposite Side - SL at opposite end of opening range (classic ORB approach)
Midpoint - SL at range midpoint (tighter risk, lower reward potential)
ATR Based - SL at 1.5x ATR from entry (adaptive to volatility)
Take profit calculated as: Entry ± (Entry - Stop Loss) × Risk:Reward Ratio
Default 1.5:1 R:R ratio, adjustable from 1.0 to 5.0.
Performance Tracking:
The indicator maintains a trade history using Pine Script's type system:
Records entry price, stop loss, take profit, and direction for each signal
Tracks outcome when price hits stop loss or take profit levels
Auto-closes after 80 bars if neither level hit
Calculates rolling win rate from last 50 trades maximum
Displays W/L record in real-time dashboard
VISUAL COMPONENTS
Opening Range Box:
Semi-transparent blue box drawn from range start bar to current bar + 20, showing the established range boundaries visually.
Range Levels:
Green line at OR High (potential long entry level)
Red line at OR Low (potential short entry level)
Gray dotted line at OR Midpoint (reference level)
All lines extend 50 bars forward for anticipation.
Trade Signals:
Green up arrow with "LONG ORB Break" label below price
Red down arrow with "SHORT ORB Break" label above price
Dashed lines showing SL and TP levels extending 30 bars
Small labels marking SL and TP endpoints
Real-Time Dashboard:
Top-right panel displaying:
OR formation status (Forming / Complete / Waiting)
Current OR High, Low, and Range size (with ATR multiple)
Breakout status (Long / Short / None)
Volume status (High / Normal)
FVG presence (Bull / Bear / None)
Entry settings (Breakout/Retest, R:R, SL type)
Win rate percentage and W/L record
PRACTICAL APPLICATION
Ideal Market Conditions:
Liquid instruments: SPY, QQQ, IWM, high-volume stocks
Recommended timeframes: 1-minute or 5-minute charts for precise entries
Most effective during trending days with clear directional bias
Range size between 0.5-1.5x ATR typically provides best risk:reward
Usage Workflow:
Apply indicator at market open (9:30 AM ET)
Observe range formation during first 15 minutes
Wait for "Complete" status in dashboard
Monitor for breakout signals with volume/FVG confirmation
Enter on signal, place stop loss and take profit as marked
Avoid taking opposing signals on same day (trend following approach)
Retest vs Breakout Selection:
Use Breakout mode on high-momentum days with strong overnight gaps
Use Retest mode on slower days or when seeking better entry prices
Retest mode reduces signal frequency but improves entry quality
Time-of-Day Considerations:
The indicator includes a trading cutoff setting (default 3:00 PM ET) to avoid late-day chop and reduced liquidity. First-hour breakouts (10:00-11:00 AM) historically show strongest follow-through.
SETTINGS & CUSTOMIZATION
Display Options:
Toggle signals, opening range box, and dashboard independently
Clean visual design to reduce chart clutter
Opening Range Settings:
Opening range duration (5-60 minutes in 5-minute increments)
Default 15 minutes aligns with classic ORB methodology
Trading cutoff hour (10-16, representing 10:00 AM - 4:00 PM ET)
Entry Configuration:
Entry type (Breakout / Retest)
Volume confirmation toggle (requires 1.2x average volume)
FVG confluence toggle (requires unfilled gap in breakout direction)
Risk Management:
Stop loss placement (Opposite Side / Midpoint / ATR Based)
Risk:reward ratio (1.0 - 5.0, default 1.5)
Future: Trail stop after partial TP (currently placeholder)
Alert System:
Five alert conditions available:
Opening Range Complete
ORB Long Signal
ORB Short Signal
Breakout Up (range broken, regardless of signal)
Breakout Down (range broken, regardless of signal)
BEST PRACTICES
Recommended Usage:
Focus on highly liquid instruments with tight spreads
Use 1-5 minute charts for entry precision
Respect calculated stop losses (range defines maximum risk)
Typically 1-2 quality setups per day maximum
Consider overall market trend (SPY/QQQ direction)
Risk Considerations:
Very small ranges (< 0.3x ATR) prone to false breakouts
Very large ranges (> 2x ATR) may indicate gap day requiring adjusted expectations
Low volume breakouts fail more frequently
Avoid trading both directions on same day (pick strongest setup)
IMPORTANT DISCLOSURES
This indicator is provided free and open-source for educational purposes. The Opening Range Breakout strategy is a well-documented public domain trading concept. This implementation adds automation, visual clarity, and optional confluence filters.
No indicator guarantees profitable trades. Past performance does not predict future results. Traders are responsible for their own trading decisions and risk management. Always use appropriate position sizing and never risk more than you can afford to lose. Indicator

Daily Floor PivotsDaily Floor Pivots with Comprehensive Statistical Analysis
Overview
This indicator combines traditional floor pivot levels with golden zone analysis and comprehensive statistical insights derived from 15 years of historical NQ futures data. While the pivot levels and golden zones can be applied to any instrument, the statistical tables are specifically calibrated for NQ/MNQ futures based on analysis of 2,482 NY Regular Trading Hours (RTH) sessions from 2010-2025.
What Makes This Indicator Original
Unlike standard pivot indicators that merely plot levels, this tool provides:
Enhanced Golden Zone Analysis: Calculates not only the main golden zone (0.5-0.618 retracement of previous day's range) but also golden zones between each pivot pair (PP-R1, R1-R2, R2-R3, PP-S1, S1-S2, S2-S3)
Data-Driven Statistical Tables: Two comprehensive tables displaying real statistics from 2,482 trading days of NQ analysis, including:
Probability-based touch rates and continuation patterns
Context-aware statistics based on opening position
Gap analysis and behavioral patterns
First touch dynamics and time-to-reach averages
Granular Customization: Every visual element and statistical section can be independently toggled, allowing traders to focus on what matters most to their strategy
How It Works
Pivot Calculation Methodology
The indicator uses the standard floor pivot formula based on the previous day's price action:
Pivot Point (PP) = (Previous High + Previous Low + Previous Close) / 3
Resistance Levels: R1, R2, R3 calculated from PP and previous range
Support Levels: S1, S2, S3 calculated from PP and previous range
Golden Zone Calculations
Main Golden Zone: The 0.5 to 0.618 Fibonacci retracement of the previous day's range, representing a key reversal and continuation area.
Inter-Pivot Golden Zones: For each adjacent pivot pair, golden zones are calculated as:
Resistance pairs (PP→R1, R1→R2, R2→R3): 0.5-0.618 range from the lower pivot
Support pairs (PP→S1, S1→S2, S2→S3): 0.382-0.5 range from the upper pivot
These zones represent high-probability areas where price tends to react when moving between pivot levels.
Statistical Analysis Source
All statistics displayed in the tables are derived from external Python analysis of 15 years of 1-minute NQ futures data (2010-2025), specifically analyzing NY RTH sessions (9:30 AM - 4:00 PM EST). The analysis tracked:
2,482 complete trading days
Intraday pivot touches and closes
Opening position context
Gap behavior relative to previous day
Time-of-day patterns
Sequential pivot interactions
IMPORTANT: While the pivot levels and golden zones are universally applicable mathematical calculations that work on any instrument, the statistical percentages shown in the tables are specific to NQ/MNQ behavior only. Do not assume these statistics transfer to other instruments.
Configuration Guide
Basic Settings
Number of Periods Back (1-20, default: 3)
Controls how many historical pivot periods are displayed on the chart
Setting to 1 shows only current day's pivots
Higher values show more historical context
Labels Position (Left/Right)
Choose whether pivot labels appear on the left or right side of each level line
Line Width (1-5, default: 2)
Adjust the thickness of all pivot and golden zone lines
Golden Zone Customization
Show Daily Golden Zone (0.5-0.618)
Toggle the main golden zone on/off
When enabled, displays a shaded box between the 0.5 and 0.618 retracement levels
Line Color / Fill Color
Customize the appearance of the main golden zone
Fill color determines the shaded box transparency
Show Labels / Show Prices
Control whether "0.5" and "0.618" labels appear
Control whether price values are displayed on labels
Inter-Pivot Golden Zones
Six toggle options allow you to show/hide individual golden zones:
PP to R1 / PP to S1: Most frequently touched (60.8% / 50.9%)
R1 to R2 / S1 to S2: Moderately touched (25.2% / 24.0%)
R2 to R3 / S2 to S3: Rarely touched (9.4% / 10.5%)
Line Color / Fill Color: Customize appearance of all inter-pivot zones
Show Labels / Show Prices: Control labeling for inter-pivot zones
Usage Tip: Disable outer zones (R2-R3, S2-S3) on lower volatility days to reduce chart clutter.
Pivot Display
Show Support/Resistance Levels: Master toggle for all pivot lines
Show SR Labels / Show SR Prices: Control labeling on pivot levels
Individual level toggles and colors:
PP (Pivot Point): The central reference point
R1/S1: Primary resistance/support (38.9% / 35.4% touch rate)
R2/S2: Secondary levels (15.6% / 16.1% touch rate)
R3/S3: Extended levels (5.1% / 7.3% touch rate)
Color Customization: Each level's color can be independently set
Overall Statistics Table
Show Overall Statistics Table: Master toggle
Table Size: tiny/small/normal/large/huge/auto
Table Position: Top Left/Top Right/Bottom Left/Bottom Right
Section Toggles (enable/disable individual sections):
Current Session Info
Touch & Close Rates
Continue & Reject Rates
First Touch Statistics
Golden Zone Statistics
Daily Close Distribution
Highest/Lowest Levels Reached
Context Statistics Table
Show Context Statistics Table: Master toggle
Table Size: tiny/small/normal/large/huge/auto
Table Position: Top Left/Top Right/Bottom Left/Bottom Right
Section Toggles:
Current Opening Zone
Opening Zone Statistics
Previous Day Gap Context
Understanding the Statistical Tables
TABLE 1: OVERALL STATISTICS
This table presents universal statistics from 2,482 days of NQ analysis.
Current Session Info
Displays real-time context for the active session:
Open: Where the current RTH session opened relative to pivots (e.g., "GZ_TO_R1" means opened between the PP-R1 golden zone and R1)
Now: Current price position relative to pivots
Direction: Bull (close > open), Bear (close < open), or Flat
How to use: This section helps you quickly understand where price opened and where it currently is, providing immediate context for the day's action.
Touch & Close Rates
Shows probability that each pivot level will be reached during RTH:
Touch %: Percentage of days where price touched this level at any point
Example: R1 touched 38.9% of days, PP touched 57.5% of days
Close %: Percentage of days where price closed beyond this level
Example: R1 close beyond happened 39.8% of days
How to interpret:
Higher touch rates indicate more reliable levels for intraday targeting
The difference between touch and close rates shows rejection frequency
PP has the highest touch rate (57.5%), making it the most magnetic level
Outer levels (R3/S3) have low touch rates (5.1%/7.3%), indicating rare extension days
Continue & Reject Rates
When a level is touched, these statistics show what happens next:
Continue %: Probability price continues through the level
Example: When PP is touched, price continues 88.1% of the time
Reject %: Probability price rejects from the level and reverses
Example: When R1 is touched, price rejects 50.9% of the time
How to interpret:
PP shows highest continuation (88.1%), confirming it's a poor reversal level
Support levels (S1/S2/S3) show strong rejection rates (62.5%/60.7%/56.1%), making them better reversal candidates
Continuation rates above 80% suggest the level is better as a target than an entry
First Touch Statistics
Analyzes which pivot is typically touched first during RTH:
1st Touch %: Probability this level is the first pivot encountered
PP is first touched 37.1% of days (most common)
R1 is first touched 26.0% of days
S1 is first touched 10.9% of days
1st→Continue: If this level is touched first, probability of continuation
S1-S3 show 95.6%-100% continuation when touched first
This means when price reaches support first, it usually continues lower
Avg Time: Minutes after 9:30 AM EST before first touch
PP: 1h 6m average
S3: 19m average (when bearish)
R3: 3h 19m average (when bullish)
How to interpret:
Opening away from PP means higher probability of reaching extremes (R2/R3 or S2/S3)
When support is touched first (within first 2 hours), expect continuation lower
Late-day first touches (after 2 PM) often indicate strong trending days
Multi-Touch: Shows how often levels are tested multiple times (92.8%-95.0% across all levels)
Golden Zone Statistics
Main GZ: 58.5% touch rate for the 0.5-0.618 zone
Inter-Pivot zones:
PP-R1: 60.8% (highest probability)
PP-S1: 50.9%
R1-R2: 25.2%
S1-S2: 24.0%
R2-R3: 9.4%
S2-S3: 10.5%
How to interpret:
Main GZ is touched more often than any individual resistance level
PP-R1 and PP-S1 golden zones are high-probability mean reversion areas
Outer golden zones (R2-R3, S2-S3) are only relevant on high volatility days
Daily Close Distribution
Shows where RTH sessions typically close:
Above/Below PP: 58.5% close above, 41.5% below (slight bullish bias)
Above R1: 24.5% of days
Below S1: 18.7% of days
In GZ: Only 6.3% close in the golden zone (typically transits through it)
How to interpret:
Most days (58.5%) have bullish bias (close above PP)
Less than 25% of days are strong trending days (beyond R1/S1)
Golden zone is an action area, not a resting area
Highest/Lowest Levels Reached
Distribution of the most extreme level reached:
High Resist: R1 (26.0%), R2 (10.8%), R3 (5.1%)
Low Support: S1 (35.4%), S2 (1.9%), S3 (0.6%)
How to interpret:
Most days don't reach beyond R1 or S1
R3/S3 are rare events (5.1%/0.6%), indicating major trending days
S1 is reached as lowest level more often than R1 as highest, suggesting downside is more frequently tested
TABLE 2: CONTEXT STATISTICS
This table provides conditional statistics based on how the session opened.
Current Opening Zone
Displays which of 13 possible zones the RTH session opened in:
ABOVE_R3, R2_TO_R3, R1_TO_R2, GZ_TO_R1, IN_GZ, PP_TO_GZ, AT_PP, GZ_TO_PP, S1_TO_GZ, S2_TO_S1, S3_TO_S2, BELOW_S3
How to use: This immediately tells you the market structure and what type of day to expect.
Opening Zone Statistics
Detailed statistics for the current opening zone (only shows for 6 major zones):
For each zone, you see:
Occurs: How often this opening scenario happens
GZ_TO_R1: 38.4% (most common)
AT_PP: 12.8%
S1_TO_GZ: 24.2%
R1_TO_R2: 9.4%
S2_TO_S1: 6.3%
IN_GZ: 3.8%
Bull/Bear %: Close direction probability
Example: GZ_TO_R1 is perfectly balanced (50.0% bull / 49.6% bear)
R1_TO_R2 is bullish (58.1% bull / 41.0% bear)
Levels Hit: Probability of reaching each pivot level from this opening
Helps identify high-probability targets
Example: From GZ_TO_R1, PP is hit 52.9%, R1 is hit 49.0%, S1 is hit 21.6%
How to interpret:
GZ_TO_R1 (most common): Balanced day, watch PP and GZ for direction clues
AT_PP: Slight bullish bias (56.9%), high chance of touching both PP (92.8%) and GZ (90.3%)
R1_TO_R2: Bullish bias (58.1%), expect continuation to R2 (58.1% chance)
S2_TO_S1: Bullish reversal setup (59.9%), very high chance of S1 touch (82.8%)
IN_GZ: Rare opening (3.8%), bullish bias, virtually guaranteed GZ touch (100%)
Previous Day Gap Context
Shows current gap scenario and typical behavior:
Three scenarios:
GAP UP: Opened Above Yesterday's High (20.5% of days)
R1 Touch: 65.9% (high probability)
R2 Touch: 42.1%
S1 Touch: 15.0% (low probability)
Bias: Bullish continuation
GAP DOWN: Opened Below Yesterday's Low (11.3% of days)
S1 Touch: 71.5% (high probability)
S2 Touch: 55.2%
R1 Touch: 12.1% (low probability)
Bias: Bearish continuation
NO GAP: Opened Within Yesterday's Range (68.2% of days)
PP Touch: 69.5%
GZ Touch: 71.7%
R1 Touch: 35.2%
Bias: Balanced (watch for direction at PP/GZ)
How to interpret:
Gap days (up or down) tend to continue in the gap direction
When gapping, fade trades are low probability (15.0% and 12.1%)
Most days (68.2%) open within previous range, making PP and GZ critical decision zones
The "bias" line provides clear directional guidance for trade selection
Practical Application Examples
Example 1: Standard Day Setup
Scenario: RTH opens at 20,450
PP: 20,400
GZ: 20,390-20,395
R1: 20,425
Previous day high: 20,460
What the tables tell you:
Opening Zone: "GZ_TO_R1" (38.4% occurrence)
Gap Context: "NO GAP" (68.2% occurrence)
Expected behavior: Balanced (50/50 bull/bear)
High probability: PP touch (52.9%), GZ touch (56.8%)
Moderate probability: R1 touch (49.0%), S1 touch (21.6%)
Trade plan:
Wait for price to reach PP (52.9% chance) or GZ (56.8% chance)
Look for directional confirmation at these levels
First target R1 if bullish, S1 if bearish
Avoid assuming direction without confirmation (perfectly balanced opening)
Example 2: Gap Up Day
Scenario: RTH opens at 20,510
Previous day high: 20,460
R1: 20,425
R2: 20,475
What the tables tell you:
Gap Context: "GAP UP" (20.5% occurrence)
R1 touch: 65.9% probability
R2 touch: 42.1% probability
S1 touch: Only 15.0% probability
Bias: Bullish continuation
Trade plan:
Favor long setups
Target R1 first (65.9% chance), then R2 (42.1%)
If R1 breaks, R2 becomes likely target
Shorting is low probability (only 15.0% reach S1)
Example 3: Opening in Golden Zone
Scenario: RTH opens at 20,393
PP: 20,400
GZ: 20,390-20,395
What the tables tell you:
Opening Zone: "IN_GZ" (rare, only 3.8% occurrence)
Bullish bias: 58.1%
GZ touch: 100% (guaranteed - already there)
PP touch: 75.3%
R1 touch: 41.9%
Trade plan:
Expect price to test PP (75.3% chance)
Slight bullish bias suggests long setups better than shorts
Watch how price reacts at PP - likely to continue to R1 (41.9%)
This is an uncommon opening, suggesting potential for larger moves
Best Practices
Match Your Instrument: Remember, statistics are NQ-specific. If trading other instruments, use the levels but disregard the statistical percentages.
Combine with Price Action: Use the statistics for probability context, not as standalone signals. Always confirm with price action, volume, and your trading methodology.
Adapt Table Display: Don't display all sections all the time. Toggle based on your trading phase:
Pre-market: Focus on "Gap Context" to understand the setup
Market open: Watch "Opening Zone Statistics" for directional bias
Intraday: Monitor "Current Session Info" for position tracking
Understand Context: A 60% touch rate doesn't mean guaranteed—it means 40% of days don't touch. Use these probabilities to size positions and manage expectations.
Inter-Pivot Golden Zones: These are most useful when price is already in motion toward a level. For example, if price breaks above PP heading to R1, the PP-R1 golden zone (60.8% touch rate) becomes a high-probability pullback area.
Time Awareness: The "Avg Time" statistics help you understand urgency. If it's 10:30 AM and S1 hasn't been touched (average is 55 minutes), the window for bearish moves is closing.
Technical Notes
Time Zone: All times referenced are NY/EST
Session Definition: RTH is 9:30 AM - 4:00 PM EST
Calculation Period: Pivots update daily based on previous 24-hour period (18:00 previous day to 17:00 current day)
Data Source: Statistics derived from 12 years of NQ 1-minute futures data (2013-2025)
Sample Size: 2,482 complete RTH trading sessions
Disclaimer
This indicator provides statistical probabilities based on historical NQ futures data. Past performance does not guarantee future results. The statistical tables are educational tools and should not be the sole basis for trading decisions. Always:
Use proper risk management
Combine with your own analysis
Understand that probabilities are not certainties
Remember that statistics are instrument-specific (NQ/MNQ only)
Credits
Statistical analysis performed using Python analysis of 12 years of historical NQ futures data. All pivot and golden zone calculations use standard mathematical formulas applicable to any instrument. Indicator

Session Anchored OIWAP [Arjo]The Session Anchored OIWAP (Open Interest Weighted Average Price) indicator shows you a weighted average price that uses Open Interest (OI) changes during different trading sessions . It divides the day into four clear sessions: Opening Hour , Morning Session , Mid-Day Session , and Closing Session .
For each session , it calculates a weighted average price using both market price and open interest data from futures . This line updates as the session progresses and resets when a new session starts .
You can also see optional deviation bands that you visually compare to how far the market price is moving away from the session’s weighted average. This indicator also helps you watch how Open Interest changes connect with price movements during specific market hours.
Concepts
This tool works on a few simple ideas:
Session anchoring
Each session starts fresh. The indicator resets and begins a new calculation when a new time block begins. This allows users to visually study each session independently.
Open-interest weighting
Instead of treating all price moves equally, price changes linked to higher open-interest activity have more influence on the OIWAP. This gives a weighted reflection of where the market has been trading during the session.
Averaging and smoothing
The OIWAP line blends many price data points into one smooth curve, making it easier to follow than raw price movement.
Volatility display with bands
The upper and lower bands are placed at ±0.5 standard deviation from the OIWAP line. These bands simply help you see when price stretches further away than usual from the session average.
Features
Four Independent Session Calculations: Shows separate OIWAP lines for Opening Hour (default: 09:15-10:15), Morning (10:15-11:30), Mid-Day (11:30-14:00), and Closing (14:00-15:30) sessions
Open Interest Weighting: Uses absolute OI change as the weight instead of traditional volume
Customizable Session Times: You can change the time ranges for each session to match your market or what you need
Optional Deviation Bands: You can turn ±0.5 standard deviation bands on or off around each OIWAP line
Color-Coded Sessions: Each session has its own color so you can tell them apart easily
Selective Display: You can turn individual sessions and bands on or off
Data Availability Check: Shows you a notification when Open Interest data isn't available for your symbol
Adjustable Position Timeframe: You can calculate OI changes on different timeframes (Chart, Daily, 15min, 30min, 60min, 120min)
How to use
Add this indicator to a chart of any symbol that has Open Interest data ( from futures or derivatives contracts). Once you add it, you'll see colored lines showing the OIWAP for each session you enable, along with optional deviation bands.
Adjusting Settings:
Turn individual sessions on or off using the checkboxes in the " Sessions " section
Change session colors to match your chart or what looks good to you
Turn deviation bands on or off using the " Show Bands " option in the Display settings
Change session time ranges in the " Session Times " section to match your market hours or what you want to analyze
Change the Position Timeframe if you want to see OI changes calculated on a different time period
Visual Interpretation:
Each OIWAP line shows you the OI-weighted average price for that session
The deviation bands show you how much prices spread out, weighted by OI changes
You can watch how price interacts with these levels to see where significant OI activity happened
Different sessions may show different OIWAP levels, showing you how the OI-price relationship changes throughout the trading day
Note:
This indicator needs Open Interest data to work. If OI data isn't available for your symbol, you'll see a message in the center of your chart. This indicator works only with derivatives markets like futures and options in the Indian Market where OI data is publicly available.
Conclusion
The Session Anchored OIWAP indicator is designed to support structured market observation by combining price, open interest, and session anchoring into a clear visual format. It helps users study market behavior during different parts of the day without generating trading instructions or outcomes.
Disclaimer
This indicator is for educational and visual-analysis purposes only. It does not provide trading signals , financial advice, or guaranteed outcomes . You should perform your own research and consult a licensed financial professional when needed. All trading decisions are solely the responsibility of the user.
Happy Trading
Indicator
