FVG Supply and DemandThis indicator combines powerful tools into one:
• Supply & Demand Zones built from swing highs/lows with ATR-based zone width, POI markers, and Break-of-Structure (BOS) detection.
• Volumized Fair Value Gaps (FVGs) showing bullish/bearish gaps, total volume inside the gap, volume distribution, optional zone-combining, and auto-cleanup.
• Swing TSL Line and manage bar color.
It helps visualize key imbalance areas, institutional zones, and price reaction points.
Credits to the Author.
⚠️ Disclaimer
This indicator is provided for educational and analytical purposes only.
It does not provide trading advice.
Past results do not guarantee future outcomes.
Use responsibly and in conjunction with your market analysis.
Unterstützung und Widerstand
Liquidation Heatmap [Alpha Extract]A sophisticated liquidity zone visualization system that identifies and maps potential liquidation levels based on swing point analysis with volume-weighted intensity measurement and gradient heatmap coloring. Utilizing pivot-based pocket detection and ATR-scaled zone heights, this indicator delivers institutional-grade liquidity mapping with dynamic color intensity reflecting relative liquidity concentration. The system's dual-swing detection architecture combined with configurable weight metrics creates comprehensive liquidation level identification suitable for strategic position planning and market structure analysis.
🔶 Advanced Pivot-Based Pocket Detection
Implements dual swing width analysis to identify potential liquidation zones at pivot highs and lows with configurable lookback periods for comprehensive level coverage. The system detects primary swing points using main pivot width and optional secondary swing detection for increased pocket density, creating layered liquidity maps that capture both major and minor liquidation levels across extended price history.
🔶 Multi-Metric Weight Calculation Engine
Features flexible weight source selection including Volume, Range (high-low spread), and Volume × Range composite metrics for liquidity intensity measurement. The system calculates pocket weights based on market activity at pivot formation, enabling traders to identify which liquidation levels represent higher concentration of potential stops and liquidations with configurable minimum weight thresholds for noise filtering.
🔶 ATR-Based Zone Height Framework
Utilizes Average True Range calculations with percentage-based multipliers to determine pocket vertical dimensions that adapt to market volatility conditions. The system creates ATR-scaled bands above swing highs for short liquidation zones and below swing lows for long liquidation zones, ensuring zone heights remain proportional to current market volatility for accurate level representation.
🔶 Dynamic Gradient Heatmap Visualization
Implements sophisticated color gradient system that maps pocket weights to intensity scales, creating intuitive visual representation of relative liquidity concentration. The system applies power-law transformation with configurable contrast adjustment to enhance differentiation between weak and strong liquidity pockets, using cyan-to-blue gradients for long liquidations and yellow-to-orange for short liquidations.
🔶 Intelligent Pocket State Management
Features advanced pocket tracking system that monitors price interaction with liquidation zones and updates pocket states dynamically. The system detects when price trades through pocket midpoints, marking them as "hit" with optional preservation or removal, and manages pocket extension for untouched levels with configurable forward projection to maintain visibility of approaching liquidity zones.
🔶 Real-Time Liquidity Scale Display
Provides gradient legend showing min-max range of pocket weights with 24-segment color bar for instant liquidity intensity reference. The system positions the scale at chart edge with volume-formatted labels, enabling traders to quickly assess relative strength of visible liquidation pockets without numerical clutter on the main chart area.
🔶 Touched Pocket Border System
Implements visual confirmation of executed liquidations through border highlighting when price trades through pocket zones. The system applies configurable transparency to touched pocket borders with inverted slider logic (lower values fade borders, higher values emphasize them), providing clear historical record of liquidated levels while maintaining focus on active untouched pockets.
🔶 Dual-Swing Density Enhancement
Features optional secondary swing width parameter that creates additional pocket layer with tighter pivot detection for increased liquidation level density. The system runs parallel pivot detection at both primary and secondary swing widths, populating chart with comprehensive liquidity mapping that captures both major swing liquidations and intermediate level clusters.
🔶 Adaptive Pocket Extension Framework
Utilizes intelligent time-based extension that projects untouched pockets forward by configurable bar count, maintaining visibility as price approaches potential liquidation zones. The system freezes touched pocket right edges at hit timestamps while extending active pockets dynamically, creating clear distinction between historical liquidations and forward-projected active levels.
🔶 Weight-Based Label Integration
Provides floating labels on untouched pockets displaying volume-formatted weight values with dynamic positioning that follows pocket extension. The system automatically manages label lifecycle, creating labels for new pockets, updating positions as pockets extend, and removing labels when pockets are touched, ensuring clean chart presentation with relevant liquidity information.
🔶 Performance Optimization Framework
Implements efficient array management with automatic clean-up of old pockets beyond lookback period and optimized box/label deletion to maintain smooth performance. The system includes configurable maximum object counts (500 boxes, 50 labels, 100 lines) with intelligent removal of oldest elements when limits are approached, ensuring consistent operation across extended timeframes.
This indicator delivers sophisticated liquidity zone analysis through pivot-based detection and volume-weighted intensity measurement with intuitive heatmap visualization. Unlike simple support/resistance indicators, the Liquidation Heatmap combines swing point identification with market activity metrics to identify where concentrated liquidations are likely to occur, while the gradient color system instantly communicates relative liquidity strength. The system's dual-swing architecture, configurable weight metrics, ATR-adaptive zone heights, and intelligent state management make it essential for traders seeking strategic position planning around institutional liquidity levels across cryptocurrency, forex, and futures markets. The visual heatmap approach enables instant identification of high-probability reversal zones where cascading liquidations may trigger significant price reactions.
ICT Order Block Identifier [Eˣ]📦 Order Block Identifier - Free Indicator
Overview
The Order Block Identifier automatically detects and displays institutional order blocks on your charts - the exact zones where banks, hedge funds, and market makers place their orders. Based on ICT (Inner Circle Trader) concepts, this indicator helps you trade alongside smart money by identifying where institutions are likely to defend their positions and where price often finds support or resistance.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 What This Indicator Does
Detects Order Blocks:
• 🟢 Bullish Order Blocks (OB+) - Last bearish candle before strong bullish move
• 🔴 Bearish Order Blocks (OB-) - Last bullish candle before strong bearish move
• Automatically identifies institutional buying/selling zones
• Tracks up to 30 order blocks simultaneously
• Works on all timeframes and instruments
Smart Features:
• Auto-Timeframe Adjustment - Optimizes detection for 1min to Weekly charts
• Active Block Highlighting - Shows which OB price is approaching (🎯)
• Mitigation Tracking - Knows when blocks are "used" and no longer valid
• ATR-Based Detection - Adapts to each instrument's volatility
• Strength Filtering - Choose Low/Medium/High to control sensitivity
Visual Display:
• Clean boxes extending from order block to current price
• Color-coded: Green (bullish), Red (bearish), Gray (mitigated)
• OB+ / OB- labels for quick identification
• Active blocks highlighted with 🎯 emoji
• Distance indicator showing how far price is from nearest OB
Statistics Panel:
• Count of active bullish and bearish order blocks
• Market bias based on OB balance
• Distance to nearest order block
• Real-time status updates
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 Understanding Order Blocks
What Are Order Blocks?
Order blocks are the "footprints" left behind by institutional traders (banks, hedge funds, market makers) when they enter large positions. Because institutions can't fill massive orders at once without moving the market, they:
1. Place orders gradually over time
2. Leave zones where their buy/sell orders are concentrated
3. Defend these zones when price returns
4. Create reliable support and resistance levels
The ICT Concept:
Developed by Michael Huddleston (Inner Circle Trader), order block theory states that:
• The last opposite-colored candle before a strong move contains institutional orders
• Price often returns to test these zones before continuing
• These zones act as strong support (bullish OB) or resistance (bearish OB)
• Smart money defends their positions at these levels
Why Order Blocks Work:
• Unfilled Orders: Institutions may still have pending orders in the block
• Position Defense: They protect their entries by adding to positions
• Stop Placement: Retail stops cluster near these zones (liquidity for institutions)
• Market Structure: Price respects these levels due to order flow dynamics
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🟢 Bullish Order Blocks Explained
How They Form:
1. Price is consolidating or declining
2. Institutions begin accumulating (buying)
3. A strong bullish move erupts
4. The last bearish candle before this move = Bullish Order Block
5. This candle represents where institutions were buying aggressively
Why The Last Bearish Candle?
• Institutions absorbed all selling pressure at this level
• Their buy orders filled as price was declining
• When price returns, they defend this zone with more buying
• It becomes a demand zone / support level
Trading Bullish Order Blocks:
Setup:
• Wait for price to retrace back to bullish OB (green box)
• Look for rejection/reversal pattern (pin bar, engulfing, etc.)
• Enter long when price bounces from the OB zone
• Stop loss: Below the order block
• Target: Recent high or opposite order block
Best Scenarios:
• OB aligns with other support (trendline, fibonacci, round number)
• First touch of OB (unmitigated) has highest probability
• Occurs during high-volume sessions (London/NY)
• Trend is bullish on higher timeframe
Example Trade:
• Bullish OB forms at $50,000 (last red candle before rally)
• Price rallies to $52,000 then retraces
• Price drops back to $50,100 (touching OB)
• Bullish pin bar forms on the OB
• Enter long at $50,200, stop at $49,800
• Target: $52,000+ (previous high)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 Bearish Order Blocks Explained
How They Form:
1. Price is consolidating or rising
2. Institutions begin distributing (selling)
3. A strong bearish move erupts
4. The last bullish candle before this move = Bearish Order Block
5. This candle represents where institutions were selling aggressively
Why The Last Bullish Candle?
• Institutions absorbed all buying pressure at this level
• Their sell orders filled as price was rising
• When price returns, they defend this zone with more selling
• It becomes a supply zone / resistance level
Trading Bearish Order Blocks:
Setup:
• Wait for price to retrace back to bearish OB (red box)
• Look for rejection/reversal pattern (shooting star, bearish engulfing)
• Enter short when price rejects from the OB zone
• Stop loss: Above the order block
• Target: Recent low or opposite order block
Best Scenarios:
• OB aligns with other resistance (trendline, fibonacci, round number)
• First touch of OB (unmitigated) has highest probability
• Occurs during high-volume sessions (London/NY)
• Trend is bearish on higher timeframe
Example Trade:
• Bearish OB forms at $48,000 (last green candle before drop)
• Price drops to $46,000 then retraces
• Price rallies back to $47,900 (touching OB)
• Bearish engulfing forms at the OB
• Enter short at $47,800, stop at $48,200
• Target: $46,000- (previous low)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 How To Use This Indicator
Strategy 1: Order Block Retest (Classic)
Best For: Swing trading, capturing reversals
Timeframes: 15min, 1H, 4H, Daily
Win Rate: 60-70% (first touch)
Entry Rules:
1. Identify unmitigated order block (bright color, not gray)
2. Wait for price to return to the OB zone
3. Look for price action confirmation:
• Bullish OB: Pin bar, bullish engulfing, hammer
• Bearish OB: Shooting star, bearish engulfing, doji
4. Enter in the direction of the OB
5. Stop loss: Beyond the opposite side of OB (20-30 pips)
6. Target: 2-3R or opposite OB
Example:
• Bullish OB at $100-$102
• Price drops to $101.50 (enters OB)
• Bullish pin bar forms with low at $100.80
• Enter long at $102 (OB high), stop at $99.50
• Risk: $2.50, Target: $107.50 (3R)
Strategy 2: Break & Retest
Best For: Trend trading, breakout confirmation
Timeframes: 5min, 15min, 1H
Win Rate: 65-75%
Entry Rules:
1. Price breaks through an order block
2. Wait for pullback to the broken OB
3. The OB now acts as support (if broken up) or resistance (if broken down)
4. Enter when price respects the flipped OB
5. Stop: Inside the OB zone
6. Target: Next OB or structure level
Why It Works: Broken OBs flip polarity - support becomes resistance and vice versa
Strategy 3: Multi-Timeframe Confirmation
Best For: High-probability setups
Timeframes: Combine 1H + 4H or 15min + 1H
Win Rate: 70-80%
Entry Rules:
1. Identify order block on higher timeframe (4H or Daily)
2. Switch to lower timeframe (1H or 15min)
3. Wait for lower TF order block to form within higher TF OB
4. Trade the lower TF OB in direction of higher TF OB
5. Stop: Below lower TF OB
6. Target: Edge of higher TF OB or beyond
Why It Works: Alignment across timeframes = institutional consensus
Strategy 4: Order Block to Order Block
Best For: Range trading, swing entries
Timeframes: 1H, 4H
Win Rate: 55-65%
Entry Rules:
1. Identify both bullish OB below and bearish OB above
2. Price is ranging between these OBs
3. Enter long at bullish OB, target bearish OB
4. Enter short at bearish OB, target bullish OB
5. Stop: Beyond the trading OB
6. Exit at opposite OB
Why It Works: Price moves from one institutional zone to another
Strategy 5: Mitigation Fade
Best For: Aggressive scalping
Timeframes: 5min, 15min
Win Rate: 50-60% (higher risk)
Entry Rules:
1. Price approaches an order block
2. Instead of bouncing, price breaks through (mitigates it)
3. Enter immediately in direction of breakout
4. Stop: Back inside the mitigated OB
5. Quick target: 1-1.5R
Why It Works: When OB fails, it often leads to strong continuation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Settings Explained
Core Settings
Auto-Adjust for Timeframe (Default: ON)
• Automatically optimizes detection for current chart timeframe
• 1min: 3 bars lookback
• 5min: 4 bars lookback
• 15min: 5 bars lookback
• 1H: 6 bars lookback
• 4H: 8 bars lookback
• Daily+: 10-12 bars lookback
• Recommended: Keep ON for best results
Manual Detection Length (Default: 5)
• Only used when Auto-Adjust is OFF
• Number of bars to look back for the "last opposite candle"
• Lower (2-4): More sensitive, more blocks, more noise
• Higher (6-10): Less sensitive, fewer blocks, higher quality
• Recommended: Use Auto-Adjust instead
Display Settings
Show Bullish/Bearish Order Blocks
• Toggle each type on/off independently
• Customize colors for each OB type
• Tip: Match colors to your chart theme
Max Order Blocks to Display (Default: 10)
• Limits how many OBs are shown at once
• Lower (5-8): Cleaner chart, only recent blocks
• Higher (15-30): More historical context
• Recommended: 8-12 for most trading
Show Order Block Labels (Default: ON)
• Displays "OB+" and "OB-" text on blocks
• Shows 🎯 on active (nearest) block
• Turn OFF for minimal chart appearance
• Recommended: Keep ON for clarity
Extend Blocks (bars) (Default: 50)
• How far to extend OB boxes to the right
• Lower (20-30): Shorter boxes, less clutter
• Higher (100+): Longer boxes, easier to see
• Blocks auto-extend until mitigated or limit reached
• Recommended: 40-60 bars
Filters
Block Strength Filter (Default: Medium)
• Controls how strong a move must be to create an OB
• Low: 0.5x ATR move required - Many blocks, more noise
• Medium: 1x ATR move required - Balanced quality/quantity
• High: 1.5x ATR move required - Only strongest institutional moves
• Recommended for beginners: High
• Recommended for experienced: Medium
• Recommended for scalpers: Low
Min Block Size % (Default: 0.1)
• Minimum size of OB as percentage of price
• Filters out tiny, insignificant blocks
• Crypto: 0.1-0.3%
• Forex: 0.05-0.15%
• Stocks: 0.1-0.5%
• Adjust based on instrument volatility
Advanced Settings
Show Mitigated Blocks (Default: OFF)
• When ON: Shows gray boxes for "used" order blocks
• When OFF: Blocks disappear after mitigation
• Use ON: For learning and analysis
• Use OFF: For clean, active trading
Highlight Active Block (Default: ON)
• Highlights the nearest order block to current price
• Active block shown with 🎯 emoji and brighter color
• Helps focus on most relevant trading opportunity
• Recommended: Keep ON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Info Panel Guide
Bullish OB Count
• Number of active (unmitigated) bullish order blocks
• Higher number = More support zones below price
• Multiple bullish OBs = Strong demand structure
Bearish OB Count
• Number of active (unmitigated) bearish order blocks
• Higher number = More resistance zones above price
• Multiple bearish OBs = Strong supply structure
Bias Indicator
• ⬆ Bullish: More bullish OBs than bearish (demand > supply)
• ⬇ Bearish: More bearish OBs than bullish (supply > demand)
• ↔ Neutral: Equal OBs on both sides
• Trade in direction of bias for higher probability
Near Indicator
• Shows which OB price is closest to
• Displays distance as percentage
• Example: "Bull OB 0.85%" = Bullish OB is 0.85% below current price
• Watch for "Near" alerts to time entries
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Alert Setup
This indicator includes 4 alert types:
1. Price Entering Bullish OB
• Fires when price touches a bullish order block
• Action: Watch for bounce/reversal pattern
• High-probability long setup developing
2. Price Entering Bearish OB
• Fires when price touches a bearish order block
• Action: Watch for rejection/reversal pattern
• High-probability short setup developing
3. New Bullish OB Detected
• Fires when a new bullish order block forms
• Action: Mark the zone for future retest
• New demand zone identified
4. New Bearish OB Detected
• Fires when a new bearish order block forms
• Action: Mark the zone for future retest
• New supply zone identified
To Set Up Alerts:
1. Click "Alert" button (clock icon)
2. Select "Order Block Identifier"
3. Choose your alert condition
4. Configure notification method
5. Click "Create"
Pro Tip: Set "Price Entering" alerts to catch trading opportunities in real-time
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💎 Pro Tips & Best Practices
✅ DO:
• First touch is best - Unmitigated OBs have highest win rate (60-70%)
• Wait for confirmation - Don't buy/sell just because price touched OB
• Use multiple timeframes - Higher TF OBs are stronger than lower TF
• Combine with structure - OB + trendline/support = high probability
• Trade with the bias - More bullish OBs = favor longs
• Respect mitigation - Once OB is mitigated, it's less reliable
• Use proper stop loss - Always place stops beyond the OB zone
• Consider session timing - OBs work best during London/NY sessions
⚠️ DON'T:
• Don't blindly buy/sell at OBs - Wait for confirmation
• Don't ignore mitigation - Gray blocks are much weaker
• Don't trade every OB - Quality over quantity
• Don't fight strong trends - OBs can be run through in strong momentum
• Don't use alone - Combine with price action, support/resistance
• Don't expect 100% win rate - Even best OBs fail sometimes (30-40% of time)
• Don't overtrade - Wait for A+ setups with confluence
🎯 Best Timeframes By Trading Style:
• Scalpers: 1min, 5min (quick OB touches)
• Day Traders: 5min, 15min, 1H (balanced view)
• Swing Traders: 1H, 4H, Daily (major institutional zones)
• Position Traders: 4H, Daily, Weekly (strongest OBs)
🔥 Best Instruments:
• Excellent: Forex major pairs (EUR/USD, GBP/USD), BTC, ETH, ES, NQ
• Good: Gold, Oil, Major indices, Large-cap stocks
• Moderate: Altcoins, small-cap stocks (more noise)
• Avoid: Very low liquidity instruments (OBs less reliable)
⏰ Best Times To Trade OBs:
• London Session (03:00-12:00 EST): Highest OB respect rate
• NY Session (08:00-17:00 EST): Strong OB reactions
• London-NY Overlap (08:00-12:00 EST): Best probability
• Asian Session: Lower probability, wait for London
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 Advanced Order Block Concepts
Order Block Flips (Polarity Change)
When price breaks through an OB and closes beyond it:
• Bullish OB that's broken becomes bearish (support becomes resistance)
• Bearish OB that's broken becomes bullish (resistance becomes support)
• Trading: Watch for retest of broken OB from opposite side
Order Block Refinement
When multiple OBs form at similar level:
• Later OB "refines" or "replaces" the earlier one
• Use the most recent OB as the active zone
• Older OBs become less relevant
Order Block Clusters
Multiple OBs stacked close together:
• Creates a "super zone" of institutional interest
• Higher probability of reversal
• Wider zone for entries (more room for confirmation)
Fair Value Gaps + Order Blocks
When OB aligns with Fair Value Gap:
• Extremely high probability setup
• Price is drawn to fill the gap AND test the OB
• Double confluence = institutional magnet
Order Block Mitigation Types
• Full Mitigation: Price fully enters and closes inside OB
• Partial Mitigation: Price wicks into OB but closes outside
• False Mitigation: Quick touch then immediate rejection
• Partial/false mitigation = OB still somewhat valid
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Common Order Block Patterns
Pattern 1: The Perfect Retest
• OB forms during strong move
• Price continues 100-200+ pips
• Price retraces back to OB
• Clean bounce with confirmation candle
• Highest probability pattern
Pattern 2: The Double Tap
• Price tests OB, bounces weakly
• Price tests same OB again
• Second test produces stronger reaction
• Second touch often better entry
Pattern 3: The Fake-Out
• Price breaks through OB
• Immediately reverses back
• "Stop hunt" or liquidity grab
• Enter after price reclaims OB
Pattern 4: The Ladder
• Multiple OBs stacked like stairs
• Price steps from one OB to next
• Each OB provides support/resistance
• Trade OB-to-OB movements
Pattern 5: The Failed OB
• Price crashes through OB without pause
• OB completely invalidated
• Often signals strong momentum
• Don't fight it, trade the breakout
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 What Makes This Different?
Unlike basic support/resistance indicators, Order Block Identifier:
• ICT Methodology - Based on proven institutional concepts
• Auto-Timeframe Optimization - Works perfectly on all timeframes
• ATR-Based Detection - Adapts to each instrument's volatility
• Mitigation Tracking - Knows when blocks are no longer valid
• Active Block Highlighting - Shows most relevant opportunity
• Smart Filtering - Only shows high-quality institutional zones
• Visual Clarity - Clean, professional appearance
• Real-Time Updates - Blocks update as price action develops
Based On Professional Concepts:
• ICT Smart Money Concepts (SMC)
• Institutional order flow analysis
• Market maker behavior patterns
• Supply and demand zone theory
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Upgrade Your Trading Arsenal
This free indicator gives you institutional-level order block analysis. Want more?
🔥 Check out my premium scripts for:
• Automated entries at order blocks with confirmation
• Fair Value Gap detection combined with OBs
• Multi-timeframe order block strategies
• Breaker blocks and advanced ICT concepts
• Complete smart money trading systems
• And much more...
👉 Visit my profile to trade like institutions!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Important Notes
• Order blocks are high-probability zones, not guarantees
• Always use confirmation (price action patterns)
• First touch of OB is most reliable (60-70% win rate)
• Mitigated blocks are much weaker (30-40% win rate)
• Works best during high-volume sessions
• Combine with proper risk management (1-2% risk per trade)
• Not all OBs are created equal - look for confluence
• Practice on demo before trading live
• Past performance doesn't guarantee future results
Learning Curve:
• Week 1-2: Learn to identify OBs and wait for retests
• Week 3-4: Practice entry confirmation and risk management
• Month 2-3: Combine with other analysis (MTF, structure, FVGs)
• Month 3+: Develop personal OB trading system
Disclaimer: For educational purposes only. Order block trading requires practice and proper risk management. Always do your own research.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🙏 Support This Work
If this indicator helps you trade with institutions:
• ⭐ Give it a thumbs up
• 💬 Share your best order block trades in comments
• 🔔 Follow for more free ICT/SMC tools
• 🚀 Share with traders learning smart money concepts
Questions about order blocks? Drop a comment and I'll explain!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Developed with ❤️ for traders who want to see what institutions see
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Version History
• v1.0 - Initial release with auto-timeframe detection and ATR-based strength filtering
T-DOW-FLOW: Final Edition
T-DOW-FLOW: Market Structure & Smart Pivot Zones
This indicator is a comprehensive technical analysis tool designed to visualize "Market Structure" based on Dow Theory and precise Supply/Demand Zones. It helps traders identify the true market trend and high-probability reaction levels by analyzing raw price action (ZigZag Pivots) rather than lagging indicators.
The script integrates three core systems:
ZigZag Trend Cloud: Visualizes the market bias (Uptrend/Downtrend).
Smart Pivot Zones (Type 1): Highlights the specific "Wick-to-Body" area of recent pivots.
Auto Density Channels (Type 2): Detects historical support/resistance clusters.
1. ZigZag Trend Identification
Logic: The script utilizes ta.highestbars and ta.lowestbars to detect Swing Highs and Swing Lows.
Trend Cloud:
If the structure creates a Higher High, the background cloud turns Green (Uptrend).
If the structure creates a Lower Low, the background cloud turns Red (Downtrend).
This provides an instant visual filter for "Trend Flow," encouraging traders to trade only in the direction of the dominant market structure.
2. SR Type 1: Smart Pivot Zones (Wick-to-Body)
Unlike standard indicators that draw thin lines at the absolute High/Low, this script focuses on the "Imbalance Zone".
It calculates the price range between the Pivot's Wick and the Pivot's Body (Open/Close) and fills this area with a colored zone.
Why? The area between the wick and body often represents the precise zone where institutional orders were filled, acting as a more reliable support/resistance level than a single price point.
3. SR Type 2: Auto Density Channels
This module scans a significant amount of historical data (default: 300 bars) to find clusters of pivot points.
Areas where multiple pivots align within a specific width are drawn as Channels. These represent strong, long-term psychological levels.
Trend Filter: Check the Trend Cloud color.
Green: Look for Long opportunities.
Red: Look for Short opportunities.
Entry Trigger: Wait for the price to retrace into a Smart Pivot Zone (Type 1) or an Auto Channel (Type 2).
Look for price rejection (wicks) at these zones in the direction of the Trend Cloud.
Structure Confirmation: Use the ZigZag lines and labels (HH, HL, etc.) to confirm that the market structure is still intact before entering.
ZigZag Settings: Adjust the sensitivity of the trend detection.
SR Type 1: Toggle the "Wick-to-Body" fill and choose between Wicks or Bodies as the primary source.
SR Type 2: Adjust the historical loopback period and channel width sensitivity.
This script is for educational and technical analysis purposes only. Past performance does not guarantee future results.
(以下、日本語説明 / Japanese Description)
このインジケーターは、「ダウ理論」に基づくトレンド判定と、精密な「需給ゾーン(Supply/Demand)」を可視化するための市場構造分析ツールです。 遅行指標を使わず、純粋なプライスアクション(ZigZagピボット)に基づいて、機関投資家の意識する価格帯を特定します。
1. ZigZagトレンドクラウド
ロジック: 一定期間の高値・安値を検出し、ダウ理論に基づいてトレンドを判定します。
視覚化: 高値切り上げ(上昇トレンド)なら「緑」、安値切り下げ(下落トレンド)なら「赤」の背景色を表示します。これにより、トレードすべき方向(順張り)を一目で判断できます。
2. SR Type 1: スマートピボットゾーン (Wick-to-Body)
単なる水平線ではなく、ローソク足の**「ヒゲ先」から「実体」までの価格差**をゾーンとして塗りつぶして表示します。
理由: ヒゲと実体の間の領域は、大口の注文が執行された(需給の不均衡が発生した)重要なエリアであることが多く、ピンポイントのラインよりも信頼性の高い反発ゾーンとして機能します。
3. SR Type 2: オート・デンシティ・チャネル
過去の長期間(デフォルト300本)のデータをスキャンし、ピボットが密集している価格帯を自動で「チャネル」として描画します。長期的に意識される強力なレジサポ帯です。
環境認識: 背景のトレンドクラウドの色に従い、目線を固定します。
エントリー: 価格がSRゾーン(Type 1)やチャネル(Type 2)に引きつけて、反発する動きを確認してエントリーします。
構造確認: ZigZagラインとラベル(HH/HLなど)を見て、トレンドが崩れていないことを確認します。
Imbalance Heatmap (Free) – pc75A clean, efficient visualisation of liquidity voids, 3-bar imbalances, and price inefficiency zones.
This indicator highlights where the market left gaps in the order flow — areas price often revisits to rebalance.
Imbalances are displayed as stacked horizontal “heatmap strips,” making it easy to see:
Where aggressive buying/selling left a void
Whether multiple voids overlap (stronger zones)
Whether price is likely to return to fill the imbalance
How old a void is (older zones are marked differently)
This is a refined v6 rewrite based on a script I liked, completely modernised with cleaner logic, better performance, and optional labels.
🔍 Features
3-bar liquidity void detection (ICT-style logic)
Bullish imbalance when price displaces upward with no wick overlap
Bearish imbalance for downward displacement
✔ Heatmap-style visualisation
Each imbalance is sliced into multiple thin horizontal bands to create a visual density effect.
✔ Stacking intelligence
If a new void overlaps previous ones, the heatmap is drawn brighter, showing areas where the market left multiple inefficiencies.
✔ “Void xN” labels
Optional labels show how many overlapping voids existed at the moment the imbalance formed.
✔ Automatic deletion when filled
As soon as price trades back through a slice, that slice is removed.
This keeps the chart clean and focuses only on active inefficiencies.
✔ Smart ageing
Older voids are marked with a subtle border so you can distinguish freshly formed inefficiencies from historical ones.
✔ Alerts
Set alerts for when price taps a stacked imbalance zone (“Void x2” and above).
⚙ Inputs & Customisation
ATR threshold (optional)
Minimum tick size gap
Number of heatmap slices
Bullish / bearish toggles
Label toggles
Colour and transparency configuration
Max slice memory for performance
💡 How to Use
Imbalance zones often behave as:
Magnets → price gravitates toward them
Support/resistance → structure respects inefficiencies
Continuity points → used with market structure shifts
Targets → for both scalpers and swing traders
Strong (stacked) voids typically represent areas of institutional displacement, where the market is more likely to return for rebalancing.
📢 Notes
This is the free version.
Educational only — not financial advice.
ICT Premium/Discount Zones [Eˣ]💰 Premium/Discount Zones - Free Indicator
Overview
Premium/Discount Zones automatically identifies where price is "expensive" (premium) versus "cheap" (discount) relative to recent price action. Based on ICT (Inner Circle Trader) concepts, this indicator helps you follow the golden rule of trading: "Buy Discount, Sell Premium" - just like institutions do. Know at a glance whether you should be looking for longs, shorts, or staying flat.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 What This Indicator Does
Identifies Value Zones:
• 🔴 Premium Zone (50%-100%) - Price above fair value = SELL/SHORT zone
• 🟢 Discount Zone (0%-50%) - Price below fair value = BUY/LONG zone
• ⚖️ Equilibrium (50%) - Fair value center line
• Dynamic calculation based on recent swing range
Zone Classification:
• Extreme Premium (75-100%): Very expensive, strong sell zone
• Premium (61.8-75%): Expensive, sell zone
• Slight Premium (50-61.8%): Slightly expensive, weak sell
• Slight Discount (38.2-50%): Slightly cheap, weak buy
• Discount (25-38.2%): Cheap, buy zone
• Extreme Discount (0-25%): Very cheap, strong buy zone
Professional Features:
• Real-Time Position Tracking - Shows exact percentage (0-100%)
• Beautiful Gradient Visualization - Darker = more extreme
• Key Fibonacci Levels - 25%, 50%, 75%, and golden ratios
• Trading Bias - Clear BUY/SELL/NEUTRAL guidance
• Price Labels - All key levels labeled on chart
• Multiple Visual Styles - Gradient, Solid, or Lines Only
Statistics Panel:
• Current position percentage
• Current zone classification
• Trading bias (BUY/SELL/NEUTRAL)
• Range size
• Distance from equilibrium
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 Understanding Premium/Discount Concept
What Are Premium/Discount Zones?
Think of the market like a store with sales:
• Discount Zone (0-50%): Items on sale - BUY here
• Premium Zone (50-100%): Full price or more - SELL here
• Equilibrium (50%): Fair price - the reference point
The ICT Concept:
Price operates in ranges between swing highs and lows. Within any range:
• The bottom half (0-50%) = Discount = Buy zone
• The top half (50-100%) = Premium = Sell zone
• The middle (50%) = Equilibrium = Fair value
Why This Works:
• Institutional Behavior: Smart money buys discount, sells premium
• Value Principle: Buy low, sell high - but relative to current range
• Mean Reversion: Price tends to return to equilibrium
• Probability: Longs from discount have higher success rate
• Risk/Reward: Better R:R when buying discount, selling premium
Real-World Example:
Imagine BTC trading between $40,000 (low) and $50,000 (high):
• $40,000 - $45,000 = Discount (buy zone) 🟢
• $45,000 = Equilibrium (fair value) ⚖️
• $45,000 - $50,000 = Premium (sell zone) 🔴
If price is at $42,000 (40% position) = Deep discount = Look for LONGS
If price is at $48,000 (80% position) = Extreme premium = Look for SHORTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 The Six Value Zones Explained
Extreme Discount (0-25%)
• What It Means: Price at "rock bottom" of current range
• Institutional Action: Heavy accumulation (buying)
• Your Action: STRONG BUY - Highest probability longs
• Strategy: Aggressive long entries, avoid shorts
• Target: Equilibrium minimum, premium zone ideal
• Stop: Below recent swing low
• Win Rate: 70-80% for long setups
Discount (25-38.2%)
• What It Means: Price is "on sale" but not extreme
• Institutional Action: Moderate accumulation
• Your Action: BUY - Good long opportunities
• Strategy: Long entries with confirmation
• Target: Equilibrium or premium
• Win Rate: 65-75% for longs
Slight Discount (38.2-50%)
• What It Means: Price approaching fair value from below
• Institutional Action: Light buying, some profit-taking
• Your Action: CAUTIOUS BUY - Lower conviction
• Strategy: Only take best setups, tight stops
• Target: Premium zone
• Win Rate: 55-65% for longs
Slight Premium (50-61.8%)
• What It Means: Price above fair value but not extreme
• Institutional Action: Light selling, some buying still
• Your Action: CAUTIOUS SELL - Lower conviction
• Strategy: Take profits on longs, consider shorts
• Target: Equilibrium or discount
• Win Rate: 55-65% for shorts
Premium (61.8-75%)
• What It Means: Price is "expensive" but not extreme
• Institutional Action: Moderate distribution (selling)
• Your Action: SELL - Good short opportunities
• Strategy: Short entries with confirmation
• Target: Equilibrium or discount
• Win Rate: 65-75% for shorts
Extreme Premium (75-100%)
• What It Means: Price at "top" of current range
• Institutional Action: Heavy distribution (selling)
• Your Action: STRONG SELL - Highest probability shorts
• Strategy: Aggressive short entries, avoid longs
• Target: Equilibrium minimum, discount ideal
• Stop: Above recent swing high
• Win Rate: 70-80% for short setups
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 How To Use This Indicator
Strategy 1: Pure Premium/Discount Trading
Best For: Swing trading, range-bound markets
Timeframes: 1H, 4H, Daily
Win Rate: 65-75%
Rules:
1. Wait for price to reach extreme zones (<25% or >75%)
2. Look for reversal confirmation (pin bar, engulfing, etc.)
3. Enter in direction back toward equilibrium
4. Stop: Beyond extreme zone
5. Target 1: Equilibrium (50%)
6. Target 2: Opposite extreme zone
7. Exit all at target 2
Example - Long from Discount:
• Price drops to 20% (extreme discount)
• Bullish pin bar forms
• Enter long at 22%
• Stop at 15%
• Target 1: 50% (take 50% profit)
• Target 2: 75%+ (exit remaining)
Strategy 2: Trend + Premium/Discount
Best For: Trading with higher timeframe trend
Timeframes: Combine Daily trend + 1H entries
Win Rate: 70-80%
Rules:
1. Identify higher timeframe trend (Daily/4H)
2. If uptrend: Only take longs from discount zones
3. If downtrend: Only take shorts from premium zones
4. Enter when price reaches discount/premium in trend direction
5. Stop: Beyond zone
6. Target: Previous high/low
Why It Works: Entering with trend + at value = highest probability
Strategy 3: Equilibrium Rejection
Best For: Quick scalps, day trading
Timeframes: 5min, 15min, 1H
Win Rate: 60-70%
Rules:
1. Price approaches equilibrium (50%)
2. Watch for rejection (immediate reversal)
3. If rejected from below: Enter short (premium target)
4. If rejected from above: Enter long (discount target)
5. Stop: 10-20 pips beyond equilibrium
6. Target: Next major zone (25% or 75%)
Why It Works: Equilibrium acts as magnet and barrier
Strategy 4: Multi-Timeframe Confluence
Best For: Position trading, high conviction trades
Timeframes: Combine Weekly + Daily + 4H
Win Rate: 75-85%
Rules:
1. Check all three timeframes
2. Look for alignment: All in discount OR all in premium
3. If all in discount: STRONG LONG setup
4. If all in premium: STRONG SHORT setup
5. Enter on lowest timeframe
6. Stop: Below/above lowest TF zone
7. Target: Opposite zone on highest TF
Why It Works: Timeframe alignment = institutional consensus
Strategy 5: Order Block + Premium/Discount
Best For: ICT/SMC traders
Timeframes: 15min, 1H, 4H
Win Rate: 75-85%
Rules:
1. Identify Order Block in discount zone (or premium for shorts)
2. Wait for price to reach the OB
3. Confluence of OB + discount = SUPER SETUP
4. Enter on OB test
5. Stop: Beyond OB
6. Target: Premium zone (or discount for shorts)
Why It Works: Double institutional concept = maximum probability
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Settings Explained
Core Settings
Range Detection Length (Default: 50)
• Lookback period for calculating swing high/low
• Lower (20-30): More reactive, follows recent swings
• Higher (100-200): Slower, shows bigger picture range
• Day Trading: 30-50 bars
• Swing Trading: 50-100 bars
• Position Trading: 100-200 bars
• Recommended: 50 for most styles
Display Settings
Show Premium/Discount Zone
• Toggle each zone on/off independently
• Customize colors for each zone
• Tip: Use contrasting colors to your chart theme
Show Equilibrium (50%)
• Toggle the center fair value line
• Most important reference line
• Recommended: Keep ON
Zone Style (Default: Gradient)
• Gradient: Beautiful color gradients, darker at extremes
• Solid: Simple solid boxes
• Lines Only: Minimal lines at key levels only
• Gradient looks best for most charts
Extend to Right
• Projects zones into future bars
• Helpful for planning entries
• Recommended: ON
Additional Levels
Show Key Fib Levels (Default: ON)
• Displays 25% and 75% levels
• These mark extreme discount/premium boundaries
• Critical levels for entries
• Recommended: Keep ON
Show 61.8% / 38.2% (Default: OFF)
• Golden ratio Fibonacci levels
• Additional confluence points
• Can make chart busier
• Use if you trade Fibonacci
Show Zone Labels (Default: ON)
• Displays "PREMIUM ZONE" and "DISCOUNT ZONE" text
• Helpful for learning
• Turn OFF after you're familiar with the zones
Show Price Labels (Default: ON)
• Shows exact prices at key levels
• Appears on right side of chart
• Very useful for setting orders
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Info Panel Guide
Position (%)
• Shows where price is in the range (0-100%)
• 0% = Bottom of range (extreme discount)
• 50% = Middle (equilibrium)
• 100% = Top of range (extreme premium)
• This is your primary reference number
Zone
• Text description of current position
• 6 possible zones from Extreme Discount to Extreme Premium
• Color-coded for quick reading
• Tells you immediately: should I buy or sell?
Bias
• Simple trading guidance
• BUY (Discount): Position <40% - Look for longs
• SELL (Premium): Position >60% - Look for shorts
• NEUTRAL: Position 40-60% - Be selective
• Follow the bias for highest probability
Range
• Current range size as % of price
• Larger range = More volatility = More opportunity
• Smaller range = Less volatility = Tighter zones
• Example: 5% range = decent volatility
From EQ
• Distance from equilibrium
• Positive (+) = Above equilibrium (premium side)
• Negative (-) = Below equilibrium (discount side)
• Quick reference for mean reversion trades
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📱 Alert Setup
This indicator includes 5 alert types:
1. Entering Discount Zone
• Fires when price crosses below 50% (equilibrium)
• Action: Start looking for long setups
• Market moving into buy zone
2. Entering Premium Zone
• Fires when price crosses above 50% (equilibrium)
• Action: Start looking for short setups
• Market moving into sell zone
3. Extreme Discount
• Fires when price crosses below 25%
• Action: STRONG BUY opportunity
• Highest probability long setups
4. Extreme Premium
• Fires when price crosses above 75%
• Action: STRONG SELL opportunity
• Highest probability short setups
5. Equilibrium Touch
• Fires when price touches 50% level
• Action: Watch for rejection/breakthrough
• Key decision point
To Set Up Alerts:
1. Click "Alert" button (clock icon)
2. Select "Premium/Discount Zones"
3. Choose your alert type
4. Configure notification method
5. Click "Create"
Pro Tip: Set "Extreme Discount" and "Extreme Premium" alerts for best setups
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💎 Pro Tips & Best Practices
✅ DO:
• Buy discount, sell premium - The golden rule, simple but effective
• Wait for extremes - Best trades at <25% or >75%
• Use confirmation - Price action, structure, patterns
• Check higher timeframes - HTF discount = strongest longs
• Follow the bias - Indicator tells you: buy, sell, or wait
• Target equilibrium minimum - Always a safe first target
• Scale positions - Bigger size at extreme discount/premium
• Be patient - Wait for price to reach value zones
⚠️ DON'T:
• Don't fade the zone blindly - Always wait for confirmation
• Don't buy premium - Longs from premium have low win rate
• Don't sell discount - Shorts from discount have low win rate
• Don't ignore equilibrium - 50% is critical magnet/barrier
• Don't fight strong trends - Trend can stay in premium/discount longer
• Don't use tight stops - Allow room within the zone
• Don't overtrade neutral - 40-60% range has lower probability
• Don't ignore timeframe alignment - Multi-TF confluence matters
🎯 Best Timeframes:
• Scalping: 5min, 15min (quick moves between zones)
• Day Trading: 15min, 1H (balanced view)
• Swing Trading: 1H, 4H, Daily (major value zones)
• Position Trading: Daily, Weekly (institutional value)
🔥 Best Markets:
• Excellent: Ranging markets, consolidations
• Good: Trending markets (use with HTF trend)
• Best Instruments: Forex, Indices, BTC, ETH (clean ranges)
• Moderate: Stocks (gaps can distort zones)
⏰ When It Works Best:
• Range-bound markets (oscillates between premium/discount)
• Trending markets (pullbacks to discount/premium)
• After breakouts (new range forms, new zones)
• High-volume sessions (London/NY)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 Advanced Premium/Discount Concepts
The Equilibrium Magnet
Price is constantly drawn to equilibrium (50%):
• From discount → Moves toward equilibrium (target)
• From premium → Moves toward equilibrium (target)
• At equilibrium → Decides next direction
• Trading: Always target equilibrium minimum on trades
Mean Reversion Principle
The further from equilibrium, the stronger the pull back:
• 90% position → Very high probability of drop toward 50%
• 10% position → Very high probability of rise toward 50%
• Trading: Extreme zones offer best risk/reward
Nested Ranges (Multi-Timeframe)
Larger TF range contains smaller TF ranges:
• Daily range: $40k - $50k (you're at 80% = daily premium)
• 1H range: $48k - $50k (you're at 20% = 1H discount)
• Conflict: Daily says sell, 1H says buy
• Solution: Higher timeframe wins - be cautious on longs
Range Expansion vs Contraction
• Expanding Range: High volatility, larger zones
• Contracting Range: Low volatility, smaller zones
• Trading: Best trades during range expansion
• Watch for breakouts when range contracts too much
Premium/Discount + Fair Value Gaps
When FVG appears in discount zone:
• Bullish FVG in discount = SUPER BUY setup
• Bearish FVG in premium = SUPER SELL setup
• Win Rate: 75-85% (double institutional concepts)
Equilibrium Rejection Strategy
50% level acts as support/resistance:
• Strong rejection from equilibrium = trend continuation
• Multiple tests of equilibrium = preparation for breakout
• Breakthrough equilibrium = trend reversal possible
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Common Premium/Discount Patterns
Pattern 1: The Perfect Swing
• Price in extreme discount (15%)
• Reversal pattern forms
• Clean move to premium (85%)
• Textbook trade, 70%+ win rate
Pattern 2: The Equilibrium Rejection
• Price approaches 50% from below
• Gets rejected, can't break through
• Returns to discount
• 50% acts as resistance
Pattern 3: The Range Expansion
• Price breaks above old range high
• New premium zone forms at higher level
• Old premium becomes new discount
• Adjust to new range
Pattern 4: The False Premium
• Price briefly enters premium (55%)
• Immediately rejected back to discount
• "Fakeout" or stop hunt
• Actually still discount trade
Pattern 5: The Trend Extension
• Strong trend keeps price in premium for extended time
• Doesn't mean reversal imminent
• Wait for actual reversal signals
• Trend can override value zones
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 What Makes This Different?
Unlike basic support/resistance, Premium/Discount Zones:
• ICT Methodology - Based on institutional value concepts
• Dynamic Calculation - Always relative to current range
• Clear Trading Bias - Know instantly: buy, sell, or wait
• Beautiful Visualization - Gradient shows intensity
• Multiple Styles - Gradient, solid, or lines
• Real-Time Tracking - Exact position percentage
• Multi-Level System - 6 zones from extreme to extreme
• Simple Yet Powerful - One rule: buy discount, sell premium
Based On Professional Concepts:
• ICT Premium/Discount theory
• Market value principles
• Mean reversion dynamics
• Institutional accumulation/distribution
• Fair value seeking behavior
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Expected Performance
Based on ICT concepts and trading observations:
Win Rates by Zone:
• Extreme Discount (0-25%) longs: 70-80%
• Discount (25-40%) longs: 65-75%
• Neutral (40-60%) either direction: 50-60%
• Premium (60-75%) shorts: 65-75%
• Extreme Premium (75-100%) shorts: 70-80%
Risk/Reward by Zone:
• Extreme zones: Typically 1:3 to 1:5 R:R
• Standard zones: Typically 1:2 to 1:3 R:R
• Neutral zones: Typically 1:1 to 1:2 R:R
Best Practices:
• Only trade extreme zones (<25%, >75%) = Highest win rate
• Target equilibrium minimum = Always safe
• Use with trend = Add 10-15% to win rate
• Combine with OB/FVG = Add 15-20% to win rate
• Wait for confirmation = Essential
Common Failures:
• Strong trends ignore value zones (20-30% of time)
• Equilibrium can act as barrier instead of target
• Range breakouts invalidate current zones
• Low volatility = zones too tight to trade
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Upgrade Your Trading Arsenal
This free indicator shows you market value like institutions see it. Want more?
🔥 Check out my premium scripts for:
• Automated Premium/Discount strategies with entries/exits
• Combined Premium/Discount + Order Block + FVG systems
• Multi-timeframe value analysis
• Complete ICT/SMC trading solutions
• Backtested performance tracking
• And much more...
👉 Visit my profile to trade value like the pros!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Important Notes
• Premium/Discount is relative to CURRENT range, not absolute
• Ranges change - zones recalculate as new highs/lows form
• Strong trends can stay in premium/discount longer than expected
• Always use confirmation - don't fade zones blindly
• Equilibrium (50%) is the most important reference line
• Best trades at extremes (<25% or >75%)
• Combine with structure, patterns, and risk management
• Works best in ranging and trending pullback scenarios
• Practice identifying value zones before live trading
Learning Curve:
• Week 1: Understand the 6 zones and bias
• Week 2: Practice identifying extreme zones
• Week 3-4: Combine with price action confirmation
• Month 2+: Integrate with Order Blocks and FVGs
Disclaimer: For educational purposes. Premium/Discount trading requires practice. Always use proper risk management.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🙏 Support This Work
If this indicator helps you buy discount and sell premium:
• ⭐ Give it a thumbs up
• 💬 Share your best value trades in comments
• 🔔 Follow for more free ICT/SMC tools
• 🚀 Share with traders learning smart money concepts
Questions about Premium/Discount? Drop a comment!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Developed with ❤️ for traders who understand the golden rule: Buy Discount, Sell Premium
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Version History
• v1.0 - Initial release with dynamic range calculation and gradient visualization
Unchased Wick Detector and ReversalsThis indicator can be used to track unchased wick from previous pivot points.
The idea is to visualise liquidity cluster and grab before a potential reversal.
Unchased wick Visual:
- White lines are protected highs or lows.
- Gray lines are previous wicks where prices have passed through and where the prices did not reverse.
Reversal window:
Reversal window parameters define a period range (a min and a max bars) where the reversal is valid.
The idea is that the reversal must be done in the couple bars right after the wick is chased (this event should stay short in time but you can adjust the period as you wish).
By default the default, the window 1-5 bars (e.g., daily, during 1-5 days).
Green color indicates a grab from a low and a reversal to the upside.
Red color indicates a grab from a high and a reversal to the downside.
Disclamer:
Of course this indicator can lead to false reversal signals and must be combined with other data and must be careful to use it alone for opening any position.
This indicator is a Alpha version let me know if any problem.
DAILY AND WEEKLY MID LINESDAILY AND WEEKLY MID LINES INDICATOR
Description:
This indicator calculates and visualizes the dynamic midpoint (mid) of the current day and week in real-time. It provides traders with key reference levels based on developing price action.
Features:
Daily Mid Line:
Color: Orange
Thickness: 3 pixels
Style: Solid line
Updates: Automatically recalculates with each new candle
Calculation: Average of the day's highest high and lowest low from market open
Weekly Mid Line:
Color: Blue
Thickness: 3 pixels
Style: Dashed line
Updates: Continuously recalculates throughout the week
Calculation: Average of the week's highest high and lowest low from week start
How It Works:
At the start of each new trading day (00:00), the daily mid line resets and begins calculating from the first candle
At the start of each new trading week (typically Monday), the weekly mid line resets and begins fresh calculations
Both lines extend automatically to the right as new candles form
The lines are dynamic - they adjust as new highs/lows are made during the day/week
Trading Applications:
Support/Resistance Levels:
The mid lines act as natural equilibrium points where price may find temporary support or resistance
Daily mid can serve as intraday pivot, weekly mid as broader market balance point
Trend Analysis:
Price consistently above mid lines suggests bullish momentum
Price consistently below mid lines suggests bearish momentum
Relationship between daily and weekly mid lines shows multi-timeframe alignment
Entry/Exit Signals:
Price crossing above daily mid may indicate short-term bullish momentum
Price crossing below daily mid may indicate short-term bearish momentum
Weekly mid breaks can signal more significant trend changes
Market Context:
Distance between price and mid lines indicates market extremity
Steeper mid line slopes suggest stronger directional momentum
Flat mid lines suggest range-bound or consolidating markets
Confluence Trading:
Combine with other indicators (RSI, MACD, moving averages) for confirmation
Use as dynamic levels for stop-loss placement or take-profit targets
Best Practices:
More effective on higher timeframes (1H, 4H, Daily) for clearer signals
Works well in trending markets where mid lines act as moving support/resistance
Monitor for price rejection or acceptance at mid levels for trading decisions
Use in conjunction with volume analysis for confirmation
Psychological Significance:
Mid points often represent fair value areas where buyers and sellers find temporary equilibrium, making them natural decision points for market participants.
This indicator is particularly useful for day traders, swing traders, and position traders looking for dynamic, real-time reference points that adapt to current market conditions rather than relying on static historical levels.
Institutional Trend & Liquidity Nexus [Pro]Concept & Methodology
The core philosophy of this script is "Confluence Filtering." It does not simply overlay indicators; it forces them to work together. A signal is only valid if it aligns with the macro trend and liquidity structure.
Key Components:
Trend Engine: Uses a combination of EMA (7/21) for fast entries and SMA (200) for macro trend direction. The script includes a logical filter that invalidates Buy signals below the SMA 200 to prevent counter-trend trading.
Liquidity Imbalance (FVG): Automatically detects Fair Value Gaps to identify areas where price is likely to react. Unlike standalone FVG scripts, this module is visually optimized to show support/resistance zones without obscuring price action.
Smart Confluence Zones (Originality):
The script calculates a background "State" based on multiple factors.
Bullish Zone (Green Background): Triggers ONLY when Price > SMA 200 AND RSI > 50 AND Price > Baseline EMA.
Bearish Zone (Red Background): Triggers ONLY when Price < SMA 200 AND RSI < 50 AND Price < Baseline EMA.
This visual aid helps traders stay out of choppy markets and only focus when momentum and trend are aligned.
█ How to Use
Entry: Wait for a "Triangle" signal (Buy/Sell).
Validation: Check the Background Color. Is it highlighting a Confluence Zone?
Example: A Buy Signal inside a Green Confluence Zone is a high-probability setup.
Example: A Buy Signal with no background color suggests weak momentum and should be taken with caution.
Targets: Use the plotted FVG boxes as potential take-profit targets or re-entry zones.
Bubbles + Clusters + SweepsIndicator For Bubbles + Clusters + Sweeps
✔ Volume bubbles
✔ Delta coloring (green/red intensity)
✔ Auto supply/demand zones
✔ Volume-profile style blocks inside zones
✔ Liquidity sweep markers
✔ Box drawings extending until filled
✔ Optional bubble filters (min-volume threshold)
SR & POI Indicator//@version=5
indicator(title='SR & POI Indicator', overlay=true, max_boxes_count=500, max_lines_count=500, max_labels_count=500)
//============================================================================
// SUPPLY/DEMAND & POI SETTINGS
//============================================================================
swing_length = input.int(10, title = 'Swing High/Low Length', group = 'Supply/Demand Settings', minval = 1, maxval = 50)
history_of_demand_to_keep = input.int(20, title = 'History To Keep', group = 'Supply/Demand Settings', minval = 5, maxval = 50)
box_width = input.float(2.5, title = 'Supply/Demand Box Width', group = 'Supply/Demand Settings', minval = 1, maxval = 10, step = 0.5)
show_price_action_labels = input.bool(false, title = 'Show Price Action Labels', group = 'Supply/Demand Visual Settings')
supply_color = input.color(color.new(#EDEDED,70), title = 'Supply', group = 'Supply/Demand Visual Settings', inline = '3')
supply_outline_color = input.color(color.new(color.white,75), title = 'Outline', group = 'Supply/Demand Visual Settings', inline = '3')
demand_color = input.color(color.new(#00FFFF,70), title = 'Demand', group = 'Supply/Demand Visual Settings', inline = '4')
demand_outline_color = input.color(color.new(color.white,75), title = 'Outline', group = 'Supply/Demand Visual Settings', inline = '4')
bos_label_color = input.color(color.white, title = 'BOS Label', group = 'Supply/Demand Visual Settings')
poi_label_color = input.color(color.white, title = 'POI Label', group = 'Supply/Demand Visual Settings')
swing_type_color = input.color(color.black, title = 'Price Action Label', group = 'Supply/Demand Visual Settings')
//============================================================================
// SR SETTINGS
//============================================================================
enableSR = input(true, "SR On/Off", group="SR Settings")
colorSup = input(#00DBFF, "Support Color", group="SR Settings")
colorRes = input(#E91E63, "Resistance Color", group="SR Settings")
strengthSR = input.int(2, "S/R Strength", 1, group="SR Settings")
lineStyle = input.string("Dotted", "Line Style", , group="SR Settings")
lineWidth = input.int(2, "S/R Line Width", 1, group="SR Settings")
useZones = input(true, "Zones On/Off", group="SR Settings")
useHLZones = input(true, "High Low Zones On/Off", group="SR Settings")
zoneWidth = input.int(2, "Zone Width %", 0, tooltip="it's calculated using % of the distance between highest/lowest in last 300 bars", group="SR Settings")
expandSR = input(true, "Expand SR", group="SR Settings")
//============================================================================
// SUPPLY/DEMAND FUNCTIONS
//============================================================================
// Function to add new and remove last in array
f_array_add_pop(array, new_value_to_add) =>
array.unshift(array, new_value_to_add)
array.pop(array)
// Function for swing H & L labels
f_sh_sl_labels(array, swing_type) =>
var string label_text = na
if swing_type == 1
if array.get(array, 0) >= array.get(array, 1)
label_text := 'HH'
else
label_text := 'LH'
label.new(bar_index - swing_length, array.get(array,0), text = label_text, style=label.style_label_down, textcolor = swing_type_color, color = color.new(swing_type_color, 100), size = size.tiny)
else if swing_type == -1
if array.get(array, 0) >= array.get(array, 1)
label_text := 'HL'
else
label_text := 'LL'
label.new(bar_index - swing_length, array.get(array,0), text = label_text, style=label.style_label_up, textcolor = swing_type_color, color = color.new(swing_type_color, 100), size = size.tiny)
// Function to check overlapping
f_check_overlapping(new_poi, box_array, atr) =>
atr_threshold = atr * 2
okay_to_draw = true
for i = 0 to array.size(box_array) - 1
top = box.get_top(array.get(box_array, i))
bottom = box.get_bottom(array.get(box_array, i))
poi = (top + bottom) / 2
upper_boundary = poi + atr_threshold
lower_boundary = poi - atr_threshold
if new_poi >= lower_boundary and new_poi <= upper_boundary
okay_to_draw := false
break
else
okay_to_draw := true
okay_to_draw
// Function to draw supply or demand zone
f_supply_demand(value_array, bn_array, box_array, label_array, box_type, atr) =>
atr_buffer = atr * (box_width / 10)
box_left = array.get(bn_array, 0)
box_right = bar_index
var float box_top = 0.00
var float box_bottom = 0.00
var float poi = 0.00
if box_type == 1
box_top := array.get(value_array, 0)
box_bottom := box_top - atr_buffer
poi := (box_top + box_bottom) / 2
else if box_type == -1
box_bottom := array.get(value_array, 0)
box_top := box_bottom + atr_buffer
poi := (box_top + box_bottom) / 2
okay_to_draw = f_check_overlapping(poi, box_array, atr)
if box_type == 1 and okay_to_draw
box.delete( array.get(box_array, array.size(box_array) - 1) )
f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = supply_outline_color,
bgcolor = supply_color, extend = extend.right, text = 'SUPPLY', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
box.delete( array.get(label_array, array.size(label_array) - 1) )
f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = color.new(poi_label_color,90),
bgcolor = color.new(poi_label_color,90), extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
else if box_type == -1 and okay_to_draw
box.delete( array.get(box_array, array.size(box_array) - 1) )
f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = demand_outline_color,
bgcolor = demand_color, extend = extend.right, text = 'DEMAND', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
box.delete( array.get(label_array, array.size(label_array) - 1) )
f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = color.new(poi_label_color,90),
bgcolor = color.new(poi_label_color,90), extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))
// Function to change supply/demand to BOS if broken
f_sd_to_bos(box_array, bos_array, label_array, zone_type) =>
if zone_type == 1
for i = 0 to array.size(box_array) - 1
level_to_break = box.get_top(array.get(box_array,i))
if close >= level_to_break
copied_box = box.copy(array.get(box_array,i))
f_array_add_pop(bos_array, copied_box)
mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) / 2
box.set_top(array.get(bos_array,0), mid)
box.set_bottom(array.get(bos_array,0), mid)
box.set_extend( array.get(bos_array,0), extend.none)
box.set_right( array.get(bos_array,0), bar_index)
box.set_text( array.get(bos_array,0), 'BOS' )
box.set_text_color( array.get(bos_array,0), bos_label_color)
box.set_text_size( array.get(bos_array,0), size.small)
box.set_text_halign( array.get(bos_array,0), text.align_center)
box.set_text_valign( array.get(bos_array,0), text.align_center)
box.delete(array.get(box_array, i))
box.delete(array.get(label_array, i))
if zone_type == -1
for i = 0 to array.size(box_array) - 1
level_to_break = box.get_bottom(array.get(box_array,i))
if close <= level_to_break
copied_box = box.copy(array.get(box_array,i))
f_array_add_pop(bos_array, copied_box)
mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) / 2
box.set_top(array.get(bos_array,0), mid)
box.set_bottom(array.get(bos_array,0), mid)
box.set_extend( array.get(bos_array,0), extend.none)
box.set_right( array.get(bos_array,0), bar_index)
box.set_text( array.get(bos_array,0), 'BOS' )
box.set_text_color( array.get(bos_array,0), bos_label_color)
box.set_text_size( array.get(bos_array,0), size.small)
box.set_text_halign( array.get(bos_array,0), text.align_center)
box.set_text_valign( array.get(bos_array,0), text.align_center)
box.delete(array.get(box_array, i))
box.delete(array.get(label_array, i))
// Function to extend box endpoint
f_extend_box_endpoint(box_array) =>
for i = 0 to array.size(box_array) - 1
box.set_right(array.get(box_array, i), bar_index + 100)
//============================================================================
// SR FUNCTIONS
//============================================================================
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
//============================================================================
// SUPPLY/DEMAND CALCULATIONS
//============================================================================
atr = ta.atr(50)
swing_high = ta.pivothigh(high, swing_length, swing_length)
swing_low = ta.pivotlow(low, swing_length, swing_length)
var swing_high_values = array.new_float(5,0.00)
var swing_low_values = array.new_float(5,0.00)
var swing_high_bns = array.new_int(5,0)
var swing_low_bns = array.new_int(5,0)
var current_supply_box = array.new_box(history_of_demand_to_keep, na)
var current_demand_box = array.new_box(history_of_demand_to_keep, na)
var current_supply_poi = array.new_box(history_of_demand_to_keep, na)
var current_demand_poi = array.new_box(history_of_demand_to_keep, na)
var supply_bos = array.new_box(5, na)
var demand_bos = array.new_box(5, na)
// New swing high
if not na(swing_high)
f_array_add_pop(swing_high_values, swing_high)
f_array_add_pop(swing_high_bns, bar_index )
if show_price_action_labels
f_sh_sl_labels(swing_high_values, 1)
f_supply_demand(swing_high_values, swing_high_bns, current_supply_box, current_supply_poi, 1, atr)
// New swing low
else if not na(swing_low)
f_array_add_pop(swing_low_values, swing_low)
f_array_add_pop(swing_low_bns, bar_index )
if show_price_action_labels
f_sh_sl_labels(swing_low_values, -1)
f_supply_demand(swing_low_values, swing_low_bns, current_demand_box, current_demand_poi, -1, atr)
f_sd_to_bos(current_supply_box, supply_bos, current_supply_poi, 1)
f_sd_to_bos(current_demand_box, demand_bos, current_demand_poi, -1)
f_extend_box_endpoint(current_supply_box)
f_extend_box_endpoint(current_demand_box)
//============================================================================
// SR CALCULATIONS & PLOTTING
//============================================================================
rb = 10
prd = 284
ChannelW = 10
label_loc = 55
style = lineStyle == "Solid" ? line.style_solid : lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
ph = ta.pivothigh(rb, rb)
pl = ta.pivotlow (rb, rb)
sr_levels = array.new_float(21, na)
prdhighest = ta.highest(prd)
prdlowest = ta.lowest(prd)
cwidth = percWidth(prd, ChannelW)
zonePerc = percWidth(300, zoneWidth)
aas = array.new_bool(41, true)
u1 = 0.0, u1 := nz(u1 )
d1 = 0.0, d1 := nz(d1 )
highestph = 0.0, highestph := highestph
lowestpl = 0.0, lowestpl := lowestpl
var sr_levs = array.new_float(21, na)
label hlabel = na, label.delete(hlabel )
label llabel = na, label.delete(llabel )
var sr_lines = array.new_line(21, na)
var sr_linesH = array.new_line(21, na)
var sr_linesL = array.new_line(21, na)
var sr_linesF = array.new_linefill(21, na)
var sr_labels = array.new_label(21, na)
if ph or pl
for x = 0 to array.size(sr_levels) - 1
array.set(sr_levels, x, na)
highestph := prdlowest
lowestpl := prdhighest
countpp = 0
for x = 0 to prd
if na(close )
break
if not na(ph ) or not na(pl )
highestph := math.max(highestph, nz(ph , prdlowest), nz(pl , prdlowest))
lowestpl := math.min(lowestpl, nz(ph , prdhighest), nz(pl , prdhighest))
countpp += 1
if countpp > 40
break
if array.get(aas, countpp)
upl = (ph ? high : low ) + cwidth
dnl = (ph ? high : low ) - cwidth
u1 := countpp == 1 ? upl : u1
d1 := countpp == 1 ? dnl : d1
tmp = array.new_bool(41, true)
cnt = 0
tpoint = 0
for xx = 0 to prd
if na(close )
break
if not na(ph ) or not na(pl )
chg = false
cnt += 1
if cnt > 40
break
if array.get(aas, cnt)
if not na(ph )
if high <= upl and high >= dnl
tpoint += 1
chg := true
if not na(pl )
if low <= upl and low >= dnl
tpoint += 1
chg := true
if chg and cnt < 41
array.set(tmp, cnt, false)
if tpoint >= strengthSR
for g = 0 to 40 by 1
if not array.get(tmp, g)
array.set(aas, g, false)
if ph and countpp < 21
array.set(sr_levels, countpp, high )
if pl and countpp < 21
array.set(sr_levels, countpp, low )
// Plot SR
var line highest_ = na, line.delete(highest_)
var line lowest_ = na, line.delete(lowest_)
var line highest_fill1 = na, line.delete(highest_fill1)
var line highest_fill2 = na, line.delete(highest_fill2)
var line lowest_fill1 = na, line.delete(lowest_fill1)
var line lowest_fill2 = na, line.delete(lowest_fill2)
hi_col = close >= highestph ? colorSup : colorRes
lo_col = close >= lowestpl ? colorSup : colorRes
if enableSR
highest_ := line.new(bar_index - 311, highestph, bar_index, highestph, xloc.bar_index, expandSR ? extend.both : extend.right, hi_col, style, lineWidth)
lowest_ := line.new(bar_index - 311, lowestpl , bar_index, lowestpl , xloc.bar_index, expandSR ? extend.both : extend.right, lo_col, style, lineWidth)
if useHLZones
highest_fill1 := line.new(bar_index - 311, highestph + zonePerc, bar_index, highestph + zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na)
highest_fill2 := line.new(bar_index - 311, highestph - zonePerc, bar_index, highestph - zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na)
lowest_fill1 := line.new(bar_index - 311, lowestpl + zonePerc , bar_index, lowestpl + zonePerc , xloc.bar_index, expandSR ? extend.both : extend.right, na)
lowest_fill2 := line.new(bar_index - 311, lowestpl - zonePerc , bar_index, lowestpl - zonePerc , xloc.bar_index, expandSR ? extend.both : extend.right, na)
linefill.new(highest_fill1, highest_fill2, color.new(hi_col, 80))
linefill.new(lowest_fill1 , lowest_fill2 , color.new(lo_col, 80))
if ph or pl
for x = 0 to array.size(sr_lines) - 1
array.set(sr_levs, x, array.get(sr_levels, x))
for x = 0 to array.size(sr_lines) - 1
line.delete(array.get(sr_lines, x))
line.delete(array.get(sr_linesH, x))
line.delete(array.get(sr_linesL, x))
linefill.delete(array.get(sr_linesF, x))
if array.get(sr_levs, x) and enableSR
line_col = close >= array.get(sr_levs, x) ? colorSup : colorRes
array.set(sr_lines, x, line.new(bar_index - 355, array.get(sr_levs, x), bar_index, array.get(sr_levs, x), xloc.bar_index, expandSR ? extend.both : extend.right, line_col, style, lineWidth))
if useZones
array.set(sr_linesH, x, line.new(bar_index - 355, array.get(sr_levs, x) + zonePerc, bar_index, array.get(sr_levs, x) + zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na))
array.set(sr_linesL, x, line.new(bar_index - 355, array.get(sr_levs, x) - zonePerc, bar_index, array.get(sr_levs, x) - zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na))
array.set(sr_linesF, x, linefill.new(array.get(sr_linesH, x), array.get(sr_linesL, x), color.new(line_col, 80)))
for x = 0 to array.size(sr_labels) - 1
label.delete(array.get(sr_labels, x))
if array.get(sr_levs, x) and enableSR
lab_loc = close >= array.get(sr_levs, x) ? label.style_label_up : label.style_label_down
lab_col = close >= array.get(sr_levs, x) ? colorSup : colorRes
array.set(sr_labels, x, label.new(bar_index + label_loc, array.get(sr_levs, x), str.tostring(math.round_to_mintick(array.get(sr_levs, x))), color=lab_col , textcolor=#000000, style=lab_loc))
hlabel := enableSR ? label.new(bar_index + label_loc + math.round(math.sign(label_loc)) * 20, highestph, "High Level : " + str.tostring(highestph), color=hi_col, textcolor=#000000, style=label.style_label_down) : na
llabel := enableSR ? label.new(bar_index + label_loc + math.round(math.sign(label_loc)) * 20, lowestpl , "Low Level : " + str.tostring(lowestpl) , color=lo_col, textcolor=#000000, style=label.style_label_up ) : na
Structure Breakout - Buy Sell IndicatorStructure Breakout - Buy Sell Indicator
📈 OVERVIEW:
A minimalist indicator that identifies market structure breakouts using swing point analysis.
Displays clear blue buy arrows and red sell arrows when price breaks key swing levels.
🔧 HOW IT WORKS:
1. Identifies swing highs and lows using configurable lookback period
2. Triggers BUY signal (blue arrow) when price closes above previous swing high
3. Triggers SELL signal (red arrow) when price closes below previous swing low
4. Uses clean visual arrows without cluttering the chart
⚙️ KEY FEATURES:
• Clean, uncluttered visual signals
• Customizable sensitivity period
• Blue arrows for buy signals (below bars)
• Red arrows for sell signals (above bars)
• No lagging repainting
• Works on all timeframes
🎯 TRADING APPLICATIONS:
• Swing trading entries
• Breakout confirmation
• Trend continuation signals
• Support/resistance breaks
⚡ SETTINGS:
• Structure Detection Period (default: 20) - Adjust sensitivity of swing detection
⚠️ RISK DISCLAIMER:
This is an educational tool. Always use proper risk management.
Past performance does not guarantee future results.
Auto Reaction Zones (XAUUSD)
✅ Auto Reaction Zones (XAUUSD) OANDA:XAUUSD
Auto Reaction Zones (XAUUSD) is an advanced supply & demand mapping tool designed to detect high-probability reaction zones using price impulses, volatility filters, market structure, and adaptive confirmation logic.
This indicator automatically identifies strong bullish and bearish reaction bases formed before impulsive movements, then plots dynamic demand and supply zones that help traders anticipate future reactions, reversals, or continuation points.
🔍 Core Features
▪ Automatic Supply & Demand Zone Detection
Identifies zones based on structural breakout impulses using ATR-based thresholds, volume confirmation, and validated base levels.
▪ Adaptive Confirmation Distance (ADR-Based)
The zone becomes active/confirmed only after price moves a configurable number of points.
A unique 3-case ADR logic adjusts the required confirmation distance based on current market volatility:
Case 1: Low ADR → smaller confirmation required
Case 2: Moderate ADR → medium confirmation
Case 3: High ADR → higher confirmation (more filtering)
This ensures stronger zones in high-volatility conditions (e.g., XAUUSD).
▪ Smart Zone Management
Automatic extension until tested or consumed
Optional lifetime limits (bars or days)
Auto-delete unconfirmed zones if price violates them too early
Hide tested or consumed zones for a cleaner chart
▪ Adjustable Zone Size Filtering
Option to enforce a minimum or maximum zone size, useful for cleaning noise and ultra-small reaction levels.
▪ ADR-Based Zone Spacing Filter
Prevents the creation of zones that are too close to each other.
Different spacing rules for same-direction and opposite-direction zones.
▪ Multi-Timeframe Mode
Overlay zones detected from higher timeframes directly onto your current chart.
▪ Directional Bias (EMA Filter)
Optionally restrict long/short zones based on EMA trend alignment.
▪ Real-Time Alerts
Receive alerts when price touches any active zone or only fresh zones.
🎯 Why This Indicator Is Different
Unlike typical supply/demand indicators that print every swing,
Auto Reaction Zones focuses on:
Only strong reaction bases
Only valid impulse-generated levels
Only zones confirmed by price movement
Only zones that respect volatility and minimum spacing rules
This results in cleaner charting, fewer false zones, and far more reliable reaction levels, especially on volatile instruments like XAUUSD.
⚠️ Disclaimer
This tool is not financial advice. Always combine zone analysis with broader market context and risk management.
Custom Session Static Breakout Levels
This indicator defines a trading session based on user-specified time and a custom GMT timezone. Its primary function is to provide traders with fixed historical data rather than dynamic information.
Core Logic:
Dynamic Box Update: While the price remains within the session, the "Box" (dynamic high/low) tracks the current session's extreme prices.
Static Level Anchoring: The moment price breaks above the session's high or below its low, the Box updates, and a static horizontal price line is immediately drawn at the previous, unbroken extreme (the historical support/resistance of the Box).
Breakout Identification: The candle responsible for the breakout is clearly marked, providing traders with an anchor point for fixed, structural analysis.
Session, Weekly, Daily LevelsScroll down for hungarian description!
Magyar leíráshoz görgess lejjebb!
Overview
This script provides a unified market structure mapping tool that automatically identifies and visualizes key intraday, daily, and weekly reference levels. It helps traders contextualize price action throughout the trading week by marking true session opens, previous day highs/lows, weekly highs/lows, and weekday opens, all with accurate historical anchoring and correct timezone handling.
What This Script Does
1. Intraday Session Opens (Tokyo, London, New York)
- Detects the exact candle where each session opens.
- Draws horizontal rays with labels.
- Automatically clears lines at the start of each new day.
- Uses a custom local-to-exchange timezone conversion system.
2. Weekly Levels
- Last week high and low (precise bar anchoring, not HTF aggregation)
- Current week open (also Monday open)
- Auto-reset on new week
- Levels are always drawn from the true candle where they formed.
3. Previous Day High & Low
- Continuously tracks intraday highs and lows.
- On a new day, stores yesterday’s values and anchors rays to the exact bars.
- Levels remain visible for the full current day and reset the next day.
4. Weekday Opens (Tue–Fri)
- Captures the exact opening price of Tuesday–Friday.
- Monday open = Week open, so it is not shown separately.
- Auto-reset on new week.
Timezone Logic (Original Feature)
The script converts:
local session times → exchange timezone → chart timestamps
It works correctly regardless of chart timezone or instrument exchange location.
Line Drawing Logic
- Finds the exact bar_index where each level forms.
- Draws rays extending to the right.
- Labels are placed ahead of price.
- Safe updating prevents “bar index too far” errors.
How to Use
- Identify daily/weekly structure.
- Track bias relative to session opens.
- Observe reactions around weekday opens.
- Compare price action to last week's range.
Originality
- Custom timezone conversion engine.
- True historical bar anchoring.
- Fully automated weekly/daily structural resets.
- Independent styling for each level type.
- Not a mashup; all components follow one unified logic.
Limitations
- Does not predict trend or direction.
- Structural tool only.
Summary
A precise and reliable market structure tool that unifies weekly, daily, and intraday reference levels with full timezone automation and true-candle anchoring.
MAGYAR LEÍRÁS
--------------
Áttekintés
Ez az indikátor egy összetett piaci szerkezet-feltérképező eszköz, amely automatikusan megjeleníti a legfontosabb intraday, napi és heti referenciaértékeket. A célja, hogy a kereskedő tisztán lássa a piac aktuális környezetét: hol nyíltak a főbb devizapiaci szekciók, hogyan alakult a tegnapi tartomány, hol volt a múlt heti csúcs/mélypont, és hogyan nyitottak az egyes hétköznapok.
Mit tud a script?
1. Szekciónyitások (Tokyo, London, New York)
- Megkeresi a pontos gyertyát, amely a szekciónyitáskori árat tartalmazza.
- Vízszintes vonalat és címkét rajzol.
- Minden nap elején automatikusan törli a korábbi nap szintjeit.
- Egyedi időzóna-konverziós rendszerrel működik (helyi idő → tőzsdei idő → chart idő).
2. Heti szintek
- Múlt heti maximum és minimum (pontos gyertyapontra horgonyozva)
- Aktuális heti nyitóár (egyben a hétfői nyitó is)
- Új hét kezdetekor automatikusan frissül.
- A múlt heti high/low nem fix időpontra, hanem a valódi gyertyára kerül.
3. Előző napi High és Low
- Folyamatosan követi a napi maximumot és minimumot.
- Napváltáskor elmenti és pontos gyertyáról indítja a ray-t.
- A szintek a teljes nap folyamán megmaradnak, majd a következő nap törlődnek.
4. Hétköznapok nyitóárai (Kedd–Péntek)
- A kedd, szerda, csütörtök és péntek nyitóárát rögzíti és megjeleníti.
- A hétfői nyitó a Week Open, ezért külön nem jelenik meg.
- Heti váltáskor automatikusan törlődnek.
Időzóna-kezelés (egyedi megoldás)
A script a felhasználó helyi idejét átszámítja az instrumentum tőzsdei időzónájára, majd a chartra vetíti.
Ez biztosítja, hogy minden szekciónyitás helyesen jelenik meg, bármely chart vagy instrumentum esetén.
Vonalrajzolási logika
- A szintek a valódi bar_index alapján kerülnek rögzítésre.
- Jobbra nyúló ray-eket rajzol.
- A címkék mindig a jobb oldalon, előre helyezve jelennek meg.
- Biztonságos frissítési rendszer akadályozza meg a hibákat (pl. “bar index too far”).
Használat
- Napi/heti szerkezet meghatározása.
- Bias követése a session openekhez viszonyítva.
- Reakciók figyelése a hétköznapok nyitóárai körül.
- Összevetés a múlt heti tartománnyal.
Eredetiség
- Egyedi időzóna-kezelő motor.
- Igazi gyertyapont-alapú horgonyzás.
- Automatikus napi/heti reset.
- Minden szint külön stílusban konfigurálható.
- Nem mashup; egységes rendszer.
Összegzés
Professzionális, pontos eszköz a piaci szerkezet feltérképezésére, amely egyesíti a heti, napi és intraday szinteket, teljes időzóna-automatizálással és gyertyapontra horgonyzott kijelölésekkel.
Daily Settlement TWAPThis TWAP is reanchored to 14:59 CT everyday which is the CME settlement period for SP500 and Emini500 (14:59:30-15:00:00 CT). It has 5 standard deviations.
Structure Analysis + Hammer Alert# Structure Resistance + Hammer Alert
## 📊 Indicator Overview
This indicator integrates Structure Breakout Analysis with Candlestick Pattern Recognition, helping traders identify market trend reversal points and strong momentum signals. Through visual markers and background colors, you can quickly grasp the bullish/bearish market structure.
---
## 🎯 Core Features
### 1️⃣ Structure Resistance System
- Auto-plot Previous High/Low: Automatically marks key support/resistance based on pivot points
- Structure Breakout Detection: Shows "BULL" when price breaks above previous high, "BEAR" when breaking below previous low
- Trend Background Color: Green background for bullish structure, red background for bearish structure
### 2️⃣ Bullish Momentum Candles (Hammer Patterns)
Detects candles with long lower shadows, indicating strong buying pressure at lows:
- 💪Strong Bull (Bullish Hammer): Green marker, bullish close with significant lower shadow
- 💪Weak Bull (Bearish Hammer): Teal marker, bearish close but strong lower shadow
### 3️⃣ Bearish Momentum Candles (Inverted Hammer/Shooting Star)
Detects candles with long upper shadows, indicating strong selling pressure at highs:
- 💪Weak Bear (Bullish Inverted Hammer): Orange marker, bullish close but significant upper shadow
- 💪Strong Bear (Shooting Star): Red marker, bearish close with significant upper shadow
### 4️⃣ Smart Marker Sizing
Markers automatically adjust size based on current trend:
- With-Trend Signals: Larger markers (e.g., hammer in bullish trend)
- Counter-Trend Signals: Smaller markers (e.g., shooting star in bullish trend)
- Neutral Trend: Medium-sized markers
---
## ⚙️ Parameter Settings
### Structure Resistance Parameters
- Swing Length: Default 5, higher values = clearer structure but fewer signals
- Show Lines/Labels: Toggle on/off options
### Bullish Momentum (Hammer) Parameters
- Lower Shadow/Body Ratio: Default 2.0, lower shadow must be 2x body size
- Upper Shadow/Body Ratio Limit: Default 0.2, upper shadow cannot be too long
- Body Position Ratio: Default 2.0, ensures body is at the top of candle
### Bearish Momentum (Inverted Hammer) Parameters
- Upper Shadow/Body Ratio: Default 2.0, upper shadow must be 2x body size
- Lower Shadow/Body Ratio Limit: Default 0.2, lower shadow cannot be too long
- Body Position Ratio: Default 2.0, ensures body is at the bottom of candle
### Filter & Display Settings
- Minimum Body Size: Filters out doji-like candles with tiny bodies
- Pattern Type Toggles: Show/hide different pattern types individually
- Background Transparency: Adjust background color intensity (higher = more transparent)
- Label Distance: Adjust marker distance from candles
---
## 📈 Usage Guidelines
### Trading Signal Interpretation
**Long Signals (Strongest to Weakest):**
1. Bullish Structure + Bullish Hammer (💪Strong Bull) → Strongest long signal
2. Bullish Structure + Bearish Hammer (💪Weak Bull) → Secondary long signal
3. Bearish Structure + Hammer → Potential reversal signal
**Short Signals (Strongest to Weakest):**
1. Bearish Structure + Shooting Star (💪Strong Bear) → Strongest short signal
2. Bearish Structure + Bullish Inverted Hammer (💪Weak Bear) → Secondary short signal
3. Bullish Structure + Shooting Star → Potential reversal signal
### Practical Tips
✅ Trend Following: Prioritize large marker signals (aligned with trend)
✅ Structure Confirmation: Wait for structure breakout before entry to avoid false breaks
✅ Multiple Timeframes: Confirm trend direction with higher timeframes
⚠️ Counter-Trend Caution: Small marker signals (counter-trend) require stricter risk management
---
## 🔔 Alert Setup
This indicator provides 9 alert conditions:
- Individual Patterns: Bullish Hammer, Bearish Hammer, Bullish Inverted Hammer, Shooting Star
- Combined Signals: Bullish Momentum, Bearish Momentum, Bull/Bear Momentum
- Structure Breakouts: Bullish Structure Break, Bearish Structure Break
---
## 💡 FAQ
**Q: Why do hammers sometimes appear without markers?**
A: Check "Minimum Body Size" setting - the candle body may be too small and filtered out
**Q: Too many or too few markers?**
A: Adjust "Lower Shadow/Body Ratio" or "Upper Shadow/Body Ratio" parameters - higher ratios = stricter conditions
**Q: How to see only the strongest signals?**
A: Disable "Bearish Hammer" and "Bullish Inverted Hammer", keep only "Bullish Hammer" and "Shooting Star"
**Q: Can it be used on all timeframes?**
A: Yes, but recommended for 15-minute and higher timeframes - shorter timeframes have more noise
---
## 📝 Disclaimer
⚠️ This indicator is a supplementary tool and should be used with other technical analysis methods
⚠️ Past performance does not guarantee future results - always practice proper risk management
⚠️ Recommended to test on demo account before live trading
---
**Version:** Pine Script v6
**Applicable Markets:** Stocks, Futures, Cryptocurrencies, and all markets
RVol based Support & Resistance ZonesDescription:
This indicator is designed to help traders identify significant price levels based on institutional volume. It monitors two higher timeframes (defined by the user) simultaneously. When a candle on these higher timeframes exhibits unusually high volume—known as high Relative Volume (RVol)—the indicator automatically draws a "Zone of Interest" box on your current chart.
These zones are defined by:
Up candle : from candle open to low of candle
Down candle : from candle open to high of candle
Key Features:
Multi-Timeframe Monitoring: You can trade on a lower timeframe (e.g., 5-minute) while the indicator monitors the 30-minute and 1-hour charts for volume spikes.
RVol Boxes: Automatically draws boxes extending from high-volume candles.
Up Candles: Box covers Low to Open.
Down Candles: Box covers High to Open.
Live Dashboard: A neat, color-coded table displays the current Volume, Average Volume, and RVol percentage for your watched timeframes.
Real-Time vs. Confirmed: Choose whether to see boxes appear immediately as volume spikes (Live) or only after the candle has closed and confirmed the volume (Candle Close).
Settings Guide:
1. General Settings
Relative Volume Length: The number of past candles used to calculate the "Average Volume." (Default is 20).
Max Days Back to Draw: To keep your chart clean, this limits how far back in history the script looks for high-volume zones. (e.g., set to 5 to only see zones created in the last 5 days).
Draw Mode:
- Live (Real-time): Draws the box immediately if the current developing candle hits the volume threshold. (Note: The box may disappear if the volume average shifts before the candle closes).
- Candle Close: The box only appears once the candle has finished and permanently confirmed the volume spike.
2. Table Settings
Show Info Table: Toggles the dashboard on or off.
Text Size & Position: Customise where the table appears on your screen and how large the text is.
Colours: Fully customisable colours for the Table Header (Top row) and Data Rows (Bottom rows).
3. Timeframe 1 & 2 Settings
You have two identical sections to configure two different timeframes (e.g., 30m and 1H).
Timeframe: The chart interval to monitor (e.g., "30" for 30 minutes, "60" for 1 Hour, "240" for 4 Hours).
Threshold %: The "Trigger" for drawing a box based on relative candle volume in that timeframe.
Example:
100% = Candle Volume is equal to the average volume for the specified timeframe.
200% = Candle Volume is 2x the average volume for the specified timeframe.
300% = Candle Volume is 3x the average volume for the specified timeframe.
Box & Edge Colour: Distinct colours for each timeframe so you can easily tell which timeframe created the zone.
IDWM Master StructureExecutive Summary
The IDWM Master Structure is a Multi-Timeframe (MTF) trading tool designed to force discipline by aligning traders with the "Parent" trend. It functions by locking onto the "Completed Auction" of a higher timeframe candle (like a Daily or Weekly bar) and projecting that structure onto your lower timeframe chart. Its primary goal is to define the "Dealing Range"—the hard boundaries where value was previously established—so you don't get lost in the noise of smaller price movements.
1. The Principle of Completed Auctions (Hierarchy)
Most technical indicators curve dynamically with every price tick. This script acts differently because it relies on "Settled Arguments." A closed Daily candle represents a finished battle between buyers and sellers; the High and Low are the historical results of that battle.
To enforce this, the script automatically selects a "Parent" timeframe based on your view:
Scalping (charts below 15 minutes) uses the 4-Hour Auction.
Intraday trading (15 minutes to 4 Hours) uses the Daily Auction.
Swing trading (Daily chart) uses the Weekly Auction.
2. Liquidity Pools & The Sticky Range
The High and Low lines drawn by the indicator are not just support and resistance; they represent Liquidity Pools. In market theory, stop-losses (Sell Stops below Lows, Buy Stops above Highs) accumulate at these edges.
Smart money often pushes price just past these lines to grab this liquidity (a "Stop Hunt") before reversing direction. To account for this, the script uses a "Sticky Range" mechanism. It refuses to redraw the box simply because price touched the line. Instead, it uses an Average True Range (ATR) Buffer. A new structure is only formed if the candle closes decisively outside the range plus this volatility buffer. This ensures you are trading real breakouts, not liquidity sweeps.
3. Internal Range Mechanics (Premium vs. Discount)
Inside the Master Box, the script applies Equilibrium Theory to help with trade location.
The most important internal line is the Equilibrium (EQ), which marks the exact 50% point of the range.
Premium Zone (Above EQ): Price is mathematically "expensive" relative to the recent range. Algorithms generally look to establish Short positions here.
Discount Zone (Below EQ): Price is considered "cheap." Algorithms generally look to establish Long positions here.
It also plots the Master Open, which acts as a "Line in the Sand." If price is currently trading above the Master Open, the higher timeframe candle is Green (Bullish), suggesting longs have a higher probability. If below, the candle is Red (Bearish).
4. Wick Theory (Failed Auctions)
The script places special emphasis on the wicks of the Master Candle because a wick represents a "Failed Auction"—a price level the market tried to explore but ultimately rejected.
The indicator highlights the background of the wick area (from the High to the Body). On a retest, these zones often act as supply or demand blocks because the market remembers the previous failure.
It also calculates the "Consequent Encroachment," which is the 50% midpoint of the wick. The rule of thumb here is that if a candle body can close past 50% of a wick, the rejection is nullified, and price will likely travel to fill the entire wick.
5. Energy Expansion (Breakout Targets)
Market energy transfers from Consolidation (inside the box) to Expansion (the breakout). When the price finally breaks the "Sticky Range" (confirming via the ATR buffer), the script projects where that energy will go.
It uses the height of the previous range to calculate Fibonacci extensions. Specifically, it targets the 1.618 Extension, often called the "Golden Ratio." This is a statistically significant level where expansion moves tend to exhaust themselves and reverse.
6. Safety Protocol: Live Detection
A dashboard monitors the state of the parent candle. If the text turns Magenta with a warning symbol, it means the Higher Timeframe candle is "Live" (still forming).
Trading off a live structure is considered higher risk because the "Auction" isn't finished—the High or Low can still shift. The safest approach is to trade when the dashboard indicates a standard, locked, historical structure.
Multi-Tool VWAP + EMAs (Multi-Timeframe) + Key LevelsDescription
This indicator combines several commonly used technical analysis tools into a single script, especially useful for traders using the free version of TradingView or anyone looking to reduce the number of indicators on their chart.
The goal is to provide clear visual references for trend, structure, and key levels—without generating buy/sell signals or automated trading functions.
Included Features
1. VWAP (session-anchored)
Source: HLC3
Purple line, thickness 2
Useful as a reference for daily institutional average price.
2. EMAs of the current timeframe
EMA 200 (red, thickness 3)
EMA 9 (green, thickness 1)
These EMAs help visualize long-term trend and short-term momentum.
3. Dynamic EMAs (MTF – Multi-Timeframe)
The indicator displays the 200 EMA from higher timeframes as dynamic horizontal levels:
5 minutes
15 minutes
30 minutes
1 hour
4 hours
1 day
Each level includes a descriptive label such as “15 min EMA 200”.
These EMAs serve as reference points for potential support/resistance areas coming from higher timeframes.
4. Automatic Key Levels
The indicator plots several important price levels:
Previous day:
PDH (Previous Day High)
PDL (Previous Day Low)
Previous Day 50% Fibonacci level
Pre-market (04:00–09:30 exchange time):
PMH (Pre-Market High)
PML (Pre-Market Low)
Current session:
Open (session opening price)
Previous Close (prior day’s closing price)
Purpose and Scope
This script is designed to provide basic visual reference points to support discretionary analysis.
It does not generate signals or trading suggestions, and it is not intended to predict future price movements.
How to Use It
Enable or disable each block in the Inputs section according to your analysis style.
Observe how the levels, EMAs, and VWAP interact with market structure.
Use it as a visual complement to your personal technical analysis.
Limitations
This indicator is not a trading system and does not guarantee results.
It does not include alerts, backtesting, or entry/exit logic.
Some values (such as PMH/PML) depend on the symbol’s exchange trading hours.
Credits
Designed as an educational and analytical tool for traders seeking to simplify their charts without losing key information.
Discipline Box Trader — by chaitu50cDiscipline Box Trader — by chaitu50c is a rule-based price action tool built around alternating candle structures.
For each session, the indicator detects FIRST key alternating zone, marks it as a gray “Discipline Box”, and then tracks how price breaks and rotates through that zone with clear green/red segments.
The idea is simple:
The script continuously looks for alternating candle sequences:
Red → Green → Red → Green …
or
Green → Red → Green → Red …
When the sequence reaches your minimum required length (Min candles in alternate combo), it:
Finds the highest high and lowest low of that entire alternation combo.
Draws a gray rectangular box from the start of the combo to its end.
This gray region is named the “Discipline Box”.
After this Discipline Box is created:
Upside breakout → close > box high
Downside breakout → close < box low
For example if, Upside Breakout → Green Regime Segment
The gray box is visually closed at the previous bar.
A new green box segment starts from the breakout bar.
Box fill, border, and center line all turn green.
This green segment extends to the right until another breakout flips the regime.
There is a small visible gap between the gray box and the new coloured segment, clearly showing where the breakout actually occurred.
Within the same session, price may:
Break up → green segment.
Later break down through the same band → red segment.
Possibly flip again.
All of this happens inside the one original Discipline Box, giving a clean visual map of who is in control now without creating new zones.
Reset Mode
None
No automatic reset; box can persist across all data.
New Day
At each new trading day:
Current box and center line are closed.
All internal counters reset.
A completely fresh Discipline Box can form for the new day.
Gap Minutes
If time between candles exceeds Gap Threshold (minutes):
Treat this as a session break.
Close the current box and restart detection after the gap.
This ensures clarity and separation between sessions and prevents overlapping “old” structure from dominating new market conditions.
Trading Framework: 2 Trades per Discipline Box
⚠️ This is not financial advice. This is a structured usage idea to support discipline.
A suggested trading framework to pair with this indicator:
Trade 1 — First Breakout Trade
Wait for the first body-based breakout from the Discipline Box:
Upside breakout → consider a single long trade.
Downside breakout → consider a single short trade.
Use the box high, low, and midline as reference points for:
Stop placement, partial exits, or risk-reward zones.
Trade 2 — Opposite Regime Flip
If price later breaks the opposite side of the same box:
Consider exactly one more trade in the new direction (a failed breakout / reversal play).
Example: green regime first, later broken down into red → potential short trade.
After these maximum 2 trades per Discipline Box, you can:
Skip additional trades inside that session’s structure.
Wait patiently for the next session and next Discipline Box to form.
This hard rule helps avoid over-trading, revenge trades, and emotional interference — staying faithful to the “Discipline” theme.
The indicator has a built-in alert condition: Discipline Box Detected
Triggers Whenever a new gray Discipline Box is created (i.e., the first valid alternation zone for that session).
Practical Notes & Disclaimer
The indicator does not tell you when to buy or sell; it simply:
Marks a disciplined structure zone.
Shows live regime shifts (green/red).
Supports a clear “max 2 trades per box” framework.
Use on a demo first, adapt to your style, and always remember:
Your discipline matters more than the indicator.
DWM HLOC, Mid & WicksSimple, yet effective.
1. Automatically calculate and projects key price levels from a previous period (Yesterday, OR Last Week / Month) onto the current trading session. It acts as an immediate Support & Resistance map based on historical price action.
2. Multi-Timeframe Logic
Modes --
Daily Mode: Projects yesterday's data onto today.
Weekly Mode: Projects last week's data onto the current week.
3. Key Levels Visualized The script calculates seven distinct price levels:
OHLC: Previous Open, High, Low, and Close.
Equilibrium (Mid): The exact 50% mark between the previous High and Low.
Wick Midpoints (New):
Upper Wick 50%: The midpoint between the High and the top of the body.
Lower Wick 50%: The midpoint between the Low and the bottom of the body.
4. Smart "Gap" Visualization The script uses unique starting points to help traders visualize market gaps:
Standard Levels (High, Low, Open, Mids): These lines originate from the Previous Period's Open, showing the full context of the level relative to time.
Close Level: This line originates from the Current Period's Open. This visually highlights the "Gap" (the jump in price between where the market closed previously and where it opened today).
5. Full Customization
Aesthetics: Every line can be individually toggled on/off.
Styling: Users can independently change the color, line style (Solid, Dotted, Dashed), and thickness for every specific level.
Ultimate_Price_Action_Tool_V2 by chaitu50cUltimate_Price_Action_Tool_V2 by chaitu50c — Session-Based SR Box Engine
This indicator builds clean, session-aware support and resistance “zones” from pure price action. It is designed for intraday and positional traders who want objective, rule-based zones instead of manual drawing.
Core Logic
Price-action based MAIN zones
Detects bullish and bearish breakouts using a strict body-structure:
Single-candle and double-candle breakout patterns.
Breakouts are confirmed only when closes break beyond previous highs/lows.
From each valid breakout, the tool builds a MAIN Support or MAIN Resistance box:
For bullish breaks, the zone is created from a combined low to the nearest open/close in the breakout combo.
For bearish breaks, the zone is created from a combined high to the nearest open/close in the breakout combo.
Optional first-box logic:
Can create the very first MAIN zone in a session from a simple opposite-color pair (without a full breakout), if enabled.
SUB zones on break
When price breaks a MAIN Support downwards with a red candle, the MAIN box is removed/frozen and:
A new SUB Resistance box is created above, using the current bar’s structure.
When price breaks a MAIN Resistance upwards with a green candle:
A new SUB Support box is created below.
SUB zones are optional and can be fully disabled if the user prefers a clean MAIN-only view.
Session Handling
The script is fully session-aware and can work in different market structures:
Session Mode options
Clock Session
Uses a fixed time window (e.g., 09:15–15:30).
Zones can be shown only inside the session or kept visible outside, depending on settings.
New Day
Each new trading day is treated as a fresh session.
Auto Gap
A new session starts whenever the time gap between candles exceeds a user-defined threshold (in minutes).
Session IDs and history
Each new session gets its own ID.
You can display zones for the last N sessions (including current).
Older sessions fade out visually but remain internally tracked to control visibility.
Main Features & Options
Initial Right Offset
Every new zone is projected to the right by a configurable number of bars.
All active boxes continuously extend with this offset, keeping zones clearly projected into the future.
Single MAIN per side (per session)
Optional constraint to have only:
One active MAIN Support and
One active MAIN Resistance
per session on the chart.
This prevents overcrowding and focuses on the most recent key structure.
MAIN vs SUB Overlap Control
When a new MAIN zone overlaps an existing SUB zone, you can choose:
Suppress MAIN (ignore the new MAIN if it clashes with a SUB),
Remove SUB (delete overlapping SUB zones and keep the new MAIN), or
Allow Both (plot everything and let the trader decide).
Vertical overlap is evaluated using a configurable minimum overlap percentage.
SUB suppression under MAIN
SUB boxes that overlap strongly with active MAIN zones can be auto-suppressed to avoid redundant clutter.
This suppression uses the same percent-based overlap logic.
Broken MAIN box handling
When a MAIN zone is broken:
Option 1: Fully delete it (classic behavior).
Option 2: Convert it into a 1-bar “marker” box at its origin, so you still see where the original zone formed without extending into the future.
Break candle coloring
The candle that breaks a MAIN zone can be optionally painted:
Red when breaking support.
Green when breaking resistance.
Helps visually confirm genuine breaks vs. simple intrabar tests.
Visual & Styling Controls
Separate style controls for:
MAIN Support / MAIN Resistance
Independent fill and border colors.
SUB Support / SUB Resistance
Independent fill and border colors.
Opacity and border colors are internally managed so that:
Recent sessions are clearly visible.
Older sessions are softly faded to maintain context without noise.
Typical Use Cases
Intraday traders looking for:
Clean, rule-based supply and demand zones.
Zones that respect actual session structure (clock, daily, or gap-based).
Swing traders who:
Want to track how current price reacts to the most recent 1–N sessions’ zones.
Price action traders who:
Prefer breakout-based zones rather than indicator-driven levels.
Need automatic zone management (creation, extension, break handling, and suppression).
This tool is built to be modular and configurable: you can run it minimal (only MAIN zones, single side per session) or fully featured (MAIN + SUB, multi-session history, overlap handling, and break paints). All logic is strictly price-action based with no dependency on volume or external indicators.






















