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.
Cari dalam skrip untuk "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.
Random Coin Toss Strategy📌 Overview
This strategy is a probability-based trading simulation that randomly decides trade direction using a coin-toss mechanism and executes trades with a customizable risk-reward ratio. It's designed primarily for testing entry frequency and risk dynamics, not predictive accuracy.
🎯 Core Concept
Every N bars (configurable), the strategy performs a pseudo-random coin toss.
Based on the result:
If heads → Buy
If tails → Sell
Once a position is opened, it sets a Stop-Loss (SL) and Take-Profit (TP) based on a multiple of the current ATR (Average True Range) value.
⚙️ Configurable Inputs
ATR Length Period for ATR calculation, determines volatility basis.
SL Multiplier SL distance = ATR × multiplier (e.g., 1.0 means 1x ATR) .
TP Multiplier TP distance = ATR × multiplier (e.g., 2.0 = 2x ATR) .
Entry Frequency Bars to wait between each new coin toss decision.
Show TP/SL Zones Toggle on/off for drawing visual TP and SL zones.
Box Size Number of bars used to define the width of the TP/SL boxes.
🔁 Entry & Exit Logic
Entry:
Happens only when no current position exists and it's the correct bar interval.
Entry direction is randomly decided.
Exit:
Positions exit at either:
Take-Profit (TP) level
Stop-Loss (SL) level
Both are calculated using the configured ATR-based distances.
🖼️ Visual Features
TP and SL zones:
Rendered as shaded rectangles (boxes) only once per trade.
Green box for TP zone, red box for SL zone.
Automatically deleted and redrawn for each new trade to avoid chart clutter.
ATR Display Table:
A minimal info table at the top-right shows the current ATR value.
Updates every few bars for performance.
🧪 Use Cases
Ideal for risk-reward modeling, strategy prototyping, and understanding how volatility-based SL/TP behavior affects results.
Great for backtesting frequency, RR tweaks (e.g., 2:5 or 3:1), and execution structure in random conditions.
⚠️ Disclaimer
Since the trade direction is random, this script is not meant for predictive trading but serves as a powerful experiment framework for studying how SL, TP, and volatility interact with random chance in a controlled, repeatable system.
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.
Dynamic Breakout Master by tradingbauhaus 🌟 Code Description:
This Pine Script implements a trading strategy called "Dynamic Breakout Master" 💥. The core idea of the strategy is to identify breakouts (price movements) at key support 💙 and resistance 🔴 levels, through a dynamic channel that adapts to the market’s conditions. Here's how it works:
🔧 Customizable Input Parameters:
🧭 Pivot Period: This defines the number of bars (candles) to the left and right used to detect pivots (highs and lows) that mark the support and resistance zones.
📊 Data Source: You can choose whether to use highs and lows or closes and opens of the candles to identify the pivots.
📏 Max Channel Width: Specifies the maximum width allowed for the support/resistance channel, expressed as a percentage over the last 300 bars.
💪 Minimum Pivot Strength: This defines the minimum number of pivots needed for a support or resistance level to be considered valid.
🏔 Max Support/Resistance Zones: Limits the number of key zones displayed on the chart.
📅 Lookback Period: Adjusts how many bars back the system should check to find and validate support and resistance levels.
🎨 Custom Colors: You can choose colors for the support, resistance, and in-channel zones.
📉 Moving Averages (MA): The strategy allows adding up to two moving averages (SMA or EMA) to assist in making trading decisions.
📊 Calculating Support/Resistance Levels:
The system uses an algorithm to identify pivots from prices and calculates dynamic support and resistance zones 🔒🔓.
The closer the pivots are and the stronger their influence, the more relevant the zone becomes for the strategy.
The dynamic channel is drawn on the chart, with a maximum width limit for these zones defined by the input parameter.
📈 Trading Logic:
🚀 Identifying Breakouts:
The strategy looks for when the price breaks (breakouts) a resistance or support level.
If the price breaks upward through the resistance level, a buy order 📈 is triggered.
If the price breaks downward through the support level, a sell order 📉 is triggered.
🔔 Alerts:
Resistance Break (ResBreak) and Support Break (SupBreak) alerts are configured to notify users when a significant breakout occurs.
💰 Commissions:
The strategy includes a commission (0.1%) to simulate transaction costs for each trade.
📊 Chart Visualization:
The support and resistance zones are displayed as colored rectangles:
🔴 Resistance (red) and
🔵 Support (blue).
Pivots of support and resistance can be labeled as P (for resistance) and V (for support).
Breakouts of support or resistance levels are marked with triangles that appear on the chart 🔺🔻.
📈 Trading Strategy:
If the price breaks upward through the resistance level, a long position (buy) 📈 is opened.
If the price breaks downward through the support level, a short position (sell) 📉 is opened.
🏆 Conclusion:
This script is a dynamic breakout strategy 💥 that allows traders to capture significant price movements when support or resistance channels break. The customizable parameters let users fine-tune the strategy according to their preferences, while the visual alerts on the chart make it easier to follow trading opportunities. The inclusion of moving averages and key price zones adds an extra layer of analysis to improve decision-making 💡.
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.
Session Dynamics & Pivot Overlay (Arjo)## **OVERVIEW**
The **Session Dynamics & Pivot Overlay (Arjo)** is a visual analysis tool that displays session-based price ranges, anchored volume-weighted averages, daily pivot levels, and smoothed trend conditions on the chart. It highlights how price interacts with custom sessions, midpoint levels, and dynamic ranges, providing a structured visual layout that helps users observe market behavior over time without implying any form of prediction or trading signal.
## **CONCEPTS**
This indicator incorporates several widely used analytical concepts:
- **Session Ranges:** Identifies user-defined time windows and visually displays their high, low, and midpoint behavior throughout the session.
- **VWAP (Morning Session):** Shows volume-weighted average price calculations for a defined morning period, assisting with visual comparison between price and weighted averages.
- **Daily Pivot Levels:** Displays R1–R2, S1–S2, central pivot, and associated levels derived from prior daily price data.
- **Trend Smoothing:** Uses SuperSmoother filtering and an additional EMA to highlight whether the smoothed trend is rising or falling.
- **EMA + ATR Bands:** Plots a 20-period EMA with upper and lower ATR-derived bands to help visualize short-term price displacement relative to average true range.
All of these elements are presented solely for structural and comparative chart analysis.
## **FEATURES**
- **Custom Session Visualization:** Automatically draws session boxes, capturing the evolving high, low, and midpoint throughout the defined intraday window.
- **Dynamic Midline Calculation:** A midpoint line is updated continuously during the session to visually anchor price within the session’s range.
- **Morning Session VWAP:** Displays a dedicated VWAP line for the morning window with adjustable source and configuration options.
- **Daily Pivot Lines:** Automatically plots pivot, BC/TC, R1–R2, and S1–S2 levels with customizable colors, widths, and line styles.
- **Trend-Responsive Pivot Display:** Optionally toggles visibility of R2 or S2 depending on the direction of the smoothed trend.
- **EMA + ATR Zones:** Renders a 20-EMA and ATR-based support/resistance zone using filled regions for enhanced visual clarity.
- **Full Customization:** Multiple color, transparency, line-style, and display options allow users to adapt the presentation to their charting preferences.
- **Overlay Compatible:** Designed to work directly on price charts without obstructing candles or other overlays.
## **HOW TO USE**
Users can interact with the indicator entirely through the settings panel:
- Adjust session timings to match preferred market hours or custom internal zones.
- Enable or disable the display of pivot levels, VWAP, or the ATR/EMA zone.
- Customize colors and line styles to improve visibility according to the chart background or personal preference.
- Observe how price behaves relative to the session box, midpoint, VWAP, and pivot levels for contextual understanding.
- Utilize the smoothed trend condition to see when the indicator chooses to display certain pivot extensions.
These elements help users interpret chart structure, volatility, and intraday behavior in a visually organized manner.
## **CONCLUSION**
The ** Session Dynamics & Pivot Overlay (Arjo) ** indicator offers a consolidated view of session structure, pivot levels, VWAP, and smoothed trend conditions. Its purpose is to improve visual clarity and assist users in understanding market context without issuing directives or trade suggestions. It functions as an educational tool that enhances chart interpretation and supports structured analysis.
---
## **DISCLAIMER**
This indicator is for educational and visual analysis purposes only. It does not provide trading signals, financial advice, or guaranteed outcomes. Users should conduct their own research and consult a licensed financial professional when necessary. All trading decisions are solely the responsibility of the user.
Happy Trading (Arjo)
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.






















