Order Blocks + Order-Flow ProxiesOrder Blocks + Order-Flow Proxies
This indicator combines structural analysis of order blocks with lightweight order-flow style proxies, providing a tool for chart annotation and contextual study. It is designed to help users visualize where significant structural shifts occur and how simple volume-based signals behave around those areas. The script does not guarantee profitable outcomes, nor does it issue financial advice. It is intended purely for research, learning, and discretionary use.
Conceptual Background
Order Blocks
An “order block” is a term often used to describe a zone on the chart where price left behind a significant reversal or imbalance before continuing strongly in the opposite direction. In practice, this can mean the last bullish or bearish candle before a strong breakout. Traders sometimes study these regions because they believe that unfilled resting orders may exist there, or simply because they mark important pivots in price structure. This indicator detects such moments by scanning for breaks of structure (BOS). When price pushes above or below recent swing levels with sufficient displacement, the script identifies the prior opposite candle as the potential order block.
Break of Structure
A break of structure in this context is defined when the closing price moves beyond the highest high or lowest low of a short lookback window. The script compares the magnitude of this break to an ATR-based displacement filter. This helps ensure that only meaningful moves are marked rather than small, random fluctuations.
Order-Flow Proxies
Traditional order flow analysis may use bid/ask data, footprint charts, or volume profiles. Because TradingView scripts cannot access true order-book data, this indicator instead uses proxy signals derived from standard chart data:
Delta (proxy): Estimated imbalance of buying vs. selling pressure, approximated using bar direction and volume.
Imbalance ratio: Normalizes delta by total volume, ranging between -1 and +1 in theory.
Cumulative Delta (CVD): Running sum of delta over time.
Effort vs. Result (EvR): A comparison between volume and actual bar movement, highlighting cases where large effort produced little result (or vice versa).
These are not real order-flow measurements, but rather simple mathematical constructs that mimic some of its logic.
How the Script Works
Detecting Break of Structure
The user specifies a swing length. When price closes above the recent high (for bullish BOS) or below the recent low (for bearish BOS), a potential shift is recorded.
To qualify, the breakout must exceed a displacement filter proportional to the ATR. This helps filter out weak moves.
Locating the Order Block Candle
Once a BOS is confirmed, the script looks back within a short window to find the last opposite-colored candle.
The high/low or open/close of that candle (depending on user settings) is marked as the potential order block zone.
Drawing and Maintaining Zones
Each order block is represented as a colored rectangle extending forward in time.
Bullish zones are teal by default, bearish zones are red.
Zones extend until invalidated (price closing or wicking beyond them, depending on user preference) or until a user-defined lifespan expires.
A pruning mechanism ensures that only the most recent set number of zones remain, preventing chart overload.
Monitoring Touches
The script checks whether the current bar’s range overlaps any existing order block.
If so, the “closest” zone is considered touched, and a label may appear on the chart.
Confirmation Filters
Touches can optionally be confirmed by order-flow proxies.
For a bullish confirmation, the following must align:
Imbalance ratio above threshold,
Delta EMA positive,
Effort vs. Result positive.
For a bearish confirmation, the opposite holds true.
Optionally, a higher-timeframe EMA slope filter can gate these confirmations. For example, a bullish confirmation may only be accepted if the higher-timeframe EMA is sloping upward.
Alerts
Users may create alerts based on conditions such as “bullish touch confirmed” or “bearish touch confirmed.”
Alerts can be gated to only fire after bar close, reducing intrabar noise.
Standard alertcondition calls are provided, and optional inline alert() calls can be enabled.
Inputs and Customization
Structure & OB
Swing length: Defines how many bars back to check for BOS.
ATR length & displacement factor: Adjust sensitivity for structural breaks.
Body vs. wick reference: Choose whether zones are based on candle bodies or full ranges.
Invalidation rule: Pick between wick breach or close beyond the level.
Lifespan (bars): Limit how long a zone remains active.
Max keep: Cap the number of zones stored to reduce clutter.
Order-Flow Proxies
Delta mode: Choose between “Close vs Previous Close” or “Body” for delta calculation.
EMA length: Smooths the delta/imbalance series.
Z-score lookback: Defines the averaging window for EvR.
Confirmation thresholds: Adjust the imbalance levels required for long/short confirmation.
Higher Timeframe Filter
Enable HTF gate: Optional filter requiring higher-timeframe EMA slope alignment.
HTF timeframe & EMA length: Configurable for context alignment.
Style
Colors and transparency for bullish and bearish zones.
Border color customization.
Alerts
Enable inline alerts: Optional direct calls to alert().
Alerts on bar close only: Helps avoid multiple firings during bar formation.
Practical Use
This tool is best seen as a way to annotate charts and to study how simple volume-derived signals behave near important structural levels. Some users may:
Observe whether order blocks line up with later price reactions.
Study how imbalance or cumulative delta conditions align with these zones.
Use it in a discretionary workflow to highlight areas of interest for deeper analysis.
Because the proxies are based only on candle OHLCV data, they are approximations. They cannot replace true depth-of-market analysis. Similarly, order block detection here is one specific algorithmic interpretation; other traders may define order blocks differently.
Limitations and Disclaimers
This indicator does not predict future price movement.
It does not access real order book or tick-by-tick data. All signals are derived from bar OHLCV.
Past performance of signals or zones does not guarantee future results.
The script is for educational and informational purposes only. It is not financial advice.
Users should test thoroughly, adjust parameters to their own instruments and timeframes, and use it in combination with broader analysis.
Summary
The Order Blocks + Order-Flow Proxies script is an experimental study tool that:
Detects potential order blocks using a displacement-filtered break of structure.
Marks these zones as boxes that persist until invalidation or expiry.
Provides lightweight order-flow-style proxies such as delta, imbalance, CVD, and effort vs. result.
Allows confirmation of zone touches through these proxies and optional higher-timeframe context.
Offers flexible customization, alerting, and chart-style options.
It is not a trading system by itself but rather a framework for studying price/volume behavior around structurally significant areas. With careful exploration, it can give users new ways to visualize market structure and to understand how simple flow-like measures behave in those contexts.
Pesquisar nos scripts por "zone"
Profitable Loser Model [MMT]Profitable Loser Model
Overview
The Profitable Loser Model is a powerful PineScript v6 indicator designed to enhance your trading by visualizing key price levels, session open zones, Fibonacci retracements, and premium/discount zones. This overlay indicator provides traders with a customizable toolkit to analyze market structure across any timeframe, making it ideal for intraday and swing trading strategies.
Features
Open Zone Visualization
- Plots a box based on the open and close of the first candle in a user-defined timeframe (default: 5-minute).
- Customizable box color, projection offset, and label size (Tiny, Small, Normal, Large).
- Displays a timeframe label (e.g., "5m Open Zone") for quick reference, toggleable on/off.
Session Open Lines
- Optionally draws horizontal lines at key session opens (8:30 AM, 9:30 AM, 1:30 PM, Midnight, New York time).
- Customize line color, style (Solid, Dashed, Dotted), width, and label size for each session.
- Perfect for identifying critical intraday price levels.
Premium and Discount Zones
- Highlights premium (above midpoint) and discount (below midpoint) zones based on session high/low.
- Toggleable with customizable colors and projection offsets.
- Helps traders spot overbought/oversold areas for potential mean-reversion trades.
Fibonacci Retracement Levels
- Plots user-defined Fibonacci levels (default: 0.23, 0.35, 0.5, 0.62, 0.705, 0.79, 0.886, 1, 1.1).
- Customizable line style, width, color, and labels (showing percentage and/or price).
- Dynamically adjusts based on price movement relative to the open zone.
Take Profit (TP) and Stop Loss (SL) Levels
- Highlights TP (default: 0.23) and SL (default: 1.1) Fibonacci levels with distinct colors.
- Fully customizable to align with your risk-reward strategy.
How It Works
- Session Detection : Resets daily (or per user-defined timeframe) to capture the first candle's open, high, low, and close.
- Open Zone : Draws a box between the open and close, extended forward by the projection offset.
- Session Lines : Plots lines at specified session opens with customizable styles and labels.
- Fibonacci Retracement : Adjusts levels dynamically based on session high/low and price action.
- Premium/Discount Zones : Calculated from the session range midpoint, updated in real-time.
Settings
- Open Zone :
- Timeframe (default: 5m), Calculate Timeframe (default: Daily).
- Toggle label, adjust size, box color, and projection offset.
- Session Open Lines :
- Enable/disable lines for 8:30 AM, 9:30 AM, 1:30 PM, Midnight.
- Customize color, style, width, label size, and vertical offset.
- Premium/Discount Zones :
- Toggle visibility, set colors, and adjust projection offset.
- Fibonacci Retracement :
- Toggle visibility, set custom levels, line style, width, color, and label options.
- Adjust projection offset.
- TP/SL :
- Set TP/SL Fibonacci levels and colors.
Use Cases
- Intraday Trading : Use session open lines and open zones to trade key market hours.
- Swing Trading : Leverage Fibonacci levels for potential reversal or continuation zones.
- Risk Management : Set precise TP/SL levels based on Fibonacci retracements.
- Market Structure : Identify overbought/oversold zones with premium/discount areas.
Notes
- Optimized with `dynamic_requests = true` for efficient real-time data handling.
- Visual elements (boxes, lines, labels) are cleaned up at the start of each new session.
- Session lines use New York time (`America/New_York`) for alignment with major markets.
Deviation Trend Profile [BigBeluga]🔵 OVERVIEW
A statistical trend analysis tool that combines moving average dynamics with standard deviation zones and trend-specific price distribution.
This is an experimental indicator designed for educational and learning purposes only.
🔵 CONCEPTS
Trend Detection via SMA Slope: Detects trend shifts when the slope of the SMA exceeds a ±0.1 threshold.
Standard Deviation Zones: Calculates ±1, ±2, and ±3 levels from the SMA using ATR, forming dynamic envelopes around the mean.
Trend Distribution Profile: Builds a histogram that shows how often price closed within each deviation zone during the active trend phase.
🔵 FEATURES
Trend Signals: Immediate shift markers using colored circles at trend reversals.
SMA Gradient Coloring: The SMA line dynamically changes color based on its directional slope.
Trend Duration Label: A label above the histogram shows how many bars the current trend has lasted.
Trend Distribution Histogram: Visual bin-based profile showing frequency of price closes within deviation bands during trend lookback period.
Adjustable Bin Count: Set the granularity of the distribution using the “Bins Amount” input.
Deviation Labels and Zones: Clearly marked ±1, ±2, ±3 lines with consistent color scheme.
Trend Strength Insight:
• Wide profile skewed to ±2/3 = strong directional trend.
• Profile clustered near SMA = potential trend exhaustion or range.
🔵 HOW TO USE
Use trend shift dots as entry signals:
• 🔵 = Bullish start
• 🔴 = Bearish start
Trade with the trend when price clusters in outer zones (±2 or ±3).
Be cautious or fade the trend when price distribution contracts toward the SMA.
View across multiple timeframes for trend confluence or divergence.
🔵 CONCLUSION
Deviation Trend Profile visualizes how price distributes during trends relative to statistical deviation zones.
It’s a powerful confluence tool for identifying strength, exhaustion, and the rhythm of price behavior—ideal for swing traders and volatility analysts alike.
Hybrid Swing/Day Alert System - PLATINUM EditionThis indicator is a complete trading assistant designed for crypto swing and day traders, built to identify high-probability long and short setups based on a multi-confirmation system.
Strategy Logic
The system scans and confirms entries only when 6 major confluences align:
1. EMA Trend: Price is above or below the EMA 9, 21, and 200 (bullish or bearish trend).
2. RSI Zone: RSI(14) is between 40-60 (ideal reversal zone).
3. Volume Confirmation: Volume is declining on pullback and then spikes.
4. Accumulation/Distribution: A/D line rising (for longs) or falling (for shorts).
5. Fibonacci Pullback Zone: Automatic detection of swing high/low and checks if price is inside the golden zone (0.5-0.618).
Built-In Alerts
- Long Setup Confirmed - Short Setup Confirmed - Setup Forming: Monitor
Conclusion
This script is ideal for disciplined traders who value confluence-based entries, risk/reward logic, and trend-aligned trades. Perfect for semi-automated trading via alerts or manual execution.6. Candle Pattern: Bullish (hammer, doji, engulfing) or Bearish (rejection wick, engulfing, doji).
Visual Features
- Long Entry: Green square
- Short Entry: Red triangle
- Pre-Signal Alert: Blue circle (confluence forming)
- Dynamic Table: Displays all 6 confirmations in real time
- Fibonacci Zones: Auto-plotted long/short retracement zones
- Customizable: Turn on/off alerts, overlays, and direction filters
Best Use Cases
- 4H/Daily: Trend confirmation
- 1H: Entry execution
- 15min: Scalping (use cautiously)
- Works great with BTC, ETH, SOL, XAU, and meme coins
Institutional Support/Resistance Locator🏛️ Institutional Support/Resistance Locator
Overview
The Institutional Support/Resistance Locator identifies high-probability demand and supply zones based on strong price rejection, large candle bodies, and elevated volume . These zones are commonly targeted or defended by institutional participants, helping traders anticipate potential reversal or continuation areas.
⸻
How It Works
The indicator uses a confluence of conditions to detect zones:
• Large Body Candles: Body size must exceed the moving average body size multiplied by a user-defined factor.
• High Volume: Volume must exceed the moving average volume by a configurable multiplier.
• Wick Rejection: Candles must show strong upper or lower wicks indicating aggressive rejection.
• If all criteria are met:
• Bullish candles form a Demand Zone.
• Bearish candles form a Supply Zone.
Each zone is plotted for a customizable number of future bars, representing areas where institutions may re-engage with the market.
⸻
Key Features
• ✅ Highlights institutional demand and supply areas dynamically
• ✅ Customizable sensitivity: body, volume, wick, padding, and zone extension
• ✅ Zones plotted as translucent regions with auto-expiry
• ✅ Works across all timeframes and markets
⸻
How to Use
• Trend Traders: Use demand zones for potential bounce entries in uptrends, and supply zones for pullback short entries in downtrends.
• Range Traders: Use zones as potential reversal points inside sideways market structures.
• Scalpers & Intraday Traders: Combine with volume or price action near zones for refined entries.
Always validate zone reactions with supporting indicators or price behavior.
⸻
Why This Combination?
The combination of wick rejection, volume confirmation, and large candle structure is designed to reflect footprints of smart money. Rather than relying on fixed pivots or subjective zones, this logic adapts to the current market context with statistically grounded conditions.
⸻
Why It’s Worth Using
This tool offers traders a structured way to interpret institutional activity on charts without relying on guesswork. By plotting potential high-impact areas, it helps improve reaction time.
⸻
Note :
• This script is open-source and non-commercial.
• No performance guarantees or unrealistic claims are made.
• It is intended for educational and analytical purposes only.
Heatmap Suite [PhenLabs]📊 Heatmap Suite
Version: PineScript™ v6
📌 Description
The Heatmap Suite is an advanced technical analysis tool that combines multiple density calculation methods with dynamic visualization to identify significant price levels and trading activity zones. It features a sophisticated analysis system that processes price and volume data through various kernel methods, providing traders with insights into market structure, support/resistance zones, and potential price reaction areas.
🚀 Points of Innovation:
Multi-method density calculation incorporating three distinct approaches
Adaptive visualization system with dynamic color gradients
Real-time dashboard with key market metrics
Significant level detection with automatic threshold adjustment
🚨 Important🚨
🔸Comprehensive tooltips included in the PhenLabs dashboard for in depth guidance
🔧 Core Components
Density Analysis: Multiple calculation methods for price distribution assessment
Heat Mapping: Dynamic visualization of price congestion zones
Level Detection: Automatic identification of significant price levels
Dashboard System: Real-time market metrics and analysis
🔥 Key Features
The indicator provides comprehensive analysis through:
Kernel Density: Traditional balanced view of price distribution
Exponential Kernel: Time-weighted analysis emphasizing recent price action
Volume-Weighted: Focus on high-volume price areas
Significant Levels: Automatic detection of important price zones
Heat Distribution: Color-coded visualization of price congestion
🎨 Visualization
Heat Zones: Shows intensity of price activity
Significant Lines: Key level indicators
Color Gradients: Indicates density strength
Dashboard Display: Real-time metrics
Dynamic Opacity: Reflects density intensity
📖 Usage Guidelines
The indicator offers several customization options:
Basic Settings:
Calculation Method: Choose between three density calculation approaches
Lookback Period: Analysis timeframe adjustment
Zone Count: Price range division granularity
Heat Sensitivity: Contrast adjustment for visualization
🎛️ Visual Settings:
Dashboard Size: Text size customization
Position: Dashboard placement options
Color Scheme: Heat map gradient visualization
Level Display: Significant price zone indicators
✅ Best Use Cases:
Identify strong support/resistance zones through high-density areas
Spot potential price reversal zones at significant levels
Analyze price congestion patterns
Monitor real-time changes in market structure
⚠️ Limitations
Requires sufficient historical data
Computational intensity increases with longer lookback periods
Heat sensitivity needs adjustment based on market conditions
Dashboard placement may need adjustment based on price action
💡 What Makes This Unique
Multi-method Analysis: Three distinct calculation approaches
Adaptive Visualization: Dynamic color gradient system
Real-time Metrics: Comprehensive dashboard display
Automatic Level Detection: Significant price zone identification
Memory-efficient Design: Optimized calculation methods
🔬 How It Works
The indicator processes market data through four main components:
1. Density Calculation:
Processes price and volume data
Applies selected kernel method
Generates density distribution
2. Heat Mapping:
Converts density values to color gradients
Updates visualization in real-time
Displays price congestion zones
3. Level Detection:
Identifies significant price levels
Applies threshold filtering
Marks important zones
4. Dashboard Updates:
Calculates real-time metrics
Updates display components
Provides market context
💡Note:
The indicator performs best with adequate historical data and proper sensitivity settings. Its sophisticated density analysis provides valuable insights into market structure beyond traditional support/resistance indicators.
MEMEQUANTMEMEQUANT
This script is a comprehensive and specialized tool designed for tracking trends and money flow within meme coins and DEX tokens. By combining various features such as trend lines, Fibonacci levels, and category-based indices, it helps traders make informed decisions in highly volatile markets.
Key Features:
1. Category-Based Indices:
• Tracks the performance of token categories like:
• AI Agent Tokens
• AI Tokens
• Animal Tokens
• Murad Picks
• Each category consists of leader tokens, which are selected based on their higher market cap and trading volume. These tokens act as benchmarks for their respective categories.
• Visualizes category indices in a line chart to identify trends and compare money flow between categories.
2. Fibonacci Correction Zones:
• Highlights key retracement levels (e.g., 60%, 70%, 80%).
• These levels are crucial for identifying potential reversal zones, commonly observed in meme coin trading patterns.
• Fully customizable to match individual trading strategies.
3. Trend Lines:
• Automatically detects major support and resistance levels.
• Separates long-term and short-term trend lines, allowing traders to focus on significant price movements.
4. Enhanced Info Table:
• Provides real-time insights, including:
• % Distance from All-Time High (ATH)
• Current Trading Volume
• 50-bar Average Volume
• Volume Change Percentage
• Displays information in an easy-to-read table on the chart.
5. Customizable Settings:
• Users can adjust transparency, colors, and ranges for Fibonacci zones, trend lines, and the table.
• Enables or disables individual features (e.g., Fibonacci, trend lines, table) based on preferences.
How It Works:
1. Tracking Money Flow Across Categories:
• The script calculates the market cap to volume ratio for each category of tokens to help identify the dominant trend.
• A higher ratio indicates greater liquidity and stability, while a lower ratio suggests higher volatility or price manipulation.
2. Identifying Retracement Patterns:
• Leverages common retracement behaviors (e.g., 70% correction levels) observed in meme coins to detect potential reversal zones.
• Combines this with trend line analysis for additional confirmation.
3. Leader Tokens as Indicators:
• Each category is represented by its leader tokens, which have historically higher liquidity and market cap. This allows the script to accurately reflect the overall trend in each category.
When to Use:
• Trend Analysis: To identify which category (e.g., AI Tokens or Animal Tokens) is leading the market.
• Reversal Zones: To spot potential support or resistance levels using Fibonacci zones.
• Money Flow: To understand how capital is moving across different token categories in real time.
Who Is This For?
This script is tailored for:
• Traders specializing in meme coins and DEX tokens.
• Those looking for an edge in trend-based trading by analyzing market cap, volume, and retracement levels.
• Anyone aiming to track money flow dynamics between different token categories.
Future Updates:
This is the initial version of the script. Future updates may include:
• Support for additional token categories and DEX data.
• More advanced pattern recognition and alerts for volume and price anomalies.
• Enhanced visualization for historical data trends.
With this tool, traders can combine money flow analysis with the 60-70% retracement strategy, turning it into a powerful assistant for navigating the fast-paced world of meme coins and DEX tokens.
This script is designed to provide meaningful insights and practical utility for traders, adhering to TradingView’s standards for originality, clarity, and user value.
Support and Resistance Non-Repainting [AlgoAlpha]Elevate your technical analysis with the Non-Repainting Support and Resistance indicator from AlgoAlpha. Designed for traders who value precision, this tool highlights key support and resistance zones without repainting, ensuring reliable signals for better market decisions.
Key Features
🔍 Concise Zones: Identifies critical levels in real-time without repainting.
🖍 Customizable Appearance: Choose your preferred colors for bullish and bearish zones.
📏 Pivot Sensitivity Settings: Adjust the lookback period to fit different market conditions.
🔔 Visual Alerts: Highlights zones on your chart with clear, dynamic boxes and lines.
How to Use
Add the Indicator : Add it to your favorites chart by clicking the star icon. Adjust the lookback period, max zone duration, and colors to match your strategy.
Analyze the Chart : Look for zones where prices frequently react, indicating strong support or resistance.
Set Alerts : Enable notifications for new zone formations and zone invalidations, ensuring you never miss critical market moves.
How It Works
The indicator detects pivot highs and lows using a specified lookback period. When a pivot is confirmed, it draws corresponding support or resistance zones using TradingView’s built-in drawing tools. These zones extend until price breaks through them or they expire based on a maximum allowed duration. The indicator continuously checks if price interacts with any active zones and adjusts accordingly, ensuring accurate and real-time visualization.
Holt-Winters Forecast BandsDescription:
The Holt-Winters Adaptive Bands indicator combines seasonal trend forecasting with adaptive volatility bands. It uses the Holt-Winters triple exponential smoothing model to project future price trends, while Nadaraya-Watson smoothed bands highlight dynamic support and resistance zones.
This indicator is ideal for traders seeking to predict future price movements and visualize potential market turning points. By focusing on broader seasonal and trend data, it provides insight into both short- and long-term market directions. It’s particularly effective for swing trading and medium-to-long-term trend analysis on timeframes like daily and 4-hour charts, although it can be adjusted for other timeframes.
Key Features:
Holt-Winters Forecast Line: The core of this indicator is the Holt-Winters model, which uses three components — level, trend, and seasonality — to project future prices. This model is widely used for time-series forecasting, and in this script, it provides a dynamic forecast line that predicts where price might move based on historical patterns.
Adaptive Volatility Bands: The shaded areas around the forecast line are based on Nadaraya-Watson smoothing of historical price data. These bands provide a visual representation of potential support and resistance levels, adapting to recent volatility in the market. The bands' fill colors (red for upper and green for lower) allow traders to identify potential reversal zones without cluttering the chart.
Dynamic Confidence Levels: The indicator adapts its forecast based on market volatility, using inputs such as average true range (ATR) and price deviations. This means that in high-volatility conditions, the bands may widen to account for increased price movements, helping traders gauge the current market environment.
How to Use:
Forecasting: Use the forecast line to gain insight into potential future price direction. This line provides a directional bias, helping traders anticipate whether the price may continue along a trend or reverse.
Support and Resistance Zones: The shaded bands act as dynamic support and resistance zones. When price enters the upper (red) band, it may be in an overbought area, while the lower (green) band may indicate oversold conditions. These bands adjust with volatility, so they reflect the current market conditions rather than fixed levels.
Timeframe Recommendations:
This indicator performs best on daily and 4-hour charts due to its reliance on trend and seasonality. It can be used on lower timeframes, but accuracy may vary due to increased price noise.
For traders looking to capture swing trades, the daily and 4-hour timeframes provide a balance of trend stability and signal reliability.
Adjustable Settings:
Alpha, Beta, and Gamma: These settings control the level, trend, and seasonality components of the forecast. Alpha is generally the most sensitive setting for adjusting responsiveness to recent price movements, while Beta and Gamma help fine-tune the trend and seasonal adjustments.
Band Smoothing and Deviation: These settings control the lookback period and width of the volatility bands, allowing users to customize how closely the bands follow price action.
Parameters:
Prediction Length: Sets the length of the forecast, determining how far into the future the prediction line extends.
Season Length: Defines the seasonality cycle. A setting of 14 is typical for bi-weekly cycles, but this can be adjusted based on observed market cycles.
Alpha, Beta, Gamma: These parameters adjust the Holt-Winters model's sensitivity to recent prices, trends, and seasonal patterns.
Band Smoothing: Determines the smoothing applied to the bands, making them either more reactive or smoother.
Ideal Use Cases:
Swing Trading and Trend Following: The Holt-Winters model is particularly suited for capturing larger market trends. Use the forecast line to determine trend direction and the bands to gauge support/resistance levels for potential entries or exits.
Identifying Reversal Zones: The adaptive bands act as dynamic overbought and oversold zones, giving traders potential reversal areas when price reaches these levels.
Important Notes:
No Buy/Sell Signals: This indicator does not produce direct buy or sell signals. It’s intended for visual trend analysis and support/resistance identification, leaving trade decisions to the user.
Not for High-Frequency Trading: Due to the nature of the Holt-Winters model, this indicator is optimized for higher timeframes like the daily and 4-hour charts. It may not be suitable for high-frequency or scalping strategies on very short timeframes.
Adjust for Volatility: If using the indicator on lower timeframes or more volatile assets, consider adjusting the band smoothing and prediction length settings for better responsiveness.
Implied Fair Value Gap (IFVG) ICT [TradingFinder] Hidden FVG OTE🔵 Introduction
The Implied Fair Value Gap (IFVG) is distinctive due to its unique three-candlestick formation, which differentiates it from conventional Fair Value Gaps.
Implied fair value represents an estimated worth of an asset—often a business or its goodwill—based on the price likely to be received in a structured transaction between market participants at a specific point in time.
In the ever-evolving world of technical analysis, pinpointing price reversal points and market anomalies can significantly enhance trading strategies and decision-making for traders and investors. Among the advanced concepts gaining traction in this field is the Implied Fair Value Gap (IFVG), introduced by the renowned analyst Inner Circle Trader (ICT).
This tool has proven to be an effective method for identifying hidden supply and demand zones in financial markets, offering a unique edge to traders looking for high-probability setups.
Unlike traditional gaps that are visible on price charts, IFVG is a hidden gap that doesn’t appear explicitly on the chart and thus requires specialized technical analysis tools for accurate identification.
This hidden gap can signal potential price reversals and offers traders insight into high-liquidity areas where price is likely to react. This article will guide you through using the ICT Implied Fair Value Gap Indicator effectively, covering its settings, usage strategies, and key features to help you make informed decisions in the market.
🟣 Bullish Implied FVG
🟣 Bearish Implied FVG
🔵 How to Use
The IFVG indicator is designed to assist traders in recognizing hidden support and resistance zones by identifying Bullish and Bearish IFVG patterns. With this tool, traders can make better-informed decisions about suitable entry and exit points for their trades based on these patterns.
🟣 Bullish Implied Fair Value Gap
This pattern occurs in an uptrend when a large bullish candlestick forms, with the wicks of the previous and following candles overlapping the body of the central candlestick.
This overlap creates a demand zone or a hidden support level, which can act as an ideal entry point for buy trades. Often, when the price returns to this area, it is likely to resume its upward trend, presenting a profitable buying opportunity.
🟣 Bearish Implied Fair Value Gap
This pattern is similar but forms in downtrends. Here, a large bearish candlestick appears on the chart, with the wicks of adjacent candles overlapping its body. This overlap defines a supply zone or a hidden resistance level and serves as a signal for potential sell trades.
When the price returns to this zone, it often continues its downward trend, providing an optimal point for entering sell trades.
The IFVG indicator also includes various filters that traders can use to refine their analysis based on market conditions. These filters, including Very Aggressive, Aggressive, Defensive, and Very Defensive, allow users to customize the IFVG zones' width, offering flexibility according to the trader’s risk tolerance and trading style.
🟣 Example Trading Scenarios
Suppose you’re in a strong uptrend and the IFVG indicator identifies a Bullish IFVG zone. In this scenario, you could consider entering a buy trade when the price retraces to this zone, expecting the uptrend to resume. Conversely, in a downtrend, a Bearish IFVG zone can signal a favorable entry point for short trades when the price revisits this area.
🔵 Settings
Implied Block Validity Period: This parameter specifies the validity period of each identified block, taking into account the number of bars that have passed since its formation. Proper adjustment of this period helps traders focus only on relevant zones, increasing the accuracy of the analysis.
Mitigation Level OB : This option defines the mitigation level for supply and demand blocks (Order Blocks), with settings including Proximal, 50% OB, and Distal.
Depending on the selected level, the indicator will focus on closer, mid-range, or farther points for block identification, allowing traders to adjust for the level of precision required.
Implied Filter : Activating this filter allows traders to apply conditions based on the width of the IFVG zones. With options like Very Aggressive and Very Defensive, traders can control the width of IFVG zones to suit their risk management strategy—whether they prefer high-risk setups or low-risk setups.
Display and Color Settings : This section enables users to customize the appearance of the IFVG zones on their charts. Traders can set different colors for Bullish and Bearish zones, allowing for easier distinction and improved visualization.
Alert Settings : One of the standout features of the IFVG indicator is the alert system. By setting up alerts, users can be notified whenever the price approaches a demand or supply zone.
Alerts can be customized to trigger Once Per Bar (one alert per bar) or Per Bar Close (alert at the close of each bar), ensuring that traders stay updated on critical price movements without needing to monitor the chart continuously.
🔵 Conclusion
The ICT Implied Fair Value Gap (IFVG) indicator is a powerful and sophisticated tool in technical analysis, allowing professional traders to identify hidden supply and demand zones and use them as entry and exit points for buy and sell trades.
This indicator’s automatic detection of IFVG zones helps traders uncover hidden trading opportunities that can enhance their analysis.
While the IFVG indicator offers numerous advantages, it is important to use it in conjunction with other technical analysis tools and sound risk management practices.
IFVG alone does not guarantee profitability in trading; it works best when combined with other indicators such as volume analysis and trend-following indicators for a comprehensive trading strategy.
Trading Ranges + ZScoreOverview
The "Trading Ranges + ZScore" script is a versatile technical indicator developed for TradingView. This tool combines two powerful concepts—price ranges and Z-Score analysis—to help traders identify potential trend reversals, overbought/oversold conditions, and trend strength. The script dynamically calculates price ranges based on recent price action and utilizes Z-Score to detect deviations from a statistical norm, providing valuable insights for decision-making in both ranging and trending markets.
Features
Price Ranges: Calculates dynamic upper and lower price boundaries based on volatility and market structure.
Z-Score Oscillator: A statistical measure that highlights overbought/oversold conditions based on the deviation from a moving average.
Trend Detection: Identifies trend continuation or reversal points by comparing current price action against historical levels.
Customizable Alerts: Generates visual signals (diamonds and X crosses) for potential long/short entries and exits.
Visual Representation: Colors the bars based on Z-Score and trend direction, enhancing the chart’s readability and signal clarity.
Customizable Parameters: The script allows users to fine-tune perception length, analysis period, factor multiplier, and oscillator thresholds to fit different market conditions.
Key Input Parameters
Perception: The length used for calculating highest/lowest price points (default: 20).
Analysis: The length used for calculating the moving average and volatility (default: 100).
Factor: A multiplier to adjust the width of the price ranges (default: 2.0).
Oscillator Threshold: The overbought/oversold threshold for the Z-Score oscillator (default: 70).
Trend Filter: A boolean switch that filters signals based on trend direction.
Fill Zones: Option to color-fill between price levels when certain conditions are met.
Bullish/Bearish/Neutral Colors: Customizable colors for bullish, bearish, and neutral signals.
How It Works
Price Ranges Calculation:
The script calculates five levels: two upper boundaries, the average price level, and two lower boundaries. These levels are based on the highest/lowest prices over a user-defined period and adjusted by volatility (Average True Range).
When the price crosses either of these levels, it suggests a significant change in market direction, potentially indicating a trend reversal.
Z-Score Oscillator:
The Z-Score is a statistical measurement of a price's position relative to its moving average. The indicator calculates two variations:
Z-Score based on the absolute difference between the price and the moving average.
Z-Score based on standard deviation.
These oscillators help detect extreme conditions where the price is likely to revert (overbought/oversold zones).
Trend Detection and Signals:
The indicator generates potential buy/sell signals when the price crosses the predefined levels or based on the fast Z-Score crossing the overbought/oversold thresholds.
Weak long/short signals are shown when the faster Z-Score oscillator reaches extreme levels but trend filters are applied to avoid noise.
Bar Colors and Signal Shapes:
Bar colors change dynamically to reflect the trend direction and Z-Score conditions. Signals for potential trades are displayed using diamonds and X crosses, making it easy to spot opportunities visually.
Visuals and Plots
Bar Colors: Changes the bar color based on Z-Score and trend direction.
Z-Score Plot: Displays two Z-Score oscillators, the standard and a faster one for detecting quicker price deviations.
Overbought/Oversold Zones: Highlighted by upper and lower thresholds of the Z-Score.
Long/Short Signals: Uses diamond-shaped markers for strong long/short signals and X-shaped markers for weaker signals.
Dynamic Range Lines: Plots lines for key price levels (upper/lower boundaries, mid-range) based on the dynamic range calculations.
Usage Guide
Identify Overbought/Oversold Conditions: Look for the Z-Score reaching extreme positive or negative values. When combined with trend signals, these conditions often point to a potential reversal.
Follow the Trend: Use the trend filter option to focus only on trades in the direction of the prevailing trend, reducing false signals in ranging markets.
Watch for Range Breakouts: Pay attention to the upper and lower boundaries. Price crossing these levels often signals the start of a new trend or a major price movement.
Adjust Parameters: Tailor the perception length, analysis length, and multiplier to suit different asset classes or timeframes.
Customization
You can adjust the key parameters to adapt the indicator to different markets or personal trading preferences:
- Perception & Analysis Lengths: Control the sensitivity of the price range calculations.
- Factor Multiplier: Adjusts the width of the ranges, with higher values indicating larger zones.
- Oscillator Threshold: Modify the overbought/oversold levels to suit different market volatility.
- Trend Filter: Toggle on/off to focus on trend-following strategies or range-bound conditions.
- Visual Options: Customize colors for bullish, bearish, and neutral signals, as well as enable/disable the zone fills.
Supports & Resistances [UAlgo]The "Supports & Resistances " indicator is designed to identify and visualize key support and resistance levels on the price chart. It utilizes the Average True Range (ATR) and Pivot Points to define the boundaries of S & R zones and considers historical price action to assess the strength of these zones.
🔶 How to Obtain Zones
The script continuously analyzes the price action and identifies potential support and resistance zones based on the following criteria:
Zone Creation: For swing highs, a zone is created with the high price at the zone length as the top and the top minus the Average True Range (ATR) as the bottom. Conversely, for swing lows, the zone is created with the low price at the zone length as the bottom and the low plus the ATR as the top.
Zone Strength Calculation: The script iterates through historical bars within the zone and counts how many times the price (low for support, high for resistance) touched but failed to break entirely through the zone. This count is assigned as the zone's "strength".
Zone Display and Removal: It identifying zones by assigning a "strength" value based on how many times the price has approached but failed to break the zone. This helps prioritize stronger potential support/resistance levels. Only zones exceeding the defined "strength threshold" are visually displayed on the chart. Weaker zones or those broken by price are automatically removed.
🔶 Parameters
Zone Length: Traders can adjust S & R detection sensitivity, length to be used to find pivot points.
Strength Threshold: Set the minimum number of times the price needs to touch but fail to break a zone for it to be considered "strong" and displayed.
Visual Settings: Tailor the appearance of the support/resistance zones by defining separate colors and text size for borders, backgrounds, and zone text.
🔶 Disclaimer
The "Supports & Resistances " indicator is provided for educational and informational purposes only.
It should not be considered as financial advice or a recommendation to buy or sell any financial instrument.
The use of this indicator involves inherent risks, and users should employ their own judgment and conduct their own research before making any trading decisions. Past performance is not indicative of future results.
🔷 Related Scripts
Support and Resistance with Signals
ATR Based Support and Resistance Zones
Smart Money Concept [TradingFinder] Major OB + FVG + Liquidity🔵 Introduction
"Smart Money" refers to funds under the control of institutional investors, central banks, funds, market makers, and other financial entities. Ordinary people recognize investments made by those who have a deep understanding of market performance and possess information typically inaccessible to regular investors as "Smart Money".
Consequently, when market movements often diverge from expectations, traders identify the footprints of smart money. For example, when a classic pattern forms in the market, traders take short positions. However, the market might move upward instead. They attribute this contradiction to smart money and seek to capitalize on such inconsistencies in their trades.
The "Smart Money Concept" (SMC) is one of the primary styles of technical analysis that falls under the subset of "Price Action". Price action encompasses various subcategories, with one of the most significant being "Supply and Demand", in which SMC is categorized.
The SMC method aims to identify trading opportunities by emphasizing the impact of large traders (Smart Money) on the market, offering specific patterns, techniques, and trading strategies.
🟣 Key Terms of Smart Money Concept (SMC)
• Market Structure (Trend)
• Change of Character (ChoCh)
• Break of Structure (BoS)
• Order Blocks (Supply and Demand)
• Imbalance (IMB)
• Inefficiency (IFC)
• Fair Value Gap (FVG)
• Liquidity
• Premium and Discount
🔵 How Does the "Smart Money Concept Indicator" Work?
🟣 Market Structure
a. Accumulation
b. Market-Up
c. Distribution
d. Market-Down
a) Accumulation Phase : During the accumulation period, typically following a downtrend, smart money enters the market without significantly affecting the pricing trend.
b) Market-Up Phase : In this phase, the price of an asset moves upward from the accumulation range and begins to rise. Usually, the buying by retail investors is the main driver of this trend, and due to positive market sentiment, it continues.
c) Distribution Phase : The distribution phase, unlike the accumulation stage, occurs after an uptrend. In this phase, smart money attempts to exit the market without causing significant price fluctuations.
d) Market-Down Phase : In this stage, the price of an asset moves downward from the distribution phase, initiating a prolonged downtrend. Smart money liquidates all its positions by creating selling pressure, trapping latecomer investors.
The result of these four phases in the market becomes the market trend.
Types of Trends in Financial Markets :
a. Up-Trend
b. Down Trend
c. Range (No Trend)
a) Up-Trend : The market breaks consecutive highs.
b) Down Trend : The market breaks consecutive lows.
c) No Trend or Range : The market oscillates within a range without breaking either highs or lows.
🟣 Change of Character (ChoCh)
The "ChoCh" or "Change of Character" pattern indicates an initial change in order flow in financial markets. This structural change occurs when a major pivot in the opposite direction of the market trend fails. It signals a potential change in the market trend and can serve as a signal for short-term or long-term trend changes in a trading symbol.
🟣 Break of Structure (BoS)
The "BoS" or "Break of Structure" pattern indicates the continuation of the trend in financial markets. This structure forms when, in an uptrend, the price breaks its ceiling or, in a downtrend, the price breaks its floor.
🟣 Order Blocks (Supply and Demand)
Order blocks consist of supply and demand areas where the likelihood of price reversal is higher. There are six order blocks in this indicator, categorized based on their origin and formation reasons.
a. Demand Main Zone, "ChoCh" Origin.
b. Demand Sub Zone, "ChoCh" Origin.
c. Demand All Zone, "BoS" Origin.
d. Supply Main Zone, "ChoCh" Origin.
e. Supply Sub Zone, "ChoCh" Origin.
f. Supply All Zone, "BoS" Origin.
🟣 FVG | Inefficiency | Imbalance
These three terms are almost synonymous. They describe the presence of gaps between consecutive candle shadows. This inefficiency occurs when the market moves rapidly. Primarily, imbalances and these rapid movements stem from the entry of smart money and the imbalance between buyer and seller power. Therefore, identifying these movements is crucial for traders.
These areas are significant because prices often return to fill these gaps or even before they occur to fill price gaps.
🟣 Liquidity
Liquidity zones are areas where there is a likelihood of congestion of stop-loss orders. Liquidity is considered the driving force of the entire market, and market makers may manipulate the market using these zones. However, in many cases, this does not happen because there is insufficient liquidity in some areas.
Types of Liquidity in Financial Markets :
a. Trend Lines
b. Double Tops | Double Bottoms
c. Triple Tops | Triple Bottoms
d. Support Lines | Resistance Lines
All four types of liquidity in this indicator are automatically identified.
🟣 Premium and Discount
Premium and discount zones can assist traders in making better decisions. For instance, they may sell positions in expensive ranges and buy in cheaper ranges. The closer the price is to the major resistance, the more expensive it is, and the closer it is to the major support, the cheaper it is.
🔵 How to Use
🟣 Change of Character (ChoCh) and Break of Structure (BoS)
This indicator detects "ChoCh" and "BoS" in both Minor and Major states. You can turn on the display of these lines by referring to the last part of the settings.
🟣 Order Blocks (Supply and Demand)
Order blocks are Zones where the probability of price reversal is higher. In demand Zones you can buy opportunities and in supply Zones you can check sell opportunities.
The "Refinement" feature allows you to adjust the width of the order block according to your strategy. There are two modes, "Aggressive" and "Defensive," in the "Order Block Refine". The difference between "Aggressive" and "Defensive" lies in the width of the order block.
For risk-averse traders, the "Defensive" mode is suitable as it provides a lower loss limit and a greater reward-to-risk ratio. For risk-taking traders, the "Aggressive" mode is more appropriate. These traders prefer to enter trades at higher prices, and this mode, which has a wider order block width, is more suitable for this group of individuals.
🟣 Fair Value Gap (FVG) | Imbalance (IMB) | Inefficiency (IFC)
In order to identify the "fair value gap" on the chart, it must be analyzed candle by candle. In this process, it is important to pay attention to candles with a large size, and a candle and a candle should be examined before that.
Candles before and after this central candle should have long shadows and their bodies should not overlap with the central candle body. The distance between the shadows of the first and third candles is known as the FVG range.
These areas work in two ways :
• Supply and demand area : In this case, the price reacts to these areas and the trend is reversed.
• Liquidity zone : In this scenario, the price "fills" the zone and then reaches the order block.
Important note : In most cases, the FVG zone of very small width acts as a supply and demand zone, while the zone of significant width acts as a liquidity zone and absorbs price.
When the FVG filter is activated, the FVG regions are filtered based on the specified algorithm.
FVG filter types include the following :
1. Very Aggressive Mode : In addition to the initial condition, an additional condition is considered. For bullish FVG, the maximum price of the last candle must be greater than the maximum price of the middle candle.
Similarly, for a bearish FVG, the minimum price of the last candle must be lower than the minimum price of the middle candle. This mode removes the minimum number of FVGs.
2. Aggressive : In addition to the very aggressive condition, the size of the middle candle is also considered. The size of the center candle should not be small and therefore more FVGs are removed in this case.
3. Defensive : In addition to the conditions of the very aggressive mode, this mode also considers the size of the middle pile, which should be relatively large and make up the majority of the body.
Also, to identify bullish FVGs, the second and third candles must be positive, while for bearish FVGs, the second and third candles must be negative. This mode filters out a significant number of FVGs and keeps only those of good quality.
4. Very Defensive : In addition to the conditions of the defensive mode, in this mode the first and third candles should not be very small-bodied doji candles. This mode filters out most FVGs and only the best quality ones remain.
🟣 Liquidity
These levels are where traders intend to exit their trades. "Market makers" or smart money usually accumulate or distribute their trading positions near these levels, where many retail traders have placed their "stop loss" orders. When liquidity is collected from these losses, the price often reverses.
A "Stop hunt" is a move designed to offset liquidity generated by established stop losses. Banks often use major news events to trigger stop hunts and capture liquidity released into the market. For example, if they intend to execute heavy buy orders, they encourage others to sell through stop-hots.
Consequently, if there is liquidity in the market before reaching the order block area, the validity of that order block is higher. Conversely, if the liquidity is close to the order block, that is, the price reaches the order block before reaching the liquidity limit, the validity of that order block is lower.
🟣 Alert
With the new alert functionality in this indicator, you won't miss any important trading signals. Alerts are activated when the price hits the last order block.
1. It is possible to set alerts for each "symbol" and "time frame". The system will automatically detect both and include them in the warning message.
2. Each alert provides the exact date and time it was triggered. This helps you measure the timeliness of the signal and evaluate its relevance.
3. Alerts include target order block price ranges. The "Proximal" level represents the initial price level strike, while the "Distal" level represents the maximum price gap in the block. These details are included in the warning message.
4. You can customize the alert name through the "Alert Name" entry.
5. Create custom messages for "long" and "short" alerts to be sent with notifications.
🔵 Setting
a. Pivot Period of Order Blocks Detector :
Using this parameter, you can set the zigzag period that is formed based on the pivots.
b. Order Blocks Validity Period (Bar) :
You can set the validity period of each Order Block based on the number of candles that have passed since the origin of the Order Block.
c. Demand Main Zone, "ChoCh" Origin :
You can control the display or not display as well as the color of Demand Main Zone, "ChoCh" Origin.
d. Demand Sub Zone, "ChoCh" Origin :
You can control the display or not display as well as the color of Demand Sub Zone, "ChoCh" Origin.
e. Demand All Zone, "BoS" Origin :
You can control the display or not display as well as the color of Demand All Zone, "BoS" Origin.
f. Supply Main Zone, "ChoCh" Origin :
You can control the display or not display as well as the color of Supply Main Zone, "ChoCh" Origin.
g. Supply Sub Zone, "ChoCh" Origin :
You can control the display or not display as well as the color of Supply Sub Zone, "ChoCh" Origin.
h. Supply All Zone, "BoS" Origin :
You can control the display or not display as well as the color of Supply All Zone, "BoS" Origin.
i. Refine Demand Main : You can choose to be refined or not and also the type of refining.
j. Refine Demand Sub : You can choose to be refined or not and also the type of refining.
k. Refine Demand BoS : You can choose to be refined or not and also the type of refining.
l. Refine Supply Main : You can choose to be refined or not and also the type of refining.
m. Refine Supply Sub : You can choose to be refined or not and also the type of refining.
n. Refine Supply BoS : You can choose to be refined or not and also the type of refining.
o. Show Demand FVG : You can choose to show or not show Demand FVG.
p. Show Supply FVG : You can choose to show or not show Supply FVG
q. FVG Filter : You can choose whether FVG is filtered or not. Also specify the type of filter you want to use.
r. Show Statics High Liquidity Line : Show or not show Statics High Liquidity Line.
s. Show Statics Low Liquidity Line : Show or not show Statics Low Liquidity Line.
t. Show Dynamics High Liquidity Line : Show or not show Dynamics High Liquidity Line.
u. Show Dynamics Low Liquidity Line : Show or not show Dynamics Low Liquidity Line.
v. Statics Period Pivot :
Using this parameter, you can set the Swing period that is formed based on Static Liquidity Lines.
w. Dynamics Period Pivot :
Using this parameter, you can set the Swing period that is formed based Dynamics Liquidity Lines.
x. Statics Liquidity Line Sensitivity :
is a number between 0 and 0.4. Increasing this number decreases the sensitivity of the "Statics Liquidity Line Detection" function and increases the number of lines identified. The default value is 0.3.
y. Dynamics Liquidity Line Sensitivity :
is a number between 0.4 and 1.95. Increasing this number increases the sensitivity of the "Dynamics Liquidity Line Detection" function and decreases the number of lines identified. The default value is 1.
z. Alerts Name : You can customize the alert name using this input and set it to your desired name.
aa. Alert Demand Main Mitigation :
If you want to receive the alert about Demand Main 's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
bb. Alert Demand Sub Mitigation :
If you want to receive the alert about Demand Sub's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
cc. Alert Demand BoS Mitigation :
If you want to receive the alert about Demand BoS's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
dd. Alert Supply Main Mitigation :
If you want to receive the alert about Supply Main's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
ee. Alert Supply Sub Mitigation :
If you want to receive the alert about Supply Sub's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
ff. Alert Supply BoS Mitigation :
If you want to receive the alert about Supply BoS's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
gg. Message Frequency :
This parameter, represented as a string, determines the frequency of announcements. Options include: 'All' (triggers the alert every time the function is called), 'Once Per Bar' (triggers the alert only on the first call within the bar), and 'Once Per Bar Close' (activates the alert only during the final script execution of the real-time bar upon closure). The default setting is 'Once per Bar'.
hh. Show Alert time by Time Zone :
The date, hour, and minute displayed in alert messages can be configured to reflect any chosen time zone. For instance, if you prefer London time, you should input 'UTC+1'. By default, this input is configured to the 'UTC' time zone.
ii. Display More Info : The 'Display More Info' option provides details regarding the price range of the order blocks (Zone Price), along with the date, hour, and minute. If you prefer not to include this information in the alert message, you should set it to 'Off'.
You also have access to display or not to display, choose the Style and Color of all the lines below :
a. Major Bullish "BoS" Lines
b. Major Bearish "BoS" Lines
c. Minor Bullish "BoS" Lines
d. Minor Bearish "BoS" Lines
e. Major Bullish "ChoCh" Lines
f. Major Bearish "ChoCh" Lines
g. Minor Bullish "ChoCh" Lines
h. Minor Bearish "ChoCh" Lines
i. Last Major Support Line
j. Last Major Resistance Line
k. Last Minor Support Line
l. Last Minor Resistance Line
ORB Algo | Flux Charts💎 GENERAL OVERVIEW
Introducing our new ORB Algo indicator! ORB stands for "Opening Range Breakout" which is a common trading strategy. The indicator can analyze the market trend in the current session and give "Buy / Sell", "Take Profit" and "Stop Loss" signals. For more information about the analyzing process of the indicator, you can read "How Does It Work ?" section of the description.
Features of the new ORB Algo indicator :
Buy & Sell Signals
Up To 3 Take Profit Signals
Stop-Loss Signals
Alerts for Buy / Sell, Take-Profit and Stop-Loss
Customizable Algoritm
Session Dashboard
Backtesting Dashboard
📌 HOW DOES IT WORK ?
This indicator works best in 1-minute timeframe. The idea is that the trend of the current session can be forecasted by analyzing the market for a while after the session starts. However, each market has it's own dynamics and the algorithm will need fine-tuning to get the best performance possible. So, we've implemented a "Backtesting Dashboard" that shows the past performance of the algorithm in the current ticker with your current settings. Always keep in mind that past performance does not guarantee future results.
Here are the steps of the algorithm explained briefly :
1. The algorithm follows and analyzes the first 30 minutes (can be adjusted) of the session.
2. Then, algorithm checks for breakouts of the opening range's high or low.
3. If a breakout happens in a bullish or a bearish direction, the algorithm will now check for retests of the breakout. Depending on the sensitivity setting, there must be 0 / 1 / 2 / 3 failed retests for the breakout to be considered as reliable.
4. If the breakout is reliable, the algorithm will give an entry signal.
5. After the position entry, algorithm will now wait for Take-Profit or Stop-Loss zones and signal if any of them occur.
If you wonder how does the indicator find Take-Profit & Stop-Loss zones, you can check the "Settings" section of the description.
🚩UNIQUENESS
While there are indicators that show the opening range of the session, they come short with features like indicating breakouts, entries, and Take-Profit & Stop-Loss zones. We are also aware of that different stock markets have different dynamics, and tuning the algorithm for different markets is really important for better results, so we decided to make the algorithm fully customizable. Besides all that, our indicator contains a detailed backtesting dashboard, so you can see past performance of the algorithm in the current ticker. While past performance does not yield any guarantee for future results, we believe that a backtesting dashboard is necessary for tuning the algorithm. Another strength of this indicator is that there are multiple options for detection of Take-Profit and Stop-Loss zones, which the trader can select one of their liking.
⚙️SETTINGS
Keep in mind that best chart timeframe for this indicator to work is the 1-minute timeframe.
TP = Take-Profit
SL = Stop-Loss
EMA = Exponential Moving Average
OR = Opening Range
ATR = Average True Range
1. Algorithm
ORB Timeframe -> This setting determines the timeframe that the algorithm will analyze the market after a new session begins before giving any signals. It's important to experiment with this setting and find the best option that suits the current ticker for the best performance. More volatile stocks will often require this setting to be larger, while more stabilized stocks may have this setting shorter.
Sensitivity -> This setting determines how much failed retests are needed to take a position entry. Higher senstivity means that less retests are needed to consider the breakout as reliable. If you think that the current ticker makes strong movements in a bullish & bearish direction after a breakout, you should set this setting higher. If you think the opposite, meaning that the ticker does not decide the trend right after a breakout, this setting show be lower.
(High = 0 Retests, Medium = 1 Retest, Low = 2 Retests, Lowest = 3 Retests)
Breakout Condition -> The condition for the algorithm to detect breakouts.
Close = Bar needs to close higher than the OR High Line in a bullish breakout, or lower than the OR Low Line in a bearish breakout. EMA = The EMA of the bar must be higher / lower than OR Lines instead of the close price.
TP Method -> The method for the algorithm to use when determining TP zones.
Dynamic = This TP method essentially tries to find the bar that price starts declining the current trend and going to the other direction, and puts a TP zone there. To achieve this, it uses an EMA line, and when the close price of a bar crosses the EMA line, It's a TP spot.
ATR = In this TP method, instead of a dynamic approach the TP zones are pre-determined using the ATR of the entry bar. This option is generally for traders who just want to know their TP spots beforehand while trading. Selecting this option will also show TP zones at the ORB Dashboard.
"Dynamic" option generally performs better, while the "ATR" method is safer to use.
EMA Length -> This setting determines the length of the EMA line used in "Dynamic TP method" and "EMA Breakout Condition". This is completely up to the trader's choice, though the default option should generally perform well. You might want to experiment with this setting and find the optimal length for the current ticker.
Stop-Loss -> Algorithm will place the Stop-Loss zone using setting.
Safer = The SL zone will be placed closer to the OR High for a bullish entry, and closer to the OR Low for a bearish entry.
Balanced = The SL zone will be placed in the center of OR High & OR Low
Risky = The SL zone will be placed closer to the OR Low for a bullish entry, and closer to the OR High for a bearish entry.
Adaptive SL -> This option only takes effect if the first TP zone is hit.
Enabled = After the 1st TP zone is hit, the SL zone will be moved to the entry price, essentially making the position risk-free.
Disabled = The SL zone will never change.
2. ORB Dashboard
ORB Dashboard shows the information about the current session.
3. ORB Backtesting
ORB Backtesting Dashboard allows you to see past performance of the algorithm in the current ticker with current settings.
Total amount of days that can be backtested depends on your TV subscription.
Backtesting Exit Ratios -> You can select how much of percent your entry will be closed at any TP zone while backtesting. For example, %90, %5, %5 means that %90 of the position will be closed at the first TP zone, %5 of it will be closed at the 2nd TP zone, and %5 of it will be closed at the last TP zone.
MA 3:1 & CZsThis is the script that finds Consolidation Zones in Real Time accompanied by Three Moving Averages (20-50-200).
How does it work?
-The script finds the highest/lowest bars using "Loopback Period".
-Then calculate the address.
-Using direction and high/low bar information, calculate Consolidation Zones in real time.
-If the length of the consolidation area is equal to or greater than the minimum length defined by the user, this area is displayed as Consolidation Zone.
-Then, the Consolidation Zone is automatically extended if there is no rupture.
If you increase the loopback length, you will get larger Consolidation Zones.
The Consolidation Zones allow us to operate within said Zones, becoming independent of the instability of the chart outside said Zones.
We can set a Resistance (green arrow) at the Support of the next higher Zone and a Support (red arrow) at the Resistance of the lower Zone.
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
Volume Pressure OscillatorThe Volume Pressure Oscillator (VPO) is a momentum-based indicator that measures the directional pressure of cumulative volume delta (CVD) combined with price efficiency. It oscillates between 0 and 100, with readings above 50 indicating net buying pressure and readings below 50 indicating net selling pressure.
The indicator is designed to identify the strength and sustainability of volume-driven trends while remaining responsive during consolidation periods.
How the Indicator Works
The VPO analyzes volume flow by examining price action at lower timeframes to build a Cumulative Volume Delta (CVD). For each chart bar, the indicator looks at intrabar price movements to classify volume as either buying volume or selling volume. These classifications are accumulated into a running total that tracks net directional volume.
The indicator then measures the momentum of this CVD over both short-term and longer-term periods, providing responsiveness to recent changes while maintaining awareness of the broader trend. These momentum readings are normalized using percentile ranking, which creates a stable 0-100 scale that works consistently across different instruments and market conditions.
A key feature is the extreme zone persistence mechanism. When the indicator enters extreme zones (above 80 or below 20), it maintains elevated readings as long as volume pressure continues in the same direction. This allows the VPO to stay in extreme zones during strong trends rather than quickly reverting to neutral, making it useful for identifying sustained volume pressure rather than just temporary spikes.
What Makes This Indicator Different
While many indicators measure volume or volume delta, the VPO specifically measures how aggressively CVD is currently changing and whether that pressure is being sustained. It's the difference between knowing "more volume has accumulated on the buy side" versus "buying pressure is intensifying right now and shows signs of continuation."
1. Focus on CVD Momentum, Not CVD Levels
Most CVD indicators display the cumulative volume delta as a line that trends up or down indefinitely. The VPO is fundamentally different - it measures the slope of CVD rather than the absolute level. This transforms CVD from an unbounded cumulative metric into a bounded 0-100 oscillator that shows the intensity and direction of current volume pressure, not just the historical accumulation.
2. Designed to Stay in Extremes During Trends
Unlike traditional oscillators that treat extreme readings (above 80 or below 20) as overbought/oversold reversal signals, the VPO is engineered to oscillate within extreme zones during strong trends. When sustained buying or selling pressure exists, the indicator remains elevated (e.g., 80-95 or 5-20) rather than quickly reverting to neutral. This makes it useful for trend continuation identification rather than exclusively for reversal trading.
3. Percentile-Based Normalization
The VPO uses percentile ranking over a lookback window, which provides consistent behavior across different instruments, timeframes, and volatility regimes without constant recalibration.
4. Dual-Timeframe Momentum Synthesis
The indicator simultaneously considers short-term CVD momentum (responsive to recent changes) and longer-term CVD momentum (tracking trend direction), weighted and combined with a slow-moving trend bias. This multi-timeframe approach helps it stay responsive in ranging markets while maintaining context during trends.
How to Use the Indicator
Understanding the Zones:
80-100 (Strong Buying Pressure): CVD momentum is strongly positive. In trending markets, the indicator oscillates within this zone rather than immediately reverting to neutral. This suggests sustained accumulation and trend continuation probability.
60-80 (Moderate Buying): Positive volume pressure but not extreme. Suitable for identifying pullback entry opportunities within uptrends.
40-60 (Neutral Zone): Volume pressure is balanced or unclear. No strong directional edge from volume. Often seen during consolidation or trend transitions.
20-40 (Moderate Selling): Negative volume pressure developing. May indicate distribution or downtrend continuation setups.
0-20 (Strong Selling Pressure): CVD momentum is strongly negative. During downtrends, sustained readings in this zone suggest continued distribution and downside follow-through probability.
Practical Applications:
Trend Confirmation: When price makes new highs/lows, check if VPO confirms with similarly elevated readings. Divergences (price making new highs while VPO fails to reach prior highs) may indicate weakening momentum.
Range Trading: During consolidation, the VPO typically oscillates between 30-70. Readings toward the low end of the range (30-40) may present accumulation opportunities, while readings at the high end (60-70) may indicate distribution zones.
Extreme Persistence: If VPO reaches 90+ or drops below 10, this indicates exceptional volume pressure. Rather than fading these extremes immediately, monitor whether the indicator stays elevated. Sustained extreme readings suggest strong trend continuation potential.
Context with Price Action: The VPO is most effective when combined with price action or other orderflow indicators. Use the indicator to gauge whether volume is confirming or contradicting.
What the Indicator Does NOT Do:
It does not provide specific entry or exit signals
It does not predict future price direction
It does not guarantee profitable trades
It should not be used as a standalone trading system
Settings Explanation
Momentum Period (Default: 14)
This parameter controls the lookback period for CVD rate-of-change calculations.
Lower values (5-10): Make the indicator more responsive to recent volume changes. Useful for shorter-term trading and more active oscillation. May produce more whipsaws in choppy markets.
Default value (14): Provides balanced responsiveness while filtering out most noise. Suitable for swing trading and daily timeframe analysis.
Higher values (20-50): Create smoother readings and focus on longer-term volume trends. Better for position trading and reducing false signals, but with slower reaction to genuine changes in volume pressure.
Important Notes:
This indicator requires intrabar data to function properly. On some instruments or timeframes where lower timeframe data is not available, the indicator may not display.
The indicator uses request.security_lower_tf() which has a limit of intrabars. On higher timeframes, this provides extensive history, but on very low timeframes (<1-minute charts), the indicator may only cover limited historical bars.
Volume data quality varies by exchange and instrument. The indicator's effectiveness depends on accurate volume reporting from the data feed.
Supply & demand with qualifieres [By:CienF-OTC]🚀 Supply & Demand (S/D) Zones Indicator - Precision Pattern 🚀
This Advanced Supply and Demand (S/D) Zones Indicator is engineered to identify high-probability zones: Indecisive Base (Consolidation) followed by an Explosive Exit (Expansion), coupled with a strict momentum validation process.
🎯 Key Features and High-Precision Logic 🎯
The indicator filters potential zones through three critical movement stages:
1. Strict Indecisive Base Detection:
Rule: A candle is defined as an Indecisive Base if its body is less than or equal to 50% of its total range (High - Low). This accurately captures Dojis, Spinning Tops, and true equilibrium candles.
Zone Drawing: The zone covers the price range (High/Low) of one or more consecutive base candles.
2. Validation of the Explosive Exit:
The candle immediately following the base must be an Explosive/Decisive Candle, exceeding a minimum body threshold (default 50.0% in the current version) to confirm significant capital entry.
3. Strict Momentum and Freshness Filters
The core of the indicator's precision lies in these filters, which you can activate in the settings:
🚫 Anti-Stall Filter (Strict Follow-up): The candle that follows the explosion CANNOT be Indecisive (i.e., its body cannot be $\leq 50\%$ of its range). If the follow-up candle is weak, the zone is rejected for lack of true commitment. (Note: This filter is set to OFF by default in v6.0 for flexibility but highly recommended for high-probability setups).
Freshness (Mitigation): Zones that have been previously tested/touched by the price (mitigated) are deactivated and colored gray (optional) or automatically deleted, keeping your chart clean and showing only active, fresh zones.
Range Oscillator (Zeiierman)█ Overview
Range Oscillator (Zeiierman) is a dynamic market oscillator designed to visualize how far the price is trading relative to its equilibrium range. Instead of relying on traditional overbought/oversold thresholds, it uses adaptive range detection and heatmap coloring to reveal where price is trading within a volatility-adjusted band.
The oscillator maps market movement as a heat zone, highlighting when the price approaches the upper or lower range boundaries and signaling potential breakout or mean-reversion conditions.
Highlights
Adaptive range detection based on ATR and weighted price movement.
Heatmap-driven coloring that visualizes volatility pressure and directional bias.
Clear transition zones for detecting trend shifts and equilibrium points.
█ How It Works
⚪ Range Detection
The indicator identifies a dynamic price range using two main parameters:
Minimum Range Length: The number of bars required to confirm that a valid range exists.
Range Width Multiplier: Expands or contracts the detected range proportionally to the ATR (Average True Range).
This approach ensures that the oscillator automatically adapts to both trending and ranging markets without manual recalibration.
⚪ Weighted Mean Calculation
Instead of a simple moving average, the script calculates a weighted equilibrium mean based on the size of consecutive candle movements:
Larger price changes are given greater weight, emphasizing recent volatility.
⚪ Oscillator Formula
Once the range and equilibrium mean are defined, the oscillator computes:
Osc = 100 * (Close - Mean) / RangeATR
This normalizes price distance relative to the dynamic range size — producing consistent readings across volatile and quiet periods.
█ Heatmap Logic
The Range Oscillator includes a built-in heatmap engine that color-codes each oscillator value based on recent price interaction intensity:
Strong Bullish Zones: Bright green — price faces little resistance upward.
Weak Bullish Zones: Muted green — uptrend continuation but with minor hesitation.
Transition Zones: Blue — areas of uncertainty or trend shift.
Weak Bearish Zones: Maroon — downtrend pressure but soft momentum.
Strong Bearish Zones: Bright red — strong downside continuation with low resistance.
Each color band adapts dynamically using:
Number of Heat Levels: Controls granularity of the heatmap.
Minimum Touches per Level: Defines how reactive or “sensitive” each color zone is.
█ How to Use
⚪ Trend & Momentum Confirmation
When the oscillator stays above +0 with green coloring, it suggests sustained bullish pressure.
Similarly, readings below –0 with red coloring, it suggests sustained bearish pressure.
⚪ Range Breakouts
When the oscillator line breaks above +100 or below –100, the price is exceeding its normal volatility range, often signaling breakout potential or exhaustion extremes.
⚪ Mean Reversion Trades
Look for the oscillator to cross back toward zero after reaching an extreme. These transitions (often marked by blue tones) can identify early reversals or range resets.
⚪ Divergence
Use oscillator peaks and troughs relative to price action to spot hidden strength or weakness before the next move.
█ Settings
Minimum Range Length: Number of bars needed to confirm a valid range.
Range Width Multiplier: Expands or contracts range width based on ATR.
Number of Heat Levels: Number of gradient bands used in the oscillator.
Minimum Touches per Level: Sensitivity threshold for when a zone becomes “hot.”
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Inversion Fair Value Gap Signals [AlgoAlpha]🟠 OVERVIEW
This script is a custom signal tool called Inversion Fair Value Gap Signals (IFVG) , designed to detect, track, and visualize fair value gaps (FVGs) and their inversions directly on price charts. It identifies bullish and bearish imbalances, monitors when these zones are mitigated or rejected, and extends them until resolution or expiration. What makes this script original is the inclusion of inversion logic—when a gap is filled, the area flips into an opposite "inversion fair value gap," creating potential reversal or continuation zones that give traders additional context beyond classic FVG analysis.
🟠 CONCEPTS
The script builds on the Smart Money Concepts (SMC) principle of fair value gaps, where inefficiencies form when price moves too quickly in one direction. Detection requires a three-bar sequence: a strong up or down move that leaves untraded price between bar highs and lows. To refine reliability, the script adds an ATR-based size filter and prevents overlap between zones. Once created, gaps are tracked in arrays until mitigation (price closing back into the gap), expiration, or transformation into an inversion zone. Inversions act as polarity flips, where bullish gaps become bearish resistance and bearish gaps become bullish support. Lower-timeframe volume data is also displayed inside zones to highlight whether buying or selling pressure dominated during gap creation.
🟠 FEATURES
Automatic detection of bullish and bearish FVGs with ATR-based thresholding.
Inversion logic: mitigated gaps flip into opposite-colored IFVG zones.
Volume text overlay inside each zone showing up vs down volume.
Visual markers (△/▽ for FVG, ▲/▼ for IFVG) when price exits a zone without mitigation.
🟠 USAGE
Apply the indicator to any chart and enable/disable bullish or bearish FVG detection depending on your focus. Use the colored gap zones as areas of interest: bullish gaps suggest possible continuation to the upside until mitigated, while bearish gaps suggest continuation down. When a gap flips into an inversion zone, treat it as potential support/resistance—bullish IFVGs below price may act as demand, while bearish IFVGs above price may act as supply. Watch the embedded up/down volume data to gauge the strength of participants during gap formation. Use the △/▽ and ▲/▼ markers to spot when price rejects gaps or inversions without filling them, which can indicate strong trending momentum. For practical use, combine alerts with your trade plan to track when new gaps form, when old ones are resolved, or when key zones flip into inversions, helping you align entries, targets, or reversals with institutional order flow logic.
Structural Liquidity Signals [BullByte]Structural Liquidity Signals (SFP, FVG, BOS, AVWAP)
Short description
Detects liquidity sweeps (SFPs) at pivots and PD/W levels, highlights the latest FVG, tracks AVWAP stretch, arms percentile extremes, and triggers after confirmed micro BOS.
Full description
What this tool does
Structural Liquidity Signals shows where price likely tapped liquidity (stop clusters), then waits for structure to actually change before it prints a trigger. It spots:
Liquidity sweeps (SFPs) at recent pivots and at prior day/week highs/lows.
The latest Fair Value Gap (FVG) that often “pulls” price or serves as a reaction zone.
How far price is stretched from two VWAP anchors (one from the latest impulse, one from today’s session), scaled by ATR so it adapts to volatility.
A “percentile” extreme of an internal score. At extremes the script “arms” a setup; it only triggers after a small break of structure (BOS) on a closed bar.
Originality and design rationale, why it’s not “just a mashup”
This is not a mashup for its own sake. It’s a purpose-built flow that links where liquidity is likely to rest with how structure actually changes:
- Liquidity location: We focus on areas where stops commonly cluster—recent pivots and prior day/week highs/lows—then detect sweeps (SFPs) when price wicks beyond and closes back inside.
- Displacement context: We track the last Fair Value Gap (FVG) to account for recent inefficiency that often acts as a magnet or reaction zone.
- Stretch measurement: We anchor VWAP to the latest N-bar impulse and to the Daily session, then normalize stretch by ATR to assess dislocation consistently across assets/timeframes.
- Composite exhaustion: We combine stretch, wick skew, and volume surprise, then bend the result with a tanh transform so extremes are bounded and comparable.
- Dynamic extremes and discipline: Rather than triggering on every sweep, we “arm” at statistical extremes via percent-rank and only fire after a confirmed micro Break of Structure (BOS). This separates “interesting” from “actionable.”
Key concepts
SFP (liquidity sweep): A candle briefly trades beyond a level (where stops sit) and closes back inside. We detect these at:
Pivots (recent swing highs/lows confirmed by “left/right” bars).
Prior Day/Week High/Low (PDH/PDL/PWH/PWL).
FVG (Fair Value Gap): A small 3‑bar gap (bar2 high vs bar1 low, or vice versa). The latest gap often acts like a magnet or reaction zone. We track the most recent Up/Down gap and whether price is inside it.
AVWAP stretch: Distance from an Anchored VWAP divided by ATR (volatility). We use:
Impulse AVWAP: resets on each new N‑bar high/low.
Daily AVWAP: resets each new session.
PR (Percentile Rank): Where the current internal score sits versus its own recent history (0..100). We arm shorts at high PR, longs at low PR.
Micro BOS: A small break of the recent high (for longs) or low (for shorts). This is the “go/no‑go” confirmation.
How the parts work together
Find likely liquidity grabs (SFPs) at pivots and PD/W levels.
Add context from the latest FVG and AVWAP stretch (how far price is from “fair”).
Build a bounded score (so different markets/timeframes are comparable) and compute its percentile (PR).
Arm at extremes (high PR → short candidate; low PR → long candidate).
Only print a trigger after a micro BOS, on a closed bar, with spacing/cooldown rules.
What you see on the chart (legend)
Lines:
Teal line = Impulse AVWAP (resets on new N‑bar extreme).
Aqua line = Daily AVWAP (resets each session).
PDH/PDL/PWH/PWL = prior day/week levels (toggle on/off).
Zones:
Greenish box = latest Up FVG; Reddish box = latest Down FVG.
The shading/border changes after price trades back through it.
SFP labels:
SFP‑P = SFP at Pivot (dotted line marks that pivot’s price).
SFP‑L = SFP at Level (at PDH/PDL/PWH/PWL).
Throttle: To reduce clutter, SFPs are rate‑limited per direction.
Triggers:
Triangle up = long trigger after BOS; triangle down = short trigger after BOS.
Optional badge shows direction and PR at the moment of trigger.
Optional Trigger Zone is an ATR‑sized box around the trigger bar’s close (for visualization only).
Background:
Light green/red shading = a long/short setup is “armed” (not a trigger).
Dashboard (Mini/Pro) — what each item means
PR: Percentile of the internal score (0..100). Near 0 = bullish extreme, near 100 = bearish extreme.
Gauge: Text bar that mirrors PR.
State: Idle, Armed Long (with a countdown), or Armed Short.
Cooldown: Bars remaining before a new setup can arm after a trigger.
Bars Since / Last Px: How long since last trigger and its price.
FVG: Whether price is in the latest Up/Down FVG.
Imp/Day VWAP Dist, PD Dist(ATR): Distance from those references in ATR units.
ATR% (Gate), Trend(HTF): Status of optional regime filters (volatility/trend).
How to use it (step‑by‑step)
Keep the Safety toggles ON (default): triggers/visuals on bar‑close, optional confirmed HTF for trend slope.
Choose timeframe:
Intraday (5m–1h) or Swing (1h–4h). On very fast/thin charts, enable Performance mode and raise spacing/cooldown.
Watch the dashboard:
When PR reaches an extreme and an SFP context is present, the background shades (armed).
Wait for the trigger triangle:
It prints only after a micro BOS on a closed bar and after spacing/cooldown checks.
Use the Trigger Zone box as a visual reference only:
This script never tells you to buy/sell. Apply your own plan for entry, stop, and sizing.
Example:
Bullish: Sweep under PDL (SFP‑L) and reclaim; PR in lower tail arms long; BOS up confirms → long trigger on bar close (ATR-sized trigger zone shown).
Bearish: Sweep above PDH/pivot (SFP‑L/P) and reject; PR in upper tail arms short; BOS down confirms → short trigger on bar close (ATR-sized trigger zone shown).
Settings guide (with “when to adjust”)
Safety & Stability (defaults ON)
Confirm triggers at bar close, Draw visuals at bar close: Keep ON for clean, stable prints.
Use confirmed HTF values: Applies to HTF trend slope only; keeps it from changing until the HTF bar closes.
Performance mode: Turn ON if your chart is busy or laggy.
Core & Context
ATR Length: Bigger = smoother distances; smaller = more reactive.
Impulse AVWAP Anchor: Larger = fewer resets; smaller = resets more often.
Show Daily AVWAP: ON if you want session context.
Use last FVG in logic: ON to include FVG context in arming/score.
Show PDH/PDL/PWH/PWL: ON to see prior day/week levels that often attract sweeps.
Liquidity & Microstructure
Pivot Left/Right: Higher values = stronger/rarer pivots.
Min Wick Ratio (0..1): Higher = only more pronounced SFP wicks qualify.
BOS length: Larger = stricter BOS; smaller = quicker confirmations.
Signal persistence: Keeps SFP context alive for a few bars to avoid flicker.
Signal Gating
Percent‑Rank Lookback: Larger = more stable extremes; smaller = more reactive extremes.
Arm thresholds (qHi/qLo): Move closer to 0.5 to see more arms; move toward 0/1 to see fewer arms.
TTL, Cooldown, Min bars and Min ATR distance: Space out triggers so you’re not reacting to minor noise.
Regime Filters (optional)
ATR percentile gate: Only allow triggers when volatility is at/above a set percentile.
HTF trend gate: Only allow longs when the HTF slope is up (and shorts when it’s down), above a minimum slope.
Visuals & UX
Only show “important” SFPs: Filters pivot SFPs by Volume Z and |Impulse stretch|.
Trigger badges/history and Max badge count: Control label clutter.
Compact labels: Toggle SFP‑P/L vs full names.
Dashboard mode and position; Dark theme.
Reading PR (the built‑in “oscillator”)
PR ~ 0–10: Potential bullish extreme (long side can arm).
PR ~ 90–100: Potential bearish extreme (short side can arm).
Important: “Armed” ≠ “Enter.” A trigger still needs a micro BOS on a closed bar and spacing/cooldown to pass.
Repainting, confirmations, and HTF notes
By default, prints wait for the bar to close; this reduces repaint‑like effects.
Pivot SFPs only appear after the pivot confirms (after the chosen “right” bars).
PD/W levels come from the prior completed candles and do not change intraday.
If you enable confirmed HTF values, the HTF slope will not change until its higher‑timeframe bar completes (safer but slightly delayed).
Performance tips
If labels/zones clutter or the chart lags:
Turn ON Performance mode.
Hide FVG or the Trigger Zone.
Reduce badge history or turn badge history off.
If price scaling looks compressed:
Keep optional “score”/“PR” plots OFF (they overlay price and can affect scaling).
Alerts (neutral)
Structural Liquidity: LONG TRIGGER
Structural Liquidity: SHORT TRIGGER
These fire when a trigger condition is met on a confirmed bar (with defaults).
Limitations and risk
Not every sweep/extreme reverses; false triggers occur, especially on thin markets and low timeframes.
This indicator does not provide entries, exits, or position sizing—use your own plan and risk control.
Educational/informational only; no financial advice.
License and credits
© BullByte - MPL 2.0. Open‑source for learning and research.
Built from repeated observations of how liquidity runs, imbalance (FVG), and distance from “fair” (AVWAPs) combine, and how a small BOS often marks the moment structure actually shifts.
HeatCandleHeatCandle - AOC Indicator
✨ Features
📊 Heat-Map Candles: Colors candles based on the price’s deviation from a Triangular Moving Average (TMA), creating a heat-map effect to visualize price zones.
📏 Zone-Based Coloring: Assigns colors to 20 distinct zones (Z0 to Z19) based on the percentage distance from the TMA, with customizable thresholds.
⚙️ Timeframe-Specific Zones: Tailored zone thresholds for 1-minute, 5-minute, 15-minute, 30-minute, 1-hour, and 4-hour timeframes for precise analysis.
🎨 Customizable Visuals: Gradient color scheme from deep blue (oversold) to red (overbought) for intuitive price movement interpretation.
🛠️ Adjustable Parameters: Configure TMA length and threshold multiplier to fine-tune sensitivity.
🛠️ How to Use
Add to Chart: Apply the "HeatCandle - AOC" indicator on TradingView.
Configure Inputs:
TMA Length: Set the period for the Triangular Moving Average (default: 150).
Threshold Multiplier: Adjust the multiplier to scale zone sensitivity (default: 1.0).
Analyze: Observe colored candles on the chart, where colors indicate the price’s deviation from the TMA:
Dark blue (Z0) indicates strong oversold conditions.
Red (Z19) signals strong overbought conditions.
Track Trends: Use the color zones to identify potential reversals, breakouts, or trend strength based on price distance from the TMA.
🎯 Why Use It?
Visual Clarity: The heat-map candle coloring simplifies identifying overbought/oversold conditions at a glance.
Timeframe Flexibility: Zone thresholds adapt to the selected timeframe, ensuring relevance across short and long-term trading.
Customizable Sensitivity: Adjust TMA length and multiplier to match your trading style or market conditions.
Versatile Analysis: Ideal for scalping, swing trading, or trend analysis when combined with other indicators.
📝 Notes
Ensure sufficient historical data for accurate TMA calculations, especially with longer lengths.
The indicator is most effective on volatile markets where price deviations are significant.
Pair with momentum indicators (e.g., RSI, MACD) or support/resistance levels for enhanced trading strategies.
Happy trading! 🚀📈
Dynamic Volume Clusters with Retest Signals (Zeiierman)█ Overview
The Dynamic Volume Clusters with Retest Signals indicator is designed to detect key Volume Clusters and provide Retest Signals. This tool is specifically engineered for traders looking to capitalize on volume-based trends, reversals, and key price retest points.
The indicator seamlessly combines volume analysis, dynamic cluster calculations, and retest signal logic to present a comprehensive trading framework. It adapts to market conditions, identifying clusters of volume activity and signaling when the price retests critical zones.
█ How It Works
⚪ Volume Cluster Detection
The indicator dynamically calculates volume clusters by analyzing the highest and lowest price points within a specified lookback period.
Cluster Logic:
Bright Lines (Strong Red/Green):
These indicate that the price has frequently revisited these levels, creating a dense cluster.
Such areas serve as support or resistance, where significant historical trading has occurred, often acting as barriers to price movement.
Traders should consider these levels as potential reversal zones or consolidation points.
Faded or Darker Lines:
These lines indicate areas where the price has less historical activity, suggesting weaker clustering.
These zones have less market memory and are more likely to break, supporting trend continuation and rapid price movement.
⚪ Candle Color Logic (Market Memory)
Blue Candles (High Cluster Density):
Candles turn blue when the price has revisited a particular area many times.
This signals a highly clustered zone, likely to act as a barrier, creating consolidation or range phases.
These areas indicate strong market memory, potentially rejecting price attempts to break through.
Green or Red Candles (Low Cluster Density):
Once the price breaks out of these dense clusters, the candles turn green (bullish) or red (bearish).
This suggests the price has moved into a less clustered territory, where the path forward is clearer and trends are likely to extend without immediate resistance.
⚪ Retest Signal Logic
The indicator identifies critical retest points where the price crosses a cluster boundary and then reverses. These points are essential for traders looking to catch continuation or reversal setups.
⚪ Dynamic Price Clustering
The indicator dynamically adapts the clustering logic based on price movement and volume shifts.
Uses a dynamic moving average (VPMA) to maintain adaptive cluster levels.
Integrates a Kalman Filter for smoothing, reducing noise, and improving trend clarity.
Automatically updates as new data is received, keeping the clusters relevant in real-time.
█ How to Use
⚪ Trend Following & Reversal Detection
Use Retest signals to identify potential trend continuation or reversal points.
⚪ Trading Volume Clusters and Market Memory
Identify Key Zones:
Focus on bright, saturated cluster lines (strong red or green) as they indicate high market memory, where price has spent significant time in the past.
These zones are likely to exhibit a more choppy market. Apply range or mean reversion strategies.
Spot Potential Breakouts:
Faded or darker cluster lines indicate areas of low market memory, where the price has moved quickly and spent less time.
Use these areas to identify possible trend setups, as they represent lower resistance to price movement.
⚪ Interpreting Candle Colors for Market Phases
Blue Candles (High Cluster Density):
When candles turn blue, it signals that the price has revisited this area multiple times, creating a dense cluster.
These zones often trap price movement, leading to consolidations or range phases.
Use these areas as caution zones, where price can slow down or reverse.
Green or Red Candles (Low Cluster Density):
Once the price breaks out of these clustered zones, the candles turn green (bullish) or red (bearish), indicating lower market memory.
This signals a trend initiation with less immediate resistance, ideal for momentum and breakout trades.
Use these signals to identify emerging trends and ride the momentum.
█ Settings
Range Lookback Period: Sets the number of bars for calculating the range.
Zone Width (% of Range): Determines how wide the volume clusters are relative to the calculated range.
Volume Line Colors: Customize the appearance of bullish and bearish lines.
Retest Signals: Toggle the appearance of Triangle Up/Down retest markers.
Minimum Bars for Retest: Define the minimum number of bars required before a retest is valid.
Maximum Bars for Retest: Set the maximum number of bars within which a retest can occur.
Price Cluster Period: Adjusts the sensitivity of the dynamic clustering logic.
Cluster Confirmation: Controls how tightly the clusters respond to price action.
Price Cluster Start/Peak: Sets the minimum and maximum touches required to fully form a cluster.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.






















