FVG ChannelThis script is a modified and expanded derivative of “FVG Channel ” by LuxAlgo. The original FVG detection, active-level aggregation, close-based mitigation, smoothed channel concept, and internal channel-level framework were adapted from that work. This version adds confirmed-bar processing, capped FVG storage, normalized and double-smoothed boundaries, recovery-based signal logic, configurable overextension requirements, signal cooldowns, optional volume confirmation, separate standard and Super classifications, alerts, and simplified historical target/stop measurements. The original work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International licence, and this modified version is distributed under the same licence. It is intended for noncommercial use, and changes from the original implementation have been clearly identified.
### Overview
FVG Channel converts active Fair Value Gap reference levels into a smoothed adaptive price channel.
The script identifies confirmed bullish and bearish FVG structures, stores one reference level from each active gap, removes levels after close-based mitigation, and averages the remaining bullish and bearish references.
These averages are smoothed twice to create the channel boundaries. The channel also includes three configurable internal levels, confirmed recovery signals, optional volume confirmation, standard and Super signal classifications, alerts, target and stop reference lines, and simplified historical outcome tables.
The indicator is designed to help users examine:
* areas where multiple unmitigated FVG references are concentrated;
* price overextension beyond the adaptive channel;
* confirmed recovery back inside the channel;
* stronger wick-extension conditions;
* historical target and stop outcomes under user-selected settings.
The script is intended for standard candlestick or bar charts. It does not predict future prices and does not provide automatic trade instructions.
## Fair Value Gap detection
A bullish FVG is identified when:
* the current low is above the high from two bars earlier;
* the middle candle closes above that earlier high;
* the current chart bar is confirmed.
For each bullish FVG, the script stores the high from two bars earlier as its reference level.
A bearish FVG is identified when:
* the current high is below the low from two bars earlier;
* the middle candle closes below that earlier low;
* the current chart bar is confirmed.
For each bearish FVG, the script stores the low from two bars earlier as its reference level.
The script stores one reference level from each detected FVG. It does not draw or store the complete upper and lower boundaries of every gap zone.
## FVG mitigation
Bullish and bearish FVG references remain active until they are mitigated by a confirmed close.
A bullish FVG reference is removed when price closes below its stored level.
A bearish FVG reference is removed when price closes above its stored level.
Wick contact alone does not remove an FVG reference.
This close-based method is intended to reduce the effect of temporary wick penetration, but it can also keep a level active after price has partially traded through the original gap area.
## Maximum stored FVG levels
The Maximum Stored FVG Levels setting limits the number of bullish and bearish references stored by the script.
When the selected limit is exceeded, the oldest stored reference is removed.
This prevents the arrays from expanding indefinitely on long chart histories.
A larger limit allows more historical FVG references to contribute to the channel but may increase processing requirements.
## Adaptive channel calculation
The active bullish FVG references are averaged.
The active bearish FVG references are averaged separately.
Each average then passes through two consecutive simple moving-average smoothing calculations.
The final channel boundaries are normalized so that:
* the higher smoothed reference becomes the upper boundary;
* the lower smoothed reference becomes the lower boundary.
This prevents the channel boundaries from becoming visually reversed.
When no active bullish or bearish FVG reference is available, the script temporarily substitutes a simple moving average of price for that side of the calculation.
The resulting channel is therefore influenced by active FVG structure when available and by smoothed price when no active reference exists.
## Smoothing Length
The Smoothing Length controls both smoothing passes applied to the FVG reference averages.
A shorter length:
* reacts more quickly to changes in the active FVG structure;
* produces a more responsive channel;
* may create more frequent recovery conditions;
* can be more sensitive to short-term movement.
A longer length:
* creates smoother boundaries;
* reacts more slowly;
* emphasizes broader FVG concentration;
* may produce fewer signals.
The same length is used for both smoothing passes.
## Upper and lower boundaries
The red upper boundary represents the higher of the two smoothed FVG reference calculations.
The green lower boundary represents the lower of the two smoothed calculations.
The boundaries are not traditional support and resistance lines and should not be treated as guaranteed reversal levels.
They represent smoothed averages derived from active FVG references and the price-SMA fallback logic.
## Internal channel levels
The script calculates three configurable levels between the lower and upper boundaries.
The default values are:
* Internal Level 1: 0.236;
* Internal Level 2: 0.500;
* Internal Level 3: 0.786.
Each value represents a proportional position within the current channel range.
For example, Internal Level 2 at 0.500 represents the midpoint between the lower and upper boundaries.
The levels must satisfy:
* Level 1 is below Level 2;
* Level 2 is below Level 3.
All internal-level settings are limited to values between 0 and 1.
The script produces an error when the levels are entered in an invalid order.
## Confirmed recovery signals
The signal system looks for price to remain outside the channel and then recover back inside it.
Signals are confirmed only after the chart bar closes.
### Bullish recovery
A bullish recovery condition requires:
* price to close below the lower boundary for the selected minimum number of consecutive bars;
* price to subsequently cross and close back above the lower boundary;
* the bullish signal cooldown to have expired;
* the optional volume condition to pass.
A green BULL label marks a standard bullish recovery.
This condition indicates that price remained below the adaptive channel and then recovered above its lower boundary.
It does not guarantee that price will continue higher.
### Bearish recovery
A bearish recovery condition requires:
* price to close above the upper boundary for the selected minimum number of consecutive bars;
* price to subsequently cross and close back below the upper boundary;
* the bearish signal cooldown to have expired;
* the optional volume condition to pass.
A red BEAR label marks a standard bearish recovery.
This condition indicates that price remained above the adaptive channel and then recovered below its upper boundary.
It does not guarantee that price will continue lower.
## Minimum Closes Outside Channel
This setting controls how many consecutive confirmed closes must occur beyond a channel boundary before a recovery signal becomes eligible.
For a bullish condition, the required closes must occur below the lower boundary.
For a bearish condition, the required closes must occur above the upper boundary.
A smaller value:
* allows faster recovery signals;
* produces more frequent conditions;
* may include shallower overextensions.
A larger value:
* requires price to remain outside the channel longer;
* produces fewer conditions;
* focuses on more persistent overextensions.
## Standard and Super signals
Each recovery is classified as either a standard signal or a Super signal.
The classifications are mutually exclusive. A Super signal does not also produce a standard label or standard alert.
### Super Bull recovery
A bullish recovery becomes a Super Bull condition when the signal candle’s lower wick extends beyond the lower boundary by at least the configured Super Signal Wick Extension percentage.
A lime SBULL label identifies this condition.
### Super Bear recovery
A bearish recovery becomes a Super Bear condition when the signal candle’s upper wick extends beyond the upper boundary by at least the configured Super Signal Wick Extension percentage.
An orange SBEAR label identifies this condition.
The Super classification measures wick distance beyond the relevant boundary.
It does not independently measure trend strength, probability, expected return, or future reversal quality.
A higher Super threshold creates fewer Super classifications.
A lower threshold creates more frequent Super classifications.
## Signal cooldown
The Signal Cooldown setting controls the minimum number of chart bars required between signals of the same direction.
Bullish and bearish cooldowns are tracked independently.
For example, a bullish signal does not reset the bearish cooldown.
A value of zero allows another same-direction signal as soon as all other requirements are satisfied.
The cooldown reduces repeated signals but does not change the underlying FVG channel.
## Volume confirmation
Volume confirmation is optional.
When enabled, a recovery signal requires current reported volume to be greater than:
* average volume over the selected Volume Lookback;
* multiplied by the Volume Confirmation Multiplier.
A multiplier of 1.0 requires volume to exceed its average.
A multiplier above 1.0 requires comparatively higher volume.
A multiplier below 1.0 creates a less restrictive condition.
Volume information differs between markets and data providers. Some symbols provide centralized transaction volume, while others may provide exchange-specific or tick-volume data.
The volume condition should therefore be interpreted according to the selected market.
## Signal-bar background
Optional background highlighting can be enabled for confirmed signal bars.
Separate colours are available for:
* Bull signals;
* Super Bull signals;
* Bear signals;
* Super Bear signals.
The background highlight is visual only and does not change the signal calculations.
## Signal labels
The indicator displays four possible labels:
* BULL: standard bullish recovery;
* SBULL: Super bullish recovery;
* BEAR: standard bearish recovery;
* SBEAR: Super bearish recovery.
The Signal Offset setting controls the vertical distance between each label and the signal candle.
Labels are plotted for every confirmed signal, even when another historical outcome measurement is already active.
## Alerts
Separate alerts are available for:
* Bull Recovery;
* Super Bull Recovery;
* Bear Recovery;
* Super Bear Recovery.
Standard and Super alerts are exclusive.
Alerts are based on confirmed chart bars, so a signal is not finalized until the bar closes.
When creating a PulseWire alert, using Once Per Bar Close is recommended for consistency with the script’s confirmed-bar logic.
## Historical target and stop measurements
The Historical Outcome Settings provide simplified target and stop measurements for confirmed signals.
This system is not a full PulseWire strategy backtest.
Only one unresolved outcome can be tracked at a time across all four signal types.
Signals can still appear while another outcome is active, but those later signals will not begin additional outcome measurements.
## Target Mode
The available Target Modes are:
* Disabled;
* Percentage;
* Internal Level 1;
* Internal Level 2;
* Internal Level 3.
### Disabled
Historical outcome tracking is turned off.
Signal labels and alerts continue to operate.
### Percentage
The target is calculated as a percentage of the signal bar’s closing price.
Separate target settings are available for standard and Super signals.
### Internal Level targets
The selected internal channel level is used as the target only when it lies beyond the signal close in the expected direction.
For a bullish signal, the internal target must be above the signal close.
For a bearish signal, the internal target must be below the signal close.
When the selected internal level is not positioned in the required direction, no historical outcome is started for that signal.
This prevents the script from creating an invalid target behind the recorded entry price.
## Standard and Super target settings
When Percentage mode is selected:
* Standard Target is used for BULL and BEAR signals;
* Super Target is used for SBULL and SBEAR signals;
* Standard Stop is used for BULL and BEAR signals;
* Super Stop is used for SBULL and SBEAR signals.
Targets and stops are measured from the confirmed signal bar’s closing price.
They are research references only and are not automatically submitted as orders.
## Outcome evaluation
The signal bar’s closing price becomes the recorded reference price.
Target and stop evaluation begins on the following chart bar.
The signal candle’s earlier high and low are therefore not used to determine the outcome after the entry has been recorded at its close.
For bullish measurements:
* the target is reached when a later high touches or exceeds the target;
* the stop is reached when a later low touches or falls below the stop.
For bearish measurements:
* the target is reached when a later low touches or falls below the target;
* the stop is reached when a later high touches or exceeds the stop.
## Target and stop on the same bar
When both the target and stop are touched during the same evaluation bar, the script records a stop outcome.
This conservative rule is used because the script cannot determine the exact intrabar order from standard chart-bar data.
A lower-timeframe price path is not reconstructed.
## Target and stop reference lines
The most recently created target and stop levels can be displayed temporarily on the chart.
The Target/Stop Line Length controls how many bars these references remain visible after they are created.
The display duration does not control how long the historical outcome remains active.
An outcome continues to be evaluated until its target or stop is reached, even after the visual lines disappear.
## Standard outcome table
The standard table reports completed BULL and BEAR measurements.
The format is:
* T: target outcomes;
* S: stop outcomes;
* percentage: target outcomes divided by completed target and stop outcomes.
For example:
BULL T/S: 12/8 (60%)
This means that 12 completed bullish measurements reached their targets and 8 reached their stops.
## Super outcome table
The Super table reports the same measurements separately for SBULL and SBEAR signals.
Super results are not combined with standard signal results.
This allows users to compare the script’s wick-extension classification with the standard recovery classification.
## Meaning of the table percentages
The percentages are simplified historical target-outcome ratios.
They are not:
* guaranteed win rates;
* expected future returns;
* probability forecasts;
* full strategy results;
* proof of profitability.
The calculations do not account for:
* commissions;
* slippage;
* spread;
* liquidity;
* position sizing;
* portfolio equity;
* order rejection;
* realistic execution;
* overlapping positions;
* complete intrabar sequencing.
Only one unresolved measurement is tracked at a time, so not every displayed signal is represented in the tables.
Results depend on the selected:
* symbol;
* timeframe;
* available chart history;
* FVG structure;
* smoothing length;
* minimum outside-bar requirement;
* cooldown;
* volume settings;
* Super threshold;
* target mode;
* target settings;
* stop settings.
Historical results do not imply future performance.
# How to Use
## 1. Use a standard chart
Apply FVG Channel to a standard candlestick or bar chart.
Avoid evaluating signal performance on synthetic chart types such as:
* Heikin Ashi;
* Renko;
* Kagi;
* Point and Figure;
* Range charts.
Synthetic chart prices may not represent directly tradable market prices.
## 2. Begin with the default channel settings
The default Smoothing Length is 20.
This gives the active bullish and bearish FVG reference averages two smoothing passes of 20 bars each.
Observe how the channel behaves on the selected symbol before reducing or increasing the setting.
Use a shorter length when a faster channel is preferred.
Use a longer length when a slower and smoother structure is preferred.
## 3. Read the channel position
Use the upper and lower boundaries to understand where price is trading relative to the smoothed active FVG structure.
Price inside the channel indicates that it is between the two adaptive boundaries.
Price below the lower boundary indicates a lower-channel overextension.
Price above the upper boundary indicates an upper-channel overextension.
An overextension is not a signal by itself.
The script waits for a confirmed recovery back inside the channel.
## 4. Wait for the required outside closes
The default Minimum Closes Outside Channel setting is 5.
For a bullish setup, price must close below the lower boundary for at least five consecutive confirmed bars.
For a bearish setup, price must close above the upper boundary for at least five consecutive confirmed bars.
Changing this value adjusts how persistent the overextension must be.
## 5. Wait for the confirmed recovery
After the required outside closes:
* a bullish condition requires price to cross and close back above the lower boundary;
* a bearish condition requires price to cross and close back below the upper boundary.
The signal is confirmed only when the candle closes.
A temporary intrabar move through the boundary does not create a finalized signal unless the close satisfies the condition.
## 6. Distinguish standard and Super signals
Use the signal labels to identify the classification.
* BULL is a standard bullish recovery.
* SBULL is a bullish recovery with sufficient lower-wick extension.
* BEAR is a standard bearish recovery.
* SBEAR is a bearish recovery with sufficient upper-wick extension.
A Super signal is not automatically better than a standard signal.
It only means that the wick-extension threshold was reached.
## 7. Adjust the Super threshold carefully
The default Super Signal Wick Extension is 15%.
This percentage is measured relative to the relevant channel-boundary price.
A higher value makes Super signals rarer.
A lower value makes them more common.
Review the scale and volatility characteristics of the selected market before changing this setting significantly.
## 8. Use volume confirmation when appropriate
Enable Volume Confirmation when signals should require reported volume above a selected threshold.
A practical starting point is:
* Volume Lookback: 20;
* Volume Confirmation Multiplier: 1.0.
This requires current volume to be above its 20-bar average.
Increase the multiplier for a stricter requirement.
Volume confirmation may be more useful on instruments with reliable volume data.
## 9. Review the internal levels
The internal channel levels can be used as visual reference points within the adaptive range.
The default levels represent approximately:
* 23.6%;
* 50%;
* 78.6%.
They can help show where price is positioned inside the current channel.
They are not guaranteed support, resistance, or profit targets.
## 10. Review wider market context
Before interpreting a recovery label, examine:
* the broader trend;
* nearby support and resistance;
* volatility;
* channel direction;
* channel width;
* recent price structure;
* active session conditions;
* available volume quality;
* major news or event risk.
A recovery signal against a strong directional trend can fail.
The indicator should not be used as the only reason for a market decision.
## 11. Configure the signal cooldown
The default cooldown is 50 bars for signals of the same direction.
Reduce the setting when more frequent same-direction signals are desired.
Increase it when repeated signals should be restricted.
Bullish and bearish cooldowns operate independently.
## 12. Configure historical measurements
Select Percentage mode for simple percentage-based target and stop research.
A practical starting configuration is:
* Standard Target: 1%;
* Standard Stop: 1%;
* Super Target: 2%;
* Super Stop: 2%.
These are examples only and are not recommended settings for every market or timeframe.
Select an Internal Level target when the channel’s own internal structure should be used.
Remember that a measurement is skipped when the chosen level is not beyond the signal close in the correct direction.
## 13. Read the target and stop lines
When a valid outcome starts:
* the green line represents the target;
* the red line represents the stop.
The lines remain visible for the selected number of bars.
Their disappearance does not necessarily mean the outcome has been resolved.
## 14. Read the tables correctly
The standard table separates BULL and BEAR results.
The Super table separates SBULL and SBEAR results.
T means completed target outcomes.
S means completed stop outcomes.
The percentage represents targets divided by completed targets and stops.
Do not interpret the percentage as a guaranteed win rate.
## 15. Understand one-active-outcome tracking
The script tracks only one unresolved outcome at a time.
A new signal may be displayed while an older measurement remains active.
However, the newer signal will not be added to the historical table until the previous measurement has ended and another eligible signal occurs.
This prevents overlapping measurements but means the table does not measure every displayed signal.
## 16. Create alerts
Create separate PulseWire alerts for the conditions you want to receive:
* Bull Recovery;
* Super Bull Recovery;
* Bear Recovery;
* Super Bear Recovery.
Use Once Per Bar Close to match the script’s confirmed-signal behaviour.
Test alerts on the intended symbol and timeframe before relying on them operationally.
## Suggested starting process
1. Apply the indicator to a liquid symbol on a standard candlestick chart.
2. Keep the default Smoothing Length of 20.
3. Keep Minimum Closes Outside Channel at 5.
4. Leave volume confirmation disabled initially.
5. Observe several BULL and BEAR recovery examples.
6. Compare standard and Super signals.
7. Review whether signals occur with or against the broader trend.
8. Enable volume confirmation and compare the difference.
9. Use the historical tables only as simplified research measurements.
10. Test multiple symbols and timeframes before drawing conclusions.
## Important limitations
* The script stores one reference level from each FVG, not the entire FVG zone.
* FVGs are confirmed only after the relevant chart bar closes.
* FVG mitigation requires a confirmed close through the stored reference.
* Wick contact alone does not remove an FVG reference.
* Active bullish and bearish references are equally weighted.
* The channel uses a price-SMA fallback when no active FVG reference is available.
* Double smoothing introduces delay.
* Recovery signals do not guarantee reversals.
* Super classifications measure wick extension only.
* Volume quality varies across markets and data providers.
* Only one historical outcome is tracked at a time.
* Not every displayed signal is included in the tables.
* Same-bar target and stop contact is recorded as a stop outcome.
* Historical measurements do not include realistic execution costs.
* Internal target modes may skip signals when the selected level is not positioned beyond the signal close.
* Historical table results do not guarantee future performance.
FVG Channel is an analytical and research tool. It does not provide financial advice, guaranteed signals, or guaranteed results. Indicator

BTC Ultimate Entry System
BTC Ultimate Entry System
A multi-criteria scoring indicator designed for high-conviction entries on 15-minute BTCUSDT charts. Combines 7 technical factors into a single coherent signal, eliminating guesswork.
How It Works
The indicator scores each candle against 7 criteria: 2HR EMA bias, local EMA slope, Supertrend direction, Bollinger Band touches, VWAP alignment, volume spike confirmation, and RSI/Stochastic RSI momentum. When your threshold is met (default: 5/7), a signal fires with automatic ATR-based risk levels.
The 7 Criteria
2HR EMA Bias — Higher-timeframe directional confirmation
EMA 9/21 Slope — Local momentum on your chart
Supertrend — Trend-following filter
BB Band Touch — Reversal or bounce setup
VWAP Side — Volume-weighted price alignment
Vol Spike + OBV — Conviction confirmation
RSI / Stoch RSI — Momentum without overbought/oversold extremes
Visual Signals
Full arrows (▲/▼) = Signal fired, ready to enter
Dimmer dots = Watch mode, one criterion away
Green/red volume backgrounds = Directional volume spike
Orange backgrounds = RSI in extreme zone, use caution
Auto-drawn SL/TP lines = ATR-based risk/reward
Real-Time Dashboard
Live text display shows current score, bias direction, all 7 criteria status, MTF context (1H/4H EMA), and entry/SL/TP levels.
Customizable
Adjust min score threshold, EMA lengths, Supertrend factor, Bollinger Band sensitivity, volume spike multiplier, and RSI parameters. Three trading style presets included.
Best For
Day traders and swing traders on BTCUSDT 15m charts seeking entries with 2–3x risk:reward and 55%+ win rate.
Paper Trade First
Run in paper trading mode for 10–15 signal cycles before live trading. Always confirm signals visually on the chart.
Character count: ~1,100 (fits PulseWire's description limit)
Feel free to trim or adjust tone based on your publishing style.
Indicator

Bastion Level Sentinel [JOAT]Bastion Level Sentinel
Introduction
The Bastion Level Sentinel is an open-source dynamic support and resistance overlay that derives price levels from EMA rounding, then builds conviction scores through touch-based strength analysis with optional volume confirmation. Rather than drawing static horizontal lines at arbitrary prices, BLS rounds an EMA to a configurable price increment (e.g., 500, 1000) to identify the institutional-grade price rails that the market naturally gravitates toward. Each time price interacts with a rail, the indicator counts and classifies the touch — validated (with above-average volume) or unconfirmed (low volume) — and uses these counts to build a conviction score that drives the visual intensity of the level through color gradients.
Most support/resistance indicators either use fixed pivot points that become stale, or they require manual drawing. BLS automates the process by anchoring levels to a moving EMA foundation, resetting touch counts when levels shift, and providing a complete lifecycle view of each level — from nascent (newly formed) through seasoned to ancient. The conviction engine ensures that levels with more validated touches appear visually stronger, giving traders an immediate sense of which levels carry the most institutional weight.
Core Engine: Level Derivation
The level calculation is straightforward but effective:
float emaVal = ta.ema(close, emaLen)
float topLvl = roundVal * math.ceil(emaVal / roundVal)
float botLvl = roundVal * math.floor(emaVal / roundVal)
The EMA provides a smoothed price anchor. Rounding up to the nearest increment gives the ceiling rail (resistance), and rounding down gives the floor rail (support). The grid increment is fully configurable — use 500 for crypto, 50 for stocks, 10 for forex — allowing the indicator to adapt to any instrument's natural price structure.
A stability check ensures that levels are only considered active when they remain unchanged from the previous bar. This prevents false touch counts during level transitions.
Conviction Engine (Touch-Based Strength Scoring)
The conviction engine is the heart of BLS. Every time price enters a rail's proximity zone (defined by a configurable tolerance fraction of the level gap), a touch is registered. Touches are edge-triggered — only the first bar of each interaction counts, preventing a single extended visit from inflating the score.
When volume confirmation is enabled, touches are classified into two categories:
Validated Touches: Price interacts with the rail while short-term volume exceeds the configurable threshold (default 1.2x average). These carry 70% weight in the conviction score.
Unconfirmed Touches: Price interacts with the rail on below-average volume. These carry 30% weight — they still count, but with reduced conviction.
The conviction score scales from 0% to 100% based on the number of touches relative to the saturation threshold (default 5 touches for 100%). When levels shift (the EMA moves enough to change the rounded level), all touch counts reset to zero, and the lifecycle begins fresh.
Level Lifecycle and Maturity
Each rail tracks its age in bars since the last level shift:
NASCENT: Fewer than 50 bars old — newly formed level, conviction still building
SEASONED: 50-200 bars old — established level with meaningful touch history
ANCIENT: Over 200 bars old — long-standing level that has persisted through extended price action
Ancient levels with high conviction scores represent the strongest support/resistance zones — they have been tested repeatedly over a long period and have held.
Visual Architecture
Primary Rails: Ceiling and floor levels plotted with conviction-driven color gradients. Low conviction = neutral purple, high conviction = vivid red (resistance) or green (support). The color intensity directly communicates level strength.
Proximity Halos: Tolerance zone boundaries around each rail, filled with transparency that scales with conviction. Stronger levels have more visible halos.
Equator Line: The midpoint between ceiling and floor — a natural equilibrium reference.
Tertiary Gridlines: 25% and 75% sub-levels between the rails, providing additional structure within the grid.
Proximity Aura: Subtle background tint when price enters a rail's tolerance zone — immediate visual alert that price is near a significant level.
Grid Tint Candles: Candles colored by their position within the grid — red tones near the ceiling, green tones near the floor, purple at the equator.
Signal Architecture
BLS generates five distinct signal types, all confirmed-bar and edge-triggered:
RAIL LOCK (Validated Touch): Price interacts with a rail on confirmed volume. The label includes the running touch count. These are the highest-confidence interaction signals.
ECHO (Unconfirmed Touch): Price interacts with a rail but volume is below the confirmation threshold. The interaction is noted but flagged as lower confidence.
BREACH: Price closes beyond a rail — a potential breakout (ceiling) or breakdown (floor). These are edge-triggered crossover/crossunder signals.
APPROACH: Price enters a rail's proximity zone for the first time — an early warning that an interaction is imminent.
Conviction Pulse: Periodic labels on the rails (every 20 bars) showing the current conviction percentage, providing at-a-glance strength information without cluttering the chart.
// Edge-triggered touch detection
bool topTouchEdge = topTouch and not topTouch
bool botTouchEdge = botTouch and not botTouch
Command Panel (Dashboard)
An 11-row monospace dashboard displays:
CEILING: Current resistance rail price
C CONV: Ceiling conviction — validated/total touches with percentage (e.g., "3v/4t (85%)")
FLOOR: Current support rail price
F CONV: Floor conviction — validated/total touches with percentage
EQUATOR: Midpoint price between ceiling and floor
NEAREST: Which rail price is closest to, with distance as a percentage
GRID POS: Price position classification (Ceiling Zone, Upper Grid, Equator, Lower Grid, Floor Zone)
MATURITY: Lifecycle stage of each rail (Nascent, Seasoned, Ancient)
LOCKED: Whether each rail is currently stable (unchanged from previous bar)
FLUX: Current volume confirmation ratio — values above the threshold indicate "hot" volume
Input Parameters
Fortress Grid:
Lattice Anchor: EMA period for level derivation (default 21)
Grid Increment: Price rounding value (default 500) — adjust for your instrument
Proximity Radius: Fraction of level gap used as tolerance zone (default 0.15)
Tertiary Gridlines: Toggle 25%/75% sub-levels
Conviction Engine:
Conviction Saturation: Touches needed for 100% conviction (default 5)
Flux Validation: Require above-average volume for validated touches (default on)
Flux Threshold: Volume ratio required for validation (default 1.2x)
Optics Layer:
Individual toggles for: Primary Rails, Proximity Halos, Equator Line, Command Panel, Proximity Aura, Breach Flash, Conviction Pulse, Approach Beacon, Grid Tint Candles
How to Use This Indicator
Adjust the Grid Increment to match your instrument — 500 or 1000 for BTC, 50 or 100 for stocks, 10 or 25 for forex pairs. The goal is to identify the round-number levels that institutional orders cluster around.
Pay attention to conviction scores — rails with 80%+ conviction and SEASONED or ANCIENT maturity are the strongest levels. Expect significant reactions when price approaches them.
RAIL LOCK signals with high touch counts indicate levels that have been tested and held multiple times. These are prime candidates for bounce trades.
BREACH signals mark potential breakouts. A breach of a high-conviction rail is more significant than a breach of a low-conviction one.
Use APPROACH signals as early warnings to prepare for potential level interactions. They give you time to assess the setup before the actual touch occurs.
The Grid Position metric in the dashboard tells you where price sits within the current structure — useful for bias determination and risk assessment.
Limitations
EMA-derived levels are inherently lagging — they reflect where the market has been, not where it is going. Levels shift when the EMA moves enough to change the rounded value.
The rounding approach works best on instruments with natural round-number psychology (crypto, indices, large-cap stocks). It may be less effective on instruments without clear round-number clustering.
Touch counts reset when levels shift, which means conviction history is lost during transitions. This is by design (stale counts on new levels would be misleading) but means newly formed levels always start at zero conviction.
Volume confirmation depends on reliable volume data. Instruments with inconsistent volume reporting may produce unreliable validation classifications.
The indicator identifies levels and measures their strength but does not predict whether price will bounce or break through. That decision requires additional context.
Originality Statement
This indicator is original in its conviction-based level strength scoring approach. While EMA-derived support/resistance and touch counting are known concepts individually, BLS is justified because:
The conviction engine differentiates between volume-validated and unconfirmed touches, weighting them differently to produce a more meaningful strength score than simple touch counting.
Level lifecycle tracking (Nascent/Seasoned/Ancient) provides temporal context that static level indicators lack.
Conviction-driven color gradients using color.from_gradient create an immediate visual hierarchy where stronger levels are visually more prominent.
The proximity halo system with conviction-scaled transparency provides zone-based level visualization rather than single-line levels.
Edge-triggered touch detection with stability checks prevents false counts during level transitions and extended visits.
The comprehensive dashboard presents level prices, conviction breakdowns, maturity, grid position, and volume state simultaneously.
Five distinct signal types (Rail Lock, Echo, Breach, Approach, Conviction Pulse) provide a complete interaction vocabulary for level-based analysis.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Support and resistance levels describe historical price interaction zones but do not guarantee future reactions. Levels can and do break. Always use proper risk management and conduct your own analysis before making trading decisions. The author is not responsible for any losses incurred from using this tool.
-Made with passion by officialjackofalltrades
Indicator

ICT HTF Volume Candles (Based on HTF Candles by Fadi)# ICT HTF Volume Candles - Multi-Timeframe Volume Analysis
## Overview
This indicator provides multi-timeframe volume visualization designed to complement price action analysis. It displays volume data from up to 6 higher timeframes simultaneously in a separate panel, allowing traders to identify volume spikes, divergences, and institutional activity without switching between timeframes.
**Original Concept Credits:** This indicator builds upon the HTF Candles framework by Fadi, adapting it specifically for volume analysis with enhanced features including gap-filling for extended hours, multiple scaling methods, and advanced synchronization.
## What Makes This Script Original
### Key Innovations:
1. **Three Volume Scaling Methods:**
- **Per-HTF Auto Scale:** Each timeframe scales independently for detailed comparison
- **Global Auto Scale:** All timeframes use unified scale for relative volume comparison
- **Manual Scale:** User-defined maximum for consistent analysis across sessions
2. **Bullish/Bearish Volume Differentiation:**
- Volume bars colored based on price movement (close vs open)
- Separate styling for bullish (green) and bearish (red) volume periods
- Helps identify whether volume supports price direction
3. **Advanced Time Synchronization:**
- Custom daily candle open times (Midnight, 8:30 AM, 9:30 AM ET)
- Timezone-aware calculations for New York trading hours
- Real-time countdown timers for each timeframe
- **Gap-filling technology** for continuous display during extended hours and weekends
4. **Flexible Display Options:**
- Configurable spacing and positioning
- Label placement (top, bottom, or both)
- Day-of-week or time interval labels on candles
- Works reliably in backtesting and live trading
## How It Works
### Volume Calculation
The indicator uses `request.security()` with optimized parameters to fetch volume data from higher timeframes:
- **Volume Open/High/Low/Close (OHLC):** Tracks volume changes within each HTF candle
- **Color Logic:** Compares HTF close vs open prices to determine bullish/bearish classification
- **Alignment:** All volume bars share a common baseline for easy visual comparison
- **Gap Handling:** Uses `gaps=barmerge.gaps_off` to maintain continuity during non-trading hours
### Technical Implementation
```
1. Monitors HTF timeframe changes using request.security() with lookahead
2. Creates new VolumeCandle object when HTF bar opens
3. Updates current candle's volume H/L/C on each chart bar
4. Applies selected scaling method to normalize display height
5. Repositions all candles and labels on each bar update
6. Fills gaps automatically during extended hours for consistent display
```
### Scaling Methods Explained
**Method 1 - Auto Scale per HTF:**
Each timeframe displays volume relative to its own maximum. Best for identifying patterns within each individual timeframe.
**Method 2 - Global Auto Scale:**
All timeframes share the same scale based on the highest volume across all HTFs. Best for comparing relative volume strength between timeframes.
**Method 3 - Manual Scale:**
User sets maximum volume value. Best for maintaining consistent scale across different trading sessions or instruments.
## How to Use This Indicator
### Setup
1. Add indicator to your chart (it appears in a separate panel below price)
2. Configure up to 6 higher timeframes (default: 5m, 15m, 1H, 4H, 1D, 1W)
3. Set number of candles to display for each timeframe
4. Choose volume scaling method based on your analysis needs
5. Enable "Fix gaps in non-trading hours" for extended hours trading (enabled by default)
### Interpretation
**Volume Spikes:**
- Sudden increase in volume height indicates institutional activity or strong conviction
- Compare volume between timeframes to identify where the real money is moving
- Look for volume spikes that appear across multiple timeframes simultaneously
**Bullish vs Bearish Volume:**
- **Green volume bars:** Price closed higher (buying pressure)
- **Red volume bars:** Price closed lower (selling pressure)
- High green volume during uptrend = confirmation of strength
- High red volume during downtrend = confirmation of weakness
- High volume opposite to trend = potential reversal warning
**Multi-Timeframe Context:**
- **5m/15m:** Scalping and day trading activity
- **1H/4H:** Swing trading and intraday institutional flows
- **Daily/Weekly:** Major position building and long-term trends
**Divergences:**
- Price making new highs but volume declining = weakening trend
- Volume increasing while price consolidates = potential breakout brewing
- Price breaks level but volume doesn't confirm = likely false breakout
### Practical Examples
**Example 1 - Institutional Confirmation:**
Price breaks above resistance. Check volume across timeframes:
- 5m shows spike = retail interest
- 15m + 1H + 4H all show spikes = institutional confirmation
- **Trade confidence: HIGH**
**Example 2 - False Breakout Detection:**
Price breaks resistance with:
- High volume on 5m only
- Normal/low volume on 1H and 4H
- **Interpretation:** Likely retail trap, institutions not participating
- **Action:** Wait for pullback or avoid
**Example 3 - Accumulation Phase:**
Price ranges sideways but:
- Daily volume gradually increasing
- Weekly volume above average
- **Interpretation:** Smart money accumulating
- **Action:** Prepare for breakout in direction of volume
**Example 4 - Volume Divergence:**
Price makes new high:
- Current high has lower volume than previous high across all timeframes
- **Interpretation:** Weakening momentum
- **Action:** Consider profit-taking or reversal trade
## Configuration Parameters
### Timeframe Settings
- **HTF 1-6:** Select timeframes (must be higher than chart timeframe)
- **Max Display:** Number of candles to show per timeframe (1-50)
- **Limit to Next HTFs:** Display only first N enabled timeframes (1-6)
### Styling
- **Bull/Bear Colors:** Separate colors for body, border, and wick
- **Padding from current candles:** Distance offset from live price action
- **Space between candles:** Gap between individual volume bars
- **Space between Higher Timeframes:** Gap between different timeframe groups
- **Candle Width:** Thickness of volume bars (1-4, multiplied by 2)
### Volume Settings
- **Volume Scale Method:** Choose 1, 2, or 3
- 1 = Auto Scale per HTF (each TF independent)
- 2 = Global Auto Scale (all TF unified)
- 3 = Manual Scale (user-defined max)
- **Auto Scale Volume:** Enable/disable automatic scaling
- **Manual Scale Max Volume:** Set maximum when using Method 3
### Label Settings
- **HTF Label:** Show/hide timeframe names with color and size options
- **Label Positions:** Display at Top, Bottom, or Both
- **Label Alignment:** Align centered or Follow Candles
- **Remaining Time:** Show countdown timer until next HTF candle
- **Interval Value:** Display day-of-week or time on each candle
### Custom Daily Candle
- **Enable Custom Daily:** Override default daily candle timing
- **Open Time Options:**
- **Midnight:** Standard 00:00 ET daily open
- **8:30 AM:** Align with economic data releases
- **9:30 AM:** Align with NYSE market open
- Useful for specific trading strategies or market alignment
### Advanced Settings
- **Fix gaps in non-trading hours:** Maintains alignment during extended hours and weekends (recommended: ON)
- Prevents visual gaps during forex weekend closures
- Ensures consistent display during crypto 24/7 trading
- Improves backtesting reliability
## Best Practices
1. **Pair with Price Action:** Use alongside HTF price candles indicator for complete picture
2. **Start Simple:** Enable 2-3 timeframes initially (e.g., 15m, 1H, 4H), add more as needed
3. **Match Settings:** Use same candle width/spacing as companion price indicator for visual alignment
4. **Scale Appropriately:**
- Use **Global scale** (Method 2) when comparing timeframes
- Use **Per-HTF scale** (Method 1) for pattern analysis within each timeframe
- Use **Manual scale** (Method 3) for consistent day-to-day comparison
5. **Watch for Volume Clusters:** High volume appearing simultaneously across multiple HTFs signals significant market events
6. **Confirm Breakouts:** Always check if volume supports the price movement across higher timeframes
7. **Extended Hours:** Keep "Fix gaps" enabled for 24/7 markets (Forex, Crypto) and weekend analysis
## Technical Notes
- **Timezone:** All calculations use America/New_York timezone for consistency
- **Real-time Updates:** Volume and timers update on each tick during market hours
- **Performance:** Optimized with max_bars_back=5000 for extensive historical analysis
- **Compatibility:** Works on all instruments with volume data (Stocks, Forex, Crypto, Futures)
- **Gap Handling:** Uses `barmerge.gaps_off` to fill data gaps during non-trading periods
- **Backtesting:** Uses `lookahead=barmerge.lookahead_on` for stable historical data without repainting
- **Data Continuity:** Automatically handles market closures, weekends, and extended hours
## Updates & Improvements
**Version 2.0 (Current):**
- ✅ Fixed alignment issues during extended hours and weekends
- ✅ Eliminated repainting in backtesting
- ✅ Added gap-filling technology for continuous display
- ✅ Improved data synchronization across all timeframes
- ✅ Enhanced NA value handling for data integrity
- ✅ Added advanced settings group for user control
## Support
For questions, suggestions, or feedback, please comment on the publication or message the author.
---
**Disclaimer:** This indicator is for educational and informational purposes only. It does not constitute financial advice. Past performance is not indicative of future results. Always perform your own analysis and implement proper risk management before making trading decisions.
Indicator

Impulse Range Compression & Expansion (IRCE)📌 Impulse Range Compression & Expansion (IRCE) – Visualizing Price Traps Before Breakouts
📖 Overview
The IRCE Indicator is a precision breakout detection tool designed to identify consolidation traps and price coil zones before expansion moves occur. Unlike traditional volatility indicators that rely solely on statistical thresholds (e.g., Bollinger Bands or ATR), IRCE focuses on behavioral price compression, detecting tight-range candle clusters and validating breakouts through body expansion and/or volume surges.
This makes it ideal for traders looking to:
• Catch breakouts from range traps
• Avoid choppy and premature signals
• Spot early-stage momentum moves based on clean price behavior
⸻
⚙️ How It Works
1. Impulse Range Compression Detection
• Measures the high-low range of each candle
• Compares it to a user-defined average range (default 7 bars)
• Flags candles where the range is significantly smaller (e.g., <60% of average)
• Groups these into tight clusters, indicating compression zones or potential “trap ranges”
2. Cluster Box Construction
• When a valid cluster (e.g., 3 or more tight candles) is detected, the indicator:
• Marks the high and low of the cluster
• Draws a shaded box over this “trap zone”
• This helps visually track where price has coiled before a breakout
3. Breakout Confirmation Logic
A breakout from the trap zone is only validated when:
• Price closes above the cluster high (bullish) or below the cluster low (bearish)
• One or both of the following confirm strength:
• Body Expansion: Current candle body is 120%+ of recent average
• Volume Expansion: Volume exceeds recent volume average
4. Optional Trend Filter
• An optional EMA filter (default: 50 EMA) ensures breakout signals align with trend direction
• Helps filter out countertrend noise in ranging markets
5. Signal Cooldown
• Prevents repeated signals by enforcing a cooldown period (e.g., 10 bars) between entries
⸻
🖥️ Visual Elements
• 📦 Yellow compression boxes represent tight price traps
• 🟢 Buy labels appear when price breaks above the trap with confirmation
• 🔴 Sell labels appear when price breaks below with confirmation
• All visuals are non-repainting and updated in real-time
🧠 How to Use
1. Wait for a yellow trap box to appear
2. Watch for a confirmed breakout from the trap zone
3. Take the trade in the direction of the breakout:
• Only if it satisfies body or volume confirmation
• And if trend alignment is enabled, it must match EMA direction
4. Place stops just outside the opposite end of the trap zone
5. Use risk/reward ratios or structure levels for exits
This logic works great on:
• Lower timeframes (scalping breakouts)
• Higher timeframes (detecting price coiling before major moves)
• Any market: Stocks, Crypto, FX, Commodities
⸻
🔒 Technical Notes
• ✅ No repainting
• ✅ No future-looking logic
• ✅ Suitable for both discretionary and systematic traders
• ✅ Built in Pine Script v6
Indicator

Indicator

Indicator
