Historical Annual Avg Growth Lines + 1-Year ProjectionThis script creates an overlay indicator on your TradingView chart that visualizes the historical average annual growth rate of the selected instrument (e.g., TSLA) in a specific way. Here's a step-by-step summary of what it represents and how it works:
Overall Purpose
It calculates the average annual percentage gain (arithmetic mean) across the instrument's entire trading history, using non-overlapping periods of 252 trading days each (approximating one year, excluding weekends/holidays).
It then draws horizontal green lines on the chart for each complete "year" segment, showing a projected "fair value" price level for that year based on the overall average growth rate.
This helps you compare actual historical price action against what the price "would have been" if it had grown steadily at the stock's long-term average annual rate. Lines above actual prices suggest periods where growth exceeded the average (potentially overvalued in hindsight), while lines below suggest underperformance (potentially undervalued).
The calculation excludes the most recent incomplete year (any bars beyond the last full 252-day segment), ensuring only fully realized historical periods are used.
Key Calculations
Identifying Complete Years: It divides the chart's data from the first trading day (bar_index 0) into segments of exactly 252 bars each. For example:
Year 1: Bars 0 to 251
Year 2: Bars 252 to 503
And so on, up to the last full segment before the current bar.
If the total bars aren't a perfect multiple of 252, the partial current year is ignored.
Average Annual % Gain: For each complete year segment:
It computes the % gain as (end_price - start_price) / start_price.
Sums these % gains across all years and divides by the number of years to get the overall average (e.g., if TSLA averaged 42% per year historically, that's the value used).
Projected Price Lines: For each year segment:
Takes the starting price of that year.
Applies the overall average % gain to project a "target" end-of-year price: start_price * (1 + average_annual_gain).
Draws a horizontal line at that projected price level, spanning only the bars of that specific year (e.g., a flat green line covering 252 bars, positioned above or below the actual price action for visual comparison).
Visual Representation
Horizontal Lines: Each green line is flat and covers one historical year block on the chart. Earlier years (left side) will have lower projected prices (reflecting lower starting prices), while later years (right side) will have higher ones as the base price compounds over time—but each is independent and based on that year's start.
No Smoothing or Rolling: Unlike a moving average, these are static historical segments (non-overlapping), recalculated only on the last bar for efficiency.
Example on TSLA: Assuming TSLA's long-term average annual gain is ~42% (based on its history since 2010 IPO), the line for Year 1 would be at * 1.42, spanning the first 252 bars. Year 2 would start from the actual price at bar 252 and project * 1.42, and so on. If lines are consistently above actual prices in recent years, it might indicate recent growth slowing relative to historical averages.
Forward Projection (1 Year Out)
The script also extends a dashed orange horizontal line to the right of the current bar, projecting the price one year into the future based on the same historical average annual growth rate.
It starts from the end price of the last complete historical year as the base.
Applies the average % gain once more to estimate the "target" price after another 252 trading days (e.g., base_price * (1 + average_annual_gain)).
The line is dashed and orange for distinction, extending approximately 252 bars to the right (scroll or zoom right to view the full projection). This provides a visual guide for where the price "might" trend if growth continues at the historical average, helping with long-term investment planning like setting targets or assessing potential upside.
Indikatoren und Strategien
NQ Statistical MapperNQ Statistical Mapper
CRITICAL DISCLAIMER - READ FIRST
WARNING: THIS INDICATOR IS EXCLUSIVELY FOR NQ (NASDAQ-100 E-MINI FUTURES) ONLY
All statistics displayed in this indicator are HARD-CODED values derived from a comprehensive analysis of 12 years (2013-2025) of 1-minute NQ futures data. These statistics are calculated offline using Python and embedded directly into the indicator code.
These probabilities DO NOT apply to any instrument other than NQ
What This Indicator Does
The NQ Statistical Mapper is a data-driven trading tool that displays historical probability statistics for intraday NQ price behavior based on overnight session structure and opening positioning. Rather than generating signals, it provides context by showing:
Three trading sessions with visual boxes: Asia (8PM-2AM), London (2AM-8AM), and New York (8AM-4PM) Eastern Time
Key price levels with historical hit rate percentages showing the probability these levels are touched during the NY cash session (8AM-4PM)
Context-aware statistics that change based on current market conditions
Session range analysis showing whether Asia and London ranges are unusually large or small compared to recent history
Core Methodology and Statistical Foundation
Pattern Detection System
The indicator automatically detects one of four overnight session patterns based on how the London session (2AM-8AM) interacts with the Asia session (8PM-2AM):
London Engulfs Asia: London high is greater than Asia high AND London low is less than Asia low
Asia Engulfs London: Asia high is greater than or equal to London high AND Asia low is less than or equal to London low
London Partial Up: London high is greater than Asia high BUT London low is greater than or equal to Asia low (took out Asia high only)
London Partial Down: London low is less than Asia low BUT London high is less than or equal to Asia high (took out Asia low only)
Each pattern has distinct statistical characteristics that influence NY session behavior.
Conditional Probability Framework
The indicator uses a conditional probability approach where statistics adapt based on:
Primary Condition: Where does NY open (8:00 AM) relative to the London session midpoint?
"NY opens above London midpoint"
"NY opens below London midpoint"
This single condition dramatically changes the probabilities. For example:
When NY opens above London midpoint: 76.68% chance NY hits the London high before the London low during 8AM-4PM
When NY opens below London midpoint: 73.32% chance NY hits the London low before the London high during 8AM-4PM
Secondary Condition: The overnight pattern further refines these probabilities. Each combination of "NY position vs London midpoint" plus "overnight pattern" has unique hit rate statistics calculated from the 12-year dataset.
"Hit First" Statistics Explained
The table displays "Hit High First" and "Hit Low First" percentages. These answer the question: "During the NY cash session (8AM-4PM), if price eventually touches both the London high AND London low, which one does it touch FIRST?"
Example interpretation:
Hit High First: 76.68% means that in 76.68% of historical days with this setup, price touched the London high before touching the London low
Hit Low First: 22.48% means London low was touched first
The remaining approximately 1% represents days where neither level was hit during the NY session
This is fundamentally different from asking "will price go up or down" - it is about the sequence of range expansion during the NY session.
Displayed Levels and Their Meanings
Session Highs/Lows (Solid Lines)
These appear when each session completes and extend through the NY session:
Asia High/Low (Orange): The highest and lowest prices during 8PM-2AM EST
London High/Low (Blue): The highest and lowest prices during 2AM-8AM EST
Each level shows its hit rate percentage - the probability that NY session price (8AM-4PM) will touch that level, based on the current pattern and NY opening position.
Hourly Midpoint Levels (Dashed Gray Lines)
Three specific hourly levels with remarkably high hit rates:
7-8 AM Midpoint: Average of high and low during the 7-8 AM hour. Hit rates consistently above 93-94%, essentially sitting at the 8 AM open price (mean distance: -0.001%)
Midnight Open: The opening price at midnight EST. Hit rates vary from 62-87% depending on pattern and setup
2-3 AM Midpoint: Average of high and low during the 2-3 AM hour. Hit rates range from 67-92%
These levels are derived from mean-reversion behavior - price tends to revisit certain overnight reference points during the NY session.
Session Midpoints (Dotted Lines)
Optional display of Asia and London session midpoints. These lines terminate when their respective sessions end, providing additional reference levels for session positioning.
Statistics Table Breakdown
The table displays five sections of information:
1. SETUP Section
Shows whether "NY opens above/below London midpoint"
Displays the detected overnight pattern (1 of 4 types)
Sample size: Number of historical days matching this exact setup
Hit High First / Hit Low First: Directional bias percentages
2. HIT RATES (8AM-4PM) Section
Shows probability that each level gets touched at any point during the NY cash session:
7-8 AM Midpoint: Almost always touched (93-97% depending on pattern)
Midnight Open: Varies significantly (62-87%) based on whether the overnight pattern is aligned or contrary to NY's opening position
2-3 AM Midpoint: Strong hit rates (67-92%)
These are independent probabilities - they do not predict which is hit first, just whether each level gets visited.
3. ASIA RANGE Section
Real-time comparison of today's Asia session range versus recent history:
Sessions Captured: Shows how many sessions are in the rolling calculation (e.g., "18 / 50" = 18 sessions captured out of 50 requested). This alerts users if their chart history is insufficient
Current Range: Today's Asia high minus Asia low in points
Mean Range: Average range over the captured sessions
Percentile Rank: Where today's range falls in the distribution
80th percentile (red background): Unusually large range - top 20% of days
60-80th percentile (light gray): Above average
20-60th percentile (white): Normal range
Less than 20th percentile (light blue): Unusually small range - bottom 20% of days
4. LONDON RANGE Section
Identical structure to Asia Range section, analyzing the London session's range characteristics.
Why Percentile Rank Instead of Standard Deviation?
Intraday ranges exhibit right-skewed distributions with fat tails (volatility spikes create extreme outliers). Percentile rank is distribution-free and robust to these characteristics, providing more reliable identification of unusual ranges than z-scores or standard deviations.
How To Use This Indicator
For Context and Confluence
This is not a standalone trading system. The indicator provides statistical context to support other analysis:
Understanding Session Bias: If the table shows 76% probability of hitting the session high first, you know there is a statistical lean toward upside range expansion
Target Setting: If trading a breakout above the overnight high, knowing that Asia high gets hit 75% of the time helps assess target viability
Entry Timing: The 7-8 AM midpoint's 94% hit rate makes it an excellent re-entry or scaling level
Range Expansion Assessment: Percentile rankings help identify whether overnight sessions showed abnormal volatility, which may influence NY session behavior
Pattern-Specific Insights
London Partial Up plus NY Opens Below London Midpoint:
Midnight open hit rate jumps to 87.82% (strong mean reversion)
Suggests counter-trend reversal back toward overnight lows is likely
London Partial Down plus NY Opens Above London Midpoint:
Midnight open hit rate is 86.30%
Mirror pattern - reversion toward overnight highs
Asia Engulfs London Pattern:
Very high hit rates (85-98%) across all levels
Suggests consolidation/mean reversion during NY session rather than directional expansion
Typical Workflow
8:00 AM: Review the statistics table - which pattern occurred? Where did NY open relative to London midpoint?
Check Hit Rates: Note which levels have the highest probabilities of being touched
Assess Range Percentiles: Are Asia/London ranges unusually large or small? High percentiles may indicate already-extended ranges
Combine With Your Strategy: Use the statistics as confluence with your technical analysis, support/resistance, or order flow
Customization Options
Trading Sessions Settings
Session Visualization:
Toggle each session on/off independently
Customize colors for each session (New York, London, Asia)
Adjust background transparency using "Range Area Transparency" slider (0-100, default 90)
Show/hide session outlines with "Range Outline" checkbox
Each session has three customizable parameters on the same line:
Checkbox to enable/disable the session
Text field to rename the session label if desired
Color picker to select the session's display color
Hit Rate Levels Settings
Master Controls:
"Show Hit Rate Levels" - Master toggle to show or hide all level lines and labels
Individual Level Toggles:
"7-8 AM Midpoint" - Toggle the 7-8 AM hour midpoint level
"Midnight Open" - Toggle the midnight opening price level
"2-3 AM Midpoint" - Toggle the 2-3 AM hour midpoint level
Hourly Level Styling (applies to 7-8 AM Mid, Midnight, and 2-3 AM Mid):
"Hourly Level Color" - Color picker for all three hourly levels
"Hourly Level Line Width" - Thickness of hourly level lines (1-5, default 1)
"Hourly Level Line Style" - Choose between Solid, Dashed, or Dotted lines (default Dashed)
Session High/Low Styling (applies to Asia High/Low and London High/Low):
"Session High/Low Line Width" - Thickness of session extreme lines (1-5, default 1)
"Session High/Low Line Style" - Choose between Solid, Dashed, or Dotted lines (default Solid)
Additional Options:
"Show Session Midpoints" - Toggle display of Asia and London midpoint reference lines (dotted lines that end when each session completes)
"Label Text Size" - Size of percentage labels on all levels (tiny, small, normal, large, default small)
Table Settings
Statistics Table Controls:
"Show Statistics Table" - Master toggle to display or hide the entire statistics table
"Stats Table Position" - Choose from 9 positions on the chart:
Top: Top Left, Top Center, Top Right
Middle: Middle Left, Middle Center, Middle Right
Bottom: Bottom Left, Bottom Center, Bottom Right
"Stats Table Size" - Text size within the table (Auto, Tiny, Small, Normal, Large, Huge, default Small)
"Sessions for Stats Calculation" - Number of historical sessions to use for percentile calculations (5-100, default 50)
Lower values (20-30): More responsive to recent market conditions
Higher values (50-100): More stable baseline, requires more chart history
The table displays "Sessions Captured" to show how many sessions were actually available
Important Limitations and Considerations
1. This Is Historical Data, Not Prediction
The statistics show what happened in the past given similar setups. Markets evolve, regimes change, and past probability does not guarantee future outcomes. A 75% hit rate means that in 25% of historical cases, the level was NOT hit.
2. Chart History Requirements
TradingView imposes data limits:
5-minute chart: Approximately 10 days of history (enough for minimal statistics)
1-minute chart: Approximately 2-3 days of history (insufficient for percentile calculations)
Use 5-minute or higher timeframes to ensure adequate session capture
The table displays "Sessions Captured" (e.g., 18/50) to alert you when your chart history is limited.
3. Session Timing Is Fixed (EST)
All sessions use America/New_York timezone:
Asia: 8PM-2AM
London: 2AM-8AM
NY: 8AM-4PM
These times do not adjust for daylight saving changes in other regions. The definitions match CME NQ futures trading hours.
4. The Statistics Are From 2013-2025 Data
The 12-year analysis period includes:
Multiple market regimes (bull/bear/sideways)
Various volatility environments
QE, taper tantrums, COVID, 2022 bear market, 2023-2024 rally
However, it is still a limited sample. Future market structure changes (algorithmic trading evolution, regulatory changes, etc.) may alter these probabilities over time.
5. No Real-Time Calculation
This indicator does not recalculate statistics based on your chart's data. It displays pre-calculated probabilities. The only real-time calculations are:
Which pattern occurred today
Where NY opened relative to London midpoint
Current session ranges and their percentile ranks (based on your chart's recent history)
Statistical Methodology Details
Data Source
Instrument: NQ (Nasdaq-100 E-mini Futures) continuous contract
Timeframe: 1-minute bars
Period: January 2013 - January 2025 (12 years)
Sample Size: 3,132 trading days analyzed
Analysis Approach
Each trading day was classified by overnight pattern (4 types). NY opening position vs London midpoint was determined. For each combination (4 patterns times 2 positions equals 8 scenarios), the following was measured:
How often each level (session highs/lows, hourly midpoints) was touched during 8AM-4PM
Which session extreme (high or low) was hit first
Mean distance from 8 AM open to each level
Session ranges were measured for percentile analysis. All percentages were rounded to two decimal places for display.
Why These Specific Levels?
The levels were not chosen arbitrarily:
Session highs/lows: Natural support/resistance from overnight price discovery
7-8 AM midpoint: The final hour before NY open often establishes the opening range balance point
Midnight open: Represents the "true" start of the trading day (6PM-5PM structure)
2-3 AM midpoint: Captures early London price action balance
Testing showed these levels had the highest and most consistent hit rates across different patterns and setups.
Technical Implementation Notes
Language: Pine Script v5
Drawing Objects: Uses boxes for session visualization, lines for levels, labels for percentages, table for statistics
Performance: Optimized for real-time use with max limits set (500 boxes, 500 lines, 500 labels)
Calculations Per Bar:
Session detection (3 sessions)
Hourly detection (3 hourly periods)
Pattern classification
Conditional probability lookup
Percentile rank calculation (for session ranges)
All heavy statistical analysis was performed offline. The indicator only performs simple lookups and real-time range tracking.
Educational Value
Beyond trading application, this indicator demonstrates:
Conditional Probability: How market context (opening position, overnight structure) dramatically changes probabilities
Mean Reversion Dynamics: Why certain levels (7-8 AM midpoint, midnight) have such high revisit rates
Pattern Recognition: How overnight session relationships create different NY session behaviors
Distribution Analysis: Using percentile ranks instead of parametric statistics for skewed data
Understanding these concepts helps traders develop more sophisticated market models beyond simple "support and resistance."
Final Notes
This indicator is a tool for informed decision-making, not a crystal ball. It answers questions like:
"What typically happens in this setup?"
"How often does price revisit these levels?"
"Is this overnight range unusual?"
It does NOT answer:
"Should I buy or sell right now?"
"Where will price be at 4 PM?"
"What will happen tomorrow?"
Combine these statistics with proper risk management, sound trading strategy, and awareness that any individual day can deviate significantly from historical norms. The power of this indicator lies in providing objective, data-driven context to complement your analysis - not in replacing your judgment.
Farjeat Breakout HuntersThis indicator detects accumulation and distribution zones, as well as areas of highest trading volume, providing buy or sell signals upon breakouts. 85% effectiveness across all timeframes, all markets, and all trading sessions.
CRZTestBuildV2At market open, the indicator plots daily zones derived from the previous session's range and volatility, using statistically common extensions and reactions from similar prior days. These zones act as areas of interest where price commonly stalls, reverses, or accelerates, which makes them useful or HOD/LOD reference and structure trade entries.
Log-Returns Anomaliad Z-score + VolatilidadLog-Returns: Anomalías (Z-score + Volatilidad)
Log-Returns: Anomalies (Z-score Volatility) This is the mathematically correct way to measure the price change between two periods
Pivot Points - Camarilla. Gives 6 different option for pivot points. Camarilla - Classic - Fibonacci etc.
Time frame. Auto or fixed time option.
Label Position. Left - Right.
Label Vertical Position. Above - center - below.
Label offset. Option.
Label Vertical offset. Option.
Line width and style option.
Line color option.
Jays indicatorA multi timeframe emas and trends on same chart.
By default the current timeframe is selected and additionally weekly ema/trend and monthly ema is added.
Wolf Alpha Sentinel🎯 Why Wolf Alpha Sentinel?
-BOS & CHoCH Triggers: Break of Structure (BOS) and Change of Character (CHoCH) are not just labels; they are the core trading signals that mark the start of a trend or a true shift in market direction. Thanks to the displacement filter, only real, high-volume breakouts are highlighted.
-Deep Reversal Zone (1.272 – 1.414): Goes beyond standard Fibonacci levels. The 1.272 – 1.414 range—where price sweeps liquidity and reaches an “extreme overbought/oversold” condition—is marked as the most critical reversal area.
-Optimal Trade Entry (OTE): Automatically boxes the institutional pullback zones between 0.62 – 0.79.
-Mitigation Logic: Tested zones fade out visually, allowing you to instantly see which areas are still fresh and actionable.
🐺 Sniper Strategy: 55-Minute HTF + 3-Minute LTF
To extract maximum performance from this indicator, a Top-Down Analysis approach is recommended:
-Macro Bias (55 Minutes): The indicator continuously tracks the 55-minute market structure in the background. When you see a BOS or CHoCH label on your chart, you are officially a “hunter” in that direction.
-Entry Timeframe (3 Minutes): Once the primary direction is defined, switch your chart to the 3-minute timeframe.
-Deep Liquidity Hunt: Wait for price to retrace into the 1.272 – 1.414 (Deep Reversal) or OTE zones defined by the 55-minute structure, using 3-minute candles.
-Trigger: When price taps into these deep zones, execute the trade based on a micro structure break or a clear candlestick formation on the 3-minute chart.
Why 55m & 3m?
-55 Minutes: Reveals the true intentions of large players (Smart Money) and filters out market noise.
-3 Minutes: Tightens your stop distance and maximizes your risk-to-reward ratio. Entering on the 3-minute chart from a 55-minute zone is like riding an elephant with the risk of an ant.
💡 Strategy Summary
This indicator is built on the logic of price clearing liquidity in the 1.272 – 1.414 zone and then joining the main trend through a BOS/CHoCH continuation move.
BOS/CHoCH Impulsive Move Detector #12.2Includes all updates. This indicator includes all BOS & CHoCH impulses and identifies impulses of greater than 5% and differentiates between longs and shorts.
Mine Shaft + Drift + Ore Pocket Detector (Gap+Touch)Mine Shaft + Drift + Ore Pocket Detector (Gap+Touch) — Full Description (v1.6.1, Pine v6)
*Experimental - *Test Phase*
1) What this indicator is intended to do
This indicator attempts to algorithmically discover “mine shaft” price structure on a chart by:
Collecting structural anchor points (gaps and optionally pivots),
Generating candidate trend “rails” (centerline + parallel upper/lower borders) from pairs of anchors,
Fitting an optimal channel width around each candidate centerline,
Scoring candidates based on how well price action conforms to the channel (touches + containment),
Selecting and rendering:
the main shaft channel (primary),
additional drifts (secondary shafts per direction),
And then detecting Ore Pockets: time locations where multiple selected lines intersect (time confluence / intersection clustering).
The conceptual model is:
A shaft = a best-fit channel that price respects over time (the “main tunnel”).
Drifts = alternate channels close in quality to the main shaft (secondary tunnels).
Ore pockets = future/past time coordinates where multiple channels’ centerlines intersect densely (confluence in time, not necessarily in price).
2) What it is doing right now (current behavior)
In its current form, the script does a bounded, performance-limited scan:
It stores a limited number of anchor points in arrays.
It only considers a bounded number of recent anchors per direction.
It constructs candidate lines from anchor pairs and evaluates channel fitness using sampled bars.
On the last bar, it selects top candidates per direction and draws:
a “main” channel per mode (single best overall, or separate up/down),
plus optional drift channels,
plus ore pocket markers.
It is producing meaningful channels and drifts, but it is currently more likely to lock onto a strong “local” shaft than the one macro shaft spanning the entire market structure.
3) Core mechanics (how the script finds shafts)
3.1 Anchor generation (what points it uses)
Anchors are the “support points” used to build candidate shaft centerlines.
Two anchor families are supported:
A) Gap anchors (from your selected gap mode)
These attempt to capture “displacement events” and their boundaries/mids.
B) Pivot anchors (optional structural anchors)
These use pivots to inject macro structure points that are not strictly gap-based.
All anchors are stored as:
anchorX: bar_index of anchor
anchorY: price of anchor
anchorD: direction flag (+1 for up, -1 for down)
Anchors are capped by maxAnchors with FIFO trimming.
3.2 Candidate generation (how it produces centerlines)
For each direction (+1 and -1):
Collect “recent” anchors of that direction within lookbackBars (bounded to maxDirAnchors).
For each pair of anchors (x1,y1) and (x2,y2) that satisfy:
spacing within ,
slope sign consistent with direction,
Construct the line equation:
slope m and intercept b
Fit a channel width w around that line (via width mode).
Score it (touches + inside count minus width penalty).
Keep the top K rails (K = driftCount+1 typically).
3.3 Scoring model (what “best” means right now)
For a candidate centerline:
At sampled bars (stride sampling), compute:
channel top = y(x) + w
channel bot = y(x) - w
Evaluate:
Inside: candle range fits within the channel ± tolerance
Touches: high near top border, low near bottom border (within tolerance)
Score formula:
score = insideCount * insideWeight
+ touchCount * touchWeight
- (w / ATR) * widthPenalty
So:
Higher inside and touch counts increase score
Wider channels are penalized (in ATR units) to avoid “cheating” via enormous width
3.4 Width fitting (how the channel thickness is chosen)
Width is either:
Fit (scan widths): scans widths between a min width and a max deviation cap and selects the best scoring width.
Fixed ATR Envelope: uses a fixed width derived from ATR (currently hard-coded to a 2.0 ATR envelope in your present draft).
Fixed Max Deviation: width is max observed deviation from line in sampled window.
This matters because “macro shaft” detection is strongly influenced by whether the width-fitting is allowed to expand enough to contain large historical moves, without being penalized into losing to a smaller local shaft.
3.5 Rendering (what gets drawn)
For any selected rail, it draws:
Upper border line (top rail)
Lower border line (bottom rail)
Optional centerline (main only)
Optional fill between borders (main only)
Label at current bar with touches and inside count
Drifts render similarly but without main-only features (depending on flags).
3.6 Ore Pocket detection (time confluence)
Ore pockets are not “price zones” directly.
They are computed as follows:
Collect selected centerlines (m,b) for:
the main selected shaft(s),
and all drift centerlines (both directions if present)
For each pair of selected lines, compute intersection x-coordinate:
x* = (b2 - b1) / (m1 - m2)
Only keep intersections within:
Cluster intersections by time proximity (clusterBars)
Mark the strongest clusters (highest counts) as “Ore Pocket” vertical dotted lines with labels.
Interpretation:
A dense cluster indicates many selected rails converge around a similar time coordinate.
It is a “time confluence” hypothesis point.
4) Full settings reference (what each setting is for)
01) Gap Anchors
Gap Mode
FVG (3-candle)
Uses a classic 3-candle fair value gap pattern:
Up gap if low > high
Down gap if high < low
Anchors are derived from the gap boundaries.
Candle Gap (open-close)
Gap based on open vs close of the same bar with a tick threshold.
Candle Gap (open-prev close)
Gap based on open vs close with a tick threshold.
Gap Threshold (ticks)
Only used for the candle gap modes.
Controls the minimum gap size required to register an anchor.
Anchor Price
Boundary: anchors at one gap boundary (more “structural edge”)
Mid: anchors at midpoint of the gap (more “center of displacement”)
Include Pivot Anchors (structure)
When enabled, adds pivots as additional anchors to stabilize macro detection.
Pivot Length
Pivot sensitivity (how many bars left/right define a pivot).
Larger values = fewer, more structural pivots.
02) Channel Fit + Touch Scoring
Lookback Bars
The historical window used to:
filter which anchors are considered “recent enough”
evaluate channel fitness (sampled evaluation)
Larger lookback tends to favor macro shafts, but also increases computational risk (mitigated by evalBars and stride).
ATR Length
ATR period used for tolerance and width penalty scaling.
Tolerance (ATR mult)
Defines how close price must be to a rail to count as “touch” and how strict the “inside channel” containment is.
Higher tolerance = easier to score high on touch/inside.
Min Border Touches (keep rail)
Minimum number of border touches required before a candidate is even eligible.
Score: Inside Weight
Weight of inside count in score.
Score: Border Touch Weight
Weight of border touches in score.
This is a strong driver of “shaft-like” behavior.
Score: Width Penalty (in ATRs)
Penalizes wide channels relative to ATR.
Higher penalty biases toward narrow/local shafts.
03) Performance Controls
Max Stored Anchors (global)
Maximum anchor points kept in memory arrays.
Too low can cause loss of macro structure; too high increases candidate noise.
Max Anchors / Direction (scan)
Hard cap on how many anchors are used in candidate generation per direction.
Critical: this strongly influences whether macro shaft can be found, because if you only keep the most recent anchors, you lose the early-structure anchor points.
Eval Bars (max)
Maximum historical bars actually evaluated for scoring.
Even if lookbackBars is large, evaluation is capped here.
Eval Stride (sample every N bars)
Sampling step for evaluation.
Larger stride = faster but less accurate scoring.
04) Candidate Generation
Min Anchor Spacing (bars)
Minimum distance between the two anchors used to define a candidate line.
Prevents micro-noise lines from being evaluated.
Max Anchor Spacing (bars)
Maximum distance between the two anchors used to define a candidate line.
If this is too low, you cannot generate truly macro candidate lines.
05) Shaft + Drift Display
Main Shaft Mode
Best Overall (Single Shaft): chooses one best rail among Up/Down and draws it as main.
Up Only: show only the best upward rail.
Down Only: show only the best downward rail.
Up + Down: show both main up rail and main down rail simultaneously.
Show Ascending Shaft
Toggles rendering for the “up” main shaft (when mode allows it).
Show Descending Shaft
Toggles rendering for the “down” main shaft (when mode allows it).
Drifts per Direction
Number of additional top-ranked rails to draw per direction (after the best one).
Extend Lines
Right: extend lines to the right only.
Both: extend both left and right.
Fill Main Shaft Channel
Fill between upper and lower borders for main shaft.
Main Shaft Fill Transparency
Transparency level for main fill.
Show Main Shaft Centerline
Draw the dashed centerline for the main shaft.
06) Ore Pocket (Intersection-Time Confluence)
Show Ore Pockets (Time Confluence)
Enables ore pocket discovery and rendering.
Intersection Window Forward (bars)
How far into the future intersections are considered.
Intersection Window Backward (bars)
How far into the past intersections are considered.
Cluster Radius (bars)
How close in time intersections must be to merge into a cluster.
Min Intersections per Cluster
Minimum cluster count required before a pocket is shown.
Max Pocket Markers
Limit how many pocket clusters are drawn.
07) Visual Controls
Show Gap Anchors
Displays the gap anchor dots for debugging.
Show Pivot Anchors
Displays pivot anchor dots for debugging.
5) How to use it (practical workflow)
Step A — Confirm anchor behavior
Turn on Show Gap Anchors.
Choose your Gap Mode.
Verify you are seeing anchors where you expect (displacement boundaries).
If anchors are sparse:
Reduce gap threshold (ticks) for candle-gap modes
Enable pivots to inject structure
Increase lookbackBars and maxAnchors so early anchors are not dropped
Step B — Get stable main shaft candidate discovery
Enable Include Pivot Anchors with a medium pivotLen.
Use Fit (scan widths) initially.
Increase Max Anchors / Direction (scan) so you’re not only using recent anchors.
Increase Max Anchor Spacing so macro pairs are eligible.
If you keep getting only local shafts:
That is usually because the candidate pool does not include enough old anchors, or the maxSpacing prevents long-span lines.
Step C — Tune scoring so the “whole-structure” shaft wins
If the script picks a small local channel instead of the macro channel:
Increase insideWeight relative to touchWeight (macro channels tend to contain longer structure even with fewer perfect “touches”)
Reduce widthPenalty, because macro channels may need to be wider to accommodate historical volatility
Increase lookbackBars and evalBars to make “whole-structure fit” matter
Step D — Drifts as secondary shafts
Once main shaft is good:
Increase Drifts per Direction
Validate that drifts represent meaningful alternate sub-shafts rather than noisy duplicates.
If drifts look too similar:
This is expected if many candidates differ only slightly; future refinements should diversify drift selection (see “what still needs done”).
Step E — Ore pockets interpretation
Ore pockets indicate time confluence of multiple rails.
Use them as:
“Time windows to watch”
Not as deterministic price levels
Tune:
clusterBars (cluster tightness)
minClusterSize (signal strength)
6) What still needs done (explicit backlog)
The macro “main mining shaft channel” spanning the entire market structure, and
Smaller shafts/drifts nested inside the macro structure.
To accomplish that, the current algorithm needs additional architecture. Concretely:
A) True multi-scale / hierarchical discovery (primary missing feature)
Right now: one pass, one lookback, one score objective.
Still Needed:
Macro pass: discover a primary shaft using a very long evaluation window and anchor set.
Micro pass(es): discover drifts/secondary shafts using:
residuals (distance from macro centerline),
or segmented time windows (regime partitions),
or anchor subsets constrained to local regions.
This is the single biggest reason we are not consistently getting the full-structure shaft.
B) Anchor retention strategy for macro detection
Right now:
anchors are FIFO capped and direction scanning uses “recent anchors only.”
To reliably find 10-year shafts we need:
an option to store/retain representative anchors across the entire history, not only the most recent ones.
Examples of necessary improvements:
“Stratified anchor sampling” across time (keep some old anchors even when maxAnchors is hit)
“Macro anchor bank” (separate storage for pivots or major gaps)
C) Candidate generation constraints must support macro lines
If we want a shaft spanning the whole structure:
maxSpacing must allow it
the candidate pool must contain anchors far apart in time
So the algorithm needs:
better selection of anchor pairs for long-span candidates (e.g., include earliest/oldest anchors + newest anchors deliberately, not accidentally)
D) Drift diversification
Right now drifts are “next best by score,” which often yields near-duplicates.
We want:
“diverse” secondary shafts:
enforce minimum angular difference,
enforce minimum offset difference,
or penalize candidates too similar to the already-selected shaft.
E) Width fitting logic for macro channels
Macro channels often require:
either a higher width cap,
or a different penalty profile.
Current width penalty is simple and can bias against macro channels.
Needed:
width penalty that scales by timescale or by total evaluated bars,
or separate macro/micro scoring.
F) Ore pocket semantics enhancement (optional but aligned)
Currently pockets are time intersections only.
If you want “pocket zones,” improvements could include:
projecting intersection price and drawing a zone box,
clustering in (time, price) space instead of only time,
adding “importance” weighting based on which lines intersect (macro line intersections weighted higher).
7) Known limitations (current version)
Heavy compute only runs on last bar (good for performance), but means:
changes in anchors/parameters can reselect rails abruptly
Candidate set is bounded; macro shaft can be missed if not in pool
Drift selection can be redundant
Ore pockets are time clusters, not price clusters
btall//@version=5
strategy("AR | AlphaEdge Pro (No-Repaint) v1.0",
overlay=true,
initial_capital=100000,
commission_type=strategy.commission.percent,
commission_value=0.04,
slippage=1,
pyramiding=0,
calc_on_order_fills=true,
calc_on_every_tick=false,
process_orders_on_close=true)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Inputs
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
grp1 = "Trend + Signals"
useHTF = input.bool(true, "Use Higher TF Trend Filter", group=grp1)
htf = input.timeframe("240", "Higher Timeframe", group=grp1)
htfEmaLen = input.int(200, "HTF EMA Length", minval=1, group=grp1)
emaFastLen = input.int(21, "Fast EMA", minval=1, group=grp1)
emaSlowLen = input.int(55, "Slow EMA", minval=1, group=grp1)
stAtrLen = input.int(10, "Supertrend ATR Length", minval=1, group=grp1)
stFactor = input.float(3.0, "Supertrend Factor", minval=0.1, step=0.1, group=grp1)
rsiLen = input.int(14, "RSI Length", minval=1, group=grp1)
rsiBull = input.int(52, "RSI Bull Threshold", minval=1, maxval=99, group=grp1)
rsiBear = input.int(48, "RSI Bear Threshold", minval=1, maxval=99, group=grp1)
useVolFilter = input.bool(true, "Use Volume Filter", group=grp1)
volLen = input.int(20, "Volume SMA Length", minval=1, group=grp1)
volMult = input.float(1.2, "Volume Multiplier", minval=0.1, step=0.1, group=grp1)
grp2 = "Risk Management (ATR)"
atrLen = input.int(14, "ATR Length", minval=1, group=grp2)
slAtrMult = input.float(1.6, "Stop = ATR x", minval=0.1, step=0.1, group=grp2)
rr = input.float(2.0, "Risk:Reward (TP)", minval=0.1, step=0.1, group=grp2)
useRiskPct = input.bool(true, "Dynamic Position Size by Risk %", group=grp2)
riskPct = input.float(1.0, "Risk % of Equity per Trade", minval=0.05, step=0.05, group=grp2)
maxPosPct = input.float(20.0, "Max Position % of Equity Cap", minval=1.0, step=1.0, group=grp2)
grp3 = "Breakeven + Session"
useBE = input.bool(true, "Move Stop to Breakeven", group=grp3)
beTriggerATR = input.float(1.0, "Trigger After +ATR x", minval=0.1, step=0.1, group=grp3)
beOffsetATR = input.float(0.05, "BE Offset (ATR x)", minval=0.0, step=0.01, group=grp3)
useSession = input.bool(false, "Trade Only in Session", group=grp3)
sess = input.session("1000-1500", "Session (exchange time)", group=grp3)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Helper / Filters
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
inSession = not useSession or not na(time(timeframe.period, sess))
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
rsi = ta.rsi(close, rsiLen)
atr = ta.atr(atrLen)
volOk = not useVolFilter or (volume > ta.sma(volume, volLen) * volMult)
// Supertrend
= ta.supertrend(stFactor, stAtrLen) // stDir: 1 bullish, -1 bearish (TradingView behavior)
stBull = stDir == 1
stBear = stDir == -1
// HTF trend (lookahead_off to reduce repaint risk on historical vs realtime behavior)
htfEma = request.security(syminfo.tickerid, htf, ta.ema(close, htfEmaLen), barmerge.gaps_off, barmerge.lookahead_off)
htfBull = close >= htfEma
htfBear = close <= htfEma
trendOkLong = not useHTF or htfBull
trendOkShort = not useHTF or htfBear
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Entry Conditions (confirmed bar to avoid “intrabar” surprises)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
longSignal = barstate.isconfirmed and inSession and trendOkLong and stBull and close > emaFast and emaFast > emaSlow and rsi >= rsiBull and volOk
shortSignal = barstate.isconfirmed and inSession and trendOkShort and stBear and close < emaFast and emaFast < emaSlow and rsi <= rsiBear and volOk
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Position sizing by ATR stop distance (approx; works best on stocks/spot)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
f_posQty(_stopDist) =>
// Risk capital = equity * riskPct%
riskCapital = strategy.equity * (riskPct / 100.0)
// Qty to risk roughly riskCapital if stop hits
rawQty = _stopDist > 0 ? (riskCapital / _stopDist) : 0.0
// Cap position size by maxPosPct% of equity
maxPositionValue = strategy.equity * (maxPosPct / 100.0)
maxQty = close > 0 ? (maxPositionValue / close) : rawQty
qty = math.max(0.0, math.min(rawQty, maxQty))
qty
stopDist = atr * slAtrMult
qty = useRiskPct ? f_posQty(stopDist) : na
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Entries
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
if (longSignal and strategy.position_size <= 0)
strategy.entry("L", strategy.long, qty=useRiskPct ? qty : na)
if (shortSignal and strategy.position_size >= 0)
strategy.entry("S", strategy.short, qty=useRiskPct ? qty : na)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Exits (ATR SL/TP + optional Breakeven)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
entry = strategy.position_avg_price
longSL = entry - stopDist
longTP = entry + stopDist * rr
shortSL = entry + stopDist
shortTP = entry - stopDist * rr
// Breakeven logic
beTrig = atr * beTriggerATR
beOff = atr * beOffsetATR
if isLong and useBE
// if price moved in our favor enough -> raise stop to entry (+offset)
if (close - entry) >= beTrig
longSL := math.max(longSL, entry + beOff)
if isShort and useBE
if (entry - close) >= beTrig
shortSL := math.min(shortSL, entry - beOff)
// Submit exits every bar so they update dynamically
strategy.exit("XL", from_entry="L", stop=longSL, limit=longTP, when=isLong)
strategy.exit("XS", from_entry="S", stop=shortSL, limit=shortTP, when=isShort)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Visuals + Alerts
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
plot(emaFast, "EMA Fast", linewidth=2)
plot(emaSlow, "EMA Slow", linewidth=2)
plot(stLine, "Supertrend", linewidth=2)
plot(useHTF ? htfEma : na, "HTF EMA", linewidth=2)
plotshape(longSignal, title="Long Signal", style=shape.triangleup, location=location.belowbar, size=size.tiny, text="L")
plotshape(shortSignal, title="Short Signal", style=shape.triangledown, location=location.abovebar, size=size.tiny, text="S")
alertcondition(longSignal, title="AlphaEdge Long", message="AlphaEdge LONG on {{ticker}} @ {{close}}")
alertcondition(shortSignal, title="AlphaEdge Short", message="AlphaEdge SHORT on {{ticker}} @ {{close}}")
Bollinger Bands with 3SD Volume SegmentationPurpose
This script provides a structured way to analyze how real traded volume distributes across the different volatility zones defined by Bollinger Bands with three standard deviations, it reveals where activity concentrates, how pressure shifts between buyers and sellers, and how market participation behaves as price moves through expanding or contracting volatility regimes. The tool turns the bands into a mechanical segmentation system that exposes the microstructure hidden inside each volatility layer.
How it works
The script calculates Bollinger Bands at one, two, and three standard deviations, then assigns every bar’s volume to the correct volatility zone based on where price closed, it reconstructs buy and sell volume from candle behavior, computes delta as the difference between them, and aggregates these values over the chosen lookback window. Each zone displays total volume, delta, and a dominance percentage that expresses how strongly buyers or sellers controlled that region, all updated dynamically on the most recent bar. For example, if the Mid–U1 zone shows 28,450 contracts with a –2,728 delta and –9.59% dominance, that indicates mild seller control in a normally balanced rotation area, while the L1–Mid zone showing 10,606 contracts, +1,816 delta, and 17.12% dominance signals buyers absorbing pressure and defending the pullback.
Rationale
Volatility zones behave like natural boundaries where liquidity concentrates, where traders commit, hesitate, or get trapped, and where expansions or reversals often originate, so segmenting volume and delta by these zones provides a clearer picture of intent and pressure than raw volume alone. By quantifying how much buying or selling occurred in each volatility layer, the script helps identify continuation, absorption, exhaustion, and imbalance, giving traders a mechanical, objective map of market behavior rather than relying on subjective interpretation.
10am Candle Boxes 10am Candle Boxes" that creates visual boxes around specific candlesticks at particular times of day.
What it does:
The script highlights individual candles that occur at specific times (default: 10:00 AM) by drawing boxes around them. It categorizes and color-codes these candles based on the day of the week.
Key features:
Dual Time Set System: Supports two independent time settings (Set 1 and Set 2), allowing you to track candles at two different times simultaneously. Each set can be enabled/disabled independently.
Three-Category Classification: Each candle is categorized as:
Tuesday candles (orange by default)
First Thursday of the month (purple by default)
All other days (blue by default)
Box Visualization: For each qualifying candle, the script creates:
A colored box extending from the candle body (open to close)
The box extends indefinitely to the right (365 days)
A horizontal midline through the center of the box
Midline color indicates candle direction: green (bullish), red (bearish), black (neutral/doji)
Extensive Customization Options for each category:
Box fill color and transparency
Border color and style
Midline thickness, style (solid/dashed/dotted)
Toggle visibility on/off
Adjustable lookback period (how many days of boxes to show)
Timezone Adjustment: Includes a UTC offset input to adapt the time detection to different timezones.
Smart Cleanup: Automatically removes old boxes based on configurable time limits (default: 10 days for Tuesday/Others, 300 days for First Thursday).
This appears to be a trading tool for marking and tracking key price levels at specific times of day, possibly used for identifying support/resistance zones or monitoring specific session opens/closes. The special emphasis on first Thursday of the month suggests it may be used for tracking important economic releases or recurring events.
BOS, CHoCH and CISD [theEccentricTrader]█ OVERVIEW
This open-source indicator plots Break of Structure (BOS), Change of Character (CHoCH) and Change in State of Delivery (CISD) events directly on the chart and provides optional alerts for each condition.
All conditions are built around my primitive swing logic and are confirmed at candle close to avoid repainting.
The script is designed as a research tool, not a trading strategy. It does not generate entries, exits, targets or risk management rules. Its purpose is to make objectively defined market structure events visible, reproducible and testable across markets and timeframes.
█ CONCEPTS
Green and Red Candles
A green candle is defined as a candle that closes at or above its open.
A red candle is defined as a candle that closes below its open.
Swing Highs and Swing Lows
A swing high is defined as a green candle, or a series of consecutive green candles, followed by a single red candle that completes the swing and forms the peak.
A swing low is defined as a red candle, or a series of consecutive red candles, followed by a single green candle that completes the swing and forms the trough.
Peak and Trough Prices
The peak price of a complete swing high is either the high of the red candle that completes the swing or the high of the preceding green candle, depending on which is higher.
The trough price of a complete swing low is either the low of the green candle that completes the swing or the low of the preceding red candle, depending on which is lower.
Basic Uptrends and Downtrends
Basic uptrends, henceforth referred to as uptrends, are formed when the most recent trough is higher than the preceding trough.
Basic downtrends, henceforth referred to as downtrends, are formed when the most recent peak is lower than the preceding peak.
Break of Structure (BOS)
A BOS occurs when price continues in the direction of the prevailing trend by breaking beyond the most recent peak or trough price. BOS implies trend continuation through structural expansion.
BOS Up occurs during an uptrend when price closes above the most recent peak.
BOS Down occurs during a downtrend when price closes below the most recent trough.
Change of Character (CHoCH)
A CHoCH occurs during an uptrend or downtrend when price breaks the most recent peak or trough price in the opposite direction to the prevailing trend, without fully reversing the higher-level trend structure. CHoCH implies early structural weakness or internal rotation rather than confirmed trend reversal.
CHoCH Up occurs during a downtrend when price closes above the most recent peak but remains below the preceding peak.
CHoCH Down occurs during an uptrend when price closes below the most recent trough but remains above the preceding trough.
Change in State of Delivery (CISD)
A CISD occurs when price breaks the most recent peak or trough price. CISD isolates pure structural displacement, independent of trend classification.
CISD Up occurs when price closes above the most recent peak without regard for trend state.
CISD Down occurs when price closes below the most recent trough without regard for trend state.
█ VISUAL OUTPUTS
Labels
Labels are plotted at the candle where each condition is confirmed.
Users can change the label colours and sizes via indicator Settings/Inputs/LABELS.
Event Lines
Horizontal dashed lines mark the peak or trough that was broken.
Trend Lines
Trend lines are drawn to contextualise trend direction for appropriate structural events.
█ ALERTS
Optional alerts are provided for all conditions. By default, all alerts are set to false.
Users can apply alerts via Indicator Settings/Inputs/ALERTS.
VPQ - Momen Medhat📊 VPQ Oscillator - Proprietary Volume Profile Intelligence
Advanced Volume Analysis Through Proprietary Mathematical Modeling
🎯 Why VPQ Is Different From Standard Volume Profile Tools
The VPQ Oscillator is not a standard Volume Profile indicator. While many indicators display volume histograms or basic POC/VAH/VAL levels, VPQ employs a proprietary mathematical framework to transform raw volume distribution data into actionable intelligence.
🔬 Core Innovations That Justify Premium Access:
1. Proprietary Volume Location Score (VLS) Algorithm
VPQ uses an original mathematical model that calculates precise price positioning relative to volume-weighted fair value. This is not a simple "above/below POC" calculation - it's a multi-factor equation that considers:
Non-linear distance weighting from Value Area boundaries
Gradient-based positioning within Value Area zones
Dynamic scaling based on range volatility
Proprietary normalization to maintain consistency across all market conditions
2. Adaptive Node Intelligence System
Unlike static Volume Profile displays, VPQ features a real-time node classification engine that:
Identifies High Volume Nodes (HVN) vs Low Volume Nodes (LVN) using advanced percentile analysis
Applies proprietary dampening coefficients (0.6x) at HVN zones to signal mean-reversion probability
Applies proprietary amplification factors (1.4x) at LVN zones to signal breakout probability
Dynamically recalculates these weightings on every bar based on current volume distribution
3. Multi-Dimensional Volume Distribution Engine
VPQ processes volume data through a custom binning algorithm that:
Distributes volume across price levels using proportional overlap calculations (not available in standard Volume Profile)
Handles intra-bar volume allocation with precision weighting
Maintains computational efficiency for real-time analysis
Scales seamlessly across any timeframe or instrument
4. Cross-Timeframe Volume Integration
Proprietary logic seamlessly merges higher timeframe institutional volume analysis into current timeframe decision-making, solving the common problem of Volume Profile desynchronization across timeframes.
5. Oscillator Normalization Technology
Original mathematical transformation that converts complex Volume Profile data into a normalized -100 to +100 scale while preserving volume distribution nuances and maintaining signal integrity across all market conditions.
💡 What You Get That Free Indicators Don't Provide
❌ Standard Volume Profile Indicators:
Static histogram displays that clutter charts
Basic POC/VAH/VAL lines without context
No signal weighting or node intelligence
Manual interpretation required
Single timeframe limitation
No actionable scoring system
✅ VPQ Oscillator:
Clean oscillator format - No chart clutter, instant visual clarity
Intelligent scoring - Single number tells you exactly where price stands
Adaptive weighting - Automatically adjusts for mean-reversion vs breakout scenarios
Multi-timeframe ready - Analyze institutional volume from any timeframe
Actionable thresholds - Built-in buy/sell zones with alert capabilities
Proprietary algorithms - Mathematical models not found in public domain
📈 Professional Trading Applications
Mean Reversion Trading
VPQ's proprietary HVN detection and dampening algorithm identifies high-probability reversal zones with precision. When VPQ reaches extremes (±70) at HVN areas, the adaptive weighting signals optimal mean-reversion entries.
Breakout Trading
The LVN amplification system highlights low-volume breakout zones where momentum is likely to accelerate. VPQ automatically increases signal strength at these critical levels.
Value-Based Position Management
Know instantly if you're entering at a discount or premium. VPQ's proprietary scoring eliminates guesswork - positive readings confirm discount entries, negative readings confirm premium exits.
Multi-Timeframe Analysis
VPQ's cross-timeframe integration allows you to maintain institutional perspective (4H, Daily) while executing on shorter timeframes (5m, 15m) - a capability requiring complex manual analysis with standard Volume Profile tools.
Divergence Detection
VPQ's oscillator format makes it easy to spot divergences between price and volume distribution - a powerful reversal signal invisible in traditional Volume Profile displays.
⚙️ Professional-Grade Configuration
Volume Profile Engine:
Timeframe selection for institutional volume perspective
Adjustable lookback period (20-2000 bars)
Configurable bin count for precision control
Value Area percentage customization
HVN/LVN threshold optimization
Display Intelligence:
Zone-based color coding (automatic or manual)
Background zone highlighting
Customizable reference lines
Professional info label with live metrics
Alert System:
Zero-cross alerts (entering discount/premium zones)
Threshold alerts (deep discount/premium signals)
Extreme level alerts (±50 zones)
Fully customizable notification settings
🎓 Understanding the VPQ Scale
+100 to +50: Extreme Discount - Price significantly below volume-weighted fair value
+50 to 0: Discount Zone - Price below fair value, favors long positions
0: Fair Value Equilibrium - Price at Point of Control
0 to -50: Premium Zone - Price above fair value, favors short positions
-50 to -100: Extreme Premium - Price significantly above volume-weighted fair value
Zone Indicators:
HVN: High Volume Node detected - Expect mean reversion behavior
LVN: Low Volume Node detected - Expect breakout/continuation behavior
VA: Value Area - Normal trading range behavior
💼 Why Professional Traders Choose VPQ
Institutional-Grade Analysis
VPQ processes volume data using the same concepts institutional traders use to identify fair value, but packages it in an accessible, real-time format.
Time Efficiency
What would take minutes of manual Volume Profile analysis happens instantly with VPQ. The proprietary scoring system eliminates interpretation ambiguity.
Edge Preservation
The adaptive node weighting system provides an analytical edge not available in standard Volume Profile tools - knowing when to fade extremes (HVN) vs trade breakouts (LVN).
Clean Workflow
No chart clutter, no complex histogram interpretation, no manual calculations. Just one clean oscillator that tells you everything you need to know about volume-based fair value.
Versatile Integration
Works with any trading style - scalping, day trading, swing trading. Combines seamlessly with technical analysis, price action, or systematic strategies.
🔧 Technical Specifications
Code Base: 100% original Pine Script v6 implementation
Calculation Method: Proprietary multi-stage algorithm with adaptive weighting
Update Frequency: Real-time with every new bar
Performance: Optimized for institutional-grade analysis (5000+ bars)
Compatibility: Works on all instruments and timeframes
📊 Recommended Workflow
Set VPQ timeframe to 30min-4H for institutional volume context
Identify current zone (discount/premium) and type (HVN/LVN/VA)
Wait for extreme readings (±50) for best risk/reward
Combine with your preferred confirmation method
Use built-in alerts to catch key threshold crosses
Adjust position sizing based on VPQ zone strength
🔐 Access and Support
This is an invite-only indicator featuring proprietary algorithms developed through extensive research and testing. Access is granted to serious traders who understand the value of advanced volume analysis tools.
What's Included:
Full access to VPQ Oscillator with all features
Regular updates and improvements
Optimized performance for real-time trading
Professional-grade volume analysis unavailable elsewhere
⚠️ Risk Disclosure
This indicator is a professional trading tool and requires proper understanding of volume analysis concepts. It should be used as part of a complete trading plan with appropriate risk management. Past performance does not guarantee future results. Trading involves substantial risk of loss.
📝 Version Information
Current Version: 1.0 (February 2026)
Pine Script: v6
Developer: Momen Medhat
License: Proprietary (Invite-Only)
SMC One Candle + AMD Bias (CT Focus)This indicator is a specialized Smart Money Concepts (SMC) tool designed for QQQ on the 5-minute chart. It fuses Tony Trades' "One Candle Rule" execution with the AMD (Accumulation, Manipulation, Distribution) cycle logic found in your previous CRT Pro V2 script.
The primary goal of this indicator is to identify high-probability entries during the Purge Window (9:00 AM – 11:30 AM CT) by detecting when price manipulates morning liquidity before expanding in the direction of the daily bias.
## Core Components
### 1. Master Candle Range (Accumulation)
Timeframe: 05:00 AM – 09:00 AM CT.
Function: It automatically plots the Master High (CRH) and Master Low (CRL). This represents the "Accumulation" phase where orders are built up before the New York open.
### 2. The One Candle Zone (Execution)
Timeframe: 08:35 AM CT (The 5-minute candle immediately following the high-volatility open).
Function: It creates a blue "Value Zone" based on Tony Trades’ logic. This zone acts as the ultimate filter—price must reclaim or break this zone to confirm that the "Manipulation" phase is over and the "Distribution" has begun.
### 3. Multi-Timeframe Daily Bias
Calculation: It tracks the midpoint (Equilibrium) of the previous day's range.
Premium/Discount:
Bullish (Discount): Price is trading above the daily midpoint.
Bearish (Premium): Price is trading below the daily midpoint.
Logic: Signals are filtered by this bias to ensure you are always trading with the higher-timeframe flow.
## Signal Logic Descriptions
### SMC Long (Bullish Distribution)
A Long signal is generated when:
Bias: The Daily Bias is Bullish.
Manipulation: Price has ideally swept the Master Low (CRL) during the open.
The Trigger: A 5-minute candle closes above the 08:35 AM "One Candle" High.
Confirmation: This suggests shorts are trapped and Smart Money is distributing price toward the Previous Day High (PDH).
### SMC Short (Bearish Distribution)
A Short signal is generated when:
Bias: The Daily Bias is Bearish.
Manipulation: Price has ideally swept the Master High (CRH).
The Trigger: A 5-minute candle closes below the 08:35 AM "One Candle" Low.
Confirmation: This confirms a rejection of the opening range, signaling a move toward the Previous Day Low (PDL) or the current Low of Day.
## Visual Guide
Blue Box: The One Candle Zone (Tony Trades' "Line in the Sand").
Gray Stepline: The Master Candle Range (0500–0900 CT).
Yellow Background: The Purge Window (0900–1130 CT), where your logic dictates the highest probability of a successful trade.
Labels: Real-time Daily Bias updates in the top right corner.
Custom ADR DRC's - FOR DR USERS"Custom ADR DRC's" for tracking and visualizing trading session ranges.
What it does:
The script tracks the ADR (Asian Dream Range) session, which runs from 7:30 PM to 8:25 PM Eastern Time. It analyzes price action during this session and creates visual boxes on the chart to highlight key price levels.
Key features:
Session Tracking: Monitors the 55-minute ADR session and records all candlestick data (opens, closes, highs, lows) during this period.
Smart Box Creation: After the session ends, it analyzes the candle patterns and creates up to two boxes:
Upper box ("U"): Marks high-of-body to high-of-wick range
Lower box ("L"): Marks low-of-body to low-of-wick range
Pattern Detection: The script includes sophisticated logic to detect:
"Push candles" (when the first candle dominates the session direction)
Consecutive patterns (multiple candles stacking at extremes)
These patterns determine whether to show upper box, lower box, or both
Flexible Display Options:
Choose which days of the week to display (Monday-Sunday)
Color-code each day differently
Highlight the first Sunday and Wednesday ADR of each month in a special color
Extend boxes to the right or just to current candle
Customizable labels and positioning
Historical View: Shows a configurable number of past sessions (default 20) with automatic cleanup of older boxes.
This appears to be a trading tool for identifying key price ranges during the Asian session that traders might use for support/resistance levels or breakout trading strategies.
FVG w/ Correlated ConfirmationThis Pine Script indicator detects Fair Value Gaps (FVGs) on your chart—price gaps between candles where no trading occurred, often signaling potential support or resistance zones. It highlights bullish FVGs (gap ups) and bearish FVGs (gap downs) as colored boxes directly on the chart. The indicator also optionally confirms these FVGs by checking if a correlated asset (e.g., NASDAQ:NDX) shows a similar FVG, increasing confidence. Midpoint lines inside the boxes can be displayed to mark the center of the gap.
Boxes are anchored to the exact candles where the FVG forms and extend rightwards by a user-defined number of bars, remaining fixed and not sliding as new bars form. Correlated FVGs add an extra layer of confirmation from related markets, improving reliability and reducing false signals.
MA Labels (Fully Custom, Padded)On screen reminder of whatever you want. I use it remember what MA line colors are.
Volume Reversal Candle - QQDDHighlights when a reversal candle has an increase in volume than the previous candle






















