Indicator

Indicator

Indicator

Indicator

Volume Truth Engine V1 [ViZ]Volume Truth Engine — Publication Description
═══════════════════════════════════════
Most volume indicators tell you when volume is high.
This one tells you where it's coming from, whether it's being absorbed, and whether the higher timeframe agrees.
═══════════════════════════════════════
WHAT MAKES THIS DIFFERENT
Real directional volume Instead of treating volume as a single number per bar, the indicator pulls lower-timeframe data and splits each bar into estimated buy-side and sell-side participation. The difference is delta — and it's the foundation everything else is built on. Most PulseWire volume indicators don't do this. The ones that claim to usually use candle-body proxies, which aren't the same thing.
Higher-timeframe confluence, built in Every signal is checked against the higher timeframe automatically. 15m maps to 1H, 1H to 4H, 4H to Daily, and so on. When the HTF agrees with what's happening on your chart, signals are stronger. When it doesn't, you can choose to filter those signals out, flag them with a warning, or score them lower. No more taking "perfect" entries that fight the bigger trend.
The indicator measures its own performance Most indicators imply quality. This one proves it — or admits when it doesn't. A live hit-rate tracker shows whether absorption and spike signals actually predict price movement (1 ATR within 10 bars) on your specific instrument and timeframe. If a signal type underperforms on what you trade, you'll see it. That's rare on PulseWire, and it's intentional.
═══════════════════════════════════════
THE SIGNALS
Trend Flip Arrows — teal and orange triangles Real direction changes, not chop. Require ATR-distance confirmation before firing.
Absorption Diamonds — lime and red ABS markers The highest-value signal. Price at a swing extreme while delta and volume disagree with the price direction — sellers exhausted at lows, buyers exhausted at highs. Reversal-watch, not reversal-guarantee.
Effort vs. Result — yellow EvR X-marks High volume, small body. Orders being absorbed without price movement. Often precedes reversals at extremes or breakouts at compression points.
Classified Spikes — three types, not one
• BRK — with-trend breakout spike. Continuation. • CLX — against-trend climactic spike at extreme. Exhaustion. • ABS — high-volume small-body absorption spike. Institutional soak.
Confluence Scores — 0/5 to 5/5 next to absorption signals Higher score, higher conviction. A 5/5 means HTF agrees, chart agrees, volume elevated, delta confirms, and location aligns.
═══════════════════════════════════════
HOW TO USE IT
In a strong trend (chart and HTF aligned) Trust with-trend BRK spikes on pullbacks. Watch CLX spikes near extremes as exhaustion warnings. High-conviction absorption only in the trend direction.
In a range or consolidation Absorption signals at range extremes are your highest-value entries. EvR inside the range often precedes the breakout. Don't chase trend flips here — wait for the state to hold.
When chart and HTF conflict ("CONFLICT ⚠" in the panel) Reduce size or stand aside. Counter-HTF signals historically produce lower-quality outcomes.
Around news and session opens The volume math assumes normal participation. First few bars after major releases can produce signals that reflect news shock rather than order flow. Use discretion.
═══════════════════════════════════════
THE STATS PANEL
Four sections, scannable in under two seconds.
• Trend Context — chart state, HTF state, and whether they agree • Order Flow — bar delta, ratio, cumulative delta, data source • Volume — Z-Vol with spike flag • Signal Quality — live hit-rate per signal type
Cumulative delta is worth watching specifically. Rising on sideways price means hidden accumulation. Falling on rising price means hidden distribution. The chart hides this. The panel doesn't.
═══════════════════════════════════════
A NOTE ON TRANSPARENCY
Hit-rate numbers display only after 20 samples accumulate. Before that, the panel shows "building (X/20)" so you know it's tracking but not yet meaningful. The measurement criterion (1 ATR within 10 bars) is one specific definition of success — directional follow-through within a short window. It doesn't measure P&L and doesn't capture slow-developing setups. Treat it as relative quality across signal types, not as a literal edge metric.
If a signal type consistently underperforms on your instrument, that's real information. Adjust accordingly.
═══════════════════════════════════════
HONEST CAVEATS
The lower-timeframe delta is an approximation, not real tick-by-tick order flow. It's much better than candle-body proxies but it isn't institutional-grade. Volume data quality varies by exchange — forex tick volume in particular is broker-aggregated, not true volume.
This is a decision aid, not a trading system. It surfaces context. The trade decisions are still yours.
═══════════════════════════════════════
WHAT TO DO FIRST
Load it on an instrument and timeframe you know well. Don't change any settings. Watch how the signals behave on bars you already understand — the breakout from last week, the reversal that caught you off-guard. See whether the indicator agrees with your read or surfaces something you missed.
After a few sessions, the hit-rate tracker will start producing real numbers. That's when the indicator starts working for you specifically.
Or if you want just open Bar Replay in different markets within different market regimes on different timeframes.
Feedback welcome in the comments. Include instrument, timeframe, and screenshot when reporting issues.
Happy trading. Indicator

Quantitative Smart Money Concepts Framework# Quantitative SMC Framework
An implementation of Smart Money Concepts that combines market structure (BOS / CHoCH / MSS), order blocks, fair value gaps, liquidity sweeps, equal highs/lows, and premium/discount zones into a single confluence framework. The methodology itself is public trading theory from Inner Circle Trader (ICT). The algorithms used to detect each component, and the scoring system that ties them together, are original work.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY THESE COMPONENTS BELONG IN ONE SCRIPT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SMC trading depends on confluence. A standalone order block is information, but an order block that sits inside a discount zone, overlaps an active fair value gap, and forms after a liquidity sweep is a setup. Pulling those components from separate indicators forces a trader to eyeball alignment by hand. This script computes alignment directly:
— Order blocks are scored 0–100 based on size, displacement at creation, volume, and overlap with any active FVG on the same side.
— Premium/Discount is anchored to the last major structural event (not the visible range), so confluence with structure is automatic.
— Sweep detection is referenced to actual minor pivots, so a sweep label only appears at structurally meaningful levels — levels where structural reactions often occur.
— Equal highs / lows highlight the liquidity pools that sweeps target.
The output is a single chart where these confluence elements appear together in one place.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IMPLEMENTATION NOTES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ Adaptive pivot engine
The default pivot detection confirms a swing only when price retraces by ATR × multiplier rather than after a fixed bar window. Pivot density adapts to volatility — fewer pivots on trending days, tighter ones on chop. A fixed-window mode is available for traders who prefer the classic approach.
◆ Order block quality filter
Instead of taking the last opposite candle before a break, the engine scans a 30-bar structural window and selects the most-extreme candle that passes three filters: body-to-range ratio ≥ 25%, range < 2.5 × ATR (no outlier candles), and above-average volume by a configurable multiplier. The volume filter is optional.
◆ Market Structure Shift vs Change of Character
When a CHoCH occurs, the breaking candle is checked for displacement (body size ≥ multiplier × ATR). Displacement breaks are labelled MSS, non-displacement reversals stay labelled CHoCH. This separates impulsive trend reversals from soft ones.
◆ AVWAP-anchored Premium/Discount
Equilibrium is computed as a volume-weighted average price anchored at the last trend reversal (CHoCH/MSS), not as the midpoint of the visible range. The anchor resets only on a genuine trend change, so continuation BOSes do not invalidate the level. A classic range-midpoint mode is available as an alternative.
◆ Strict liquidity sweep detection
A sweep is flagged only if the wick pokes through a recent minor structural pivot (not a rolling max/min), the wick is at least 0.8 × ATR, the wick is at least 35% of the candle's total range, and 8 bars have passed since the last same-direction sweep. This significantly reduces signal frequency compared to simple wick-based detection without pivot reference or cooldown.
◆ Fair Value Gap fade mode
When an FVG is mitigated, it can either be removed (classic behaviour) or rendered semi-transparent so historical imbalances and price reactions remain visible. An ATR-based minimum size filter removes micro-gaps.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONFLUENCE SCORE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Each order block carries an optional 0–100 score:
— Size contribution (0–30): zone height relative to ATR
— Displacement contribution (0–30): body size of the breaking candle relative to ATR
— Volume contribution (10–20): above-average volume at zone creation
— FVG overlap (0–20): an active fair value gap of the same side intersects the zone
The score appears as a small label on each zone when enabled. A minimum-score filter hides everything below a chosen threshold.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Start on a 1D chart with default settings. Use the major structure (BOS / CHoCH / MSS) to set bias. The setup the scoring system is designed to surface is a high-score order block inside a discount zone, overlapping an FVG, formed after a liquidity sweep. For timeframes below 4H, increase the pivot ATR multiplier to 2.5–3.0 to reduce noise.
Live display mode keeps only the most recent structural elements on the chart. All History mode keeps the full archive — useful for visual backtesting, but slower.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMPONENTS AND SETTINGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
— Major and minor market structure: BOS, CHoCH, MSS, iBOS, iCHoCH
— Adaptive ZigZag or fixed-window pivot engine
— Order blocks with quality filter, wick or close mitigation
— Fair value gaps with optional fade mode and ATR size filter
— Equal highs / equal lows with ATR-based tolerance
— Liquidity sweeps with cooldown between same-direction signals
— Premium / Discount via AVWAP or range midpoint
— Previous day / week / month highs, lows, and midpoints
— Mono or accent colour themes
— Optional bar painting by minor bias
— Alerts on every structural and signal event
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NOTES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Smart Money Concepts methodology is public trading theory from Michael Huddleston (Inner Circle Trader). The implementation here — adaptive pivot engine, quality-filtered order blocks, AVWAP-anchored premium/discount, scoring system, and strict sweep detection — is independent work.
Feedback and bug reports welcome in the comments. Indicator

Orange 30M ORB IndicatorThis script is an advanced Opening Range Breakout (ORB) + Retest indicator designed to track institutional-style liquidity behavior across multiple sessions (New York, London, Asia).
At its core, it:
Builds opening ranges (high, low, and 50% midline) for each selected session based on a user-defined time window (e.g., first 30 minutes).
Monitors breakouts above or below those ranges using either candle closes or wicks.
Identifies valid retests of the breakout level using precise criteria:
Wick or proximity-based touch of the level
Controlled penetration into the range
Valid closing behavior relative to the level
Highlights the retest candle (purple by default) and the next confirmation candle (orange) for clear trade visualization.
A key feature of this version:
Once a session’s range is formed, it remains active for retests even after the session ends, allowing setups to develop naturally.
All prior session ranges are automatically reset at the next 9:30 AM New York open, ensuring only the most relevant liquidity zones are used going forward.
Additional capabilities include:
Multi-session tracking (NY, London, Asia)
Customizable retest logic (strict touch or distance-based)
Timeframe filtering for precision entries
Adjustable tolerance levels for wicks and closes
Optional historical plotting and labeling
Built-in alerts for retests and confirmation candles
Overall, this tool is built to help you systematically identify breakout–retest continuation setups with clarity and consistency, aligned with how price interacts with key session liquidity zones. Indicator

Liquidity Timeframe Stack Map [AGPro Series]Liquidity Timeframe Stack Map
🧠 Core Idea
Are lower-timeframe liquidity sweeps aligned with the higher-timeframe liquidity shelf, or are they fighting the broader structure?
📌 Overview / What it does
Liquidity Timeframe Stack Map is a multi-timeframe liquidity context tool built to compare current-chart sweep behavior with higher-timeframe liquidity shelves.
The script maps the latest confirmed higher-timeframe upper and lower liquidity shelves, detects local buy-side and sell-side sweeps, evaluates wick-based reaction quality, and converts the result into a readable stack state.
It does not predict price direction, automate trades, or claim that every sweep will create a reversal. It is designed as a structured market context and visualization tool.
🎯 Purpose & Design Philosophy
This script was built to solve a common liquidity-reading problem:
A lower-timeframe sweep can look important by itself, but its meaning changes when it happens near a higher-timeframe shelf.
The goal is to help traders separate aligned liquidity reactions from isolated local noise. The script supports a context-first mindset: read the shelf, read the sweep, then judge whether the reaction is aligned or conflicting.
⚡ Why This Script Is Different
Most liquidity tools focus on detecting a sweep, stop run, equal high, or equal low.
This script does NOT treat every sweep as equally important.
Instead, it compares the local sweep against a higher-timeframe liquidity framework and classifies whether the move is a stack alignment, a stack conflict, or a neutral shelf interaction.
⚙️ Methodology
1. Higher-Timeframe Shelf Detection
The script reads confirmed pivot structure from the selected higher timeframe and builds active upper and lower liquidity shelf zones.
2. Local Sweep Detection
The chart timeframe is used as the lower-timeframe layer. Local buy-side and sell-side sweeps are detected when price takes a recent pivot level and closes back through it.
3. Reaction Evaluation
The script evaluates wick reaction quality after the sweep. Stronger wick rejection or reclaim behavior produces a higher reaction quality score.
4. Stack Classification
The script checks whether the local sweep occurred near the relevant higher-timeframe shelf. If the sweep and shelf context align, the script marks an HTF Buy Stack or HTF Sell Stack. If the sweep fights the broader shelf context, it marks a Stack Conflict.
5. Visual Output
The result is displayed through HTF shelf zones, sweep markers, stack labels, right-side tags, alerts, and a compact AG Pro panel.
🗺️ How to Read the Chart
Upper HTF Liquidity Shelf = the active higher-timeframe upper liquidity reference.
Lower HTF Liquidity Shelf = the active higher-timeframe lower liquidity reference.
Buy-Side Sweep marker = price swept a local upper liquidity reference and closed back below it.
Sell-Side Sweep marker = price swept a local lower liquidity reference and closed back above it.
HTF Buy Stack label = a sell-side sweep reacted near the lower HTF shelf with enough reaction quality.
HTF Sell Stack label = a buy-side sweep reacted near the upper HTF shelf with enough reaction quality.
Stack Conflict label = the local sweep behavior is not cleanly aligned with the broader HTF shelf context.
Panel = summarizes stack state, stack score, HTF shelves, LTF sweep state, reaction quality, next context, and invalidation reference.
🚦 Signals & States
• HTF BUY STACK → sell-side liquidity was swept near the lower higher-timeframe shelf with a qualifying reaction.
• HTF SELL STACK → buy-side liquidity was swept near the upper higher-timeframe shelf with a qualifying reaction.
• STACK CONFLICT → local sweep behavior is fighting or confusing the broader shelf context.
• LOWER SHELF → price is interacting with the lower HTF shelf area, but no full stack event is active.
• UPPER SHELF → price is interacting with the upper HTF shelf area, but no full stack event is active.
• NEUTRAL → no active shelf alignment or conflict is detected.
🔔 Alerts Logic
Alerts trigger when a new major stack condition appears.
• HTF Buy Stack Alignment → a sell-side sweep aligns with the lower higher-timeframe liquidity shelf.
• HTF Sell Stack Alignment → a buy-side sweep aligns with the upper higher-timeframe liquidity shelf.
• Liquidity Stack Conflict → the local sweep direction conflicts with the broader higher-timeframe shelf context.
• HTF Liquidity Shelf Touch → price enters either active higher-timeframe shelf zone.
Alerts are attention markers, not trade instructions.
🧩 Confluence Logic
The context becomes stronger when these elements align:
• Price is near an active higher-timeframe shelf
• Local liquidity is swept
• The candle closes back through the swept level
• Wick reaction quality is strong
• The panel state and chart label agree
When these elements do not align, the script treats the context as neutral or conflicting instead of forcing a directional interpretation.
📊 When to Use
• Multi-timeframe liquidity analysis
• Swing and intraday market preparation
• Smart-money-style structure review
• Sweep and reclaim evaluation
• Context checks before interpreting local reactions
• Markets where higher-timeframe levels matter
⚠️ When NOT to Use
• Very low-liquidity symbols
• Extremely noisy lower timeframes
• Markets with unreliable wick structure
• Situations where the selected higher timeframe is not meaningful
• Assets with large gaps or inconsistent session data
• Moments when a single local candle should not be over-interpreted
🎛️ Key Inputs
• Higher Timeframe Shelf → selects the timeframe used to build the broad liquidity shelves.
• HTF Shelf Pivot Length → controls how strict the higher-timeframe shelf structure is.
• LTF Sweep Pivot Length → controls how local sweep references are detected.
• Shelf Zone Width ATR → adjusts the visual thickness of HTF shelf zones.
• Max Shelf Width % Range → caps shelf thickness relative to the distance between the upper and lower HTF shelves, keeping the visual structure clean on wide timeframes.
• Near Shelf Distance ATR → controls how close a sweep must be to a shelf to count as aligned.
• Reaction Quality Threshold → sets the minimum wick reaction required for a strong stack event.
• Stack Score Smoothing → smooths the panel score for cleaner interpretation.
• Visual settings → control shelves, equilibrium line, sweep markers, event labels, right-side tags, and font sizes.
• Show Sweep Marker Letters → adds optional BS / SS text to local sweep markers. The default publication view keeps this disabled for a cleaner chart.
• Event Label Mode → Premium labels only strong HTF stack alignments. Detailed also labels stack conflicts.
• Adaptive Label Layout → automatically shortens and separates shelf labels when higher timeframes compress the HTF shelf cluster.
• Event Label Offset ATR → moves stack event labels farther from candles and shelf-center labels. HTF Sell Stack labels are pushed above the upper shelf zone, while HTF Buy Stack labels are pushed below the lower shelf zone to reduce overlap on publication screenshots.
• Right-side tags use adaptive positioning so the STACK tag avoids crowding the HTF UPPER and HTF LOWER tags when price is near a shelf.
🖥️ Interface & Visual Design
The interface is built around a clear visual hierarchy:
HTF shelves show the broader liquidity map.
Sweep markers show local liquidity events.
Stack labels show important alignment or conflict moments.
The AG Pro panel compresses the current state into a fast, readable decision-support summary.
🧪 Practical Usage Workflow
1. Start with the panel state.
2. Check where price is relative to the HTF upper and lower shelves.
3. Look for a recent buy-side or sell-side sweep marker.
4. Read the event label only if the sweep happened near the relevant shelf.
5. Use Reaction Q and Stack Score to judge whether the context is clean or weak.
6. Interpret the result inside the broader market structure.
🔍 Interpretation Guidelines
HTF Buy Stack does not mean price must go up. It means a sell-side sweep reacted near a lower higher-timeframe shelf with enough quality to deserve attention.
HTF Sell Stack does not mean price must go down. It means a buy-side sweep reacted near an upper higher-timeframe shelf with enough quality to deserve attention.
Stack Conflict is often more useful as a warning than as a signal. It tells the trader that the local sweep and broader shelf context are not cleanly aligned.
🚫 What This Script Is NOT
This script is not a prediction engine.
It is not financial advice.
It is not an auto-trading system.
It does not provide guaranteed entry or exit signals.
It does not claim that every liquidity sweep will reverse.
⚠️ Limitations & Transparency
Higher-timeframe pivot shelves are confirmed after structure develops, so they are not instant future levels.
Different chart timeframes may create different local sweep readings.
Very volatile markets may generate fast shelf touches without clean reactions.
Low-liquidity symbols may produce misleading wick behavior.
The selected higher timeframe should match the trader’s actual analysis horizon.
🧠 Market Context Notes
Liquidity analysis is strongest when local behavior is interpreted inside a broader structure.
A sweep near a meaningful higher-timeframe shelf can carry more information than a random sweep in the middle of a range.
This script is designed to make that distinction visible.
🧾 Use Case Examples
When price sweeps local sell-side liquidity near the lower HTF shelf and closes back above the swept level, the script may mark HTF BUY STACK if reaction quality is strong enough.
When price sweeps local buy-side liquidity near the upper HTF shelf and closes back below the swept level, the script may mark HTF SELL STACK if reaction quality is strong enough.
When a local sweep appears away from the relevant higher-timeframe shelf, the script may classify the move as neutral or conflicting.
🧱 System Philosophy
The script follows a context-first AGPro approach:
Structure first.
Liquidity second.
Reaction third.
Decision support last.
It is designed to reduce isolated signal thinking and encourage multi-timeframe interpretation.
🔐 Non-Promise Statement
No script can guarantee outcomes.
No shelf, sweep, score, or label should be treated as certainty.
The output should always be combined with broader market context and personal risk rules.
📉 Risk Disclosure
Trading involves risk.
Markets can move against any interpretation.
This script is for educational and analytical purposes only.
Users are fully responsible for their own decisions.
📚 Educational Note
Use this script to study how lower-timeframe liquidity behavior changes when it is read against higher-timeframe structure.
Indicator

xLevTrading AI SMC Algo v.0.6The xLevTrading AI Smart Money Concept Indicator is a significantly expanded and independently developed institutional trading framework based on LuxAlgo’s Smart Money Concept source code. While the script builds upon established Smart Money Concept principles such as market structure, liquidity analysis, order blocks, and fair value gaps, the internal logic, filtering systems, visual prioritization, and execution tools have been heavily redesigned and extended to create a more adaptive and context-aware analytical environment.
The primary objective of this indicator is not to generate excessive signals, but to help traders better understand how price interacts with liquidity, imbalance, and structural shifts in real market conditions. Instead of treating Smart Money Concepts as isolated visual tools, the indicator combines multiple layers of analysis into a unified framework where each component contributes contextual information to the others. This allows traders to evaluate not only where price currently is, but also why certain areas may become important during future market movement.
At the core of the system is the Adaptive Market Structure Engine, which acts as the foundation for all higher-level calculations. This engine continuously evaluates swing highs, swing lows, internal structure transitions, and external break-of-structure events in order to determine directional context across changing market conditions.
Unlike simplified structure indicators that only label highs and lows, the system distinguishes between internal market behavior and broader external trend development. This distinction allows traders to identify whether price action is currently impulsive, corrective, ranging, or transitioning into a potential reversal phase.
The structure engine also serves as a contextual filter for all other modules. Order blocks, fair value gaps, liquidity sweeps, and entry confirmations are evaluated relative to active structural conditions. This prevents isolated signals from appearing without broader market confirmation and helps traders focus on areas where multiple concepts align simultaneously.
One of the major components of the framework is the enhanced Order Block Engine. Traditional Smart Money Concept implementations often display large amounts of order blocks regardless of quality or contextual relevance, which can quickly overcrowd charts and reduce clarity. In this script, the order block system was redesigned to prioritize quality, structural alignment, and reaction probability instead of quantity.
The engine analyzes several contextual variables before validating a zone, including displacement strength, mitigation behavior, structural positioning, surrounding liquidity conditions, and overall market alignment. Zones that do not meet minimum contextual requirements are filtered out in order to reduce noise and improve readability.
This process creates a cleaner chart environment where institutional-style supply and demand zones become easier to interpret. The goal is not simply to identify historical candles, but to highlight areas where market participants may still have unfilled interest or where future reactions could become more likely.
To further improve usability, the indicator introduces Dynamic Fill Technology across both order blocks and fair value gaps. Instead of displaying every zone with equal visual weight, transparency levels dynamically adapt according to the internal scoring and contextual relevance of each area.
This visual hierarchy helps traders quickly distinguish stronger zones from weaker ones without manually analyzing every individual structure. Higher-confidence zones appear more visually dominant, while weaker areas fade into the background. The intention behind this system is to transform complex structural information into an intuitive visual workflow that supports faster decision-making during live market conditions.
Another major feature is the Dual Fair Value Gap Engine. Fair value gaps represent areas where price moved aggressively, creating temporary inefficiencies in the market. These imbalances often become important reaction zones as price later revisits them in an attempt to rebalance liquidity and restore market efficiency.
The Dual FVG system was specifically developed to identify strong imbalances across both lower timeframes (LTF) and higher timeframes (HTF) simultaneously. This allows traders to observe not only short-term inefficiencies, but also broader institutional imbalances that may influence market behavior over extended periods.
One of the key advantages of this approach is the ability to identify overlapping imbalances between different timeframe structures. When lower-timeframe and higher-timeframe fair value gaps align within similar price regions, these areas can represent stronger institutional interest and potentially more precise market impulses.
This multi-timeframe imbalance framework helps traders better understand where price may accelerate, react, or seek liquidity. By combining local execution zones with broader macro inefficiencies, traders gain additional context for identifying higher-probability entries and continuation opportunities.
The Liquidity Engine represents another central pillar of the framework. Liquidity behavior is one of the most important concepts in institutional trading because price often seeks areas where stop-loss orders, breakout traders, and resting liquidity are concentrated.
Instead of relying solely on static support and resistance levels, the liquidity system actively identifies equal highs, equal lows, liquidity pools, sweep conditions, and engineered liquidity grabs in real time. These events are then evaluated relative to structure and directional context.
This allows traders to better understand potential market intent rather than simply reacting to price movement after it has already occurred. For example, a liquidity sweep occurring against higher-timeframe directional bias may indicate temporary stop-hunting behavior rather than genuine reversal strength.
The interaction between liquidity and structure becomes especially important when combined with order blocks and fair value gaps. Areas where liquidity sweeps occur directly into structurally aligned imbalance zones can often provide significantly stronger contextual setups than isolated technical signals.
To further support directional analysis, the indicator also incorporates a Multi-Timeframe Moving Average Module. This feature provides optional trend filtering and directional confirmation by allowing traders to compare lower-timeframe execution against higher-timeframe trend conditions.
The moving average framework is not intended as a standalone signal generator, but rather as an additional contextual layer that helps traders avoid counter-trend positioning during strongly directional environments. This can be particularly useful when combining liquidity sweeps with continuation structures.
One of the newest additions to the framework is the Entry Finder Module, which is currently in Beta development. The purpose of the Entry Finder is not to replace discretionary trading decisions, but to assist traders in locating areas where multiple forms of confirmation align simultaneously.
The Entry Finder analyzes the relationship between structure direction, liquidity interaction, order block positioning, fair value gap alignment, and market momentum in order to identify potential execution zones. The system attempts to detect moments where price may be transitioning from liquidity collection into directional continuation.
For example, during bullish market conditions, the Entry Finder may identify a scenario where downside liquidity is swept below recent lows before price re-enters a bullish order block or bullish fair value gap that aligns with higher-timeframe structure. In bearish environments, the same logic can apply inversely after upside liquidity has been collected.
The purpose of this process is to help traders avoid emotional momentum entries and instead focus on structurally supported retracement opportunities where institutional participation may become more probable.
The Entry Finder can also assist traders by improving timing during volatile conditions. Many traders correctly identify directional bias but struggle with execution precision. By highlighting areas where liquidity, imbalance, and structure align simultaneously, the system attempts to improve entry location and reduce unnecessary chasing behavior.
Because the Entry Finder remains in Beta, its filtering logic and confirmation models are still being refined. Current versions should be viewed as execution assistance tools rather than fully automated signal systems. Traders are encouraged to combine the Entry Finder with their own risk management and market interpretation.
In addition to its analytical capabilities, the overall design philosophy of the indicator focuses heavily on chart readability and workflow efficiency. One of the common challenges with Smart Money Concept tools is visual overload caused by excessive labels, overlapping zones, and unnecessary calculations appearing simultaneously.
This framework was designed to reduce that issue through selective filtering, contextual prioritization, and dynamic visual weighting. Rather than attempting to display every possible technical event, the indicator focuses on highlighting areas where multiple concepts converge.
The result is a cleaner trading environment that allows users to focus more effectively on liquidity behavior, structural shifts, and execution planning without becoming overwhelmed by chart clutter.
The xLevTrading AI Smart Money Concept Indicator should be viewed as a professional-grade analytical framework designed for discretionary traders who want a deeper understanding of institutional price behavior. By combining enhanced Smart Money Concept principles with proprietary filtering systems, dynamic visualization methods, liquidity analysis, and multi-timeframe contextual alignment, the script aims to transform complex market behavior into a more structured and actionable decision-making process.
This indicator does not guarantee profitable trades and should not be interpreted as financial advice. It is intended as a decision-support and market-structure analysis tool that assists traders in interpreting price action, identifying contextual confluence, and improving overall market awareness across different trading environments.
Chart Visualization & Color Structure
To improve chart readability and help traders quickly distinguish between different market concepts, the indicator uses a structured color hierarchy across all major components. The visual system was intentionally designed to reduce confusion during live analysis and to make the interaction between liquidity, structure, order blocks, and fair value gaps easier to interpret.
Bearish higher-timeframe order blocks are displayed in purple. These zones represent institutional-style supply areas that align with broader bearish market structure and may act as potential reaction or continuation zones during retracements.
Bearish higher-timeframe fair value gaps (HTF FVGs) are displayed in orange. These imbalance zones represent aggressive bearish displacement on higher timeframes and are intended to highlight areas where price inefficiencies may still attract future reactions or rebalancing behavior.
Bearish chart timeframe fair value gaps are displayed in red. These zones reflect local bearish imbalances directly on the active chart timeframe and are primarily used for short-term execution analysis and momentum continuation setups.
Bullish chart timeframe fair value gaps are displayed in green. These indicate local bullish inefficiencies where price moved aggressively to the upside, potentially leaving behind imbalance zones that may later provide support during retracements.
Bullish higher-timeframe fair value gaps are displayed in turquoise. These zones represent larger bullish imbalances from higher timeframe price action and are intended to provide macro directional context and stronger institutional reaction areas.
The interaction between these colors and zones is an important part of the overall framework. Traders can use overlapping higher-timeframe and lower-timeframe imbalances to identify areas where multiple forms of market inefficiency align simultaneously. For example, when a lower-timeframe bullish fair value gap develops inside a higher-timeframe bullish imbalance zone, this may indicate stronger continuation potential and improved structural confluence.
The chart layout shown in the publication intentionally focuses only on the indicator’s own analytical components without unnecessary overlays or unrelated tools. This cleaner presentation is designed to help traders clearly identify how the different modules interact with one another in real market conditions.
Labels such as Break of Structure (BOS), Change of Character (CHoCH), liquidity sweeps, moving averages, order blocks, and fair value gaps are displayed directly within their relevant market context to support visual interpretation and execution planning.
Indicator

Indicator

MSL Liquidity TailsMSL Liquidity Tails is a liquidity reaction indicator based on long candle wicks. It helps detect strong pin bar rejection candles and automatically projects potential supply and demand zones directly on the chart.
The indicator identifies candles with unusually long dominant wicks, filters them through volatility, candle-structure and signal-spacing conditions, and then builds visual zones from areas where price was strongly rejected.
A long upper wick creates a Sell Pressure zone.
A long lower wick creates a Buy Pressure zone.
Broken zones can remain visible as gray Ghost Zones, showing historical areas of previous price reaction.
The main purpose of the indicator is not to predict the market, but to highlight zones where price has already shown a noticeable reaction. These areas can be used as references for retests, market structure analysis, support/resistance work, and trade scenario planning.
1. Core idea
Many important market reactions begin with a failed price movement.
Price moves higher or lower, forms a long wick, and then closes away from the extreme. This type of candle often shows that the market tested a specific area, met strong opposition, and failed to hold that level.
MSL Liquidity Tails automatically marks these areas on the chart.
The indicator helps answer several practical questions:
• where price was sharply rejected;
• where buyers or sellers showed activity;
• which zones may be worth watching on a future retest;
• which broken zones may remain relevant as historical levels;
• where a support/resistance flip may appear after a zone break.
2. What the indicator shows
Sell Pressure zones
A red zone appears after a candle with a long upper wick.
This means price moved higher, but the move was rejected before the candle closed. This zone can be used as a potential supply, resistance, or sell-pressure reference area.
Important: a red zone does not mean price must fall. It only marks an area where sellers previously showed a noticeable reaction.
Buy Pressure zones
A green zone appears after a candle with a long lower wick.
This means price moved lower, but the move was rejected before the candle closed. This zone can be used as a potential demand, support, or buy-pressure reference area.
Important: a green zone does not mean price must rise. It only marks an area where buyers previously showed a noticeable reaction.
Ghost Zones
If price fully moves through an active zone, it can turn gray when Keep broken zones is enabled.
This zone is no longer treated as a fresh active reaction zone, but it remains on the chart as a historical reference. In some cases, broken zones may later work as support/resistance flip areas, but this scenario should always be confirmed with additional context.
3. Detection logic
The indicator uses several filters to avoid marking every random wick on the chart.
A new zone appears only when the candle passes all key conditions at the same time.
ATR filter
The wick must be large enough relative to current volatility.
The indicator uses ATR for this. This makes the detection adaptive to the selected instrument and timeframe: a quiet market is evaluated with one volatility context, while a more active market is evaluated with another.
Wick/Body filter
The wick must be large enough relative to the candle body.
This filter helps identify pin bar-style rejection candles rather than ordinary wide-range candles with balanced movement.
Wick Dominance filter
The active wick must be larger than the opposite wick.
For a Sell Pressure zone, the upper wick should dominate.
For a Buy Pressure zone, the lower wick should dominate.
This helps filter out unclear candles where neither side has a clearly expressed advantage.
Min Gap filter
A minimum number of bars must pass between new zones.
This filter reduces repeated zones and helps keep the chart cleaner, especially on volatile instruments.
4. Zone structure
Each active zone consists of several elements.
Zone body
The colored rectangle shows the wick area where price reaction was detected.
For Sell Pressure, the zone is built from the candle high to the upper edge of the candle body.
For Buy Pressure, the zone is built from the lower edge of the candle body to the candle low.
Mid-line
Each active zone has a dashed middle line.
It marks the 50% level of the zone and can be used as an additional reference during retests.
Volume label
The zone label shows the volume of the candle that created the zone.
Volume does not guarantee the strength of the level, but it provides useful context. Higher volume may indicate a more significant reaction when confirmed by price behavior, timeframe, and broader market structure.
Retest counter
The label also shows how many times price has returned to the zone.
Examples:
S: 261K x4
The Sell Pressure zone was formed on a candle with 261K volume, and price has returned to this zone four times.
B: 704K x3
The Buy Pressure zone was formed on a candle with 704K volume, and price has returned to this zone three times.
5. Zone lifecycle
Active zone
A new zone remains active until price fully breaks through it.
An active zone extends to the right side of the chart, keeps its color, displays the mid-line, and continues tracking retests.
Broken zone
If price fully moves through an active zone, the indicator treats it as broken.
If Keep broken zones is enabled, the zone becomes a gray ghost zone.
If Keep broken zones is disabled, the broken zone is removed from the chart.
Expired zone
Any zone is automatically removed after the value set in Max Age.
This helps prevent the chart from becoming overloaded with old areas that may no longer be relevant.
6. How to use the indicator
MSL Liquidity Tails is not a standalone trading system and does not provide ready-made buy or sell signals.
It is an analysis tool that highlights areas of interest. Trading decisions should only be made with additional context, such as market structure, trend direction, support and resistance levels, volume behavior, price action, and personal risk-management rules.
Potential LONG scenario
A LONG scenario may become interesting when price returns to an active green Buy Pressure zone, holds that area, and shows a buyer reaction.
The zone itself is not an entry point. It only marks an area where a trader may look for confirmation.
Potential SHORT scenario
A SHORT scenario may become interesting when price returns to an active red Sell Pressure zone, fails to hold above it, and shows a seller reaction.
The zone itself is not an entry point. It only marks an area where a trader may look for confirmation.
Potential FLIP scenario
A gray Ghost Zone can be used as a historical reference.
If price returns to a broken zone from the opposite side, this area may sometimes work as a support/resistance flip. This scenario also requires confirmation through price action and broader market context.
7. Suitable markets and timeframes
The indicator is best used on liquid instruments with enough volatility and clear price reactions.
Cryptocurrencies
Examples: BTC, ETH, SOL, ARB
Suggested timeframes: 15m, 1H, 4H, 1D
Crypto markets often produce long wicks, sharp sweeps, and fast price returns, so wick-based rejection zones can be useful for analysis.
US stocks
Examples: NVDA, TSLA, COIN, AAPL
Suggested timeframes: 1H, 4H, 1D
Liquid stocks often form strong rejection zones around news events, session opens, gaps, and strong intraday movements.
Forex majors
Examples: EURUSD, GBPUSD, USDJPY
Suggested timeframes: 1H, 4H
Major currency pairs can be useful for analyzing reactions around local extremes and key areas.
Indices
Examples: SPX, NDX, DAX
Suggested timeframes: 4H, 1D
Higher timeframes help reduce noise and make significant reaction zones easier to read.
Commodities
Examples: Gold, Oil
Suggested timeframes: 1H, 4H, 1D
Commodities often produce sharp spike movements during news, macro events, and session volatility, which can create clear rejection zones.
8. Main settings
ATR Period
The ATR period used to measure current volatility.
ATR Mult
Defines how large the wick must be relative to ATR.
Lower values create more zones but may add noise.
Higher values create fewer zones but apply stricter filtering.
Wick/Body
Defines the minimum wick-to-body ratio.
Higher values focus on cleaner pin bar-style structures.
Wick Dominance
Defines how strongly the active wick must dominate the opposite wick.
Higher values make the filter stricter and reduce the number of signals.
Min Gap
The minimum number of bars between new zones.
This helps avoid excessive signals and zone clustering.
Max Age
The number of bars after which a zone is automatically removed from the chart.
Opacity
Controls the transparency of active zones.
Keep broken zones
When enabled, broken zones remain visible as gray Ghost Zones.
When disabled, broken zones are removed after the break.
9. How to read the chart
It is best to read the chart with the indicator step by step.
First, identify active red and green zones.
Then check where price is relative to those zones.
When price returns to a zone, evaluate the reaction: hold, break, false break, or rejection.
Check whether the reaction aligns with the broader market structure.
Use additional confirmation before making any trading decision.
On the BTCUSDT chart, red zones show areas where price moved higher but was rejected. These zones can be watched as potential supply or resistance areas during future retests.
Green zones show areas where price moved lower but was bought back. These zones can be watched as potential demand or support areas.
Gray zones show older broken areas. They help identify where the market previously reacted and where future price interest may appear again.
10. Practical summary
MSL Liquidity Tails makes wick-based liquidity reactions easier to see and track.
The indicator is useful for:
• detecting strong rejection candles;
• building potential supply and demand zones;
• tracking live retests;
• keeping historical broken-zone context;
• analyzing support/resistance flips;
• building a cleaner market context around liquidity reactions.
The indicator works best as part of a complete analysis process, not as a mechanical signal generator.
Important notice
This indicator is intended for educational and analytical use only.
It is not financial or investment advice, does not provide guaranteed trading signals, and does not predict future price movement. All zones displayed on the chart are analytical references and should be evaluated together with market context, confirmation signals, and risk-management rules.
Trading involves risk. Users are fully responsible for their own trading decisions. Indicator

Liquidity Sweep Quality Score [TradeDots]Liquidity Sweep Quality Score
Summary
This indicator detects liquidity-sweep events on the chart timeframe and assigns each event a 0 to 100 composite quality score with an A+, A, B, C, D, or Weak letter grade. A liquidity sweep here is defined precisely: the current bar prints beyond a confirmed swing pivot (below a prior swing low for a bullish sweep, or above a prior swing high for a bearish sweep) and closes back inside the prior range. The composite score is built from six independent factors that quantify how decisively the rejection occurred and how supportive the surrounding context is. The grade label is drawn on the bar immediately after the sweep so that the score includes the first piece of follow-through evidence.
What is original here
Detecting liquidity sweeps from pivot geometry is straightforward and is already common across public scripts. Where most scripts stop at binary detection ("a sweep happened"), this script adds a multi-factor quality layer on top. The originality is in the scoring methodology: six measurable factors, each normalized to a 0 to 100 scale so that raw units do not dominate, combined as a weighted average with a regime-aware penalty applied at the end. All weights and thresholds are exposed as inputs so that the model is auditable and tunable. The contribution is not the detection but the explicit, transparent scoring layer that lets traders rank sweeps rather than treat them as uniformly meaningful.
How it works
Pivots are tracked with the standard pivot-high and pivot-low primitives using a user-configurable symmetric left/right lookback. The most recently confirmed swing high and swing low are held in memory.
A bullish sweep registers when the current bar's low prints below the most recent swing low and the current close finishes above it. A bearish sweep is the symmetric case. A wick-to-body ratio gate filters trivial events where the rejection wick is too small relative to the candle body. Signal evaluation is gated by barstate.isconfirmed, so signals only finalize at bar close.
When a sweep is detected, the six factors below are computed.
1. Wick rejection strength. The size of the rejection wick on the sweep candle relative to the candle body. A larger wick relative to body indicates a more decisive intrabar rejection of the swept level. Scaled by the user's minimum acceptable wick-to-body ratio.
2. Relative volume. The rolling percentile rank of the sweep bar's volume within a configurable lookback (default 100 bars). Sweeps occurring on volume in the upper percentiles score higher than sweeps on quiet bars.
3. Failed-break decisiveness. The distance between the swept pivot and the close, expressed in ATR units. A close that recovers a full ATR back inside the prior range scores higher than a marginal recovery.
4. Higher-timeframe level proximity. The distance between the close and the nearest of the prior higher-timeframe bar's high or low, expressed in ATR units. Sweeps near a major higher-timeframe level score higher than sweeps at intra-range pivots.
5. Follow-through confirmation. The bar immediately after the sweep is inspected. A directionally consistent follow-through (a green bar after a bullish sweep, a red bar after a bearish sweep) earns full credit. Because this factor requires the next bar, the composite is finalized one bar after the sweep candle and the grade label is drawn on the follow-through bar, not on the sweep bar itself. This is documented behaviour, not a defect.
6. Regime penalty. Computed from ADX and the EMA-50 / EMA-200 alignment. When a sweep occurs against the direction of a strongly trending market (ADX above the user threshold and the sweep direction conflicts with the EMA alignment), a fixed user-configurable penalty is subtracted from the composite. A bullish sweep in a strong downtrend is structurally the same pattern as a bullish sweep in a balanced range, but the prior probability of follow-through differs. The penalty makes that difference visible in the score.
The composite is the weighted average of factors 1 through 5, with factor 6 applied as a post-weighting deduction. Tier mapping:
A+ : score 90 or higher
A : score 80 to 89
B : score 70 to 79
C : score 60 to 69
D : score 50 to 59
Weak : below 50
Repainting and data integrity
All sweep detection, scoring, label placement, and alert triggers are gated by barstate.isconfirmed. Signals do not appear or change intrabar.
The higher-timeframe level is fetched with request.security() using the prior-bar source (high and low ) together with the barmerge.lookahead_on flag. This combination is the established non-repainting form for higher-timeframe reads: the index requests the value from the prior higher-timeframe bar, and the lookahead flag ensures that value is returned consistently in both historical and real-time evaluation. This pattern does not access future data. It returns the last confirmed higher-timeframe bar's extremes, which are already history at the moment they are read.
How to read the chart
A small triangle is plotted at the sweep bar itself: below the bar for bullish sweeps, above the bar for bearish sweeps. This marks the detection event.
A directional grade label is drawn on the next bar (the follow-through bar), with text showing the letter grade and the numeric composite score. The label color shifts on a red-to-green gradient based on the score.
A configurable dashboard panel shows the most recent sweep's direction, each of the six sub-factor scores with gradient cells, the regime-penalty status, the composite score, and the letter grade.
All sub-scores are also output as hidden plots so that they are accessible from the Data Window and may be referenced in alert messages.
Inputs
Inputs are grouped into five sections.
Core Settings : swing pivot lookback, minimum wick-to-body ratio, ATR length, volume percentile lookback.
Filters : higher-timeframe reference, ADX length and threshold for the regime check, regime-penalty enable toggle.
Score Tuning : a 0 to 1 weight for each of the five positive factors and the regime-penalty magnitude in points.
Visual Settings : panel position, panel size, label cap, marker and label toggles.
Any Alert() function call conditions : per-signal boolean toggles to enable individual alerts.
Alerts
Six alert conditions are provided: A+ Setup, A Setup, B Setup, Bullish Sweep with quality at or above 70, Bearish Sweep with quality at or above 70, and Any Sweep with score at or above 80. Each alert is declared via alertcondition() for native PulseWire alert configuration and is also fired programmatically through alert() when its corresponding input toggle is enabled. All programmatic alerts use alert.freq_once_per_bar_close to prevent intrabar re-triggers. The alertcondition() message templates include {{ticker}}, {{interval}}, and {{close}} placeholders for webhook integrations.
How to use this script
This script is a quality filter for reversal-style entries. It is not a complete trading system.
Identify a discretionary or systematic reversal context — a higher-timeframe level retest, a range extreme, a divergence, or any structure already in your plan.
Wait for a sweep marker to print.
Read the dashboard at bar close on the follow-through bar. Treat B-grade or better as candidate setups. Treat C and Weak as information only.
If the regime-penalty row indicates the sweep is fighting a strong trend, weight the signal toward "pullback rejection inside a continuing trend" rather than "trend reversal."
Position sizing, stop placement, and target selection remain entirely the user's responsibility.
Limitations and honest caveats
The composite score is a heuristic evidence weighting. It is not a statistically calibrated probability. An A grade means a sweep has more of the listed evidence factors than a C grade. It does not imply a specific likelihood of follow-through.
Pivot detection has inherent right-bar confirmation lag. A swing pivot is only confirmed after the configured right lookback has elapsed.
The higher-timeframe proximity factor uses only the prior higher-timeframe bar's high and low. Other structurally relevant levels — anchored VWAPs, weekly opens, user-marked supply or demand, prior session highs and lows — are not part of this factor.
The regime penalty uses ADX, which is a lagging measure of trend strength and will not flag fast regime shifts immediately.
The grade label is drawn one bar after the sweep bar by design (see factor 5 above). Traders who require the label on the sweep bar itself should be aware that this would mean publishing a score before the follow-through evidence exists.
The script is an indicator, not a strategy. It does not size positions, manage stops, or backtest entries.
Disclaimer
This script is published for informational and educational purposes. It is not investment advice and is not a recommendation to buy or sell any instrument. Past appearance of any pattern, including high-grade sweep setups, does not guarantee future behaviour. Users are solely responsible for their own trading decisions and risk management.
Indicator

Indicator

Indicator

Global Forex Session Matrix Overlay🌐 Global Forex Session Matrix Overlay
Global Forex Session Matrix Overlay is an educational chart overlay designed to help traders study intraday market behavior using global session timing, key reference levels, trend context, market structure, VWAP, and volume activity in one clean chart view.
This tool helps organize important market information such as session ranges, opening ranges, trading day levels, previous day levels, weekly reference areas, moving average trend context, pivot structure, VWAP value areas, and volume-weighted candle behavior. It is mainly useful for forex and gold chart analysis, especially on intraday timeframes.
The script includes global market session references such as Asian, Sydney, Tokyo, Frankfurt, London, and New York sessions. These session tools help users observe session highs, session lows, opening ranges, and price reactions around important market timing areas. This can support the study of liquidity movement, breakout behavior, rejection areas, and intraday market rhythm.
The overlay also includes key trading day levels such as Trading Day Open, Previous Day High, Previous Day Low, and optional day reference levels. These levels can help traders identify important support and resistance areas, possible breakout zones, and areas where price may react during the trading day.
For higher-timeframe context, the script includes reference levels such as Weekly Initial Balance, Weekly Open, Weekly Close, and optional weekly or monthly range tools. These levels can help users understand whether price is trading above or below important weekly reference points and can support a more structured view of market bias.
The Moving Average Cloud is included to help traders observe trend direction and dynamic support or resistance. When price is trading above the cloud, users may study bullish structure. When price is trading below the cloud, users may study bearish structure. When price is inside or near the cloud, market direction may be less clear and may require additional confirmation.
The VWAP framework can be enabled for value-based analysis. VWAP and optional VWAP bands help users study whether price is trading around value, above value, or below value during the selected anchor period. This can be useful when combined with session levels, structure, and candle confirmation.
The Pivot and Market Structure tools help highlight important swing points and developing structure areas. These can support the study of higher highs, higher lows, lower highs, lower lows, and possible structure shifts. Pivot-based elements should be used with confirmation because developing pivots can update before they are fully confirmed.
The Volume-Weighted Candle Coloring feature helps users visually identify candles with stronger or weaker volume participation. This can be useful for observing momentum, rejection, continuation, and possible exhaustion around important levels. Volume color should not be used alone as an entry reason and should always be combined with price action and structure.
📌 How to Use and Build Entry Ideas
Start by applying the indicator to an intraday forex or gold chart. First, check the active market session and observe where price is trading in relation to the current session range, session high, session low, Trading Day Open, Previous Day High, Previous Day Low, Weekly Open, and Weekly Initial Balance.
A bullish trade idea can be studied when price holds above an important reference level, the Moving Average Cloud supports upward structure, and candles confirm strength after a pullback or breakout. Extra confirmation may come from price holding above VWAP, rejecting a session low, breaking above a previous session high, or forming a higher low structure.
A bearish trade idea can be studied when price rejects an important resistance area, moves below a key reference level, and the Moving Average Cloud or structure supports weakness. Extra confirmation may come from price failing near Previous Day High, rejecting a session high, moving below VWAP, or forming a lower high structure.
Users can also study session range reactions for liquidity context. For example, price reacting around an Asian high or low, New York opening range, Previous Day High, Previous Day Low, Weekly Open, or Weekly Initial Balance can provide useful context. The idea should be confirmed with candle close behavior, market structure, and volume reaction.
When price is inside the Moving Average Cloud, between major levels, or moving without clear structure, it may be better to wait for a cleaner setup. This script is designed to support analysis, not to provide automatic entries.
For safer analysis, avoid making decisions from unfinished candles only. Wait for candle close confirmation, check the nearby support or resistance level, define risk clearly, and use your own trading plan before making any decision.
⚙️ Settings Overview
The indicator includes settings for visual themes, compact dashboard position, session ranges, opening ranges, trading day levels, weekly and monthly reference levels, VWAP tools, pivot and market structure display, moving average cloud settings, volume-weighted candle coloring, event layers, and timezone configuration.
Users can keep the chart simple by enabling only the most important tools, or they can activate more features when deeper market context is needed. Timezone and session settings should be checked carefully so session levels align correctly with the market being analyzed.
⚠️ Limitations
This script does not predict future price movement and does not guarantee any result. Market conditions can change quickly, especially during news, low liquidity, or high volatility periods. Some tools depend on the selected symbol, timeframe, session settings, and timezone.
Developing session ranges, pivots, and structure-related elements may update while candles are still forming. For more reliable analysis, users should wait for confirmed candle closes and avoid making decisions based only on unfinished bars.
📚 Educational Risk Disclaimer
This script is provided for educational and technical analysis only. It is not financial advice and should not be used as the only reason to enter or exit a trade. Trading involves risk, and past market behavior does not guarantee future results. Always use your own confirmation, risk management, and trading plan. Indicator

HTF Candle BoxesHTF Candle Boxes — Wick / Body / Wick + Liquidity Window
Renders each higher-timeframe candle (1H, 4H, or 1D) as three horizontal zones drawn over the lower-timeframe bars that compose it. Lets you see HTF structure without leaving your scalp/intraday chart.
What it draws
Upper wick zone — from HTF high down to the body top.
Body zone — tinted green (bullish) or red (bearish) based on HTF open vs close.
Lower wick zone — from body bottom down to HTF low.
Body midpoint — a dotted line at the exact 50% of the HTF body. Useful as an MSS / mean-reversion reference because price respects it more often than mid-of-candle.
Outer wrapper — a subtle gray border around the full HTF high-low range.
Liquidity window lines — two vertical lines per HTF candle bracketing the high-liquidity zones around each HTF rollover:
One 15 minutes after the HTF candle opens (near-open liquidity edge)
One 15 minutes before the HTF candle closes (near-close liquidity edge)
Both lines are confined inside the HTF box (no infinite extension cluttering the chart) and grow vertically with the candle as it forms. They only render on M1 / M3 / M15 / M30 charts — above M30 the 15-min bracket is finer than a bar, so it's hidden.
Why it's useful
HTF candles cleanly show institutional context without scrolling between timeframes.
The body midpoint becomes a real-time pullback / continuation level intraday.
The liquidity bracket marks the 15-min window straddling each HTF rollover, when most desk-driven flow concentrates around the candle close/open — a high-probability place for sweeps, reclaims, and reversal entries.
Inputs
HTF timeframe — 1H, 4H, or 1D.
Fill colors — upper wick, lower wick, bull body, bear body (defaults: gray wicks at 90% transparency, green/red body at 70%).
Show borders + Border color.
Show body midpoint + color, style (solid / dashed / dotted), width.
Wrap HTF candle in outer box + outer border color.
Show liquidity window lines + minutes ± boundary (default 15), color, style.
Implementation note
HTF o/h/l/c are aggregated directly from the LTF bars inside each HTF window — not pulled via request.security. That avoids the one-bar lag where request.security(..., lookahead_off) returns the prior confirmed HTF candle, which would otherwise leave LTF wicks poking outside the box. The boxes here always wrap every LTF bar they contain, on both historical and live data.
Published under MIT-style permissive use — feel free to fork and adapt. Indicator

Indicator

Arbiter Channel [JOAT]Arbiter Channel
Introduction
Arbiter Channel is an open-source market state overlay built to classify directional control, compression, and expansion using a layered baseline-and-channel framework. The script blends an Ichimoku-inspired composite baseline, body-aware tolerance channels, and a confirmed-bar trend-state engine to identify whether price is operating in directional acceptance, compression, or expansion. Rather than acting like a generic moving average channel, Arbiter Channel is designed to map the relationship between equilibrium and displacement.
The problem Arbiter Channel solves is false trend interpretation. Price can trade above a moving average without truly being in an efficient trend, and it can look weak during healthy pullbacks inside a broader expansion. Arbiter Channel separates baseline equilibrium, tolerance acceptance, and directional displacement so that the user can tell whether price is simply oscillating around fair value, compressing inside equilibrium, or expanding away from it with intent.
Core Concepts
1. Composite Baseline Construction
The baseline is built from an Ichimoku-style blend of Conversion, Base, Span A, and Span B components, with user-controlled inclusion and weighting. This creates a smoother and more structurally aware equilibrium anchor than a single moving average:
tenkan = donchianMid(convLen)
kijun = donchianMid(baseLen)
spanA = math.avg(tenkan, kijun)
spanB = donchianMid(spanBLen)
2. ATR and Body Tolerance Channel
Instead of plotting a fixed-width envelope, the channel adapts to both ATR behavior and candle-body pressure. This helps the band respond differently during active displacement than during passive drift. The result is a tolerance corridor where trend acceptance and loss of acceptance become visually obvious.
3. Confirmed-Bar Trend State Machine
Trend transitions are only registered on confirmed bars. This avoids intrabar flipping and helps keep trend-state changes non-repainting for practical signal use. The script distinguishes directional trend shifts from regime changes, so compression and expansion can evolve without necessarily forcing a full directional flip.
4. Compression and Expansion Regimes
Arbiter Channel tracks whether price is contracting around equilibrium or extending away from it. This is important because directional trend and volatility regime are not the same thing. A bullish trend can be compressing before expansion, and expansion can fail back into balance.
5. Institutional Visualization Layer
The overlay uses nested clouds, baseline shadows, state candle tinting, controlled event labels, and a medium top-right dashboard to summarize regime and trend without clutter.
Features
Composite baseline engine: Uses multiple Ichimoku-derived components instead of a single average
Adaptive tolerance channels: Envelope width responds to volatility and body behavior
Compression and expansion classification: Distinguishes rotational balance from directional release
Confirmed-bar trend state engine: Trend shifts only confirm after bar close
Outer reclaim events: Detects price returning inside channel boundaries after extension
Cloud-based regime visualization: Multi-layer fills show equilibrium and displacement zones
State candle tinting: Candles inherit directional context without overwhelming price
Top-right dashboard: Displays current trend, regime, channel state, and internal diagnostics
Fully configurable palette: Built for dark charts with adjustable institutional tones
Confirmed alertconditions: Trend shifts, regime changes, reclaim events, and expansion bursts
How to Use This Indicator
Step 1: Read the Trend State
Start with the dashboard and baseline color. This tells you whether the script currently classifies the market as bullish, bearish, or neutral from a confirmed-bar perspective.
Step 2: Check the Regime
Compression means price is accepting around equilibrium. Expansion means price is actively displacing. Combining trend with regime helps determine whether to expect continuation or wait for release.
Step 3: Use the Channel Structure
The inner and outer bands act as context zones. Price holding outside the inner corridor during expansion is stronger than price simply crossing the baseline.
Step 4: Watch Reclaim Events
When price extends beyond the outer channel and then reclaims back inside it, that event can signal exhaustion, acceptance failure, or a return to balance.
Indicator Limitations
The baseline is a structural equilibrium model, not a predictive model
Compression and expansion are relative to the current symbol and timeframe inputs
Strong news events can create abrupt regime transitions that temporarily distort channel interpretation
The script is best used as a context overlay, not as a standalone trade trigger
Originality Statement
Arbiter Channel is original in the way it separates directional trend, equilibrium tolerance, and volatility regime into one coordinated overlay. It is not a simple moving average channel and not a direct copy of Ichimoku. The value comes from combining a composite baseline, adaptive tolerance geometry, and confirmed-bar regime logic into a single context engine.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice and does not guarantee future market behavior. Always use proper risk management.
- Made with passion by jackofalltrades
Indicator

Indicator

CQ_(3)_Fibonacci IntraMonth Range v2================================================================================
CQ FIBONACCI INTRAMONTH RANGE 2 — USER MANUAL
Based on Fibonacci IntraDay Range — Adapted to IntraMonth Targets
Pine Script v6 | PulseWire Overlay Indicator
================================================================================
────────────────────────────────────────────────────────────────────────────────
OVERVIEW
────────────────────────────────────────────────────────────────────────────────
This indicator is a monthly-timeframe adaptation of the Fibonacci IntraDay and
IntraWeek Range system. Instead of projecting intraday or intraweek price
targets, it projects INTRAMONTH Fibonacci targets above and below each month's
opening price, calculated from a rolling average of past monthly high-low ranges.
The indicator is designed for position traders and swing traders who plan their
monthly bias and price targets at the start of each calendar month, using the
historical average monthly range as the statistical basis for target placement.
Key differences from the IntraWeek version:
- Reference period: MONTHLY open instead of weekly open
- Range calculation: average monthly high-low ranges (default: 3 months)
- Session trigger: first bar of each new month (timeframe.change("M"))
- Gauge label: "MONTH" instead of "WEEK"
- Monthly open baseline label: "⨁M" instead of "⨁W"
- Default horizontal offset: 58 bars (widest of the three, suits weekly/monthly charts)
- Default averaging window: 3 months (one quarter)
- Default level colors: blue rgb(48, 141, 255) vs amber
- Display Mode options: This Month / Two Months / Quarter / All
- No timeframe guard — runs on ALL timeframes including Monthly
- drawLines() called unconditionally (no tfAllowed check)
Timeframe availability:
Allowed: All timeframes (intraday, daily, weekly, monthly)
Hidden: Only when Display Mode = "Hidden"
Note: Unlike the IntraDay and IntraWeek versions, this script has NO tfAllowed
timeframe guard. The indicator draws on every timeframe without restriction.
The gauge also runs unconditionally (no tfAllowed check).
────────────────────────────────────────────────────────────────────────────────
HOW IT WORKS — CONCEPTUAL SUMMARY
────────────────────────────────────────────────────────────────────────────────
Step 1 — Monthly range accumulation:
Each month's high-low range is tracked as the month progresses bar by bar.
On the first bar of each new month, the completed prior month's range
(monthHigh - monthLow) is added to a rolling array. The oldest entry is
dropped once the array exceeds the "Months to Average Range" setting.
The array average becomes the "averageRange" for the new month.
Step 2 — Level projection:
Using the current month's opening price as the baseline, Fibonacci percentage
levels are projected both above and below:
levelAbove = monthlyOpen + averageRange × (Fib% ÷ 100)
levelBelow = monthlyOpen − averageRange × (Fib% ÷ 100)
Available levels: 15%, 25%, 40%, 50%, 60%, 75%, 100%, 125%, 150%, 175%, 200%
The 100% level equals a full average-range move — the primary monthly target.
Step 3 — Drawing objects created at month open:
At the first bar of each new month, all lines, label boxes, and circle
markers are created and stored in an IntraMonthRange object. Every subsequent
bar extends the right edge of all lines and label boxes forward in real time.
Step 4 — Session cleanup:
When Display Mode limits how many months are visible, the oldest
IntraMonthRange object is deleted (all drawing objects removed) when the
collection exceeds the maximum count.
Step 5 — Gauge update:
On every bar, the intramonth gauge is repositioned to the right edge of the
chart, showing current price position relative to the monthly open, high, and
low in real time.
────────────────────────────────────────────────────────────────────────────────
ALGORITHM — DETAILED STEP-BY-STEP
────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════
PROCESS 1: MONTHLY SECURITY DATA RETRIEVAL
══════════════════════════════════════════════════════════════════════════════
The indicator requests monthly OHLC data using request.security() with
lookahead_on, making monthly values available on every lower-timeframe bar:
monthly_open — opening price of the current month's candle
monthly_high — running high of the current month
monthly_low — running low of the current month
monthly_close — most recent close (current price intramonth)
These values feed both the gauge display and the profit/loss label.
══════════════════════════════════════════════════════════════════════════════
PROCESS 2: AVERAGE MONTHLY RANGE CALCULATION
══════════════════════════════════════════════════════════════════════════════
Variables:
monthRanges — rolling float array of completed monthly ranges
monthHigh — running high of the current month (tracked bar by bar)
monthLow — running low of the current month (tracked bar by bar)
averageRange — average of all entries in monthRanges
months — user-defined window size (default: 3)
Logic per bar:
Trigger: isFirstBarOfMonth = timeframe.change("M")
Fires on the first bar where the monthly timeframe changes — the first
trading bar of each new calendar month.
On isFirstBarOfMonth:
1. Compute completed prior month's range: monthHigh - monthLow
Push this value into monthRanges.
2. Reset monthHigh = high and monthLow = low (current bar's values).
3. If monthRanges.size() > months, shift out the oldest entry.
4. Recalculate averageRange = array.avg(monthRanges).
On every bar (including non-month-open bars):
monthHigh := high > monthHigh ? high : monthHigh
monthLow := low < monthLow ? low : monthLow
This continuously tracks the current month's expanding range.
Note: On the first bar of history, monthHigh and monthLow are na. The first
completed range pushed to monthRanges will compute as na - na = na. The
averageRange stabilizes only after at least one full month of data.
Important ordering note: In the main logic block, monthRanges.push() and the
monthHigh/monthLow reset happen BEFORE drawLines() is called. This means
the averageRange used to draw this month's levels is based on the prior
completed months only — the current month's range is not included in its
own level calculation. This is correct behavior.
══════════════════════════════════════════════════════════════════════════════
PROCESS 3: INTRAMONTH TENDENCY GAUGE
══════════════════════════════════════════════════════════════════════════════
Purpose: Real-time vertical gauge at the right edge of the chart showing
where price sits within the current month's range relative to the monthly open.
Trigger: Runs on every bar when Intramonth_gauge_draw = true.
Note: Unlike the IntraDay and IntraWeek versions, there is NO tfAllowed guard
on the gauge block. It runs on all timeframes.
Structure (two halves, anchored at monthly_open):
BULLISH HALF (upper, dark green by default):
Gauge_box_scope — background box spanning monthly_open to monthly_high
Labeled "MONTH" at top, dotted border, 50% transparent.
Gauge_line_max — horizontal line at monthly_high (foreground/teal color)
Gauge_line_min — horizontal line at monthly_open (background color)
Gauge_box_prc — filled inner box from monthly_open to close
Color = bullish foreground if close >= monthly_open
Gauge_line_prc — horizontal line at current close (width 4)
gauge_high_label — price label above the monthly high: "$X,XXX"
Style: label_down, sits above the bull box top
gauge_open_marker — short solid white horizontal line at monthly_open
gauge_open_label — "◀" label pointing left at monthly_open
BEARISH HALF (lower, dark amber by default):
Gauge_box_scope2 — background box spanning monthly_low to monthly_open
Labeled "MONTH" at bottom, dotted border, 50% transparent.
Gauge_line_max2 — horizontal line at monthly_open (bullish color, width 3)
Gauge_line_min2 — horizontal line at monthly_low (bearish foreground, width 2)
Gauge_box_prc2 — filled inner box from close to monthly_open
Color = Gmonthly_color (teal if above open, amber if below)
Gauge_line_prc2 — horizontal line at current close (width 4)
gauge_low_label — price label below the monthly low: "$X,XXX"
Style: label_up, sits below the bear box bottom
PROFIT/LOSS LABEL (positioned to the right of the gauge):
profit_loss_label — dollar gain/loss from monthly open: "$#,XXX"
Position: bar_index + gauge_offset + 6
y position: close + y_adjust (1 if above open, -1 if below)
Text: math.round(close - monthly_open, 0) formatted as '$#,000'
Color: fully transparent background, opaque text
Text color: teal if above monthly open, amber if below
Tooltip: percentage return + dollar amount + "from Monthly Opening: $X,XXX"
Position calculation:
gauge_offset = lines_offset - 6
Bullish box: left = bar_index + gauge_offset - 2
right = bar_index + gauge_offset + 1
Fill box: left = bar_index + gauge_offset - 1
right = bar_index + gauge_offset (note: -0 = +0)
P&L; label: bar_index + gauge_offset + 6
Dynamic updates (every bar):
All box corners, line endpoints, and label positions are updated using
set_ methods so the gauge tracks price in real time without creating
new objects on each bar.
Color logic:
GMOcolor = close >= monthly_open (boolean)
Gmonthly_color = gauge_bullish_color2 if GMOcolor else gauge_bearish_color2
This single variable drives the fill color of both price boxes and the
profit/loss label text color.
══════════════════════════════════════════════════════════════════════════════
PROCESS 4: FIBONACCI LEVEL DRAWING (drawLines function)
══════════════════════════════════════════════════════════════════════════════
Called unconditionally on every bar (no tfAllowed guard in the call site).
Creates new drawing objects only when isFirstBarOfMonth is true and
displayMode is not "Hidden".
─── MONTH-OPEN TRIGGER ─────────────────────────────────────────────────────
A new IntraMonthRange object is instantiated with three empty arrays:
lines — array for all Fibonacci level lines
labels — array for all text label boxes
circles — array for all circle dot markers
─── MONTHLY OPEN BASELINE ──────────────────────────────────────────────────
A dotted line is drawn at the opening price of the new month:
line.new(x1=bar_index, y1=open, x2=bar_index, y2=open,
color=HighLight, width=lineWidth, style=line.style_dotted)
x1 = x2 = bar_index at creation time. The extendLines() method updates x2
on every subsequent bar to extend the line forward.
If showCircles:
A "●" label is placed at bar_index - 1 at the open price.
Transparent background, HighLight text color.
If showLabels:
A box label "⨁M $X,XXX" is placed at the open price.
⨁M identifies this as the monthly open baseline.
bgcolor = HighLight, text_color = HighLight (rendered as colored text
against the HighLight background, making it appear highlighted).
─── FIBONACCI LEVEL LOOP (i = 0 to 10) ────────────────────────────────────
For each of the 11 possible levels, if fibEnabled.get(i) is true:
Compute:
levelAbove = open + (averageRange × fibMultis.get(i) / 100)
levelBelow = open − (averageRange × fibMultis.get(i) / 100)
Line color selection:
i == 6 (100% level): HighLight color (full opacity, accent blue)
all others: color.new(colors.get(i), 45) (45% transparent)
Circle color: always HighLight — same color for all circles regardless of level.
For levelAbove:
Push a line (style per lineStyle) into newIMR.lines.
If showCircles: push a "●" label at bar_index - 1, y = levelAbove.
For levelBelow:
Push a line (same style) into newIMR.lines.
If showCircles: push a "●" label at bar_index - 1, y = levelBelow.
If showLabels (evaluated independently after the main fib block):
For levelAbove: push a box with:
i == 6: "▼+100% $X,XXX" (special full-range label)
others: "+X% $X,XXX"
text_valign: text.align_bottom (label text sits above the line)
text_color: HighLight for i==6, NormalColor for all others
bgcolor: color.rgb(54, 58, 69, 70) — semi-transparent dark gray
For levelBelow: push a box with:
i == 6: "▲-100% $X,XXX" (special full-range label, downside)
others: "-X% $X,XXX"
text_valign: text.align_top (label text sits below the line)
text_color: HighLight for i==6, NormalColor for all others
bgcolor: same semi-transparent dark gray
After loop completes: push newIMR into collection array.
─── LINE EXTENSION (every bar after month open) ────────────────────────────
If newIMR is not na (i.e., a month object was created at some point during
this indicator's execution):
Call newIMR.extendLines():
For each line: line.set_x2(bar_index + lines_offset)
For each box label: box.set_right(bar_index + lines_offset)
(Label extension only runs if showLabels is true)
This keeps every active line and label stretched to the current bar plus
the user-defined offset on every tick.
─── COLLECTION CLEANUP ─────────────────────────────────────────────────────
maxMonths mapping:
"This Month" → 1
"Two Months" → 2
"Quarter" → 3
"All" → 999
If collection.size() > maxMonths AND displayMode != "All":
Call deleteLines() on collection.get(0):
Delete all lines and label boxes (if showLabels) in the oldest object.
Delete all circle labels.
Shift the oldest object out of collection.
────────────────────────────────────────────────────────────────────────────────
DATA STRUCTURES
────────────────────────────────────────────────────────────────────────────────
type IntraMonthRange
array lines — all Fibonacci level lines for this month
array labels — all text label boxes for this month
array circles — all circle dot markers for this month
method extendLines(IntraMonthRange this)
Iterates over lines and extends each to bar_index + lines_offset.
Iterates over labels and extends each right edge to bar_index + lines_offset.
Guard: skips if this is na.
method deleteLines(IntraMonthRange this)
Deletes every line in lines .
Deletes every box in labels (only if showLabels is true).
Deletes every label in circles .
Guard: skips if this is na.
Global state arrays:
collection — array — all active month objects
monthRanges — array — rolling monthly range history
fibMultis — (fixed at init)
colors — 11 user-defined level colors (captured at indicator load)
fibEnabled — 11 user-defined boolean toggles (captured at indicator load)
────────────────────────────────────────────────────────────────────────────────
SETTINGS REFERENCE
────────────────────────────────────────────────────────────────────────────────
── CONFIGURATION ───────────────────────────────────────────────────────────────
Display Mode
Controls how many months of Fibonacci levels are drawn simultaneously.
Hidden — disables all Fibonacci drawing (gauge still runs)
This Month — current month only (default)
Two Months — current and previous month
Quarter — last 3 months (one quarter)
All — every month on the chart (no cleanup, watch limits)
── AVERAGE RANGE SETTINGS ──────────────────────────────────────────────────────
Months to Average Range
Number of past completed months used to compute the average monthly range.
Default: 3 months (one quarter).
Lower values (1–2): react quickly to recent volatility; useful during
earnings seasons or high macro-event months.
Higher values (6–12): smoothed long-term average; better for stable,
range-bound instruments or broad index analysis.
── LABEL SETTINGS ──────────────────────────────────────────────────────────────
Show Labels
Toggles all text boxes showing percentage and dollar value at each level.
Default: On
Font Size
Options: Tiny / Small / Medium / Large
Applies to all level label text boxes.
Default: Small
Text Alignment
Options: Left / Center / Right
Horizontal alignment of text within each label box.
Default: Right
Position (Horizontal Offset)
Range: 0 – 100 bars. Default: 58.
How far right lines and labels extend past the current bar.
This is the widest default of the three versions (IntraDay=32, Week=45,
Month=58), reflecting the wider spacing needed on daily/weekly charts.
The gauge position is derived as: lines_offset − 6.
── LINE SETTINGS ───────────────────────────────────────────────────────────────
Line Width
Pixel thickness of all Fibonacci level lines.
Default: 1
Line Style
Options: Solid / Dashed / Dotted
Applies uniformly to all Fibonacci level lines.
Default: Solid
── CIRCLE SETTINGS ─────────────────────────────────────────────────────────────
Show Circles at Line Start
Places a "●" marker at the left origin (month open bar) of each level line.
All circles use HighLight color regardless of individual level color.
Default: On
Circle Size
Options: Tiny / Small / Normal / Large
Default: Tiny
── FIBONACCI LEVELS ────────────────────────────────────────────────────────────
Each level has an individual color picker and enable/disable toggle.
All 11 levels share the same default color: rgb(48, 141, 255) — medium blue.
Level % Default Notes
------- ------ -------- ---------------------------------------------------
0 15% On Minor monthly support / resistance
1 25% On Quarter-range monthly pivot
2 40% On Below midpoint inflection
3 50% On Midpoint — half the average monthly range
4 60% On Above midpoint inflection
5 75% On Three-quarter range target
6 100% On Full average range — rendered in HighLight color
7 125% Off Extended monthly move
8 150% Off Extended monthly move
9 175% Off Extreme monthly extension
10 200% Off Double-range extreme
NormalColor (first "Highlighted Items Color" input)
Color of label text for all non-100% enabled levels.
Default: rgb(48, 141, 255) — same medium blue as level lines.
HighLight (second "Highlighted Items Color" input)
Color for: 100% level line and labels, the monthly open baseline line,
and ALL circle markers.
Default: rgb(134, 207, 255) — lighter, brighter blue.
Note: Both color inputs share the title "Highlighted Items Color" in
the settings panel. NormalColor appears first, HighLight second.
── GAUGE SETTINGS ──────────────────────────────────────────────────────────────
Draw Intramonth Price Tendency Gauge
Enables/disables the vertical gauge at the right chart edge.
Default: On
Note: No tfAllowed restriction — gauge runs on all timeframes.
Gauge Background (Bullish)
Background color of the upper half box (monthly_open to monthly_high).
Default: Dark green rgb(0, 83, 75).
Foreground (Bullish)
Fill bar color and monthly high label text color when close >= monthly_open.
Default: Bright teal rgb(0, 194, 174).
Gauge Background (Bearish)
Background color of the lower half box (monthly_low to monthly_open).
Default: Dark amber rgb(85, 48, 0).
Foreground (Bearish)
Fill bar color and monthly low label text color when close < monthly_open.
Default: Orange rgb(255, 153, 0).
────────────────────────────────────────────────────────────────────────────────
COMPARISON: ALL THREE VERSIONS SIDE BY SIDE
────────────────────────────────────────────────────────────────────────────────
Feature IntraDay IntraWeek IntraMonth
──────────────────────── ───────────────── ───────────────── ─────────────────
Reference period Daily open Weekly open Monthly open
Range source Daily H-L Weekly H-L Monthly H-L
Default avg window 1 day 4 weeks 3 months
Session trigger session.isfirstbar timeframe.change timeframe.change
("W") ("M")
Baseline label ⨁D ⨁W ⨁M
Gauge label DAY WEEK MONTH
Security timeframe 'D' 'W' 'M'
Timeframe guard W and M hidden M hidden None (all TFs)
tfAllowed in drawLines Yes Yes No (removed)
Default offset 32 bars 45 bars 58 bars
Default circle size Small Tiny Tiny
Default level colors Blue (153,198,253) Amber (182,109,0) Blue (48,141,255)
HighLight color Blue (181,212,249) Gold (255,176,58) LtBlue(134,207,255)
Display mode options Today/Two Days/ This Week/ This Month/
Week/All Two Weeks/ Two Months/
Month/All Quarter/All
Max visible periods 1/2/5/999 1/2/4/999 1/2/3/999
Current price label Yes (≤4H only) No No
Class name IntraDayRange IntraWeekRange IntraMonthRange
────────────────────────────────────────────────────────────────────────────────
PRACTICAL USAGE GUIDE
────────────────────────────────────────────────────────────────────────────────
Best timeframes for this indicator:
Weekly chart — primary use case for position traders; shows the monthly
Fibonacci levels across all weeks of the month, making it
easy to see which levels each week's price action is
interacting with.
Daily chart — ideal for swing traders; allows granular tracking of price
progress toward each monthly Fibonacci target day by day.
4H chart — useful for active traders who want intraday context while
keeping monthly structure visible.
Monthly chart — levels draw once per bar; useful only for quick reference
when comparing multiple months in "Two Months" or "Quarter"
mode.
Setting the averaging window:
3 months (default) — one quarter; balances recency with seasonal smoothing.
1 month — uses only last month's range; extremely reactive; good
for instruments with high month-to-month volatility.
6 months — half-year average; best for stable indices or commodities
where monthly ranges are relatively consistent.
12 months — full-year average; produces very stable targets; useful
for annual range planning.
Reading the monthly gauge:
The gauge gives instant visual feedback on the month's price progress:
- The teal upper half shows how far price has moved above the monthly open
toward the month's running high.
- The amber lower half shows how far price has dropped below the monthly open
toward the month's running low.
- The fill bar inside each half shows the proportional position of current
price within that half of the month's range.
- Hover over the P&L; label for exact percentage return from the monthly open.
Using levels as monthly targets:
The 50% level marks the midpoint of an average monthly range. Reaching 50%
within the first two weeks of the month represents a normal monthly pace.
The 100% level is the primary monthly target — reaching it signals a full
average-range month. Levels above 100% indicate an unusually large monthly
move, typical of trend-acceleration or major macro events.
Display Mode recommendations:
"This Month" — cleanest; focus on current month only.
"Two Months" — compare current month structure against the prior month.
"Quarter" — map the full quarter; useful for identifying whether
Fibonacci targets cluster across months (confluence zones).
"All" — useful only on high timeframes with limited bar history.
Monitor drawing object limits carefully.
Avoiding chart clutter:
On intraday and daily timeframes, monthly Fibonacci levels span a very large
price area. Keep the 125%–200% levels disabled unless specifically tracking
breakout months. Reducing the offset to 30–40 bars on daily charts helps
prevent label overlap with price action. On weekly charts the default 58-bar
offset works well.
────────────────────────────────────────────────────────────────────────────────
KEY DIFFERENCES FROM INTRADAY/INTRAWEEK VERSIONS — TECHNICAL NOTES
────────────────────────────────────────────────────────────────────────────────
1. No timeframe guard on indicator execution:
The IntraDay version hides on Weekly and Monthly charts. The IntraWeek
version hides on Monthly charts. The IntraMonth version has NO such guard.
The tfAllowed variable that exists in the other two versions is absent here.
drawLines() is called unconditionally, and the gauge block runs without a
tfAllowed condition.
2. No tfAllowed check inside drawLines():
The IntraDay and IntraWeek drawLines() functions check tfAllowed before
extending lines and before cleanup. The IntraMonth version omits this check
entirely — extension and cleanup run on every bar regardless of timeframe.
3. "Quarter" instead of "Month" or "Week":
The maximum Display Mode at the 3-period mark is called "Quarter" (3 months)
rather than "Month" (4 weeks in IntraWeek) or "Week" (5 days in IntraDay).
The maxMonths mapping is: This Month=1, Two Months=2, Quarter=3, All=999.
4. Main logic call order:
In IntraDay and IntraWeek, the range reset and averageRange recalculation
happen inside the session trigger block, followed by a separate drawLines()
call. In IntraMonth, the same order is preserved but drawLines() is called
at the bottom of the script without any tfAllowed guard wrapper.
5. Gauge fill box right edge:
The IntraMonth gauge uses bar_index + gauge_offset - 0 (effectively +0)
for the right edge of the fill box, compared to bar_index + gauge_offset
in the IntraWeek version. The result is functionally identical.
────────────────────────────────────────────────────────────────────────────────
QUICK REFERENCE — DEFAULT SETTINGS
────────────────────────────────────────────────────────────────────────────────
Display Mode This Month
Months to Average Range 3
Show Labels On
Font Size Small
Text Alignment Right
Horizontal Offset 58
Line Width 1
Line Style Solid
Show Circles On
Circle Size Tiny
Active Fib Levels 15%, 25%, 40%, 50%, 60%, 75%, 100%
Level Colors Blue rgb(48, 141, 255)
HighLight Color Light Blue rgb(134, 207, 255)
Normal Label Color Blue rgb(48, 141, 255)
Gauge On (all timeframes)
Gauge Bullish BG Dark green rgb(0, 83, 75)
Gauge Bullish FG Teal rgb(0, 194, 174)
Gauge Bearish BG Dark amber rgb(85, 48, 0)
Gauge Bearish FG Orange rgb(255, 153, 0)
────────────────────────────────────────────────────────────────────────────────
LIMITATIONS AND NOTES
────────────────────────────────────────────────────────────────────────────────
- averageRange is na until at least one full month of data has been processed.
Fibonacci levels will not appear correctly on the very first month of any
chart's history.
- The colors and fibEnabled arrays are initialized once at indicator load
using the var keyword. Changes to level colors or enable/disable toggles
may require a full indicator reload to take effect on the arrays.
- On the Monthly timeframe, timeframe.change("M") fires on every bar. This
causes drawLines() to create a new IntraMonthRange object on every bar,
immediately cleaning up the previous one. Use the Daily or Weekly timeframes
for the intended visual behavior.
- All past month objects remain visible within the Display Mode limit.
Switching Display Mode mid-month will not retroactively restore previously
deleted month objects. The new limit takes effect at the next month boundary.
- Indicator drawing limits:
max_lines_count = 500
max_boxes_count = 500
max_labels_count = 500
In "All" mode with extended chart history on intraday timeframes, these
limits may be reached. Use "Quarter" (3 months) for practical long-term use.
- There is no current price label in this version. Unlike the IntraDay
version, no live floating price box is included in this script.
- The indicator does not provide stop loss, position sizing, or take profit
levels. These must be determined by the trader using their own risk
management framework.
================================================================================
END OF MANUAL
================================================================================
Indicator

Indicator

[3Commas] Pullback Sniper Strategy🔷 What it does:
This strategy executes a long-only Dollar-Cost-Averaging approach driven by a single classic RSI signal on a 3-minute timeframe. It opens a base order when RSI(14) crosses below an oversold threshold, layers a martingale-scaled safety order ladder at predefined cumulative price deviations from the base, and exits the full position when RSI crosses back above an overbought threshold combined with a minimum profit gate from the average entry. The design is built for high-frequency intraday DCA on volatile liquid instruments — clean signal logic, structured averaging, no stop-loss dependency.
Base Order entry: RSI(14) crosses below 31 on 3m
Safety Order ladder: 5 levels, martingale volume scale ×1.25, deviation scale ×1.30
Exit: RSI(14) crosses above 69 on 3m AND profit ≥ 2.4% from average entry
Cumulative deviation mode (deviations measured from BASE price)
🔷 Who is it for:
Intraday DCA traders who prefer aggressive averaging with tight take-profit cycles.
Bot operators who run automated execution through webhook integration with a DCA Bot.
Discretionary traders who want a single-signal framework that is easy to backtest and tune.
Cross-instrument testers who want one signal layer portable across crypto, perpetuals, and tokenized equities.
🔷 How does it work:
Long Entry: A base order opens when RSI(14, 3m) crosses below 31, signaling entry into an oversold regime. The crossover is a single-shot confirmation per cycle to prevent re-entries during the same RSI sweep.
Short Entry: Not used — long-only by design.
Exit Management: The full position closes when two conditions align — RSI(14, 3m) crosses above 69 (overbought exit signal) AND the unrealized profit from average entry reaches the configured minimum threshold (default 2.4%). This dual gate prevents premature exits during shallow rebounds and structural exits when profit has not yet recovered.
🔷 Why it's unique:
Dual-gate exit logic — closing requires both an RSI sell signal AND a minimum profit threshold from average entry. This combination filters out RSI-triggered exits that would close deep-averaged positions at a loss, ensuring every deal closes only when both the signal and the math agree.
Cumulative martingale architecture — safety order trigger prices are computed from the base entry using a cumulative compounding deviation (each successive step multiplied by ×1.30), not by chaining from the previous SO. This produces a smoother, more controlled deepening of the ladder versus pure linear stepping.
Bot Integration — entry and exit alerts ship with webhook-ready JSON payloads, enabling direct trigger of a connected DCA Bot. The strategy publishes the signal, the bot handles order routing on the exchange.
🔷 Considerations Before Using the Indicator:
Market & Timeframe: Designed for a 3-minute base chart on liquid, volatile instruments with active intraday RSI cycling — perpetual contracts, tokenized equities, and major altcoins. Performance degrades on low-volatility assets where RSI rarely reaches the oversold trigger or where 3-minute candles are illiquid.
Limitations: The strategy carries no stop loss. In sustained downtrends extending beyond the deepest safety order, the position holds unrealized loss until either the average is recovered or the deal is closed manually. Consider adding a regime filter (e.g., long-term moving average direction) for deployment in non-trending or sustained bearish markets. The dual-gate exit can hold positions for extended periods if RSI never crosses above 69 while profit threshold is unmet — pair this with a manual review cadence.
Backtesting & Demo Testing: Always run extended backtests across multiple market regimes — uptrend, downtrend, and ranging — before deploying real capital. Demo-trade for at least one month to observe behavior in conditions not represented in historical data. Past performance is not indicative of future results.
Parameter Adjustments: Default commission and slippage values are calibrated for typical perpetual venues. Adjust commission_value to match your exchange (~0.05 for OKX Perpetual, ~0.055 for Bybit Perpetual, ~0.04 for Binance USD-M Futures, ~0.10 for Binance Spot, ~0.40 for Kraken Spot). Slippage of 5 ticks accounts for taker execution on liquid pairs — reduce for very tight markets, increase for thin order books. RSI thresholds (31 / 69) and the SO step (1.3%) should be tuned per instrument volatility profile.
🔷 STRATEGY PROPERTIES
Symbol: Cross-instrument — tested on Cardano/Tether (BYBIT:ADAUSDT Spot) on 3m. Logic is identical for any liquid pair.
Timeframe: 3m chart.
Test Period: Feb 16, 2026 — May 11, 2026 (≈3 months of recent active trading).
Initial Capital: 10,000 USDT.
Order Size per Trade: Base Order 45 USDT, Safety Orders 55 / 68.75 / 85.94 / 107.42 / 134.28 USDT (martingale ×1.25). Maximum cumulative position notional ≈ 496.39 USDT (≈ 5% of capital). Observed Max Drawdown 0.67% — far inside the ≤10% threshold.
Commission: 0.10% taker — neutral default; adjust per venue (see notes above).
Slippage: 5 ticks — typical taker execution on liquid pairs.
Margin for Long and Short Positions: 100% (1× leverage assumed; no margin amplification applied).
Indicator Settings: Default Configuration.
Base Order Volume: 45 USDT
Safety Order Volume (1st): 55 USDT
Max Safety Orders: 5
Price Step (1st SO): 1.3%
Step Coefficient: 1.30
Volume Coefficient: 1.25
Min Profit (from AVG): 2.4%
Entry: RSI(14, 3m) crossunder 31
Exit Signal: RSI(14, 3m) crossover 69 AND profit ≥ 2.4%
Strategy: Long Only.
🔷 STRATEGY RESULTS
⚠️ Remember, past results do not guarantee future performance.
Net Profit: +95.00 USDT (+0.95%)
Max Drawdown: 67.16 USDT (0.67%)
Total Closed Trades: 47
Percent Profitable: 72.34% (34 / 47)
Profit Factor: 7.377
Average Trade:
Average # Bars in Trades:
Backtest run on BYBIT:ADAUSDT (Spot) on 3m base chart. Re-run on your own venue with venue-specific commission and slippage before drawing conclusions for live deployment.
🔷 How to Use It:
🔸 Adjust Settings: Set Base Order and Safety Order volumes proportional to your account size. The default 45 / 55-USDT structure is calibrated for a 10,000-USDT test account, so total maximum exposure stays below 5% of capital. Scale linearly to your equity. RSI thresholds (31 / 69) and the SO step (1.3%) can be tightened on lower-volatility instruments or widened on more volatile pairs.
🔸 Results Review: Verify Maximum Drawdown stays within your personal risk budget. The strategy is configured for a very conservative position-size envelope, but extended history may shift the profile. Re-test on your own venue using venue-specific commission and slippage values. Demo-trade for at least one month before any live deployment.
🔸 Create alerts to trigger the DCA Bot: Two alert messages are exposed by the script — "Deal Start" fires on each new base order, and "Deal Close" fires when the dual-gate exit condition triggers. Configure both alerts in PulseWire with the webhook URL pointing to your DCA Bot's signal endpoint. Once configured, the strategy publishes the signal and the bot handles execution on the exchange autonomously.
🔷 INDICATOR SETTINGS
RSI Length — Period for the RSI calculation (default 14).
RSI Buy Trigger — Oversold threshold for the base order signal (default 31, cross-below).
RSI Sell Trigger — Overbought threshold for the exit signal (default 69, cross-above).
Base Order Volume (USDT) — Notional value of the initial entry per cycle.
Safety Order Volume (USDT) — Notional value of the first averaging-down order; subsequent SOs scale by Volume Coefficient.
Max Safety Orders — Total number of averaging steps available per deal.
Price Deviation % (SO step from base) — Percentage deviation from base price for the first safety order; subsequent steps scale by Step Coefficient.
Martingale Volume Coefficient — Size multiplier applied to each successive safety order.
Martingale Step Coefficient — Multiplier applied to each successive deviation step.
Min Profit % (from avg entry) — Minimum unrealized profit threshold required for the exit gate.
Require RSI Sell Signal to Close — When enabled, both the RSI sell crossover AND the min profit threshold must align for the position to close (dual-gate exit).
Limit by Date Range — Toggle to constrain backtest to a specific date window.
Stats card / Watermark — Display layer controls for on-chart backtest summary and branding.
Webhook — Bot ID, Email Token, and Pair label for DCA Bot signal routing.
👨🏻💻💭 We hope this tool helps enhance your trading. Your feedback is invaluable, so feel free to share any suggestions for improvements or new features you'd like to see implemented.
__
The information and publications within the 3Commas PulseWire account are not meant to be and do not constitute financial, investment, trading, or other types of advice or recommendations supplied or endorsed by 3Commas and any of the parties acting on behalf of 3Commas, including its employees, contractors, ambassadors, etc. Strategy

Precision Candle Close Alert [Anti-Lag] for Scalper & DaytraderAs a scalper or day trader, timing is everything. Standard PulseWire alerts often fire 2-3 seconds after the candle has closed due to tick-dependency and server lag. If you are trading the 1m or 5m chart, that delay can cost you money.
The Candle Close Alert (CCA) solves this problem. It is designed for absolute precision and includes a built-in "Anti-Lag" feature. This allows you to trigger the alert slightly before the actual close. By the time the push notification or sound reaches your device, the candle is closing at that exact millisecond.
Key Features:
⚡ Anti-Lag Offset: Compensate for server delays by firing the alert a customizable number of seconds (e.g., 2s) before the candle actually closes.
🎯 True Close Only: Uses strict condition matching to ensure the alert NEVER fires randomly in the middle of a candle. It only triggers on the exact target close.
🔢 Custom Alert Limit: Set a maximum number of alerts (e.g., alert me for the next 5 closes, then automatically stop).
🔄 One-Click Reset: Easily reset the alert counter directly from the indicator settings without having to delete and recreate the alert.
⏱️ Multi-Timeframe Support: Select your target timeframe (from 1m up to Monthly) independently of your current chart resolution.
How to set it up correctly:
Add the indicator to your chart. (Note: Your chart timeframe must be equal to or lower than your selected alert timeframe).
Open the indicator settings and set your target timeframe, the max alert count, and the Anti-Lag Offset (2 to 3 seconds is the recommended sweet spot).
Open the PulseWire Alert Menu (clock icon) and click "Create Alert".
Condition: Select "Candle Close Alert" -> "Any alert() function call".
Go to the "Notifications" tab, check "Play Sound", and select a specific sound for this alert.
Click "Create".
Note: Because Pine Script triggers on price ticks, the anti-lag feature will fire on the first tick that occurs within your defined pre-close window.
Tags:
#Scalping #DayTrading #Alerts #CandleClose #Precision #Forex #Crypto #Utility Indicator
