Daily Bias Liquidity Profiler [MarkitTick]💡 This advanced analytical framework is engineered to decode market structure, track liquidity sweeps, and map volatility profiles on an intraday basis. Built natively for the sophisticated Pine Script version 6 environment, this indicator transcends basic charting by aggregating Previous Day metrics, session-specific liquidity pools, Fair Value Gap (FVG) confluences, and probabilistic bias models into a single, cohesive visual interface. It is designed for quantitative and algorithmic traders who require a deep understanding of market mechanics, offering unparalleled insight into where resting liquidity is likely positioned and how daily volatility is structured based on pure statistical variance.
✨ Originality and Utility
● Comprehensive Architectural Design
Most standard technical indicators focus on a single mathematical transformation, such as moving averages or simple momentum oscillators. The originality of this profiler lies in its multi-faceted approach, unifying advanced price action concepts that typically require multiple separate scripts. By leveraging Pine Script version 6 User-Defined Types (UDTs), the script maintains an incredibly lightweight footprint while calculating complex, interconnected market states without degrading chart performance.
● Algorithmic Session Tracking
The utility of the indicator is profoundly evident in its automated handling of time-based liquidity. Rather than manually drawing boxes around the Asian and London sessions, the script dynamically profiles these periods. It treats their boundaries not as mere historical artifacts, but as active, magnetic liquidity pools that drive future price action.
● Real-Time Bias Computation
This tool introduces a dynamic probability engine that continuously evaluates the likelihood of price sweeping the Previous Day High or Previous Day Low based on current opening momentum and accumulated volatility. This gives traders a statistical edge in determining their daily directional bias without relying on subjective chart patterns.
🔬 Methodology and Concepts
● Daily Range Profiling
At the core of the script's methodology is the Daily Profile engine. It systematically captures the Previous Day High, Previous Day Low, and Previous Day Close. These levels represent the absolute boundaries of yesterday's value area. The script calculates the total range of the previous day to establish a baseline for current-day expectations and statistical deviation limits.
● Session Liquidity Engineering
The script defines distinct macro-economic windows, specifically targeting the Asian and London trading sessions.
Asian Session Consolidation: Often characterized by tight ranges, the Asian session builds resting liquidity above its highs and below its lows. The algorithm tracks these exact price levels dynamically.
London Session Expansion: The script monitors the London open for initial expansion moves that frequently sweep the liquidity accumulated during the Asian session, triggering internal alerts when these specific thresholds are pierced.
● Fair Value Gap (FVG) Confluence
Market imbalances are identified through a precise Fair Value Gap detection algorithm. The script does not just highlight every random gap on the chart; it specifically looks for FVG formations that align with the directional bias and occur in proximity to session sweeps. This creates a high-probability confluence signal, indicating that the market is rapidly moving to rebalance price delivery.
● Advanced Volatility Metrics
Volatility is not measured through standard lagging indicators. Instead, the script utilizes an Average Daily Range (ADR) calculation. It dynamically tracks the percentage of the ADR that has been fulfilled during the current day. By calculating how many bars it typically takes to reach standard deviation milestones of the ADR, the script provides a predictive model for intraday exhaustion.
● Dynamic Bias Scoring Engine
The indicator calculates a running score to determine the daily bias. It awards positive and negative weights based on several factors: the location of the current price relative to the daily open, whether a session liquidity sweep has occurred, the presence of FVG confluences, and the proximity to the Previous Day's extremes. This score is translated into a probability percentage for sweeping either the high or the low.
🎨 Visual Guide
● Liquidity Zones and Range Boxes
Session Boxes: Distinct, shaded rectangular regions drawn over the chart to encapsulate the high and low bounds of the Asian and London sessions. These boxes visually isolate the accumulation phases.
Range Zone Boxes: Projected areas above and below the current price action representing high-probability reversal or expansion targets based on the ADR calculations.
● Structural Lines
Previous Day Boundaries: Solid, distinct horizontal lines marking the exact price levels of the Previous Day High and Previous Day Low.
Midlines: Subtler horizontal lines traversing the center of the calculated range zones to indicate equilibrium levels where price action may stall or pivot.
● Dynamic Labels and Alerts
Sweep Labels: Textual annotations that appear exactly when price pierces a session boundary or previous day extreme, explicitly confirming a liquidity sweep.
Bias State Text: A dedicated label displaying the current statistical bias, updating dynamically as volatility metrics shift throughout the trading day.
📖 How to Use
● Establishing Directional Bias
Begin your analysis by referencing the Bias State metric displayed on the chart. If the script calculates a high probability of sweeping the Previous Day High, prioritize bullish setups. Conversely, a high probability for the Previous Day Low dictates a bearish posture. Do not fight the algorithmic bias without significant contradicting evidence from higher timeframes.
● Executing the Sweep and Reverse
Monitor the Asian and London session boxes. A prime setup occurs when price aggressively breaks outside a session box and immediately faces strong rejection. This false breakout is the trigger for a mean-reversion trade targeting the opposite side of the session range. Look for the script's sweep labels to confirm the level has been compromised.
● Filtering with Volatility
Consult the Volatility Metrics before entering a trade. If the current daily range has already fulfilled a high percentage of the Average Daily Range (ADR), the probability of further directional expansion diminishes. In such cases, avoid breakout trades and look for exhaustion reversals at the projected Range Zone extremes.
● Utilizing FVG Confluence
When a sweep occurs, wait for the algorithm to highlight a valid Fair Value Gap in the opposite direction of the sweep. Enter the market on the retracement into this FVG, placing stop losses just beyond the sweep extreme for optimal risk-to-reward ratios.
⚙️ Inputs and Settings
● Time and Session Configuration
Asia Session Hours: Allows the user to precisely define the start and end times of the Asian session based on their specific exchange and timezone.
London Session Hours: Configurable inputs to match the precise opening and closing dynamics of the European market.
● Volatility Parameters
ADR Lookback Length: The historical window (number of days) used to calculate the Average Daily Range. A shorter lookback makes the indicator more responsive to recent volatility spikes, while a longer lookback provides a smoother, more stable expected range.
● Visual Toggles
Show Session Boxes: A boolean toggle to enable or disable the shaded background for trading sessions, allowing for a cleaner chart if only the boundary lines are desired.
Show Sweep Labels: Allows users to turn off the text annotations for liquidity sweeps to reduce visual clutter during highly volatile, choppy market conditions.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
● Auction Market Theory and Liquidity
The foundational logic of this script is deeply rooted in Auction Market Theory. Financial markets operate as a continuous dual-auction process, seeking areas of high liquidity to facilitate trade execution for large-scale participants. The script mathematically models this by isolating session highs and lows, recognizing them as high-density zones for stop-loss orders and breakout triggers.
● Statistical Variance and Range Forecasting
The Volatility Metrics engine relies on historical variance. By computing the Average Daily Range over a predefined dataset, the script applies a simplified standard deviation model to predict the expected boundaries of the current day. This creates a probabilistic bell curve of expected price distribution, where the extremes of the ADR represent the tails of the distribution curve, indicating areas of high mean-reversion probability.
● Microstructural Order Flow Imbalances
The Fair Value Gap (FVG) detection logic is an algorithmic representation of order flow imbalance. In academic market microstructure, when price moves with extreme velocity, it creates a void in the bid-ask spread where only one side of the market was effectively matched. The script mathematically identifies these structural inefficiencies, utilizing them as high-probability zones for future price retracements, as the market naturally seeks to re-auction these inefficiently traded areas.
● Probabilistic Modeling
The bias engine utilizes a rudimentary form of multi-factor linear weighting. By assigning specific values to isolated market events (e.g., crossing the open price, sweeping a specific session), the model computes a composite score. This deterministic approach strips away emotional trading by replacing it with a quantifiable metric that guides directional expectations.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

ICT Dealing Range [Malibu]ICT Dealing Range Engine is an open-source market structure and imbalance indicator built to organize multiple ICT-style concepts inside a single live dealing range framework. Instead of plotting Fair Value Gaps, Order Blocks, Breaker Blocks, and equilibrium zones as disconnected elements, this script uses the active dealing range as a structural engine that helps filter, organize, and maintain the most relevant zones around current price.
The purpose of this indicator is not to flood the chart with every possible imbalance or block. Its purpose is to build a cleaner, more contextual map of price by combining dealing range logic, equilibrium, liquidity interaction, market structure shifts, Fair Value Gaps, Inverted Fair Value Gaps, Order Blocks, and Breaker Blocks into one coordinated framework. This makes the script especially useful for traders who want to study price delivery inside a living range rather than treat each concept as an isolated label.
At the center of the script is a rolling dealing range calculated from a user-defined lookback window. The highest high and lowest low within that window define the active range boundaries, while the midpoint defines the equilibrium level. These values are not drawn as static references. They continuously update with market movement, which allows the range to function as a live structural context rather than a fixed historical box. The range can be visually extended to the right and styled with its own fill and boundary colors so that it remains readable without overwhelming the chart.
This range engine is what gives the script its identity. Many indicators can detect FVGs, Order Blocks, or swing-based zones, but they often do so everywhere on the chart without a hierarchy of relevance. In this script, the dealing range can act as a filter, meaning zones can be accepted, preserved, or removed according to whether they belong to the active structural window. That design choice helps reduce clutter and keeps the chart focused on what is currently most relevant from a structural perspective. Instead of treating the range as decoration, the script turns it into the framework that governs how other zones are interpreted.
The indicator can display the active dealing range itself, including the range high, range low, and optional equilibrium line. On top of that structural layer, it can detect bullish and bearish Fair Value Gaps, convert broken gaps into Inverted Fair Value Gaps, identify bullish and bearish Order Blocks after liquidity and structure conditions are met, and build bullish and bearish Breaker Blocks from recent swing relationships. Each of these zone categories can be managed independently, which gives the user control over both logic and presentation.
The Fair Value Gap engine uses a classic three-candle imbalance relationship. A bullish FVG forms when the older candle’s high is below the current candle’s low, creating a void that suggests upward displacement. A bearish FVG forms when the older candle’s low is above the current candle’s high, creating a downward imbalance. This script does not stop at merely finding such gaps. It can also require the gap to be meaningful relative to ATR, which helps ignore very thin or insignificant imbalances that often clutter lower timeframes. Once a qualifying gap is found, it is projected forward as a live zone so the user can monitor future interaction with it.
The Inverted Fair Value Gap logic extends that idea further. If a bullish FVG later breaks to the downside by close, the script can convert it into a bearish IFVG. If a bearish FVG later breaks to the upside by close, it can become a bullish IFVG. This is important because failed imbalances often retain analytical value after polarity changes. Instead of treating a broken gap as useless, the script can reinterpret it as a new directional zone. This creates a more complete picture of how imbalance evolves as price transitions from one state to another.
The Order Block logic is intentionally more selective than simple “last opposite candle” approaches. The script first tracks confirmed pivot highs and pivot lows using the chosen pivot length. Those pivots are then monitored for liquidity sweeps. A move above a stored pivot high marks buy-side liquidity taken, while a move below a stored pivot low marks sell-side liquidity taken. These events alone do not create an Order Block. Instead, they establish the context needed for the next confirmation step.
After liquidity is taken, the script waits for a close-based Market Structure Shift. This means price must actually close through a relevant structural level in the opposite direction before an Order Block candidate is allowed to form. Once that sequence completes, the script scans backward over a configurable number of bars to find the first qualifying opposite candle and uses that candle’s range as the Order Block. In practical terms, after sell-side liquidity is swept and bullish structure shifts, the script searches for a bearish candle to define a bullish OB. After buy-side liquidity is swept and bearish structure shifts, it searches for a bullish candle to define a bearish OB. This makes the Order Block engine more conditional, more context-aware, and less arbitrary than approaches that mark every local opposite candle before a move.
The Breaker Block logic is also structure-driven rather than purely cosmetic. For bearish breakers, the script looks for a high-low-high relationship in which the more recent high exceeds the previous one and price later closes below the intervening low. For bullish breakers, it looks for a low-high-low relationship in which the more recent low undercuts the previous one and price later closes above the intervening high. When those conditions are met, the corresponding region is marked as a Breaker Block. This approach makes breaker creation dependent on actual structural sequencing rather than on a simple visual approximation. To keep the chart readable, the script can also suppress near-duplicate breakers using ATR-based distance checks and remove breaker zones once they exceed a user-defined maximum age.
A major strength of the script is that all of these zones can optionally be filtered through the active dealing range. If enabled, only FVGs, IFVGs, OBs, and BBs that belong to the current structural window are retained. This is one of the main reasons the indicator is useful as a full framework rather than as a loose collection of concepts. The range is not merely a backdrop. It acts as a relevance filter that helps keep attention on the most structurally important zones around current price.
The script also includes a maintenance layer for zone management. Once zones are created, they can be extended forward for continued monitoring. If price invalidates or mitigates a zone, that zone can either be deleted or faded depending on the user’s preference. This is especially useful for traders who want to preserve historical context without keeping fully active boxes on the chart. Breakers can also expire based on age, and every major category has a cap on how many active regions can remain on screen. These controls are important not only for visual clarity but also for overall chart performance and usability.
From a user interface standpoint, the indicator is organized into functional groups so the settings remain easy to understand. The Dealing Range section controls the rolling range window, midpoint visibility, forward extension, and styling for the box and lines. The FVG / IFVG section manages gap detection, range filtering, extension length, and directional colors. The Order Blocks section controls pivot sensitivity, activation, range filtering, extension, scan depth, and color settings. The Breaker Blocks section manages activation, range filtering, extension, age limits, and directional styling. Finally, the Style / Performance section controls label visibility, label color, mitigation fading, faded opacity, and the maximum number of retained zones per category.
This layout is intentional. The script is meant to remain usable for both visual traders and more process-oriented users who want to adjust sensitivity and chart density. A lower pivot length will make the structure engine more reactive, while a higher pivot length will usually produce cleaner but slower structural responses. A shorter range lookback will make the dealing range more adaptive, while a larger one will emphasize broader price boundaries. FVG filtering, zone retention, and fading options can all be adjusted depending on how minimal or information-dense the chart should be.
A practical workflow is to first identify the active dealing range and its equilibrium. That establishes the structural frame. From there, the user can observe which imbalances and reaction zones are forming inside that range, whether price is operating above or below equilibrium, and whether recent liquidity events are producing valid structure shifts. Bullish or bearish FVGs can then be evaluated in the context of current price location, while Order Blocks and Breaker Blocks can be interpreted as more conditionally derived zones that reflect structural responses rather than raw candle patterns. If price later invalidates an FVG and flips it into an IFVG, that polarity change remains visible and can be studied as part of the evolving delivery process.
Key features:
• Rolling dealing range with optional equilibrium line
• Optional dealing-range filter for FVG, IFVG, OB, and BB zones
• ATR-based Fair Value Gap thickness filter
• Sweep + close-based Market Structure Shift logic for Order Blocks
• Structure-based Breaker Block detection
• Inverted Fair Value Gap polarity flips after invalidation
• Zone extension, cleanup, fading, and age controls
• Per-category retention limits for better chart clarity
• Organized input groups for range, FVG/IFVG, OB, BB, and style/performance settings
How to use:
Use the dealing range to define the current structural window, then use equilibrium as the internal reference point of that range. Monitor which FVGs, OBs, and BBs form inside that context, and pay attention to whether price respects, mitigates, invalidates, or flips those zones. The script is most useful when its zones are read as contextual structural areas rather than as automatic signals.
Notes:
This indicator is a chart analysis tool, not a promise of outcome. It does not guarantee direction, entries, or performance. Past market behavior does not guarantee future results. Like any structure- or imbalance-based model, it should be used together with confirmation, risk management, and broader market context.
This script is published as open-source so users can inspect the logic, study the implementation, and adapt the framework for their own research and education. Indicator

Order Block Detector [SMC ChartSense]# SMC ChartSense — Order Block Detector
**Order block detection with mandatory FVG (Fair Value Gap) confirmation.** Each zone marked must have a 3-bar FVG at the anchor candle — institutional displacement that left a literal gap in price. Most basic OB scripts flag every breakout candle as an order block; this script filters to only the zones that came with displacement footprint, producing a cleaner chart with fewer but more meaningful zones.
## How it works
The script tracks swing pivots at a configurable length and waits for a confirmed break — a candle that closes beyond the prior swing high or low. When a break occurs, it searches back through the recent bars to identify the deepest counter-direction candle (lowest low for a bullish OB, highest high for a bearish OB). This becomes the OB anchor.
The anchor is then validated against the FVG requirement: there must be a 3-bar gap at the anchor index (bar A high below bar C low for bullish, bar A low above bar C high for bearish). No FVG, no OB. This is the central quality filter.
Validated zones extend forward from the anchor and remain active until invalidated — either when price closes through the zone or when the wick touches the far side, depending on user preference.
## Features
- FVG validation gate at the anchor candle (3-bar gap requirement)
- Configurable swing pivot length for structural sensitivity
- User-tunable OB anchor lookback (5–100 bars)
- Wick-based or body-based zone definition
- Configurable mitigation trigger: Close-through or Wick-touch
- Auto-pruning of oldest OBs when active count exceeds limit
- Optional faded display of mitigated zones for historical study
- Built on Pine v6 with clean, maintainable architecture
## Inputs
**Structure Detection**
- *Swing Pivot Length* — Higher values produce fewer, more significant pivots. Lower values produce more frequent pivots of smaller structural significance. Default: 5.
**Quality Filters**
- *OB Anchor Lookback Bars* — How far back from a confirmed pivot break to search for the OB anchor candle. Default 30 covers most timeframes; reduce for scalping, increase for higher TFs.
- *Anchor OB to Wick (vs Body)* — Wick mode uses the full candle range. Body mode uses open/close only (tighter zones).
- *Mitigation Trigger* — Close mode invalidates when a candle closes through the zone. Wick mode invalidates on first wick touch.
**Visualization**
- Bull/Bear OB colors (customizable)
- Max OBs Per Side (caps active display, oldest auto-pruned)
- Show OB Labels (off by default — boxes alone are usually sufficient)
- Show Midline (50% level inside each OB, dotted)
- Keep Mitigated OBs Visible (faded gray boxes remain for historical reference)
## Built-in alerts
- New Bull OB formed
- New Bear OB formed
- Bull OB touched (price entered zone)
- Bear OB touched (price entered zone)
## Suggested use
Best on liquid intraday markets — major forex pairs, crypto perps, index futures, large-cap equities — at timeframes from 5m to 4h. Default settings are tuned for 15m–1h ranges; adjust Swing Pivot Length down to 3 for scalping or up to 8–10 for higher-TF trend trading.
Use this as a context tool. The zones identify where institutional displacement occurred — actual entries should incorporate your own analysis: HTF bias, structural alignment with current market regime, risk-reward planning, and confirmation from other tools.
## Part of the SMC ChartSense suite
One of several focused SMC tools. Designed to work alongside other SMC ChartSense scripts for a coherent analytical workflow across the SMC vocabulary.
## Disclaimer
This is a technical analysis tool. It does not provide investment advice or trade recommendations. The author is not a SEBI-registered Research Analyst. Use at your own risk; do your own due diligence. Indicator

Indicator

ICT SMC Liquidity Grabs and OTE ZonesICT SMC Liquidity Grabs and OTE Zones
This indicator combines three core ICT Smart Money Concepts into one clean confluence tool: liquidity sweeps (grabs), Order Blocks formed on strong reversal candles, and Optimal Trade Entry (OTE) Fibonacci zones at 61.8% and 78.6%.
How it works:
- Detects liquidity grabs by checking if price sweeps the highest high or lowest low over a user-defined lookback and closes back inside.
- After a grab, it marks the Order Block only on strong candles (body > 30% of range).
- Dynamic Fibonacci levels are drawn from the most recent confirmed pivot swing high/low.
- Buy/sell entries trigger only when a liquidity grab + strong candle + price inside the OTE zone align.
- Optional stop-loss lines and exact SL levels are shown on signals for immediate risk visibility.
- Take-profit targets: TP1 at previous swing extreme, TP2 at 1.5x risk (adjustable).
Key customizations (all exposed in inputs):
- Liquidity lookback period
- Pivot strength (left/right bars) — tune for different timeframes
- Order Block box length
- TP2 multiplier and SL distance multiplier
- Full color control for every element
- Toggle visibility of grabs, blocks, Fib lines, entries, and SL
Best used on NQ and ES futures, 5-minute and 15-minute charts during NY session. Works best in ranging or mildly trending markets where liquidity sweeps are respected.
How to use:
1. Wait for LG-L + bullish candle inside buy OTE zone → long
2. SL below the OTE zone (shown automatically)
3. TP1 = previous swing high, TP2 = 1.5R
4. Reverse for shorts on LG-H
Important warnings:
- Pivot-based Fib levels only confirm after the right-side bars complete (standard repainting until confirmation — normal for all pivot indicators).
- In strong trending markets, grabs can fail more often. Reduce position size or add your own higher-timeframe filter.
- This is a confluence tool, not a standalone strategy. Always apply proper risk management (risk 0.5-1% per trade max).
- No backtest claims are made. Past performance on any chart does not guarantee future results.
All inputs are grouped logically. Default settings are optimized for NQ 5m. Test on your preferred symbol and timeframe before live use.
Open source. No invite-only or paid versions.
This is a confluence tool, not a magic arrow. You only take trades when all three things line up:
Liquidity Grab (orange LG label)
Order Block (colored box)
Price inside OTE Fib zone + strong candle
Visual Legend (what you see on the chart)
ElementColorMeaningWhat to DoLG-HOrangeLiquidity Grab High (sweep of highs)Look for short setupLG-LOrangeLiquidity Grab Low (sweep of lows)Look for long setupRed BoxRedBearish Order Block (after LG-H)Potential short zoneGreen BoxGreenBullish Order Block (after LG-L)Potential long zoneGreen LinesGreenBuy OTE zone (61.8% – 78.6% from swing low)Long entry areaRed LinesRedSell OTE zone (61.8% – 78.6% from swing high)Short entry areaRed SL LineRedStop Loss (appears only on valid entry)Your risk level
Step-by-Step How to Trade (Using Your Screenshot)
Step 1: Find a Liquidity Grab
Look for the orange LG-H or LG-L labels.
In your chart you can see many — especially on the left and middle sections.
Step 2: Wait for the Order Block
After the LG, check if a colored box appears:
LG-H + red box = bearish OB (institutional selling zone)
LG-L + green box = bullish OB (institutional buying zone)
Step 3: Check if price is in the OTE Zone
For longs: Price must be between the two green Fib lines
For shorts: Price must be between the two red Fib lines
Step 4: Confirm with candle + take the trade
Only enter when you also get a strong candle (big body) in the direction of the grab.
Indicator

Smart Money Concept: Liquidity Sweep [MarkitTick]💡 The Smart Money Concept: Liquidity Sweep is an advanced technical suite engineered for precision algorithmic trading and comprehensive market analysis.
this unified market intelligence hub tracks major market participant footprints by analyzing liquidity raids, structural shifts, and fair value gaps.
It operates strictly on confirmed data to ensure zero lookahead bias, making it an authoritative tool for quantitative analysts and disciplined traders who demand rigorous data integrity.
This system provides a complete and deterministic view of price action, abstracting complex market mechanics into clear, actionable signals.
Every module within this script has been optimized for minimal execution overhead while maximizing analytical depth.
● ✨ Originality and Utility
Unlike generic structure indicators that simply plot highs and lows, this tool integrates a proprietary Confluence Score Dashboard and a robust Liquidity Sweep Filter.
It does not merely react to price crossing a level; it evaluates the nature of the interaction, distinguishing between genuine market structure shifts and manipulative liquidity sweeps orchestrated by large-cap market participants.
By unifying ten distinct analytical modules into a single, performance-optimized architecture, it provides a complete and cohesive trading ecosystem without cluttering the chart.
These modules range from Order Block mitigation tracking to Session Kill Zones and Premium/Discount mapping, ensuring all aspects of price action are covered.
Furthermore, it is explicitly built for automation, seamlessly generating strictly formatted JSON payloads for direct routing to external execution platforms like PineConnector or 3Commas.
These JSON webhooks dynamically calculate and transmit precise Entry, Take Profit, and Stop Loss parameters strictly utilizing format.mintick string conversions.
● 🔬 Methodology and Concepts
The core engine operates on a multi-dimensional analysis framework, utilizing advanced market mechanics to decode price delivery algorithms:
• Fractal Market Structure
The script mathematically identifies key swing points to establish dynamic structural ranges.
It accurately tracks the active trend and flags both Break of Structure (BOS) and Change of Character (CHoCH) events based on confirmed price closes.
This ensures that the underlying trend logic is grounded in true market conviction rather than momentary volatility.
• Liquidity Engineering
The engine actively monitors previous pivot extremes for sweep conditions.
This ensures that entries are backed by strategic liquidity harvesting from large-volume entities, rather than falling for premature breakouts or retail traps.
• Multi-Timeframe Alignment
The indicator employs a higher-timeframe variance filter to gauge the overarching trend direction.
It utilizes offset data arrays with strict lookahead protection to ensure a strictly non-repainting bias confirmation across multiple chart periods.
• Inefficiency Mapping
The algorithm detects and maintains active Fair Value Gaps (FVG) and structural Inducements (IDM).
It dynamically mitigates and clears these zones from the chart as price action naturally rebalances the market inefficiency, keeping the visual workspace clean.
● 🎨 Visual Guide
The script provides a clean, highly actionable visual hierarchy directly on the chart to minimize cognitive load:
Structure Candles:
Candlesticks are dynamically colored to reflect the current internal state.
They are painted Cyan during confirmed bullish structural trends and Magenta during confirmed bearish trends.
Structural Lines and Labels:
Dashed lines project horizontally from broken swing points.
These lines are explicitly annotated with BOS or CHoCH labels indicating the exact direction and type of structural shift that occurred.
Zone Fills (Boxes):
Support and Resistance Zones: Cyan and Magenta boxes highlight active bullish and bearish Order Blocks (OB). Mitigated blocks dynamically change to a muted gray color to reduce visual noise.
Premium and Discount Zones: When enabled, the active structural range is divided into a Magenta Premium zone, a white Equilibrium line, and a Cyan Discount zone.
FVG Zones: Transparent graphical fills indicate unmitigated Fair Value Gaps waiting for price rebalancing.
Session Kill Zones: Highlighted backgrounds map the Asian (Orange), London (Gold), and New York (Green) active trading windows for temporal confluence.
Inducement Labels:
Yellow IDM tags mark minor pullbacks that have been successfully swept, confirming liquidity capture.
Confluence Dashboard:
A dynamic text label appears precisely at the point of signal generation.
It displays an aggregate score from 0 to 5, color-coded Green for High Confluence, Orange for Medium, or Red for Low.
A detailed hover-tooltip breaks down the active filters contributing to the score.
● 📖 How to Use
To maximize the utility of this robust tool, traders should seek alignment across multiple internal analytical modules:
Establish Context:
Begin by utilizing the Session Kill Zones and Premium/Discount areas to frame the current market environment.
Ideal long setups originate deep within the Cyan Discount zone during active London or New York trading hours.
Identify Liquidity Capture:
Wait patiently for a confirmed liquidity sweep or the breaking of an Inducement (IDM) level.
This validates that major market operators have accumulated positions and trapped counter-trend traders.
Confirm the Shift:
Monitor the chart for a valid BOS or CHoCH signal backed by the Confluence Score Dashboard.
A score of 4 or 5 indicates exceptionally high alignment between HTF bias, liquidity sweeps, market gaps, and session timing.
Execution and Risk:
Upon signal generation, the script automatically plots the optimal entry point.
It also calculates a dynamic ATR-based Stop Loss and a predefined Risk/Reward-based Take Profit.
These exact price coordinates are simultaneously broadcast via the automated JSON alert webhook for seamless execution.
● ⚙️ Inputs and Settings
The suite is highly customizable, divided into logical control groups for rapid configuration:
• Market Structure
Adjust the Swing Length sensitivity to filter out market noise and define the exact target Risk/Reward Ratio for automated signal generation.
• Visuals
Granular control is provided over all interface colors, including specific toggles for dynamic candle coloring and user-configurable zone opacities.
• Toggleable Filter Modules
Ten individual toggles allow users to enable or disable specific algorithmic engines, including:
① Liquidity Sweep Filter
② HTF Bias Filter (with customizable resolution)
③ Premium / Discount Zone
④ Session Kill Zones
⑤ Fair Value Gap Engine
⑥ Inducement Detection
⑦ MSS Body Confirmation (requires full body closes for valid structure breaks)
⑧ ATR-Adaptive SL (with custom length and standard deviation multiplier)
⑨ OB Mitigation Tracker
⑩ Confluence Score Dashboard
● 🔍 Deconstruction of the Underlying Scientific and Academic Framework
The algorithmic foundation of this analytical suite is firmly anchored in Auction Market Theory and variance-adjusted statistical modeling.
At its core, the indicator rejects the standard premise of random walk price action, instead modeling the financial market as a highly efficient, liquidity-seeking mechanism.
By mathematically isolating structural extremes and standardizing pivot lengths, the engine calculates the probability of order flow absorption versus trend continuation.
The script analyzes the temporal decay of market inefficiencies, specifically mapping how quickly Fair Value Gaps are rebalanced by subsequent price delivery.
The inclusion of an ATR-adaptive risk model ensures that stop-loss parameters expand and contract proportionally to current market variance.
This utilizes average true range standard deviations to normalize volatility, preventing premature stop-outs during periods of high structural stress.
Furthermore, the proprietary Confluence Score relies on a multi-variate Boolean matrix.
This matrix synthesizes time-domain variables (Session Zones), spatial distribution metrics (Premium/Discount mapping), and momentum vectors (HTF Bias) into a singular, quantized metric of setup validity.
This deterministic mathematical approach removes subjective bias, relying purely on the physics of price delivery, volume distribution, and order flow imbalance.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Time-Based Vertical Fib ProjectionsTime-Based Vertical Fib Projections
This indicator automatically measures the time it takes for price to form the high-to-low range during the time window from 20:00 to 00:00 EST.
Once the session ends, the script identifies the highest high and lowest low within that range, calculates the time distance between those two points, and projects that same time interval forward as vertical time levels.
Projection lines are plotted at 1σ, 2σ, 3σ, 4σ, 5σ, and beyond, based on the measured time interval. These projected vertical levels can help traders anticipate future timing windows where price may react, expand, reverse, or reach important intraday objectives.
Features include:
Automatic detection of the 20:00–00:00 EST range.
Measures time between the range high and range low
Projects forward time-based standard deviation levels
Optional labels for each projection
Optional marking of the original range high and low times
Adjustable number of projections
Custom line colors, style, width, and history length
This tool is intended for time-based analysis and does not generate buy or sell signals. It should be used alongside market structure, liquidity, session context, and risk management.
Update Notes
The time-based range window is now fully customizable from the indicator settings.
The default range remains 20:00–00:00 EST, but users can now adjust the start and end time to define their own custom measurement window. The indicator will use the selected range to identify the high and low, calculate the time distance between those points, and project the vertical time levels forward from that custom range.
This makes the tool more flexible for traders who want to apply the same time-projection logic to different sessions, killzones, or custom trading windows.
Indicator

Time-Based Fib ProjectionsTime-Based Vertical Fib Projections
This indicator automatically measures the time it takes for price to form the high-to-low range during the time window from 20:00 to 00:00 EST.
Once the session ends, the script identifies the highest high and lowest low within that range, calculates the time distance between those two points, and projects that same time interval forward as vertical time levels.
Projection lines are plotted at 1σ, 2σ, 3σ, 4σ, 5σ, and beyond, based on the measured time interval. These projected vertical levels can help traders anticipate future timing windows where price may react, expand, reverse, or reach important intraday objectives.
Features include:
Automatic detection of the 20:00–00:00 EST range.
Measures time between the range high and range low
Projects forward time-based standard deviation levels
Optional labels for each projection
Optional marking of the original range high and low times
Adjustable number of projections
Custom line colors, style, width, and history length
This tool is intended for time-based analysis and does not generate buy or sell signals. It should be used alongside market structure, liquidity, session context, and risk management. Indicator

Bias Engine ICT ConceptBias Engine - ICT Concept
Bias Engine is a market context tool built around ICT (Inner Circle
Trader) methodology. It reads directional bias, identifies draw
targets, and tracks key liquidity levels across multiple timeframes all displayed in a single compact panel.
Most ICT traders manage 4 to 6 separate tools to get the same
picture. This indicator consolidates that context into one place.
WEEKLY AND DAILY LEVELS
Tracks the previous week high/low (PWH/PWL) and previous day
high/low (PDH/PDL) with real-time status for each level:
Active: level is intact, not yet tested
Sweep: price ran through and closed back inside
Delivering: price broke and is moving toward the next FVG
Liq Grab: price broke without a draw target on the other side
Levels update automatically at the start of each new week and day.
The weekly range box and equilibrium midpoint (EQ) are drawn on
the chart for quick visual reference.
FVG AND VOLUME IMBALANCE DETECTION
Detects four zone types on the chart:
BISI (Bullish FVG): three-candle gap, price leaving upward
SIBI (Bearish FVG): three-candle gap, price leaving downward
VI+ (Volume Imbalance, bullish)
VI- (Volume Imbalance, bearish)
All zones track mitigation in real time. When price fills a zone,
it converts to an IFVG (Inverse FVG) reference. Zone lookback
scales automatically by timeframe or can be set manually.
MULTI-TIMEFRAME STRUCTURE
Scans four timeframes simultaneously (4H / 1H / 30M / 15M) for:
BOS (Break of Structure)
CHoCH (Change of Character)
MSS (Market Structure Shift)
MSS + IFVG confluence
Each timeframe votes toward the overall bias direction. The
confluence count (e.g. 3/4 or 4/4 in agreement) feeds directly
into the confidence score shown in the panel.
BIAS ENGINE
The core engine evaluates directional bias using FVG-to-FVG path
logic. It identifies which zone price is drawing from and which
zone it is likely delivering toward next.
DELIVERY
Direction: Buyside Delivery or Sellside Delivery
Confidence: High / Medium / Low
Drawing To: the most likely next price target
Structure: MSS / CHoCH / BOS with MTF alignment
CONFLUENCE
MTF agreement across 4H / 1H / 30M / 15M (checkmarks)
Reason: plain-language explanation of the bias logic
Fill First: nearest opposing zone to rebalance before target
Next Target: closest zone in the direction of bias
POSITION
Whether price is in Discount or Premium relative to weekly EQ
Real-time FVG context if price is currently inside a zone
SESSION
Active killzone and countdown, or next session and time until open
PANEL MODES
Pro Mode: full output including delivery, confluence, structure,
draw targets, and position context.
Beginner Mode: simplified view showing session countdown, key
levels (Week High/Low, Day High/Low), and plain-language position
labels. The bias engine still runs in the background.
HOW TO USE
Recommended timeframes: 15M or 1H for intraday execution context.
Step 1 - Check DELIVERY. This is the current bias direction and how confident the engine is in that read.
Step 2 - Check DRAWING TO. This is the most probable target price is moving toward. It prioritizes zones beyond the weekly range over intra-range targets.
Step 3 - Check STRUCTURE. Confirms whether a valid MSS or BOS supports the bias. MSS + IFVG is the highest confluence signal.
Step 4 - Check POSITION. Confirms whether price is at a logical area to enter relative to the weekly equilibrium.
A valid read requires alignment across all four steps.
This indicator does not generate buy or sell signals. It provides
market context for traders to form their own analysis.
SETTINGS
Display
Panel Mode: Pro / Beginner
Panel Position: 6 options
Chart Theme: Dark / Light
Panel Size: Tiny / Small / Normal
Timezone: Auto DST / Manual UTC-4 / Manual UTC-5
Levels
Show Weekly Range (PWH/PWL) with previous week option
Show Daily Range (PDH/PDL)
Show FVG / VI Boxes
Show Unmitigated Zones
Show Mitigated Zones (IFVG)
Zone Lookback: Auto (scales by timeframe) or Manual (30-2000)
Colors
BISI, SIBI, VI+, VI- colors: fully customizable
NOTES
Bias Engine is open source under CC BY-NC-SA 4.0 and is intended for educational purposes only. Nothing in this script constitutes financial advice or a recommendation to buy or sell any instrument.
The indicator works on any instrument available on PulseWire and is primarily optimized for forex majors, gold (XAUUSD), and major indices.
Zone lookback is anchored to bar index rather than timestamps, which means the indicator behaves correctly in PulseWire replay mode regardless of which historical period you replay to.
Despite scanning four timeframes for market structure, the script uses only one request.security() call for the weekly ATR. All other multi-timeframe logic runs within the same security context, keeping the indicator lightweight relative to its feature set. Indicator

Session Killzones ICT ConceptSession Killzones - ICT Concept
Session Killzones plots the four standard ICT killzone sessions
(Asia, London, NY AM, NY PM) in New York time. It tracks unswept
session highs and lows in real time, fires alerts on sweeps, and
displays a compact session info panel with countdown.
Built for ICT traders who need to know which session levels are
still active and which have already been taken.
SESSIONS
Draws session boxes and boundary lines for each killzone in New
York time with automatic DST handling (EDT/EST). Each session is
fully customizable: name, time range, and color.
Default sessions (New York time):
Asia: 20:00 - 00:00
London: 02:00 - 05:00
NY AM: 08:30 - 11:00
NY PM: 13:30 - 16:00
Each session can be toggled on/off independently. Time ranges can
be modified to match your broker's session definition.
UNSWEPT LEVELS
When a session closes, its high and low are extended forward as
dashed lines. These are unswept levels session liquidity that
price has not yet taken.
When price reaches an unswept level, the line is automatically
removed from the chart. No manual cleanup needed. This gives a
live, self-cleaning view of which session levels still matter.
Sweep events fire an alert. Alerts are available for high sweeps
and low sweeps independently.
SESSION PANEL
A compact info panel shows session context at a glance. Three
detail levels:
Simple - shows the active session name and time remaining (or next session and time until open). Standard - adds today's percentage range for each session that has occurred, with direction indicator relative to session open.
Advanced - includes unswept level prices from all closed sessions directly in the panel, alongside the session breakdown.
SESSION COUNTDOWN
Inside a session: "NY AM - 1h 23m left"
Between sessions: "London in 4h 10m"
Color indicators :
Green: session is active
Yellow: less than 15 minutes remaining (closing warning)
Gray: currently between sessions
The countdown adapts to custom session times. If you change the
London session to 01:00-04:00, the countdown reflects that.
HOW TO USE
Session boxes show the developing high and low of each killzone as the session progresses.
Dashed lines extending beyond the box are unswept levels. These represent liquidity that price has not yet reached.
When a dashed line disappears, that level has been swept. It is no longer an active reference.
Use the percentage range in Standard mode to gauge which sessions were high-range versus low-range days.
Use the countdown to plan your analysis around session opens and closes. Most high-probability ICT setups occur within the first 30 to 90 minutes of a killzone.
Enable alerts on sweep events to get notified the moment a session high or low is taken, even if you are not at the screen.
SETTINGS
Display
- Chart Theme: Dark / Light
- Timezone: Auto DST / Manual UTC-4 (EDT) / Manual UTC-5 (EST)
Sessions (per session: toggle, name, time range, color)
- Asia, London, NY AM, NY PM
Appearance
- Show Session Box, High/Low Lines, Midpoint Line, Opening Price
- Lines Only mode: removes box fill, shows boundary lines only
- Line Thickness: 1 to 4
- Boundary Line Style: Solid / Dashed / Dotted
- Color Intensity: global transparency adjustment (-50 to +50)
Levels
- Show Unswept Levels: toggle
- Level Line Style: Solid / Dashed / Dotted
- Anticipation Zone: how far unswept lines extend right (candles)
- Show Level Price Labels: toggle
Info Panel
- Detail Level: Simple / Standard / Advanced
- Position: Top Left / Top Right / Bottom Left / Bottom Right /
Middle Left / Middle Right
- Size: Tiny / Small / Normal
Display Limits
- Show on Timeframe: 1M / 3M / 5M / 15M / 30M / 45M / 60M
- Show Last N Days: 1 to 30
NOTES
Session Killzones is open source under CC BY-NC-SA 4.0 and is intended for educational purposes only. Nothing in this script constitutes financial advice or a recommendation to buy or sell any instrument.
The DST resolver calculates timezone offset from bar time rather than the system clock, which means the indicator behaves correctly in PulseWire replay mode. If you replay to November 2023, the resolver returns EST, not the current wall-clock timezone.
The indicator is designed for intraday timeframes from 1M to 60M and works on any instrument available on PulseWire, though it is primarily optimized for forex majors and gold (XAUUSD).
Internally, all session state is tracked using explicit boolean arrays. No state is inferred from drawing object positions or line coordinates, which avoids a common source of bugs in session-based indicators. Indicator

IRL ERL Liquidity MapIRL ERL Liquidity Map is an original multi-timeframe orderflow and liquidity mapping tool designed to help traders organize internal liquidity zones and external liquidity objectives on one clean chart.
The script focuses on the relationship between IRL and ERL:
IRL, or Internal Range Liquidity, is represented by imbalance-style zones such as Fair Value Gaps (FVG) and Breakaway Gaps (BAG). These zones mark areas where price may return before continuing toward a larger liquidity objective.
ERL, or External Range Liquidity, is represented by swing highs, swing lows, and previous high/low levels from higher timeframes. These levels act as possible draw-on-liquidity objectives once price reacts from an internal zone.
The purpose of combining these components is not to create separate signals, but to show one complete liquidity workflow:
1. Identify an internal liquidity zone.
2. Watch whether price reacts from it or closes through it.
3. Track the likely external liquidity objective.
4. Use higher-timeframe levels and session ranges for context.
Main Features
Multi-Timeframe IRL Zones:
The indicator tracks FVG and BAG zones across selected timeframes including 15m, 1h, 4h, Daily, Weekly, and Monthly. Each timeframe can be enabled or disabled separately. Bias can be left on Auto or manually filtered to bullish or bearish.
FVG and BAG Detection:
A bullish FVG is detected when the current candle leaves an imbalance above the candle two bars back. A bearish FVG is detected when the current candle leaves an imbalance below the candle two bars back. BAG zones are stricter gap conditions where the displacement candle also breaks beyond the prior candle structure.
Zone Validation:
Zones remain active until price invalidates them by closing through the zone body on the related timeframe, or until the related external liquidity target is reached. This helps separate a simple wick reaction from a stronger body-close invalidation.
ERL Targets:
The script uses swing highs and swing lows as external liquidity targets. When price reacts from an IRL zone, the nearest relevant swing objective helps define where the current context may complete.
Swing Points:
Tiny swing dots and optional ERL swing lines can be displayed on the chart. These are intended to make local liquidity points easier to see without adding heavy visual clutter.
Higher-Timeframe Liquidity Levels:
Previous Day High/Low, Previous Week High/Low, and Previous Month High/Low can be displayed. These levels are commonly used as external liquidity references and can be automatically removed once swept.
Session Killzones:
The script includes configurable session ranges for London, New York, Asia, and Sydney. These ranges help traders study when liquidity runs, reactions, and displacement are occurring during active market windows.
Dashboard:
A compact dashboard summarizes the current orderflow state for each enabled timeframe. It shows whether price is reacting from an IRL zone, whether a zone is failing, or whether no active context is present. The dashboard uses matching timeframe colors for easier reading:
4h = orange
Daily = blue
Weekly = yellow
Monthly = red
Chart Clarity:
The script includes display controls to reduce clutter, including maximum active zones per timeframe, maximum total zones, fixed-width zone boxes, dashed zone borders, label controls, and opacity settings.
How To Use
Use higher timeframes first to identify major liquidity context. For example, Daily, Weekly, or Monthly zones can show larger areas where price may react or rebalance.
Use lower timeframes to refine entries and observe whether price is respecting or failing an internal liquidity zone.
A reacting state means price has entered an active IRL zone without yet invalidating it by body close.
A failing state means price has closed through the IRL zone according to the selected timeframe logic.
An ERL completion means price has reached the related swing or external liquidity objective after the IRL context was active.
This tool does not predict price direction by itself. It is designed as a visual framework for studying liquidity, imbalance, session timing, and higher-timeframe objectives. Traders should combine it with their own risk management, market structure analysis, and confirmation rules.
Recommended Chart Setup
For publication or clean analysis, use this indicator by itself on the chart, with minimal drawings. Keep the chart background clean so the FVG/BAG zones, ERL targets, session ranges, and higher-timeframe levels are easy to identify.
Indicator

Indicator

Dominance Sweep Tracker [JOAT]Dominance Sweep Tracker
Introduction
Dominance Sweep Tracker (DST) is an open-source, institutional-grade order flow engine that combines three detection layers — market structure dominance, liquidity sweep identification, and order block entry confirmation — into a single, unified trading framework. It tracks confirmed swing pivots, identifies when body-close breaks through those levels signal a structural shift in market dominance, detects liquidity sweeps where wicks pierce prior pivots and price closes back inside, and marks the last opposing candle before each sweep as the entry order block. ATR-based trade visualizations with risk/reward boxes and per-session win rate tracking complete the system.
The core problem DST solves is the fragmentation of ICT order flow analysis across multiple manual steps. Traders watching for structural dominance shifts, hunting sweeps of prior swing liquidity, and locating order block entries typically need to perform those three steps separately, often missing the interaction between them. DST connects all three into a single detection pipeline that fires on confirmed bars, identifies the relevant entry zone automatically, and tracks the resulting trade outcome against configurable TP and SL levels across four distinct trading sessions.
Core Concepts
1. Swing Pivot Detection
DST uses Pine Script's built-in ta.pivothigh() and ta.pivotlow() functions to identify confirmed swing highs and lows. These are inherently non-repainting — a pivot is only confirmed after the required number of bars on both sides have formed. The most recent confirmed swing high and low are stored as the active liquidity levels.
2. Market Dominance Detection
A dominance shift occurs when a bar's body — not its wick — closes beyond a confirmed swing level. Bullish dominance is confirmed when the close exceeds the most recent swing high. Bearish dominance is confirmed when the close falls below the most recent swing low. This body-close requirement eliminates wick-based false breaks and isolates genuine structural displacement:
bool bullDom = close > swingHi and open > swingHi
bool bearDom = close < swingLo and open < swingLo
3. Liquidity Sweep Detection
A sweep occurs when a bar's wick pierces a prior swing level and the close returns back inside. DST applies a minimum wick depth filter (default: 0.2 ATR) to avoid noise from trivial touches. A bullish sweep fires when the low exceeds the swing low but the close is above it. A bearish sweep fires when the high exceeds the swing high but the close is below it. Both are gated on barstate.isconfirmed.
4. Order Block from Last Opposing Candle
When a sweep is confirmed, DST scans back through recent bars to identify the last candle that moved in the opposite direction of the sweep. For a bullish sweep setup (price swept below a low and recovered), the last bearish candle before the sweep is marked as the entry order block. This zone represents the origin of the move that created the liquidity pool — the level where institutional positioning likely occurred.
5. Session-Aware Trade Tracking
Each detected signal is tagged with the trading session active at that bar (Asia, London, NY, or Off-Session). ATR-based stop loss and take profit levels are calculated at signal time and visualized as color-coded boxes. Outcome is tracked against those levels, and win/loss counters are maintained per session for statistical context.
Features
Swing Pivot Tracking: Confirmed swing highs and lows rendered as horizontal reference lines — the primary liquidity pool levels
Body-Close Dominance Detection: Structural breaks confirmed only on candle body close beyond swing level, eliminating wick-false-break noise
Liquidity Sweep Detection: Wick-beyond, close-inside detection across all recent pivots with configurable ATR depth filter
ATR Wick Filter: Minimum wick penetration depth prevents noise from triggering sweep signals on trivial pokes
Order Block Identification: Automatic scan of last opposing candle before each sweep — rendered as a colored zone box
OB Touch Signal: Secondary signal fires when price returns to touch an active order block zone
EMA 750 Trend Filter: Optional filter that requires price to be on the correct side of the EMA 750 for long and short signals
ATR-Based TP/SL Boxes: Risk (SL) and reward (TP) areas visualized as colored boxes from entry — default 1.5× ATR stop, 3:1 reward
Session Detection: Asia, London, NY, and Off-Session windows (configurable) tag each signal for session-specific tracking
Per-Session Win Rate: Independent win/loss/total counters for all four sessions displayed in the dashboard
Non-Repainting: All signals gated on barstate.isconfirmed; ta.pivothigh/ta.pivotlow inherently confirmed
Dashboard (Top Right): Session win rates for Asia, London, NY, and Off-Session with color-coded performance indicators
BOS Dominance Labels: "BOS ▲" and "BOS ▼" dominance labels replace simple B/S markers — clearly communicates the direction of each confirmed structural break on the chart
Order Block Dominance Labels: "BULL DOM" and "BEAR DOM" labels placed inside order block boxes at creation — identifies the structural context in which each OB was formed
Dominance Candle Tint: Candles colored teal when dominant bull conditions are active, rose when dominant bear — encodes structural dominance state directly into price bar color
Upgraded TP/SL Pip Labels: SL and TP labels now include session name and RR ratio in the format "142p TP 3.0R | London" — full trade context visible directly on the chart
Sweep and Dominance Shift Counters: Sweep counter and dominance shift counter displayed in the dashboard — cumulative structural activity metrics updated on each confirmed event
Expanded Dashboard (8 Rows): Dashboard expanded to 8 rows — now includes sweep count and dominance shift count alongside existing session win rate data
Input Parameters
Pivot Settings:
Swing Lookback: Number of bars on each side required to confirm a pivot (default: 5)
Sweep Settings:
Min Sweep Wick (ATR×): Minimum wick depth relative to ATR (default: 0.2)
Sweep Lookback Bars: How many recent bars to scan for swing levels to test against (default: 50)
Order Block:
OB Scan Back: How far back to search for the last opposing candle (default: 10)
OB Max Active: Maximum number of live order blocks displayed simultaneously (default: 5)
Filter Settings:
EMA Trend Filter: Require price on correct side of EMA 750 for signal confirmation (default: enabled)
EMA Length: Period for the trend EMA (default: 750)
Risk Management:
ATR Length: Period for ATR calculation (default: 14)
ATR SL Multiplier: Stop loss distance as ATR multiple (default: 1.5)
Reward:Risk Ratio: Take profit as multiple of stop distance (default: 3.0)
Session Settings:
Timezone, Asia/London/NY window hours — fully configurable per session
How to Use This Indicator
Step 1: Identify the Current Structural Context
Swing highs and lows on the chart represent the live liquidity pools. Price above the most recent swing high in an uptrend signals buy-side liquidity accumulation. Price below swing lows signals sell-side liquidity. The dominance signal (filled triangle) fires when price body-closes through a swing, marking a genuine structural shift.
Step 2: Monitor for Sweep Signals
When a sweep label appears, price has taken liquidity from a swing level and rejected back inside. This is the setup precondition — the liquidity event has occurred. The order block zone identified at that bar is the entry reference level.
Step 3: Enter at the Order Block
The last opposing candle before the sweep is rendered as a box. Price returning to that zone represents a potential re-entry into the displacement move. Combine with EMA 750 trend direction for higher-probability setups.
Step 4: Manage the Trade with TP/SL Boxes
ATR-based SL and TP boxes extend from the entry bar. Stop loss is set 1.5× ATR below (long) or above (short) entry. Take profit is at 3:1 reward by default. Both are fully configurable.
Step 5: Review Session Performance
The per-session win rate table highlights which killzones have historically produced the best outcomes on your instrument and timeframe. Use this to weight your activity toward higher-performing sessions.
Indicator Limitations
Swing pivot detection requires a minimum number of confirmed bars on both sides of the pivot. On very fast timeframes (sub-1 minute), pivot lookback may be impractically long relative to the session window
The order block scan selects the last opposing candle within a fixed lookback window. In trending conditions with extended single-direction candle runs, no opposing candle may be found within the scan range
Session win rate counters reset when the indicator is removed and re-added, or when the chart is refreshed with no history. They are valid only within the current chart session
The EMA 750 filter is based on a 750-period EMA. On shorter timeframes, 750 bars may not be available on instruments with limited history, causing the EMA to be inaccurate until sufficient data loads
ATR-based TP and SL levels are static from entry — they do not trail or adjust. Volatile markets may require manual adjustment of the ATR multiplier for realistic risk sizing
Originality Statement
DST integrates three distinct ICT order flow concepts — structural dominance, liquidity sweeps, and order block entry — into a unified detection and tracking pipeline. This combination is original for the following reasons:
The three-layer detection pipeline (dominance → sweep → order block) processes each concept in sequence, where a sweep only becomes significant in the context of the structural level it targets, and the order block is identified relative to that sweep specifically — not as an independent scan
The body-close dominance confirmation (requiring the entire body, not just the wick, to close beyond the swing level) is a stricter filter than standard breakout detection, reducing false structural break signals in choppy conditions
Per-session win rate tracking, maintained independently for four distinct trading windows within a single indicator, provides empirical context for which market periods generate the most consistent outcomes on a given instrument
The order block touch signal — a secondary detection layer that fires when price returns to interact with a previously identified OB zone — closes the loop between zone creation and zone interaction without requiring separate indicators
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Liquidity sweeps and order block zones are historical reference levels. The appearance of a sweep signal does not guarantee price continuation in any direction. Session win rates are based on historical bar data and do not predict future performance. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Market Phase Detector [JOAT]Market Phase Detector
Introduction
Market Phase Detector is an open-source market structure classification engine that continuously identifies whether price is operating in a Bullish Trend, Bearish Trend, or Range state. The classification uses three independent inputs that must align simultaneously before a regime is confirmed, making the output robust against single-factor noise and false positives that plague simpler trend detectors.
The problem Market Phase Detector solves is context. Trend-following entries during range conditions produce whipsaws. Mean-reversion entries during strong trending moves produce losses against the dominant flow. Knowing the regime before interpreting any other signal improves the relevance of every decision made from it. Market Phase Detector makes that determination automatically, updates it bar by bar, and visualizes both the current regime and every structural event that contributed to it — including labeled BOS and CHoCH events with horizontal level lines, live swing extension lines at the right edge, and an institutional-grade dashboard.
Core Concepts
1. Swing Detection and Pivot Tracking
Price structure is derived from pivot highs and lows confirmed using ta.pivothigh() and ta.pivotlow() with a configurable symmetric lookback. The lookback controls sensitivity — a value of 5 requires 5 bars on each side of the pivot to confirm it, producing only the most structurally significant swings. Each confirmed pivot updates the tracked level and resets its broken flag to allow new break detection on the next cycle:
pivHi = ta.pivothigh(high, swingLen, swingLen)
pivLo = ta.pivotlow(low, swingLen, swingLen)
if not na(pivHi)
topLevel := pivHi
topBroken := false
2. Break of Structure vs Change of Character
Two structural event types are distinguished and tracked independently. A Break of Structure (BOS) occurs when price closes through the previous swing extreme in the same direction as the current structural bias — confirming continuation. A Change of Character (CHoCH) occurs when price closes through the previous swing extreme against the current structural bias — signaling a potential regime flip:
bosBull = bullBreak and structureBias == 1
chochBull = bullBreak and structureBias != 1
Every event is labeled directly on the chart with a horizontal line at the break level and a text label (BOS +, BOS -, CHoCH +, CHoCH -). Running counts of each type are tracked and displayed in the dashboard.
3. Three-Factor Regime Gate
The regime classification evaluates all three inputs simultaneously before assigning a state. Structure bias is set by BOS and CHoCH events. The volatility gate compares current ATR to a moving average of ATR multiplied by a contraction threshold — when ATR falls below this level the market is classified as compressed and the regime defaults to Range regardless of structure or momentum. Momentum uses a smoothed rate-of-change that must confirm the structural direction:
if isLowVol
regime := 0 // Range — volatility gate overrides everything
else if strBias == 1 and roc > 0
regime := 1 // Bullish
else if strBias == -1 and roc < 0
regime := -1 // Bearish
else
regime := 0 // Inconclusive — range
A confidence score (1-3) counts how many of the three factors currently agree and is displayed in the dashboard, allowing the trader to distinguish a fully confirmed 3/3 regime from a weaker 2/3 reading.
4. Swing Level Extension Lines
The current unbroken swing high and swing low are extended as dotted horizontal lines to the right edge of the chart with price labels. These serve as the nearest structural reference levels — the next points where a BOS or CHoCH could occur. They are deleted and redrawn each bar using barstate.islast so they remain current without consuming the indicator's line budget:
if barstate.islast and showSwingExt
line.delete(swingHiLine)
swingHiLine := line.new(topBar, topLevel, bar_index + 4, topLevel,
color=color.new(#E65100, 45), style=line.style_dotted, width=2)
5. Regime Background Shading
The chart background is tinted according to the current regime — faint teal for Bullish, faint orange for Bearish, neutral gray for Range. This gives immediate context at a glance without adding visual noise to the price action.
Features
Three-state regime output: Bullish, Bearish, and Range states derived from structure, volatility, and momentum alignment
BOS and CHoCH event labels: Every structural break labeled on-chart with event type, direction, and horizontal level line
Independent BOS and CHoCH counters: Running totals of each structural event type in the dashboard
Swing level extension lines: Dotted right-edge lines at the current unbroken swing high and low with price labels
ATR-based volatility gate: Low-volatility contraction forces a Range classification regardless of structure or momentum
Smoothed momentum confirmation: Rate-of-change must align with structure before a trending regime is confirmed
Confidence scoring (1/3 to 3/3): Quantifies how many of the three classification factors are currently aligned
Regime background shading: Chart background tint reflects the current regime in real time
Institutional dashboard (top right): 15-row table with regime state, confidence, last break direction and age, BOS and CHoCH counts, swing levels, and ATR
Fully configurable colors: Bullish, bearish, and ranging tints plus structure line colors are independently adjustable
All signals confirmed bar only: No repainting — all structural events fire on barstate.isconfirmed
Input Parameters
Structure Detection:
Swing Lookback: Left/right bars required for pivot confirmation (default: 5)
ATR Period: ATR calculation length (default: 14)
Regime Classification:
Volatility MA Length: MA length for ATR comparison (default: 20)
Range Contraction Multiplier: ATR fraction below which the market is classified as ranging (default: 0.7)
Momentum Lookback: Rate-of-change lookback and EMA smoothing period (default: 10)
Display:
Regime Background Shading toggle
Show Dashboard toggle
Show Structure Lines toggle
Show Swing Level Extensions toggle
How to Use This Indicator
Step 1: Read the Current Regime
Check the REGIME row in the dashboard. BULLISH, BEARISH, or RANGE appears in its corresponding color. This is the primary output. Use it to establish directional bias before consulting any other signal source.
Step 2: Check Confidence Score
The Confidence row shows how many of the three inputs align (e.g., 2/3). A 3/3 reading means structure, volatility, and momentum all agree. A 2/3 reading means one factor is diverging. Weight directional decisions higher during full 3/3 alignment.
Step 3: Monitor CHoCH Events
Each CHoCH label marks a structural break against the current bias — a warning that the regime may be shifting. When a CHoCH appears, watch whether subsequent bars confirm a new opposing BOS or whether the previous regime resumes.
Step 4: Use Swing Extension Lines as Forward Reference
The dotted right-edge lines mark the current unbroken swing levels — the nearest structural break zones. Knowing how close price is to these levels frames where the next BOS or CHoCH could occur.
Step 5: Apply Regime as a Filter
Market Phase Detector is designed as a context layer, not a standalone signal generator. Apply the regime output as a filter to your existing tools: only take long signals when the regime is Bullish, only take short signals when Bearish, and step aside or apply mean-reversion logic when Range is active.
Indicator Limitations
Pivot detection confirms swingLen bars after the pivot forms, creating a natural offset between the candle where the swing occurred and when it is labeled. This is intentional non-repainting behavior
The volatility gate may temporarily classify a new trend as Range immediately after a volatility expansion if ATR has not yet risen above the threshold. This resolves within a few bars as ATR normalizes
In slow, grinding markets, momentum may repeatedly lag structure, resulting in extended Range readings during mild trends
Market Phase Detector classifies current market state. It does not predict future price direction or generate entry/exit signals
Originality Statement
Market Phase Detector is original in its three-factor gate requiring independent alignment of structure, volatility, and momentum before any regime is confirmed. This indicator is published because:
The combination of CHoCH and BOS structural logic, an ATR contraction gate, and a smoothed momentum filter into a single lightweight classifier that produces a confidence score is uncommon in published open-source Pine Script v6
Distinguishing BOS from CHoCH within the same indicator — with independent event counts and labeled historical events — provides structural context that standalone trend indicators do not offer
The confidence scoring system (1-3) quantifies the strength of the current regime reading across three independent analytical dimensions, not just a single oscillator value
Swing level extension lines provide live structural reference at the right edge of the chart without requiring the user to manually draw levels or add a separate pivot indicator
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Regime classifications are based on historical price data and do not guarantee any future market behavior. All three factors can produce inaccurate readings in atypical market conditions. Always use proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Institutional 7-Point Checklist█ INSTITUTIONAL 7-POINT PRE-TRADE CHECKLIST v2.0 █
█ Pine Script® v6 █
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OBJECTIVE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Most retail traders show up at 9:30 AM with no plan. They react to 5-minute noise and get chopped to pieces. This indicator solves that.
It runs a 7-point institutional checklist automatically — pulling data from the 4H, 1H, and daily timeframes — and displays a real-time pass/fail panel directly on your chart. Before you take a single trade, the panel tells you whether TODAY is even a trading day, what direction to expect, where to enter, and what to target.
The framework combines two proven concepts:
▸ 4H Chart Analysis — reading institutional expansion vs consolidation for structural bias
▸ Session Profiling — checking whether Asia or London reversed to classify New York as continuation or reversal
v2.0 adds the layers that give you complete market context without switching timeframes:
▸ Multi-timeframe liquidity mapping (Daily, Weekly, Monthly highs/lows)
▸ Anchored VWAP (Daily, Weekly, Monthly) for institutional cost basis
▸ Smart moving averages at the periods that actually matter per timeframe
▸ Midnight Open reference line
▸ Smart nearest-liquidity detection across all tiers
Everything new is an optional toggle. The default view stays clean — just the checklist, PDH/PDL, Daily VWAP, and the 4H 20 EMA. Power users turn on the layers they want.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THE 7 CHECKS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 1. Is the 4H expanding?
Evaluates the last three completed 4H candles. "Expanding" means ≥2 candles have bodies larger than the expansion multiplier × ATR(20), AND the most recent candle has small wicks relative to its range. If the 4H is consolidating → no trade today.
✅ 2. Did the prior session reverse or consolidate?
Tracks Asia (6 PM – 2 AM ET) and London (2 AM – 5 AM ET) in real time. A session "reversed" if it swept a key level and closed back through it. "Consolidated" if its range was under 40% of the daily ATR.
✅ 3. Continuation or reversal day?
▸ Any prior session reversed → NY = CONTINUATION
▸ No session reversed → NY = REVERSAL
✅ 4. Nearest FVG (entry zone)
Scans the 1H for 3-candle Fair Value Gaps — unfilled imbalances from aggressive expansion. Identifies the nearest bullish or bearish FVG with its midpoint price. This is your entry zone.
✅ 5. Nearest external liquidity (target) — NEW: SMART MULTI-TF
Now scans across Daily, Weekly, and Monthly levels (whichever are enabled) and automatically identifies the closest liquidity pool above and below price. The panel shows the tier label (PDH, PWH, PMH, etc.) so you know which level matters most right now. Bigger pools = stronger magnets.
✅ 6. Has price swept external liquidity? (trigger) — NEW: ANY TIER
Monitors sweeps across all enabled tiers. If price takes out PWH while PDH hasn't been swept, that still counts — any tier sweep is a valid trigger. The panel lists exactly which levels have been swept today.
✅ 7. One-sentence bias (auto-generated)
Combines all findings into a single actionable statement:
"4H expanding bearish. NY=CONTINUATION. Pullback into FVG → target PDL."
NEW: CONTEXT ROW
Below the 7 checks, a context line shows price position relative to Daily VWAP and 4H 20 EMA. Example: "above VWAP | above 4H EMA" — a quick confluence check without reading the chart.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NEW IN v2.0: LIQUIDITY HIERARCHY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Not all liquidity is equal. A daily level might produce a 10-point displacement on NQ. A weekly level might produce 50 points. A monthly level could fuel a full trend day.
▸ Previous Day H/L (PDH/PDL) — ON by default
Yesterday's range extremes. Stop losses from day traders. Blue dashed lines.
▸ Previous Week H/L (PWH/PWL) — OFF by default
Swing trader stops. Much larger pool than daily. Purple dashed lines.
▸ Previous Month H/L (PMH/PML) — OFF by default
Institutional swing and fund allocation levels. Orange solid lines (thicker for visual hierarchy).
▸ Midnight Open — OFF by default
Price at 00:00 ET. Directional separator for ICT-style analysis. Gray dotted line. Above midnight open = bullish lean, below = bearish lean.
Each tier has its own color and line weight so you can glance at the chart and instantly see which pool price is approaching. The smart detection in Checks 5 and 6 automatically picks the nearest level regardless of tier.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NEW IN v2.0: ANCHORED VWAP
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VWAP shows where the majority of institutional money actually transacted. It's not just an average — it's the volume-weighted cost basis.
▸ Daily VWAP — ON by default (amber)
Anchored to today's open. The single most referenced level by institutional algorithms during NY session. When price is above VWAP, institutions are in profit and likely to defend it. Below = underwater.
▸ Weekly VWAP — OFF by default (purple)
Anchored to Monday's open. Broader lens on net bullish/bearish flow for the week. Confirms your 4H bias: if 4H is expanding bullish AND price is above weekly VWAP = confluence.
▸ Monthly VWAP — OFF by default (orange)
Background context. Rarely comes into play intraday, but when price tests monthly VWAP at a weekly liquidity level = high-conviction zone.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NEW IN v2.0: MOVING AVERAGES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Each MA is chosen for a specific purpose at its timeframe. No filler MAs — every line earns its place on the chart.
▸ 5-MIN 9/21 EMA — execution pair — OFF by default (cyan / indigo)
After your sweep + displacement, the 5m 9 EMA crossing above/below the 21 EMA confirms micro order-flow shift. The gap between them acts as a dynamic FVG — separation = imbalance, convergence = equilibrium.
WHY 9 AND 21: The 9 EMA covers roughly 45 minutes — one micro session. The 21 EMA covers ~105 minutes — the 9:30–11:00 kill zone. Together they capture the rhythm of institutional execution.
▸ 1H 9/21 EMA — intraday pulse — OFF by default (cyan / indigo, stepline)
The 9 EMA represents one full trading session (~6.5 hours). If price rides the 1H 9 EMA during expansion = clean momentum. The 21 EMA covers about two trading days — the intraday trend anchor. Price whipping above/below the 1H 9 EMA = chop warning.
WHY 9 AND 21: On the 1H, 9 periods = one session's worth of candles. 21 periods ≈ two full sessions. These match the session profiling logic in Check 2 — you're seeing the same structure as numbers.
▸ 4H 20 EMA — swing direction — ON by default (green, stepline, thick)
This is the primary MA. It represents roughly one trading week. Institutional swing traders watch the 4H 20 EMA for pullback entries. When your expansion candles are pushing away from this level = strong momentum. When they're drifting back = fading expansion.
WHY 20: On the 4H chart, 20 periods = ~3.3 trading days. This captures the core weekly rhythm — the period where institutional swing positions are managed.
▸ DAILY 20 EMA — monthly trend — OFF by default (yellow, stepline)
Roughly one month of trading days. If price is above the D 20 EMA, the intermediate trend supports your intraday bias. Below it, your bullish setups have headwind.
WHY 20: 20 trading days ≈ 1 calendar month. This is the standard period institutional portfolio managers use for intermediate trend assessment.
▸ DAILY 50 SMA — quarterly trend — OFF by default (orange, stepline)
About 2.5 months of data. When the D 20 EMA is above the D 50 SMA = healthy trend. When they converge or cross = transition zone where 4H consolidation becomes more common. Background context, not a trade trigger.
WHY 50: 50 trading days ≈ one quarter. Fund managers and institutional desks use this as the boundary between "trending" and "mean-reverting."
IMPORTANT: Higher-timeframe MAs projected onto a 5-min chart appear as staircase lines (stepline style). This is correct — the staircase shows you exactly where the value was when the higher timeframe last printed. It's not a bug; it's a feature.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT APPEARS ON YOUR CHART
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DEFAULT VIEW (clean — what loads when you first add the indicator):
▸ Checklist panel with all 7 checks + context row
▸ PDH/PDL liquidity lines (blue dashed)
▸ FVG zone (green or red shaded box)
▸ Daily VWAP (amber line)
▸ 4H 20 EMA (green stepline)
▸ Summary badge: TRADE READY / WAIT FOR SETUP / NO TRADE TODAY
OPTIONAL LAYERS (toggle on in settings):
▸ PWH/PWL (purple dashed)
▸ PMH/PML (orange solid, thicker)
▸ Midnight Open (gray dotted)
▸ Weekly VWAP (purple line)
▸ Monthly VWAP (orange line)
▸ 5m 9/21 EMA pair (cyan/indigo)
▸ 1H 9/21 EMA pair (cyan/indigo stepline)
▸ D 20 EMA (yellow stepline)
▸ D 50 SMA (orange stepline)
▸ Price labels on all level lines
All colors are fully customizable in settings.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FULL PROPERTIES / SETTINGS REFERENCE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THRESHOLDS:
▸ Expansion multiplier (1.5) — body must exceed this × ATR(20). Raise for volatile instruments, lower for quieter ones.
▸ Max wick-to-range ratio (0.35) — candle must be cleaner than this threshold to count as expansion.
▸ 4H candles to evaluate (4) — how many candles the script considers for expansion profiling.
SESSIONS:
▸ Asia session (1800–0200) — overnight accumulation window
▸ London session (0200–0500) — primary reversal window
▸ New York session (0930–1600) — execution window
▸ Timezone (America/New_York) — also supports America/Chicago, Europe/London, Asia/Tokyo, UTC
LIQUIDITY LEVELS:
▸ Previous Day H/L (on) — blue dashed, width 2
▸ Previous Week H/L (off) — purple dashed, width 2
▸ Previous Month H/L (off) — orange solid, width 3
▸ Midnight Open (off) — gray dotted, width 1
▸ All colors are customizable per tier
ANCHORED VWAP:
▸ Daily VWAP (on) — amber, width 2
▸ Weekly VWAP (off) — purple, width 2
▸ Monthly VWAP (off) — orange, width 1
MOVING AVERAGES:
▸ 5m 9/21 EMA (off) — cyan fast / indigo slow
▸ 1H 9/21 EMA (off) — cyan fast / indigo slow, stepline
▸ 4H 20 EMA (on) — green, stepline, thick
▸ D 20 EMA (off) — yellow, stepline
▸ D 50 SMA (off) — orange, stepline
▸ All colors customizable
FAIR VALUE GAP:
▸ Plot FVGs on chart (on) — green box = bullish, red box = bearish
DISPLAY:
▸ Show checklist panel (on)
▸ Panel position (top_right) — 6 positions available
▸ Panel text size (small) — tiny / small / normal / large / huge
▸ Header/summary text size (normal) — controls title and badge
▸ Show price labels on levels (on) — small tags at the right edge of each line
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE — STEP BY STEP
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETUP:
1. Add to a 5-minute chart (NQ, ES, or your instrument)
2. The panel auto-populates from 4H, 1H, and daily data — no timeframe switching needed
3. Toggle on additional layers as desired in settings
MORNING ROUTINE:
6:00 AM — Open chart. Panel shows:
▸ Check 1: 4H expanding? If ❌ → no trade today, done
▸ Check 2: What did Asia and London do?
▸ Check 3: Continuation or reversal day?
▸ Context: Price vs VWAP and 4H EMA alignment
6:15 AM — Read auto-generated bias (Check 7). Write it down.
9:15 AM — Panel updates:
▸ Check 4: FVG present? Zone is shaded on chart
▸ Check 5: Nearest liquidity above/below with tier labels
9:30 AM — Watch for Check 6 to flip green (sweep at any tier)
TRADE READY (all checks green):
▸ Drop to 5-min for timing
▸ Wait for displacement + CISD in your bias direction
▸ Use 5m 9/21 EMA cross as micro-confirmation (if enabled)
▸ Enter after confirmation
▸ Stop above/below the sweep
▸ Target the opposite liquidity pool
10:30 AM — In profit, stopped out, or no setup. Done for the day.
KEY RULES:
▸ Check 1 is ❌ → close the laptop
▸ Can't write bias in one sentence → no trade
▸ 0–2 trades per day max
▸ The indicator identifies CONDITIONS, not entries. Final execution is yours.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RECOMMENDED SETUPS BY STYLE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MINIMALIST (learning the framework):
ON: Checklist panel, PDH/PDL, FVG, Daily VWAP, 4H 20 EMA
OFF: Everything else
→ Clean chart, just the essentials. Master the 7 checks first.
INTERMEDIATE (adding confluence):
ADD: PWH/PWL, Midnight Open, 5m 9/21 EMA pair
→ Weekly liquidity for bigger targets, midnight open for directional lean, execution MAs for timing entries.
FULL CONTEXT (experienced trader):
ADD: PMH/PML, Weekly VWAP, 1H 9/21 EMA, D 20 EMA, D 50 SMA
→ Complete institutional map. Every level you might need is on one chart. Use price labels (on) to read values at a glance.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALERTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Three built-in alert conditions:
▸ "4H began expanding" — morning wake-up call: today is potentially a trade day
▸ "External liquidity swept" — fires on the first sweep of ANY enabled tier (PDH, PWH, PMH, etc.)
▸ "ALL CHECKS PASSED" — all 7 conditions met. Eyes on chart — setup is live.
Set via: right-click chart → Add alert → select indicator → choose condition
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MA PERIOD RATIONALE — WHY THESE NUMBERS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Every period was chosen to align with a real institutional time horizon:
5m 9 EMA = ~45 min = one micro-session (the opening drive)
5m 21 EMA = ~105 min = the 9:30–11:00 AM kill zone window
1H 9 EMA = ~1.4 days = one full trading session
1H 21 EMA = ~3.2 days = two full sessions (matches session profiling)
4H 20 EMA = ~3.3 days = one trading week's core rhythm
D 20 EMA = ~1 month = intermediate trend (monthly portfolio reviews)
D 50 SMA = ~2.5 months = quarterly trend (fund allocation cycles)
The 4H 20 EMA is ON by default because it's the single most useful MA for this framework — it directly represents the timeframe the entire strategy is built on.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
UNDERLYING ALGORITHM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The entire framework rests on one cycle:
External liquidity → Internal liquidity → External liquidity
(Sweep stops) → (Fill the FVG) → (Target opposite stops)
▸ The 4H chart tells you the DIRECTION
▸ The session profile tells you the TIMING
▸ The VWAP tells you the INSTITUTIONAL COST BASIS
▸ The MAs tell you whether STRUCTURE supports your bias
▸ The 5-minute chart is for EXECUTION ONLY
You read the book from chapter 1, not from the last page.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TUNING TIPS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
"Check 1 always red" — lower expansion multiplier to 1.2 or 1.0. Different instruments have different volatility profiles.
"FVG never shows" — there's no unfilled 1H gap right now. Wait for the next expansion candle.
"Session labels wrong" — set the Timezone dropdown to match your chart's exchange timezone.
"VWAP looks flat" — if your instrument has no volume data (some forex/CFD feeds), VWAP defaults to HLC3. Switch to a data feed that provides volume, or disable VWAP.
"Too many lines on chart" — start with the Minimalist setup (see Recommended Setups). Only toggle on new layers after you've used the basic setup for at least a week.
"4H EMA appears as staircase" — this is correct. Higher-timeframe data on a lower-timeframe chart updates in steps. The staircase shows you the exact value at the last 4H close.
"Panel covers price" — change panel position to a different corner, or reduce text size.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TIMEFRAMES & INSTRUMENTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Designed for: 5-minute chart (execution timeframe)
Internally references: 4H (bias), 1H (FVG), Daily/Weekly/Monthly (liquidity + MAs)
Works on: Futures (NQ, ES, YM, RTY), Forex, Crypto, Equities
Best suited for: Intraday traders with a 9:30–11:00 AM ET window
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY PINE SCRIPT v6
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This script is written in Pine Script v6 — the latest version of PulseWire's language (released Nov 2024). Benefits over v5:
▸ Strict boolean logic — booleans are always true or false, never na. Eliminates an entire class of edge-case bugs in complex conditions like the multi-check panel.
▸ Short-circuit evaluation — and/or operations stop evaluating the moment the result is determined. Significant performance improvement for scripts with many compound conditions (which this checklist uses heavily).
▸ Future-proof — all new PulseWire features going forward are v6 exclusive. Dynamic requests, footprint data, enhanced arrays, and upcoming additions will only work on v6.
▸ Cleaner integer division — 5/2 now correctly returns 2.5 instead of 2. Important for any ratio calculations (expansion multiplier, wick ratios).
If you're migrating from the v1 script (which was v5), the logic is identical — v6 just makes it faster and more reliable.
x.com/tsmake
Developed after reading: x.com
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DISCLAIMER
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This indicator is an EDUCATIONAL TOOL designed to enforce trading discipline. It does NOT generate buy/sell signals, does NOT constitute financial advice, and does NOT guarantee profitability. The checklist identifies structural conditions — the final entry decision, risk management, and position sizing are entirely your responsibility.
Trading futures, equities, options, forex, and crypto carries significant risk of loss. Past performance does not guarantee future results. Backtest thoroughly, start with a simulator, and never risk capital you cannot afford to lose. Consult a licensed financial advisor before making trading decisions.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TAGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ICT, Smart Money, Liquidity, Fair Value Gap, FVG, Session Profile, VWAP, PDH, PDL, PWH, PWL, PMH, PML, Institutional, Checklist, Pre-Market, Bias, External Liquidity, Internal Liquidity, Moving Average, 4H, NQ, ES, Futures, Forex Indicator

Indicator

Confluence Matrix [JOAT]Confluence Matrix
Introduction
Every component in a professional trading system should serve a purpose, and ideally, no single component should bear the entire weight of decision-making alone. The best entries occur when multiple independent analytical methods all point in the same direction simultaneously — a confluence event that dramatically raises the probability that the observed setup reflects genuine market structure rather than random noise. The Confluence Matrix is built around this philosophy, integrating six distinct analytical modules into a single, cohesive overlay indicator with a unified seven-point scoring framework that gates every trade entry.
The six integrated modules are: HEMA regime analysis (three-layer Hull-EMA Hybrid with two-bar confirmation), Break of Structure and Change of Character market structure (swing pivot-based BOS and CHoCH detection), a triple-smoothed Fibonacci channel (0.618, 1.618, and 2.618 bands around a triple-EMA basis), an ATR compression detection engine (volatility squeeze state), Z-score cumulative impulse detection (statistically significant momentum streaks), and an OLS linear regression combined with cumulative delta proxy and volume RSI. Each module contributes one integer point to a directional score. Entries require a minimum score threshold — meaning price must be supported by a configurable number of simultaneously aligned modules before a position is opened.
Beyond signal generation, the indicator includes a simulated position tracking system that monitors open virtual positions with defined entry prices, take-profit levels, stop-loss levels, and a trailing stop mechanism. This system does not execute real trades — it visualizes what a rule-based system following the indicator's own signals would have done, providing an educational and contextual layer that helps users understand how the signals sequence in live trading conditions. All trade signals are confirmed-bar only, with no look-ahead repainting. The fifteen-row dashboard, ten alert conditions, and extensive visual customization options make this the most comprehensive single-overlay indicator in the JOAT suite.
Core Concepts
1. HEMA Three-Layer Regime with Two-Bar Confirmation
The HEMA (Hull-EMA Hybrid) forms the structural backbone of the regime assessment. Three independent HEMA instances at periods 20, 50, and 100 represent the fast, mid, and slow trend layers. Full bull regime requires ascending order of all three (fast above mid above slow). Full bear regime requires descending order. The two-bar confirmation state machine requires two consecutive bars of raw alignment before the confirmed regime variable updates — preventing rapid back-and-forth flipping on borderline crossovers.
f_hema(src, len) =>
ta.ema(2 * ta.ema(src, len / 2) - ta.ema(src, len), math.round(math.sqrt(len)))
hema1 = f_hema(close, 20)
hema2 = f_hema(close, 50)
hema3 = f_hema(close, 100)
rawBull = hema1 > hema2 and hema2 > hema3
rawBear = hema1 < hema2 and hema2 < hema3
confBull = rawBull and rawBull
confBear = rawBear and rawBear
The CHoCH (Change of Character) logic builds directly from this: a bullish BOS that occurs while confBear is true represents structural bullish momentum emerging from within a confirmed bear regime — the first evidence of potential regime reversal.
2. BOS and CHoCH with Visual Lines
Break of Structure detection uses ta.pivothigh and ta.pivotlow to track prior swing levels. BOS events draw labeled lines on the chart: teal/red for standard BOS continuation, violet-dashed for CHoCH. All line drawing uses line.new() with fixed coordinates on confirmed bars, and extends the right endpoint to the next BOS event for visual continuity across the chart.
chochUp = bosUp and confBear
chochDn = bosDn and confBull
lineStyle = (chochUp or chochDn) ? line.style_dashed : line.style_solid
lineColor = chochUp ? color.purple : bosUp ? color.teal : chochDn ? color.purple : color.red
3. Triple-Smoothed Fibonacci Channel
The Fibonacci channel applies the same triple-EMA smoothing used in the FVC indicator to produce a noise-resistant basis line, then projects Fibonacci-ratio bands (0.618, 1.618, 2.618) both above and below using ATR or standard deviation as the volatility measure. Within the Confluence Matrix, the channel serves a dual purpose: its own slope defines the "fib trend" score contribution, and its band levels serve as reference zones for proximity analysis.
basis = ta.ema(ta.ema(ta.ema(hlc3, basisLen), basisLen), basisLen)
fibTrend = basis > basis ? 1 : basis < basis ? -1 : 0
The 0.618 and 1.618 inner bands are filled with a gradient between basis and inner band, with the fill opacity tied to the confirmed regime — teal fills in bull regime, red fills in bear regime, gray in neutral.
4. ATR Squeeze Detection
The ATR squeeze module uses the same compression ratio logic as the VSO indicator: comparing a short-term EMA-smoothed ATR against a longer baseline to determine whether volatility is contracting or expanding. When volatility is contracting (squeezing), the squeeze score contribution is zero — the market is not yet expressing directional energy. When volatility is expanding, the module contributes to the appropriate directional score.
atrShort = ta.ema(ta.tr(true), sqzLen)
atrLong = ta.ema(atrShort, sqzLen * 2)
squeezing = atrLong > atrShort
sqzOK = not squeezing
5. Z-Score Cumulative Impulse
The Z-score impulse module tracks separate cumulative bull and bear momentum streaks, normalizes them against rolling sma/stdev, and marks statistically significant events with diamond markers (◆) plotted above and below the price bars. These markers are displayed at confirmed bars only. The Z-score values for both directions are shown in the dashboard and contribute one point each to the long and short scores when their respective thresholds are exceeded.
cumBull := close > close ? nz(cumBull ) + (close - close ) : 0
cumBear := close < close ? nz(cumBear ) + (close - close) : 0
zBull = (cumBull - ta.sma(cumBull, zLen)) / ta.stdev(cumBull, zLen)
zBear = (cumBear - ta.sma(cumBear, zLen)) / ta.stdev(cumBear, zLen)
6. OLS Regression, Delta Proxy, and Volume RSI
The sixth analytical layer combines three sub-components. The OLS linear regression (using the same manual implementation as the ARO indicator) provides the Pearson R correlation quality metric and theta angle, which together determine whether the regression score contributes. The cumulative delta proxy (bar-range-based buying/selling pressure estimate) determines the delta directional score. Volume RSI (RSI applied to volume series) provides the volume quality gate. All three sub-components are evaluated in the context of long or short scoring.
regressionScore = pearsonR > minR and math.abs(theta) > minTheta ? (theta > 0 ? 1 : -1) : 0
deltaScore = deltaPos ? 1 : -1
volumeScore = highVol ? (localBull ? 1 : -1) : 0
7. Seven-Point Confluence Scoring
Each of the six modules contributes one integer point to either the long score or the short score (some modules contribute to both). The seven scoring variables (ls1 through ls7 for long, ss1 through ss7 for short) are summed individually so each module's contribution is transparent and auditable. The minimum score threshold (default: 5 of 7) gates entry conditions.
ls1 = confBull ? 1 : 0 // HEMA regime
ls2 = lastBOSDir == 1 ? 1 : 0 // Last BOS direction
ls3 = fibTrend == 1 ? 1 : 0 // Fibonacci channel trend
ls4 = sqzOK ? 1 : 0 // Squeeze OK (not compressing)
ls5 = regressionScore == 1 ? 1 : 0 // Regression + Pearson
ls6 = deltaPos ? 1 : 0 // Delta proxy bullish
ls7 = highVol and localBull ? 1 : 0 // Volume RSI + local trend
longScore = ls1 + ls2 + ls3 + ls4 + ls5 + ls6 + ls7
8. Simulated Position Tracking with Trailing Stop
The position tracker uses persistent var variables to track open trade state. Entry occurs when a BOS trigger or HEMA crossover fires, the score meets the minimum threshold, the bar is confirmed, and no position is currently open in that direction. Stop-loss is set at ATR below the entry for longs (above for shorts). Take-profit is set at a multiple of ATR from entry. The trailing stop mechanism moves the SL to breakeven once the position has moved one ATR in the favorable direction — locking in capital protection once momentum is confirmed.
var int posDir = 0
var float openTP = na
var float openSL = na
var float entryPx = na
longEntry = (bosUp or hemaXover) and longScore >= minScore and barstate.isconfirmed and posDir <= 0
if longEntry
posDir := 1
entryPx := close
openTP := close + atr14 * tpMult
openSL := close - atr14 * slMult
// Trailing stop to breakeven
if posDir == 1 and high - entryPx > atr14
openSL := math.max(openSL, entryPx)
Exits occur on TP hit, SL hit, or confirmed regime flip opposing the position direction (confBear while long, confBull while short).
9. Proximity-Gradient Bar Coloring
Bar colors are driven by the distance between the current close and the HEMA mid layer (hema2), normalized by the range between the fast and slow HEMA layers. This produces a bar coloring scheme that reflects not just direction but the degree of extension relative to the HEMA structure's own internal spread — a more dynamically calibrated proximity measure than a fixed ATR reference.
hemaRange = math.abs(hema1 - hema3)
hemaDist = hemaRange > 0 ? math.abs(close - hema2) / hemaRange : 0
hemaProxAlpha = math.min(math.round(hemaDist * 60), 75)
Features
Six Integrated Modules: HEMA regime, BOS+CHoCH structure, Fibonacci channel, ATR squeeze, Z-score impulse, and OLS regression+delta+volume all active simultaneously.
Seven-Point Scoring System: Each module contributes one point to a transparent, auditable confluence score with configurable minimum threshold for entry.
Two-Bar HEMA Confirmation: Prevents false regime transitions on single-bar HEMA crossovers.
CHoCH Detection: BOS events opposing the confirmed regime are classified as Change of Character and drawn with violet dashed lines.
Z-Score Diamond Markers: Statistically significant momentum streak markers displayed as ◆ above and below bars on confirmed events.
Triple-Smoothed Fibonacci Channel: 0.618, 1.618, and 2.618 bands with regime-conditional gradient fills.
Simulated Position Tracking: Virtual positions with TP, SL, and trailing stop to breakeven — visualizing the signal system in action.
Proximity-Gradient Bar Coloring: HEMA-internal-range-normalized distance drives bar color alpha for structure-relative visual encoding.
BOS Lines: Teal/red for continuation BOS, violet dashed for CHoCH — drawn at confirmed bars with horizontal extensions.
Fifteen-Row Dashboard: Position direction, regime, last BOS, CHoCH state, fib trend, volatility, Pearson R, theta, bull Z, bear Z, volume RSI, delta proxy, long score, short score, and minimum score threshold.
Ten Alert Conditions: Long entry, short entry, long exit, short exit, CHoCH up, CHoCH down, bull impulse, bear impulse, BOS up, BOS down — all as constant string alerts.
Input Parameters
HEMA Settings:
Fast/Mid/Slow Lengths: HEMA layer periods (defaults: 20, 50, 100)
Structure Settings:
Swing Length: Pivot lookback for BOS/CHoCH detection (default: 10)
Fibonacci Channel Settings:
Basis Length: Triple-EMA period (default: 20)
Volatility Type: ATR or StDev (default: ATR)
Volatility Length: Period for volatility measure (default: 14)
Z-Score Settings:
Z Lookback: Rolling window for normalization (default: 50)
Z Threshold: Sigma level for impulse trigger (default: 2.0)
Regression Settings:
Regression Length: Bar count for OLS calculation (default: 50)
Min Pearson R: Minimum |R| for regression score contribution (default: 0.6)
Min Theta: Minimum angle for regression score contribution (default: 5)
Entry/Exit Settings:
Minimum Score: Points required for entry (default: 5)
TP Multiplier: ATR multiple for take-profit level (default: 2.0)
SL Multiplier: ATR multiple for stop-loss level (default: 1.0)
Display Settings:
Show HEMA Layers: Toggle individual HEMA line visibility (default: true)
Show Trend Cloud: Toggle HEMA gradient fill (default: true)
Show Fibonacci Channel: Toggle Fibonacci band fills (default: true)
Show BOS Lines: Toggle structural break lines (default: true)
Show Z Markers: Toggle diamond impulse markers (default: true)
Show Position Lines: Toggle TP/SL/entry lines (default: true)
Show Bar Colors: Toggle proximity gradient bar coloring (default: true)
Show Dashboard: Toggle the fifteen-row table (default: true)
How to Use This Indicator
Step 1: Read the Score Before Acting on Any Signal
The most important discipline when using the Confluence Matrix is to check the long score or short score before taking any action on a signal. A BOS up event alone carries one point; it does not guarantee a high-probability setup. A BOS up event accompanied by a score of 6 or 7 — meaning five or six other modules are simultaneously aligned — is a materially different situation. Begin each analysis session by reading the dashboard scores and understanding which modules are contributing and which are not.
Step 2: Use the CHoCH for Regime Change Awareness
CHoCH events are the most important structural signals in the indicator. A CHoCH up (bullish BOS during a confirmed bear regime) does not mean immediately go long — it means the structural assumption of the prior bear regime is being challenged. Wait for the regime confirmation to update, watch for the long score to rise as modules align with the new potential bull regime, and then consider entry on the next confirmed BOS in the bull direction backed by a high score. The sequence matters: CHoCH first, then regime confirmation, then high-score entry.
Step 3: Let the Simulated Position Tracker Teach Pattern Recognition
The position tracker lines (entry, TP, SL) on the chart are an educational tool. Over time, reviewing where simulated positions were opened and closed relative to the subsequent price action reveals patterns about which score thresholds, which module combinations, and which entry triggers produce the cleanest outcomes on the specific instrument you are analyzing. Use this visual feedback to calibrate your own minimum score setting and module weighting preferences.
Step 4: Manage Visual Complexity Through Selective Display
Six integrated modules produce a significant amount of simultaneous chart information. New users should start with all display elements enabled to understand the full system, then progressively toggle off elements they are not actively using for a given analysis. The dashboard always reflects the underlying calculations regardless of display settings — so even with Fibonacci fills and BOS lines hidden, the score, regime, and all module states remain visible in the dashboard.
Indicator Limitations
The simulated position tracking system is a visual and educational tool only. It does not place real orders, cannot account for slippage, spread, or commission costs, and its results should never be used as a basis for financial decisions. Simulated performance and real-world trading performance are categorically different.
The seven-module scoring system assigns equal weight to all contributing modules. In practice, some modules (e.g., HEMA regime) may carry more structural significance than others (e.g., volume RSI). The equal-weight assumption is a simplification.
Six integrated modules means six sets of parameters to configure. The default settings are calibrated for daily and 4-hour chart analysis on liquid instruments. Heavy optimization of all parameters to historical data risks overfitting — the resulting configuration may perform well on history but fail on new data.
The OLS regression component requires sufficient bars to produce stable Pearson R and theta values. In the first regression-length bars of any chart session, these values will be based on very short windows and should not be treated as reliable quality filters.
All modules operate on the chart's native timeframe. The indicator does not incorporate multi-timeframe analysis internally — users seeking MTF context should reference the MCG indicator in combination.
Proximity bar coloring uses the HEMA internal range (hema1 minus hema3) as the normalizer. When all three HEMA layers are closely clustered (flat, sideways market), this range approaches zero, which can cause division instability in the proximity calculation. A guard for this case is included but the coloring will be less informative during flat HEMA conditions.
The trailing stop to breakeven mechanism fires when the position has moved one ATR in the favorable direction. In very high-volatility conditions with large ATR values, this may mean the SL does not move to breakeven until the position is significantly extended, reducing capital protection in fast-moving markets.
Originality Statement
The Confluence Matrix is the most comprehensive indicator in the JOAT suite and represents an original architectural achievement in the design of multi-module overlay indicators.
The seven-point confluence scoring system — where six independent analytical modules each contribute a single integer vote, and entry is gated by a minimum aggregate threshold — is an original framework for combining heterogeneous technical signals into a unified, transparent decision criterion.
The combination of HEMA regime, BOS/CHoCH structure, Fibonacci channel, ATR squeeze, Z-score impulse, and OLS regression+delta+volume in a single non-repainting overlay indicator with no external indicator dependencies is an original integration not replicated by any single publicly available PulseWire indicator.
The simulated position tracking system with trailing stop to breakeven — driven entirely by the indicator's own scoring and signal conditions, visualized directly on the chart — is an original self-contained feedback mechanism for understanding the system's real-time behavior.
The CHoCH classification (BOS event opposing the confirmed two-bar regime, not merely the raw regime) adds a confirmation layer to the standard CHoCH definition that reduces false change-of-character signals during borderline regime periods.
The proximity bar coloring normalized by the internal HEMA range (hema1 minus hema3) rather than by a fixed ATR reference creates a structure-relative alpha calculation that adapts to the current degree of HEMA layer separation — a more contextually aware coloring approach than fixed-reference alternatives.
The use of ten constant-string alert conditions (not dynamic or computed strings) ensures full compatibility with PulseWire's alert system, including webhook delivery and multi-condition alert construction.
Disclaimer
The Confluence Matrix is provided for educational and informational purposes only. It is a technical analysis tool and does not constitute financial advice. The simulated position tracking feature is for educational visualization only and does not represent actual trade results. No scoring system or multi-indicator confluence framework can guarantee profitable trading outcomes. All trading involves risk, including the potential loss of principal. Users are solely responsible for their own trading decisions. Please consider your individual risk tolerance and consult a licensed financial professional before engaging in any trading activity.
-Made with passion by officialjackofalltrades
Indicator

SKILLUP ICTSKILLUP ICT is a comprehensive institutional trading toolkit built on ICT (Inner Circle Trader) concepts, designed to work seamlessly across all timeframes — including the Daily chart.
Session Highs & Lows
Automatically detects and plots the High and Low of four key trading sessions: London (02:00–05:00 NY), AM (09:30–12:00), Lunch (12:00–13:30), and PM (13:30–16:00). Levels are stored indefinitely and activated only when price approaches them, keeping the chart clean while preserving full historical context. Supports a configurable lookback window and activation distance.
Midnight Open
Marks the exact 00:00 NY open price each day, immune to the 18:00 futures date rollover issue common in other indicators.
F.P. FVG (First Presented Fair Value Gap)
Detects the first Fair Value Gap of the day at three key times: 00:00, 09:30, and 13:30 NY. Displayed as clean boxes that persist on the chart.
RTH Opening Gap
Tracks the overnight gap between the 16:00 RTH close and the 09:30 open, with quartile levels and optional delineation lines.
NWOG / NDOG (New Weekly / Daily Opening Gap)
Plots the gap between the previous close and the current open at the weekly and daily level. Includes the Event Horizon — a dynamic level between the two most recent gaps when they are non-overlapping.
Key Features
Works on all timeframes including Daily
Fully timeframe-independent line anchoring
Optional sweep removal on wick touch
Configurable colors, lookback, and activation distance
Object-budget safe — stays well within PulseWire's 500-object limit Indicator

Indicator

ICT Auto-Validated SMCICT Validated SMC v1 — "Don't just label. Validate."
Most SMC indicators slap labels on your chart and call it a day. Every Order Block gets drawn. Every FVG gets highlighted. No filtering, no context, no idea whether what you're looking at is actually worth trading or just noise.
This indicator takes a different approach. Every concept has to earn its place on your chart.
Why this indicator is different:
Market Structure — BOS and CHoCH on both swing and internal levels, with optional HTF structure overlay so you can see if you're trading with the current or against it
Order Blocks — only drawn when they pass validation: liquidity sweep before the OB, displacement (FVG) after it, premium/discount alignment, and killzone timing. Each OB gets a confluence score (★ to ★★★★★) so you can tell at a glance which ones are worth watching
Breaker Blocks — when an OB fails and gets traded through, it flips into a breaker. Valid on first retest, then expires. One of the cleanest levels you'll find
Fair Value Gaps — displacement-filtered (minimum ATR multiple on the middle candle body, not just any gap), with Consequent Encroachment at 50%
Inversion FVGs — mitigated FVGs that flip direction. Bullish FVG gets run → becomes bearish IFVG resistance, and vice versa
Balanced Price Range — where a bullish FVG and bearish FVG overlap. Rare, but when they show up, pay attention
OTE Zones — Fibonacci 61.8%–78.6% retracement of the displacement leg after a structure break, with automatic detection of OB and FVG overlap inside the zone (triple confluence)
Liquidity — Equal Highs / Equal Lows detection with configurable tolerance, plus live sweep markers when price takes out a level and closes back inside
Premium / Discount — visual overlay of the current swing range with equilibrium line
Killzones — Asian, London, NY AM, NY PM session highlighting in EST
Signal engine
Optional trade signals that only fire when multiple factors align — you set the minimum confluence score. Signals require price to actually be touching a validated zone (OB, FVG, OTE, or Breaker), and you can enforce HTF alignment and killzone timing on top. Built-in cooldown prevents the same signal from firing repeatedly while price sits in a zone. SL and TP levels are plotted automatically.
Info panel
Top-right dashboard shows you everything at a glance: current structure, HTF alignment status, active zone counts, session info, validation settings, and the current signal state with score.
SETTINGS GUIDE
Market Structure
Swing Length (default 10) — how many bars on each side to confirm a swing high or low. Lower values catch more swings but pick up noise. Higher values give you cleaner structure but lag more. 10 is a solid middle ground for 15M–1H charts. On 5M you might drop to 7, on 4H you might push to 14.
Internal Structure Length (default 5) — same idea but for sub-structure. Only matters if you turn on "Show Internal Structure." Useful for seeing the BOS/CHoCH happening inside a larger swing, but it does add visual clutter. I leave it off by default.
Show Swing Points — the small ▲/▼ markers at confirmed pivots. Helpful when you're learning to read structure, easy to turn off once you don't need them.
Higher Timeframe Alignment
Enable HTF Structure Check (default on) — pulls structure direction from a higher timeframe so you can see whether your current-TF setup trades with or against the bigger picture. No repainting — uses confirmed bars only (lookahead off).
HTF Timeframe (default 240 = 4H) — which timeframe to check. Standard pairings: 5M→1H, 15M→4H, 1H→D, 4H→W. Don't go more than ~4x your chart TF or the alignment signal gets too slow to be useful.
HTF Swing Length (default 10) — swing detection sensitivity on the HTF. Usually fine to leave at 10 unless your HTF is very high (Weekly/Monthly) where you might want 5–7.
Show HTF Structure on Chart — draws dashed lines for the current HTF swing high and low directly on your chart. Nice visual anchor for where the big-picture range sits.
Order Blocks
Max Visible OBs (default 5) — how many OB boxes stay on chart at once. Old ones get cleaned up automatically. 5 keeps the chart readable without losing important levels.
Require Liquidity Sweep (default on) — the OB candle has to have swept the prior candle's low (for bullish) or high (for bearish) before it qualifies. This is ICT's concept of the market grabbing liquidity before reversing. Turning this off gives you more OBs but weaker ones.
Require Displacement (default on) — the move off the OB has to leave a Fair Value Gap within the next few candles. This confirms the move was institutional and impulsive, not just a drift. Again, turning it off = more OBs, lower average quality.
Show Mitigated OBs — when price trades through an OB and it expires, should the ghost of the box stay on chart (grayed out) or disappear? Off by default to keep things clean.
Breaker Blocks
Max Visible Breakers (default 5) — same cap logic as OBs.
Bullish/Bearish Breaker Fill — color pickers. Breakers use dashed borders to visually distinguish them from active OBs.
Breakers are automatically created when an OB gets mitigated — you don't configure their detection separately. They activate on the first retest (border thickens) and expire if price trades through them a second time. This lifecycle is hardcoded because that's how they work — a breaker that's been retested twice isn't a breaker anymore.
Fair Value Gaps
Max Visible FVGs (default 5) — caps active FVG boxes on chart.
Min Displacement (ATR Multiple) (default 1.0) — this is the filter that separates real FVGs from noise. The middle candle's body (close minus open, not the wick range) has to be at least this many times the 14-period ATR. At 1.0 you get FVGs that represent genuinely impulsive moves. Push it to 1.5 or 2.0 if you only want to see the really aggressive displacements. Drop to 0.5 if you want more gaps and don't mind weaker ones.
Show Consequent Encroachment (default on) — draws a dotted line at the 50% midpoint of each FVG. This is the level ICT identifies as the point where smart money has been "partially filled" — price often reacts here rather than filling the entire gap.
Show Mitigated FVGs — same idea as mitigated OBs. Off by default.
Show Inversion FVGs (default on) — when a FVG gets fully traded through, it can flip direction and act as S/R from the other side. A bullish FVG that gets broken to the downside becomes a bearish IFVG (resistance). These are drawn with dashed yellow boxes. They expire after being retested once and then traded through.
Balanced Price Range
Show BPR Zones (default on) — when a bullish FVG and a bearish FVG overlap, the overlapping area is a BPR. These are genuinely rare, and when price returns to one it tends to get a strong reaction. Drawn with a solid purple box and ◆ marker.
BPRs mitigate when price closes decisively beyond the zone (by more than the zone's own height in either direction). No additional settings needed — the detection is automatic based on your active FVGs.
Liquidity
Show Liquidity Levels (default on) — master toggle for the liquidity features.
Show Equal Highs / Lows (default on) — scans recent swing pivots for prices that are nearly identical. These clusters are where stop losses accumulate and smart money targets them.
EQH/EQL Tolerance (default 0.15%) — how close two swing points need to be (as a percentage of price) to count as "equal." 0.15% works well for most crypto and forex pairs. For indices you might tighten to 0.08–0.10%. If you're getting too many false EQH/EQL markings, lower this. If you're missing obvious clusters, raise it.
Show Liquidity Sweeps (default on) — plots a ⚡ marker when a candle wicks above a recent swing high (or below a swing low) but closes back inside. This is the "sweep and reject" — one of the most actionable things on any chart.
Premium / Discount
Show Premium/Discount Zones (default on) — shades the area above equilibrium as premium (bearish color) and below as discount (bullish color), based on the current swing range. Bullish setups should ideally trigger in discount, bearish in premium.
Show Equilibrium Line (default on) — the 50% midpoint of the range. Drawn as a dotted gray line. In ranging markets, price tends to gravitate here. In trending markets, it acts as a line in the sand for directional bias.
Killzones
Asian KZ (20:00–00:00 EST, default off) — the Asian range is more of a reference for the London open to target than a session to trade in. Included for context but off by default.
London KZ (02:00–05:00 EST, default on) — the first high-probability session. London open displacement sets up the day.
NY AM KZ (08:30–11:00 EST, default on) — the second major window. 08:30 aligns with US economic releases, 09:30 with the equity open. This is where the biggest moves tend to happen.
NY PM KZ (13:00–16:00 EST, default off) — afternoon session. Can produce setups but less reliable. Off by default.
Killzone Transparency (default 92) — how visible the background shading is. 92 is barely there, which is the point — you want to know you're in a killzone without it competing with your zones and levels. Lower the number if you want it more obvious.
All times are EST (New York) regardless of your chart timezone.
Optimal Trade Entry (OTE)
Upper Fib Level (default 0.786) — the deeper boundary of the OTE zone. 78.6% retracement means price has pulled back significantly into the prior leg.
Lower Fib Level (default 0.618) — the shallower boundary. Together with 78.6% this defines the "sweet spot" ICT teaches as the optimal entry area.
Show 50% / 61.8% / 78.6% Lines (default on) — draws the individual fib levels as dotted lines inside the OTE box. The 50% (equilibrium of the leg) is especially useful as a decision point.
Max Visible OTE Zones (default 3) — OTE zones are transient by nature, so you don't need many on screen. They activate when price enters the zone (border thickens) and invalidate if price blows through the leg's origin.
OTE zones automatically check whether an active Order Block or FVG sits inside them. When they overlap you get labels like "OTE + OB" or "OTE + OB + FVG" — that triple confluence is one of the highest-probability setups in this entire framework.
Signal Generation
Enable Trade Signals (default on) — master toggle for the ▲/▼ arrows. Everything else in this section is irrelevant when this is off.
Min Confluence Score (default 4) — the threshold before a signal fires. The scoring works like this: touching an OB = +2, touching an OTE = +2, touching an FVG = +1, touching a Breaker = +1, HTF alignment = +1, in killzone = +1, correct premium/discount zone = +1, structure direction agrees = +1. Max theoretical score is 10. At the default of 4, you need at least two meaningful factors lining up. Raise it to 5–6 if you want fewer, stronger signals. Drop to 3 if you're using this more as an alert system and want to evaluate setups yourself.
Require HTF Alignment (default on) — long signals only fire when the HTF is bullish, shorts only when HTF is bearish. This alone filters out a huge number of counter-trend traps.
Require Active Killzone (default off) — when on, signals only fire during London or NY sessions. Aggressive filter, but it keeps you out of the low-volume chop.
Show Stop Loss / Take Profit (default on for both) — SL is placed at the bottom of the zone that triggered the signal (OB low, FVG low, OTE leg origin). TP targets the opposite swing (swing high for longs, swing low for shorts). These are starting points, not gospel — you should manage the trade based on what price does at the next level.
Signal Cooldown (default 10 bars) — minimum bars between signals in the same direction. Without this, you'd get repeated long arrows every bar while price sits inside a bullish OB. 10 bars is enough to prevent spam without missing a genuine re-entry. On lower timeframes (1M–5M) you might drop to 5. On higher timeframes (4H+) you could push to 15–20.
Confluence Scoring
Show Confluence Score (default on) — enables the scoring system that rates each OB.
Minimum Score to Display Setup (default 3) — OBs scoring below this are hidden entirely. This is separate from the signal threshold — this filters which OBs appear on chart at all, while the signal threshold filters which setups generate trade arrows. You might show OBs at score 3+ but only signal at score 5+, for example.
Colors & Display
Bullish / Bearish — master colors used across the indicator for directional elements.
FVG, OB, Sweep fills — individual color pickers for each element type. The defaults use distinct colors (blue for OBs, green/red for FVGs, yellow for sweeps, purple for BPR) so nothing blends together.
Show Info Panel — the dashboard in the top right. Shows structure state, HTF alignment, active zone counts, session info, validation settings, best OB score, and current signal status. Turn it off if you already know what you're looking at and want the screen space back.
Chart Label Size / Panel Text Size — tiny, small, normal, or large. Small works on most screen sizes. Use tiny on mobile or if you're running a lot of chart panels.
What makes this different from the 500 other SMC indicators out there:
OBs require a liquidity sweep AND displacement — not just "last red candle before green." Both filters are toggleable if you want to relax them, but the defaults are strict on purpose.
Every OB is scored based on how many factors align (sweep, displacement, killzone, premium/discount, HTF direction). Low-scoring setups get filtered out entirely.
FVGs require actual displacement — the middle candle body has to move at least 1x ATR. No more tiny gaps on ranging candles cluttering your chart.
IFVGs and Breaker Blocks have proper lifecycle management — they activate on retest and expire when traded through. They don't just sit there forever.
OTE zones automatically check for OB and FVG overlap, flagging triple confluence setups.
HTF structure is pulled from a configurable higher timeframe with no repainting (lookahead off).
Recommended setup:
Start on the 15M with HTF set to 4H, or 1H with HTF set to Daily. Keep both validation filters on (sweep + displacement) and minimum score at 3. Turn off internal structure unless you need it — it gets noisy. Enable London + NY AM killzones for the cleanest setups.
Defaults are opinionated. I'd rather show you 3 high-quality setups than 30 mediocre ones. Adjust the filters to your style, but if you're turning everything to minimum just to see more signals, you're missing the point. Indicator

Killzones & Key LevelsThe ICT Killzones + Key Levels indicator is a comprehensive technical analysis tool that consolidates institutional trading logic and ICT (Inner Circle Trader) concepts into a single interface. Its primary distinction lies in optimizing all calculations based on actual market opening times—specifically the New York 18:00 session rollover—rather than the standard midnight (00:00) reset.
It visually represents critical Killzone regions, such as Asia, London, New York AM/PM, and New York Lunch, using dynamic boxes on the chart. These zones highlight periods of peak volatility and liquidity, clarifying areas where price is most likely to react. Additionally, it calculates session-based Daily, Weekly, and Monthly (DWM) open levels to align with institutional data, making intraday bias much easier to determine.
The indicator provides a True Day Open (TDO => NYMO) level as a vital reference point throughout the day while automatically tracking Previous Day, Week, and Month Highs and Lows (H/L). By drawing vertical day-divider lines at 18:00, it allows traders to see the "true" trading day. This enables Futures and Forex traders to analyze market cycles based on institutional liquidity flow rather than just calendar hours.
Finally, it includes a volatility analysis table that displays the current price range for each session. With a fully customizable structure, you can adjust sessions, colors, and timeframes to fit your specific strategy. In essence, this tool serves as a professional roadmap for Smart Money Concepts (SMC) traders who prioritize session structure over traditional timekeeping. Indicator

Indicator

H4 Open Marker + 2H Trendline (ICT Times)This indicator helps ICT traders visualize H4 session opens and the first 2 hours of price action with dynamic labeling. ( Note: insight came from personal study of ICT concepts)
🔹 FEATURES:
• Marks H4 candle opens at ICT times (1AM, 5AM, 9AM, 1PM, 5PM, 9PM) based on your local time zone
• Draws a horizontal trendline at the open price that extends for the first 2 hours only
• Time labels positioned dynamically:
- Bullish candles → label BELOW the candle (pointing up)
- Bearish candles → label ABOVE the candle (pointing down)
• Optional vertical lines at each selected H4 open
• Configurable colors, line styles, and label sizes
🔹 SETTINGS:
• UTC Offset – Adjust to your time zone (e.g., -5 for New York EST)
• Individual toggles for each H4 session (1AM, 5AM, 9AM, 1PM, 5PM, 9PM)
• Vertical line: color, style (Solid/Dashed/Dotted)
• 2H Trendline: color, style
• Label: background color, text color, size
🔹 HOW TO USE:
1. Add the indicator to your chart
2. Set your UTC offset correctly for your time zone
3. Toggle on/off specific H4 sessions you want to see
4. The horizontal line will appear at the H4 open and extend for the next 2 hours
5. Labels automatically position based on candle direction
🔹 NOTES:
• Only shows the last 7 days of data to avoid clutter
• Works on any timeframe, but designed for H4 analysis
• Max 500 lines drawn for performance. Indicator
