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.
支撐和阻力
6B1! Manipulation/Distribution Projections (OHLC Stats)Overview
The Manipulation/Distribution Projections (OHLC Stats) indicator is a powerful tool designed to forecast potential price levels for various timeframes on British Pound futures (6B1!). It operates on a simple yet profound principle: price action within a single candle can be broken down into “manipulation” and “distribution” phases.
By analyzing over 17 years of 6B (6B1!) historical OHLC data externally in Python, this script calculates the average (mean) and typical (median) extent of these movements. These statistical insights are then used to project key levels on your chart based on the current period’s opening price—providing a statistically-grounded framework for potential support, resistance, and price targets.
________________________________________
Key Concepts Explained
The indicator’s logic is based on how price wicks and bodies form relative to the opening price.
• Manipulation: This refers to the initial move that goes against the candle’s eventual direction.
o For a bullish candle, it’s the lower wick (the move from the open down to the low before reversing higher).
o For a bearish candle, it’s the upper wick (the move from the open up to the high before selling off).
It represents a “fake out” or a stop hunt.
• Distribution: This is the primary, directional move of the candle from the opening price.
o For a bullish candle, it’s the distance from the open to the high.
o For a bearish candle, it’s the distance from the open to the low.
It represents the “real” intended direction of price for that period.
________________________________________
How It Works
This indicator does not calculate these ratios in real-time. Instead, it leverages a comprehensive statistical analysis performed externally in Python on over 17 years of 6B (6B1!) OHLC data. This analysis determined the mean and median ratios for both Manipulation and Distribution movements across different timeframes and, for intraday periods, different times of day.
These pre-computed, static ratios are embedded directly into the script. When a new period begins (e.g., a new day on the Daily timeframe), the indicator:
1. Takes the opening price for that period.
2. Retrieves the corresponding pre-calculated Manipulation and Distribution ratios.
3. Applies these ratios to the opening price to project eight potential price levels:
o
/ - Mean Distribution
o
/ - Median Distribution
o
/ - Mean Manipulation
o
/ - Median Manipulation
This approach provides a stable, forward-looking set of levels for the entire duration of the trading period.
________________________________________
Features
• Statistically-Derived Projections: Plots eight key price levels based on historical tendencies, providing clear potential zones for entries, exits, and stop placement.
• Selectable Timeframe: Choose to view projections for the 1H, 4H, 1D, or 1W periods directly from the settings.
• Dynamic Stats Table: A powerful, on-chart dashboard that provides real-time context. For all four timeframes (1H, 4H, 1D, 1W), it shows:
o Position: Where the current price is relative to the projected zones (e.g., “In +Manip Zone,” “Below -Dist”).
o Range Completed: The percentage of the historical average range that the current period has already covered.
o Current & Average Range: The current high-to-low range in points vs. the historical average.
• Historical Context: You can display levels for previous periods to see how price has interacted with them in the past.
• Full Customization: Control the color, style, and visibility of every line, label, and fill to match your chart’s theme.
________________________________________
How to Use
This indicator is versatile and can be integrated into various trading strategies.
• Identifying Targets & Reversal Zones: The Distribution levels (especially the zone between the median and mean) can serve as logical take-profit targets, as they represent a historical point of extension. Conversely, Manipulation levels can indicate areas where price might form a wick and reverse.
• Gauging Volatility: Use the Stats Table’s “Range Completed” column to assess market conditions. If the 1D range is only 30% complete by mid-day, there may be room for significant expansion. If it’s already at 150%, the market might be overextended and due for consolidation.
• Multi-Timeframe Confluence: Use the Stats Table to quickly check if the price on a lower timeframe (e.g., 1H) is approaching a significant level on a higher timeframe (e.g., 1D), adding more weight to that level.
• Defining Bias: If the price opens and holds above the Manipulation zones, it can signal a strong directional bias for the rest of the period.
________________________________________
Settings
• Projection Timeframe: The primary timeframe for which to calculate and display the levels.
• Historical Periods to Show: Set to 1 for only the current period, or increase to see how levels from past periods held up.
• Timezone: Set the timezone for accurate hourly calculations (defaults to America/New_York).
• Visuals: Customize the appearance of the projection lines, labels, and the shaded zones between mean and median levels.
• Stats Table: Enable/disable the table and configure its position, size, and colors.
________________________________________
Disclaimer
This indicator is for informational and educational purposes only. It does not constitute financial advice or a recommendation to buy or sell any asset. All trading involves risk, and past performance is not indicative of future results. Please do your own research and risk management.
Enjoy!
GC1! Manipulation/Distribution Projections (17 years OHLC Stats)Overview
The Manipulation/Distribution Projections (OHLC Stats) indicator is a powerful tool designed to forecast potential price levels for various timeframes on Gold futures (GC1!). It operates on a simple yet profound principle: price action within a single candle can be broken down into “manipulation” and “distribution” phases.
By analyzing over 17 years of GC (GC1!) historical OHLC data externally in Python, this script calculates the average (mean) and typical (median) extent of these movements. These statistical insights are then used to project key levels on your chart based on the current period’s opening price—providing a statistically-grounded framework for potential support, resistance, and price targets.
________________________________________
Key Concepts Explained
The indicator’s logic is based on how price wicks and bodies form relative to the opening price.
• Manipulation: This refers to the initial move that goes against the candle’s eventual direction.
o For a bullish candle, it’s the lower wick (the move from the open down to the low before reversing higher).
o For a bearish candle, it’s the upper wick (the move from the open up to the high before selling off).
It represents a “fake out” or a stop hunt.
• Distribution: This is the primary, directional move of the candle from the opening price.
o For a bullish candle, it’s the distance from the open to the high.
o For a bearish candle, it’s the distance from the open to the low.
It represents the “real” intended direction of price for that period.
________________________________________
How It Works
This indicator does not calculate these ratios in real-time. Instead, it leverages a comprehensive statistical analysis performed externally in Python on over 17 years of GC (GC1!) OHLC data. This analysis determined the mean and median ratios for both Manipulation and Distribution movements across different timeframes and, for intraday periods, different times of day.
These pre-computed, static ratios are embedded directly into the script. When a new period begins (e.g., a new day on the Daily timeframe), the indicator:
1. Takes the opening price for that period.
2. Retrieves the corresponding pre-calculated Manipulation and Distribution ratios.
3. Applies these ratios to the opening price to project eight potential price levels:
o
/ - Mean Distribution
o
/ - Median Distribution
o
/ - Mean Manipulation
o
/ - Median Manipulation
This approach provides a stable, forward-looking set of levels for the entire duration of the trading period.
________________________________________
Features
• Statistically-Derived Projections: Plots eight key price levels based on historical tendencies, providing clear potential zones for entries, exits, and stop placement.
• Selectable Timeframe: Choose to view projections for the 1H, 4H, 1D, or 1W periods directly from the settings.
• Dynamic Stats Table: A powerful, on-chart dashboard that provides real-time context. For all four timeframes (1H, 4H, 1D, 1W), it shows:
o Position: Where the current price is relative to the projected zones (e.g., “In +Manip Zone,” “Below -Dist”).
o Range Completed: The percentage of the historical average range that the current period has already covered.
o Current & Average Range: The current high-to-low range in points vs. the historical average.
• Historical Context: You can display levels for previous periods to see how price has interacted with them in the past.
• Full Customization: Control the color, style, and visibility of every line, label, and fill to match your chart’s theme.
________________________________________
How to Use
This indicator is versatile and can be integrated into various trading strategies.
• Identifying Targets & Reversal Zones: The Distribution levels (especially the zone between the median and mean) can serve as logical take-profit targets, as they represent a historical point of extension. Conversely, Manipulation levels can indicate areas where price might form a wick and reverse.
• Gauging Volatility: Use the Stats Table’s “Range Completed” column to assess market conditions. If the 1D range is only 30% complete by mid-day, there may be room for significant expansion. If it’s already at 150%, the market might be overextended and due for consolidation.
• Multi-Timeframe Confluence: Use the Stats Table to quickly check if the price on a lower timeframe (e.g., 1H) is approaching a significant level on a higher timeframe (e.g., 1D), adding more weight to that level.
• Defining Bias: If the price opens and holds above the Manipulation zones, it can signal a strong directional bias for the rest of the period.
________________________________________
Settings
• Projection Timeframe: The primary timeframe for which to calculate and display the levels.
• Historical Periods to Show: Set to 1 for only the current period, or increase to see how levels from past periods held up.
• Timezone: Set the timezone for accurate hourly calculations (defaults to America/New_York).
• Visuals: Customize the appearance of the projection lines, labels, and the shaded zones between mean and median levels.
• Stats Table: Enable/disable the table and configure its position, size, and colors.
________________________________________
Disclaimer
This indicator is for informational and educational purposes only. It does not constitute financial advice or a recommendation to buy or sell any asset. All trading involves risk, and past performance is not indicative of future results. Please do your own research and risk management.
Enjoy!
ES1! Manipulation/Distribution Projections (17 years OHLC Stats)Overview
The Manipulation/Distribution Projections (OHLC Stats) indicator is a powerful tool designed to forecast potential price levels for various timeframes on S&P 500 E-mini futures (ES1!). It operates on a simple yet profound principle: price action within a single candle can be broken down into “manipulation” and “distribution” phases.
By analyzing over 17 years of ES (ES1!) historical OHLC data externally in Python, this script calculates the average (mean) and typical (median) extent of these movements. These statistical insights are then used to project key levels on your chart based on the current period’s opening price—providing a statistically-grounded framework for potential support, resistance, and price targets.
________________________________________
Key Concepts Explained
The indicator’s logic is based on how price wicks and bodies form relative to the opening price.
• Manipulation: This refers to the initial move that goes against the candle’s eventual direction.
o For a bullish candle, it’s the lower wick (the move from the open down to the low before reversing higher).
o For a bearish candle, it’s the upper wick (the move from the open up to the high before selling off).
It represents a “fake out” or a stop hunt.
• Distribution: This is the primary, directional move of the candle from the opening price.
o For a bullish candle, it’s the distance from the open to the high.
o For a bearish candle, it’s the distance from the open to the low.
It represents the “real” intended direction of price for that period.
________________________________________
How It Works
This indicator does not calculate these ratios in real-time. Instead, it leverages a comprehensive statistical analysis performed externally in Python on over 17 years of ES (ES1!) OHLC data. This analysis determined the mean and median ratios for both Manipulation and Distribution movements across different timeframes and, for intraday periods, different times of day.
These pre-computed, static ratios are embedded directly into the script. When a new period begins (e.g., a new day on the Daily timeframe), the indicator:
1. Takes the opening price for that period.
2. Retrieves the corresponding pre-calculated Manipulation and Distribution ratios.
3. Applies these ratios to the opening price to project eight potential price levels:
o
/ - Mean Distribution
o
/ - Median Distribution
o
/ - Mean Manipulation
o
/ - Median Manipulation
This approach provides a stable, forward-looking set of levels for the entire duration of the trading period.
________________________________________
Features
• Statistically-Derived Projections: Plots eight key price levels based on historical tendencies, providing clear potential zones for entries, exits, and stop placement.
• Selectable Timeframe: Choose to view projections for the 1H, 4H, 1D, or 1W periods directly from the settings.
• Dynamic Stats Table: A powerful, on-chart dashboard that provides real-time context. For all four timeframes (1H, 4H, 1D, 1W), it shows:
o Position: Where the current price is relative to the projected zones (e.g., “In +Manip Zone,” “Below -Dist”).
o Range Completed: The percentage of the historical average range that the current period has already covered.
o Current & Average Range: The current high-to-low range in points vs. the historical average.
• Historical Context: You can display levels for previous periods to see how price has interacted with them in the past.
• Full Customization: Control the color, style, and visibility of every line, label, and fill to match your chart’s theme.
________________________________________
How to Use
This indicator is versatile and can be integrated into various trading strategies.
• Identifying Targets & Reversal Zones: The Distribution levels (especially the zone between the median and mean) can serve as logical take-profit targets, as they represent a historical point of extension. Conversely, Manipulation levels can indicate areas where price might form a wick and reverse.
• Gauging Volatility: Use the Stats Table’s “Range Completed” column to assess market conditions. If the 1D range is only 30% complete by mid-day, there may be room for significant expansion. If it’s already at 150%, the market might be overextended and due for consolidation.
• Multi-Timeframe Confluence: Use the Stats Table to quickly check if the price on a lower timeframe (e.g., 1H) is approaching a significant level on a higher timeframe (e.g., 1D), adding more weight to that level.
• Defining Bias: If the price opens and holds above the Manipulation zones, it can signal a strong directional bias for the rest of the period.
________________________________________
Settings
• Projection Timeframe: The primary timeframe for which to calculate and display the levels.
• Historical Periods to Show: Set to 1 for only the current period, or increase to see how levels from past periods held up.
• Timezone: Set the timezone for accurate hourly calculations (defaults to America/New_York).
• Visuals: Customize the appearance of the projection lines, labels, and the shaded zones between mean and median levels.
• Stats Table: Enable/disable the table and configure its position, size, and colors.
________________________________________
Disclaimer
This indicator is for informational and educational purposes only. It does not constitute financial advice or a recommendation to buy or sell any asset. All trading involves risk, and past performance is not indicative of future results. Please do your own research and risk management.
Enjoy!
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.
MTF Fractal Manifold Support & Resistance Pro [Voidspire]Welcome to MTF Fractal Manifold Support & Resistance Pro. This is not a standard pivot point or zigzag indicator. This tool utilizes Topological Data Analysis (TDA) and Quantitative Physics concepts to treat price action as a high-dimensional manifold.
By applying Lorentzian Kernel Clustering and the Expectation-Maximization (EM) algorithm, the script identifies "High Energy" singularity points where price, time, and volatility (mass) converge. It distinguishes between significant structural levels and random market noise using Shannon Entropy Z-Scores.
🧠 Key Features
⚛️ Physics-Based Clustering: Instead of simple highs/lows, we calculate the "Mass" of a price level based on Tick Volume (Forex) or Real Volume (Equities) and Volatility.
📐 6-Dimensional Analysis: Monitors 6 different timeframes simultaneously (Micro, Meso, and Macro layers) to find Fractal resonance.
📊 Hurst Exponent Integration: Automatically detects whether the market is trending or mean-reverting (ranging) to adjust the search radius (Gamma) of the clusters dynamically.
🧪 Entropy Z-Score: Each level is assigned a Z-Score. Low scores (Green) indicate highly ordered, stable support. High scores (Red) indicate chaotic, unstable zones.
🔥 Topological Confluence Zones: When multiple timeframe levels overlap, they merge into high-probability "Heatmap Boxes," signaling major reversal or breakout zones.
🔥 This indicator does not use future functions and will not be repaint.
⚙️ Comprehensive Settings Guide
This script is highly customizable to fit any asset class (Crypto, Forex, Stocks, Indices).
1. Algorithm Settings (Core)
Asset Class Model:
Forex/Synthetic: Uses Tick Volume + Volatility to calculate Mass.
Equities: Uses Real Volume.
Pure Price: Uses pure geometry (Suitable for assets where accurate trading volume information is not available).
Fractal Gamma Sensitivity: Controls the "focus" of the clustering. Higher values detect finer, more local structures; lower values find broader, major structures.
Entropy Lookback: The historical window used to calculate the Z-Score statistics.
2. Manifold Layer Configuration (Layers 1-6)
You have control over 6 distinct timeframe layers.
Enable/Timeframe: Choose which timeframes to analyze (e.g., 15m, 1H, 4H, Daily).
K-Centers: How many support/resistance clusters to find on this specific timeframe.
Sample Size: How far back in history to analyze data for this layer.
3. Topological Confluence (The Heatmap)
Show High-Energy Confluence: Enables the drawing of rectangular zones where levels overlap.
Merge Threshold %: The distance required to merge two levels into a single zone.
Bullish/Bearish Heatmap: Custom colors for Support (Bullish) and Resistance (Bearish) zones.
4. Dynamic Visibility Control
Hide Micro/Meso Layer: Automatically hides lower timeframe levels when you zoom out to higher timeframes (e.g., hide 15m levels when looking at the Weekly chart) to keep your chart clean.
5. UI & Visual Interaction
Confluence Breakout Threshold: The percentage price must move beyond a zone to confirm a breakout signal.
Zone Transparency: Adjusts the alpha channel of the confluence boxes.
Label Size: Customize the text size of the energy/entropy data labels.
Show Dashboard: Toggles the stats panel.
Show Midline: Toggles the median line inside confluence zones.
6. Layer Coloring & Alerts
Layer Colors: Set unique colors for all 6 layers (Micro, Meso, Macro) to visually decode timeframe hierarchy.
Ghost Extension Transparency: Adjust the visibility of the dotted lines that project the support levels into the future.
Alerts: Configure custom messages for bullish breakouts or bearish breakdowns. Supports variables {ticker} and {price}.
Disclaimer
Trading involves substantial risk and is not suitable for every investor. This indicator is a tool for technical analysis and does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management.
------------------------------------
中文介绍
机构级市场支撑阻力分析系统
欢迎使用多时间框架高维流形支撑阻力分析系统。这不仅仅是一个普通的枢轴点或 Zigzag 指标。本脚本利用 拓扑数据分析 (TDA) 和 量化物理学 概念,将价格行为视为一个高维流形进行建模。
通过应用 洛伦兹核聚类 (Lorentzian Kernel Clustering) 和 期望最大化 (EM) 算法,该脚本能够识别价格、时间和波动率(质量)汇聚的“高能奇点”。同时,结合 香农熵 Z-Score (Shannon Entropy Z-Scores),它可以有效区分关键的市场结构位和随机的市场噪音。
🧠 核心特性
⚛️ 物理驱动聚类: 我们不单纯依赖高低点,而是根据 Tick 量(外汇)或真实成交量(股票)结合波动率来计算价格水平的“质量 (Mass)”。
📐 6维流形分析: 同时监控 6 个不同的时间周期(微观、中观、宏观层级),寻找分形共振。
📊 赫斯特指数 (Hurst Exponent): 自动检测市场是处于趋势状态还是均值回归(震荡)状态,并据此动态调整聚类算法的搜索半径 (Gamma)。
🧪 熵值 Z-Score: 每个支撑位都有一个 Z分数。低分(绿色)代表高度有序、稳固的支撑;高分(红色)代表混沌、不稳定的区域。
🔥 拓扑共振区: 当多个时间周期的水平位重叠时,它们会合并成高概率的“热力图箱体 (Heatmap Boxes)”,这通常是反转或突破的关键区域。
🔥该指标不使用未来函数,也不会重绘。
⚙️ 全面的参数设置指南
本脚本高度可定制,适用于任何资产类别(加密货币、外汇、股票、指数)。
1. Algorithm Settings (核心算法设置)
Asset Class Model (资产模型):
Forex/Synthetic: 使用 Tick 量 + 波动率计算质量。
Equities: 使用真实成交量。
Pure Price: 纯几何计算(适用于不能获取准确成交量信息的资产)。
Fractal Gamma Sensitivity (分形敏感度): 控制聚类的“焦点”。数值越高,生成的结构越精细;数值越低,寻找的结构越宏观。
Entropy Lookback: 计算熵值 Z-Score 统计数据的历史样本窗口大小。
2. Manifold Layer Configuration (流形层级 1-6)
您可以控制 6 个独立的时间框架层级。
Enable/Timeframe: 选择要分析的时间周期(例如:15分钟、1小时、4小时、日线)。
K-Centers: 在该时间周期上寻找多少个支撑/阻力聚类中心。
Sample Size: 分析该层级多少根历史 K 线的数据。
3. Topological Confluence (拓扑共振/热力图)
Show High-Energy Confluence: 开启后,将重叠的水平位显示为矩形区域。
Merge Threshold %: 将两个临近水平位合并为一个区域的距离阈值。
Bullish/Bearish Heatmap: 自定义支撑区(看涨)和阻力区(看跌)的颜色。
4. Dynamic Visibility Control (动态可视性)
Hide Micro/Meso Layer: 当您切换到大周期图表时,自动隐藏小周期的线条,保持图表整洁。
5. UI & Visual Interaction (UI 与交互)
Confluence Breakout Threshold: 价格必须突破区域宽度的百分之多少才被确认为突破信号。
Zone Transparency: 调整共振区箱体的透明度。
Label Size: 自定义能量/熵值数据标签的字体大小。
Show Dashboard: 显示/隐藏统计面板。
Show Midline: 显示/隐藏共振区内部的中轴线。
6. Layer Coloring & Alerts (着色与警报)
Layer Colors: 为所有 6 个层级设置不同的颜色,以便直观区分微观、中观和宏观结构。
Ghost Extension Transparency: 调整向右延伸的预测虚线的透明度。
Alerts: 配置看涨突破或看跌跌破的自定义警报消息。支持变量 {ticker} 和 {price}。
免责声明
交易涉及巨大风险,并不适合所有投资者。该指标仅供技术分析辅助使用,不构成任何财务建议。过往的表现并不能保证未来的结果。请务必做好风险管理。
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など)を見て、トレンドが崩れていないことを確認します。
Nexus v29 - Visual Remaster- The Unified Physics EngineTitle: Nexus v29 - Visual Remaster :The Unified Physics Engine
Description:
The Physics of Price Movement
Most indicators fail because they look at only one dimension of the market. They might show you price direction (RSI) or activity (Volume), but they rarely tell you if the move has actual power behind it.
Nexus v29 is built on a "Unified Physics" philosophy. Just as an object in the physical world needs Mass, Acceleration, and Energy to move effectively, a price trend needs Volume, Force, and Trend Strength to sustain a run.
This indicator visualizes the "Life Cycle" of a trend, filtering out the noise (churn) to highlight only the high-probability explosion points where physics aligns in your favor.
How It Works: The 3 Components
1. The Energy (ADX Filter)
The White Line: This is your master switch. It measures the total energy in the system.
The Logic: When the white line is below the threshold (25), the market is in a "Dead Zone." No matter how good the candle looks, there is no kinetic energy to sustain a move. We stay flat.
The Signal: When the line crosses above 25, the engine is on.
2. The Mass (Volume Fuel)
The Background Bars: These represent the market participation.
Grey Bars: Wasted fuel. High volume in a low-energy market is just churn/absorption.
Silver/Blue Bars: Active fuel. Volume that is successfully converting into price movement.
3. The Vector (Force Histogram)
The Colored Bars: This represents the immediate directional force (Momentum).
Lime Green: Explosion. Price is pushing up, Volume is supporting it, and ADX confirms the energy. This is a valid Long environment.
Red: Crash. Price is pushing down with supported volume and high energy. This is a valid Short environment.
Orange/Maroon: Fakeout/Churn. Divergences where price and volume disagree.
The "Equation" Strategy
This script is not just a visualizer; it implements a strict "Physics Equation" to filter trades. A signal is only valid if ALL of the following conditions are met simultaneously:
Trend Alignment: Price must be on the correct side of the 200 SMA (Long > 200, Short < 200).
Volatility Gate: The market must be expanding (ATR > Baseline).
Force Threshold: The momentum impulse must be significant (Force Histogram > 100), ensuring we are catching a runaway train, not a bicycle.
Active Energy: ADX must be > 25.
How to Trade It
Entry: Wait for a Lime Green (Long) or Red (Short) bar that breaks out while the White Line (ADX) is rising. This confirms "Unified Physics"—Mass, Force, and Energy are all aligned.
The Lifecycle Exit: Do not wait for the trend to reverse. Exit when the "physics" break.
Look for the Force Histogram bars to start shrinking for 2 consecutive candles. This indicates momentum is fading (deceleration).
Exit immediately on the close of the second shrinking bar to capture the bulk of the impulsive move (The "Meat" of the trade) before the inevitable pullback.
Indicator Settings
RSI Length: Standard 14 (The Speed).
Volume Lookback: 100 (For relative scaling).
ADX Threshold: 25 (The "Go/No-Go" Line).
Trend Filter: 200 Period SMA.
Disclaimer: Trading involves high risk. This tool helps visualize market conditions based on historical physics but does not guarantee future performance. Always use proper risk management.
GridMap PRO by TradeAkademiGridMap PRO is a professional level-mapping framework built on the premise that price action tends to develop within repeatable percentage-based bands. Using mathematically derived projections, the indicator identifies potential support and resistance zones where the market is statistically more likely to react.
All calculations are anchored to the asset’s historical low; therefore, levels remain structurally stable unless a new low is formed.
To support different trading environments, GridMap PRO offers two calculation modes:
Long Term: Designed for high-volatility markets, macro structure assessments and broader trend inflection points.
Short Term: Optimized for shorter-term setups, providing precise reaction zones and tactical entry/exit levels.
Users are encouraged to validate the levels against historical price behavior. In some environments, price may respect a level multiple times with minimal deviation, while in others it may break through several levels without hesitation. GridMap PRO is not a standalone signal generator but an institutional-grade framework that enhances the decision-making process.
Primary use cases:
Identifying accurate buy/sell/SL/TP zones
Constructing optimal grid or DCA entry layers
Mapping pinpoint reaction levels for leveraged trades with tight stops
Note: Even though these structures have historically performed extremely well, no level guarantees a future reaction. Always consider broader market conditions, volatility, news flow, and complementary technical data. When using the levels in leveraged setups, apply reasonable stop distances or opt for a DCA-based entry approach rather than a single-point execution.
Multi Session ORBs 2.0Multi Session ORBs 2.0 is an intraday tool for session-based traders who rely on Opening Range Breakout and Initial Balance structures to frame trades around the Tokyo, London, and New York sessions. It automatically detects the main sessions in New York time and plots each session’s opening-range high, low, and optional mid, with shaded boxes that highlight the active range and clean horizontal levels that extend across the session for precise breakout, rejection, and rotation analysis.
The script also builds a dedicated New York Initial Balance from 09:30 to 10:30 ET and then projects those IB levels forward from 10:30 through the rest of the NY session, helping intraday traders track first-hour value, monitor when price accepts or rejects that area, and structure trades around range breaks or mean reversion. Optional labels and vertical markers print 15 minutes before the London and New York opens, making it easier to anticipate volatility windows and align entries with key session transitions.
This indicator is designed to be used preferably in confluence with the separate Multi VWAPs tool, which plots multiple VWAPs across different time horizons so that traders can combine session ORB/IB levels with VWAP-based dynamic support and resistance for stronger intraday bias and higher-quality trade locations.
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.
Pivot-Based Trend Labels [BETA]Automatically labels Higher Highs, Lower Highs, Higher Lows and Lower Lows using pivots, with optional zigzag lines and resistance proximity alerts. BETA version for testing and feedback.
## Overview
**Pivot-Based Trend Labels v2.0 ** is a structure-focused tool that automatically detects pivot highs and lows, then labels them as:
- **HH** – Higher High
- **LH** – Lower High
- **LL** – Lower Low
- **HL** – Higher Low
It’s designed to make trend structure (higher highs / higher lows vs lower highs / lower lows) easy to read at a glance. You can optionally draw connecting “zigzag” lines between pivots and enable a resistance proximity alert.
---
## Key Features
- **Pivot-based structure labels**
- Detects pivot highs/lows using a configurable lookback period
- Labels each new pivot as HH / LH / LL / HL
- Optional filter for minimum price change to ignore noise
- **Clean visual controls**
- Show/hide all labels with a single toggle
- Choose between HH/LH/LL/HL text or actual **price values**
- Individual toggles & customizable colors for each structure label
- Label size & background transparency controls
- **Optional ZigZag lines**
- Connects successive pivots to visualize swing structure
- Customizable color, transparency, width, and style
- **Resistance proximity alert** (optional)
- Dynamic resistance using highest high of last `length * 2` bars
- Or choose a **Manual Resistance** price
- Visual ⚠ label on the chart when price gets within threshold
- Cooldown to avoid duplicate alerts
- **Date range filter** (optional)
- Show labels/lines only within selected time window
- Optional end date or live continuation
---
## Inputs (Quick Guide)
**Pivot Settings**
- Pivot Lookback Period — Pivot confirmation threshold
- Min Bars Between Labels — Prevents label overcrowding
- Min Price Change (Absolute) — Filters noise
**Visuals: Labels**
- Global “Show Labels”
- Toggle/Color HH / LH / LL / HL
- Price or Structure text display
- Adjustable size & transparency
**Visuals: Lines**
- Toggle pivot-connecting lines
- Width, color, transparency, style options
**Resistance Alerts**
- Enable/disable resistance proximity detection
- Manual or dynamic resistance logic
- Percent threshold + visual label options
- Cooldown in bars
**Date Range Filter**
- Restrict script drawings to a specific window
---
## How to Use
1. Start with default settings to view baseline structure.
2. Increase **Pivot Lookback Period** for smoother swings on higher TFs.
3. Adjust **Min Price Change** to filter small movements in volatile markets.
4. Enable **zigzag lines** for clearer visual swing structure.
5. Turn on **resistance alerts** if you want proactive warnings.
6. Use the **date filter** for clearer backtesting or focused study.
---
## Alerts
Alerts trigger automatically when:
- A **new HH, LH, LL, or HL** is confirmed
- Price **approaches your resistance level**
Configure alerts using TradingView’s “Create Alert” on this script.
---
## Notes & Limitations
- **BETA version**: features & settings may change in future updates.
- Labels appear **after confirmation** — pivots require lookback bars.
- Performance & appropriateness depend on market/timeframe — experiment!
---
## Disclaimer
This script is for **educational and informational purposes only** and does not constitute financial advice. Past performance does not guarantee future results. You are responsible for all investment decisions made while using this tool.
---
## License / Terms of Use
© 2025 YourName. All rights reserved.
Personal-use only. Redistribution, resale, or inclusion in paid products/services is prohibited without explicit written permission from the author.
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.
Market Level Finder By Sultan of Multan)Market Level Finder is a premium visual tool designed to help traders clearly identify high-importance market levels in real time. It focuses purely on price levels and reactions, not complicated strategies — making it ideal for both beginners and advanced traders.
This indicator does not give blind buy/sell signals. Instead, it provides a structured environment where traders can make smart, disciplined, and level-based decisions.
⸻
✅ What This Indicator Shows
• Support & Resistance
• Liquidity Levels
• Fair Value Gaps (FVG)
• Order Blocks (OB)
• Previous Day High / Low (PDH / PDL)
• Volume Point of Control (POC)
• Fibonacci Levels
• Asian Session Range
• Psychological Round Numbers
• Dynamic Dashboard with Live Status
All important levels are visualised directly on the chart with a clean dashboard for quick decision-making.
⸻
📌 How to Use
• 🟢 Green zones = Buy areas
• 🔴 Red zones = Sell areas
• Only consider entries when:
• Price approaches a strong level
• Dashboard highlights it as active
• The more levels that overlap at one price, the stronger the zone
• 🚫 Avoid trading in the middle of the range
• ✅ Always wait for:
Level → Price Reaction → Confirmation
• ⏱️ Best performance during:
• London Session
• New York Session
⸻
🛡️ Risk Disclaimer
This indicator is not a financial advisory tool.
It is designed for educational and analytical purposes only.
• Always use Stop Loss
• Never risk money you cannot afford to lose
• Past performance does not guarantee future results
⸻
⭐ Who This Tool Is For
• Scalpers
• Intraday Traders
• Gold (XAUUSD) Traders
• Index & Crypto Traders
• Anyone who trades using levels and structure
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.
Tesseract X-RayTesseract X-Ray — Smart Money Concept indicator that reveals hidden market structure.
Features:
• Fair Value Gaps (FVG) — imbalance zones where price tends to return
• Order Blocks (OB) — institutional supply/demand zones
• Volume Profile — POC, VAH, VAL levels
• High Volume Nodes (HVN) — liquidity clusters
Clean visualization with automatic zone detection and mitigation tracking.
Built-in alerts for key level touches.
by @TesseractCrypto
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.
ZynIQ Pullback Zones Lite - (Lite Pack)Overview
ZynIQ Pullback Zones Lite identifies dynamic EMA-based retracement areas inside trending markets. These zones highlight where price is most likely to pull back before continuing in the dominant direction. The tool is intentionally simple, visual, and designed to complement the rest of the ZynIQ Lite package without adding noise or complexity.
This is a contextual tool — ideal for timing continuation entries, filtering counter-trend trades, and improving overall trend structure awareness.
Key Features
• Dynamic pullback zones using profile-based EMA + ATR
• Smart trend detection with optional HTF confirmation
• Fresh-touch recognition for potential continuation setups
• Clean ZynIQ-themed visuals (teal/fuchsia zones)
• Lightweight chart footprint for intraday and swing traders
• ZynIQ Lite HUD with profile, trend and HTF status
• Moveable watermark for clear branding on streams and screenshots
• Alerts for long and short pullback opportunities
Use Cases
• Identifying pullback areas within established trends
• Avoiding early entries during retracements
• Timing continuation setups more cleanly
• Filtering false breakouts and counter-trend traps
• Combining with breakout or momentum tools for confluence
• Works on crypto, forex, indices and commodities
Notes
This tool provides structure and context for pullback-based trend trading.
It is not a standalone strategy and should be combined with your preferred confirmations and risk management rules.
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.
6EMA & SMA with alertOverview
This indicator is designed to combine multiple moving averages, higher-timeframe levels, and flexible alerts into a single tool. It helps you monitor trend direction, dynamic support/resistance, and key daily/weekly/monthly levels without loading several separate indicators.
Main Features
1 12 Moving Averages in One Indicator
・Plots a total of 12 lines: 6 EMAs and 6 SMAs.
・All lengths and sources are fully configurable from the settings, so you can adapt them to your own style and timeframe.
2 Slope-Based Color Change
・One EMA and one SMA are colored based on their slope (rising vs. falling).
・This makes it easy to visually confirm when the medium/long-term bias is turning up or down.
3 Price-vs-MA Alerts
・You can enable alerts when price touches or crosses any selected EMA or SMA.
・Direction can be set to “Up”, “Down”, or “Both”, and you can choose to trigger only on bar close.
・The script can also send detailed alert() messages containing the symbol, timeframe, price, and line value at the moment of the cross.
4 Daily / Weekly / Monthly High–Low Levels
・Optionally display the current Daily, Weekly, and Monthly high/low levels as rays extended to the right.
・Each set of levels can be shown or hidden individually, and has its own color, style, and width options.
・Labels (DH/DL, WH/WL, MH/ML) are attached at the right side of each line for quick identification.
Notes & Disclaimer
This indicator is for charting and alerting purposes only. It does not open, close, or manage any positions.
It does not guarantee any specific results or performance. All examples are for educational and informational purposes only.
Always test and adjust the settings on your own symbols and timeframes, and use proper risk management when applying it to live trading.






















