Indicator

Fracture Threshold Strategy [JOAT]Fracture Threshold Strategy
Introduction
Fracture Threshold Strategy (FTS) is an open-source, automated Pine Script v6 trading strategy that combines three independent filters — a seven-condition MasterTrend EMA alignment score, a relative volume regime gate, and a session time restriction — into a single, unified entry system. Entry is triggered by an EMA 4/5 crossover when all three filters are simultaneously satisfied. Stop loss is placed at 1.5× ATR from entry. Take profit is set at a 3:1 reward-to-risk ratio by default. All orders are executed on bar close (process_orders_on_close=false), and signals are gated on barstate.isconfirmed to eliminate intrabar repainting.
FTS is designed to demonstrate how institutional-grade filtering layers can be combined into a programmatic strategy with realistic, auditable results. It is not a black box — every condition is visible in the dashboard and the source code is fully open. The strategy description explains the exact logic, the default backtesting parameters, and the limitations of any backtesting approach.
Core Concepts
1. MasterTrend Seven-EMA Alignment Score
Seven trend conditions are evaluated on each bar. Each satisfied condition contributes one point to a bull or bear score (0–7):
EMA 4 above/below EMA 5 — fast momentum direction
RSI above/below 50 — momentum confirmation
Price above/below EMA 21 — short-term trend
EMA 21 above/below SMA 50 — medium-term structure
SMA 50 above/below EMA 55 — medium-to-intermediate trend
EMA 55 above/below EMA 89 — intermediate trend
Price above/below EMA 750 — long-term macro trend
Entry requires the bull or bear score to equal or exceed the configurable minimum (default: 5 out of 7). This prevents entries during low-conviction, mixed-alignment market conditions.
2. Relative Volume Regime Gate
Volume regime is measured as the ratio of a short-term volume MA to a long-term volume MA, smoothed by an EMA:
float volRatio = ta.ema(volShort / math.max(volLong, 1.0), i_volSmth)
bool volOK = volRatio >= i_volMin
The default minimum ratio is 0.90 — entries are blocked when recent volume is more than 10% below the long-term average. This prevents the strategy from entering trades during dead, low-participation conditions where institutional order flow is absent.
3. Session Filter
Trading is restricted to the London session (08:00–17:00) and New York session (14:00–21:00) in the selected timezone, with both independently toggleable. Entries outside the active sessions are blocked. This keeps the strategy focused on the highest-liquidity periods of the trading day.
4. EMA 4/5 Crossover Entry Trigger
The entry trigger is an EMA 4 crossover above EMA 5 (for longs) or crossunder (for shorts), evaluated on confirmed bar closes. The crossover is a fast momentum signal — it fires at the beginning of a new short-term directional move. Combined with the full filter stack, it identifies the specific bar where momentum begins aligning with the broader structural trend.
5. ATR Stop Loss and 3:1 Take Profit
Stop loss is placed at 1.5× ATR from entry. Take profit is placed at 3× the stop distance (configurable). Both levels are computed at entry and fixed — they do not trail. The strategy uses Pine Script's strategy.exit() function with explicit stop and limit prices for clean, non-discretionary execution.
Default Backtesting Properties
The strategy has been published with the following default Properties settings. These values are used in all performance metrics shown on the chart:
Initial Capital: $10,000 (realistic for an individual trader)
Position Size: 2% of equity per trade (risk-managed sizing)
Commission: 0.05% per side (representative of standard exchange or broker fees)
Slippage: 2 ticks
Pyramiding: 0 (one trade open at a time)
process_orders_on_close: false (orders execute on the next bar open, not at the signal bar close)
Using 2% of equity per trade with a 1.5× ATR stop means the maximum percentage of equity at risk per trade scales with position size dynamically — at a 3:1 RR ratio, three losing trades in a row lose approximately 6% of equity, which is within the PulseWire recommended range. A dataset that generates at least 100 trades is recommended for meaningful statistical evaluation. On lower timeframes (5m, 15m) on major equity indices or forex pairs with London and NY sessions active, the default settings typically produce sufficient trade counts.
Features
Three-Layer Entry Filter: MasterTrend score, volume regime, and session — all three must be satisfied simultaneously
Configurable Minimum Score: Adjustable minimum MasterTrend alignment score threshold (1–7, default: 5)
EMA 4/5 Crossover Trigger: Fast momentum crossover as entry signal within aligned conditions
ATR Stop Loss: Dynamic stop placement based on current ATR — adapts to instrument volatility
Fixed Ratio Take Profit: 3:1 default reward-to-risk — adjustable
Session Restriction: London and New York sessions independently configurable with timezone setting
Volume Regime Gate: Minimum volume ratio filter blocks entries during low-participation conditions
TP/SL Visualization: Active trade TP and SL boxes drawn from entry and extended on each bar — color changes on outcome
Entry Markers: Triangle plotshapes at long and short entry bars for clear chart identification
EMA Reference Plots: EMA 4, EMA 5, EMA 21, and EMA 750 plotted as reference
Non-Repainting: process_orders_on_close=false; all entry conditions gated on barstate.isconfirmed
Dashboard (Top Right): Live MasterTrend state, volume regime, session, current position, net P&L, win rate, profit factor, max drawdown, average win/loss, and RR ratio
Entry Context Labels: Each entry label now shows the MasterTrend score and volume regime tag at the moment of entry in the format "L 6/7 | V:HI" — full entry context visible on the chart without needing to consult the dashboard
Position Candle Tint: Candles colored green while a long position is open, red while a short position is open — provides an immediate visual record of all trade durations across the full chart history
Per-Session Performance Breakdown: London and New York win rates tracked and displayed separately in the dashboard — identifies which session produces the strongest historical edge for the current instrument and timeframe
Expanded Dashboard (15 Rows): Dashboard expanded to 15 rows — now includes a full session performance section with London and NY win rates alongside the existing strategy performance metrics
Input Parameters
MasterTrend EMA Stack:
EMA 4, EMA 5, EMA 21, SMA 50, EMA 55, EMA 89, EMA 750: All periods individually configurable
RSI Length: RSI period for momentum condition (default: 14)
Volume Regime Filter:
Short Vol MA / Long Vol MA: Volume baseline calculation periods (default: 10, 40)
Vol Smooth: EMA smoothing for ratio (default: 3)
Min Vol Ratio: Minimum ratio threshold for entry permission (default: 0.90)
Session Filter:
Timezone: Session evaluation timezone (default: America/New_York)
Session Filter: Master toggle (default: enabled)
Allow London / Allow NY: Independent session toggles (both default: enabled)
Entry Trigger:
EMA4/5 Cross Entry: Use crossover as trigger (default: enabled)
Min MasterTrend Score: Minimum score required for entry (default: 5)
Risk Management:
ATR Length: ATR period (default: 14)
ATR SL Multiplier: Stop distance as ATR multiple (default: 1.5)
Reward:Risk Ratio: TP multiple (default: 3.0)
How to Use This Strategy
Step 1: Verify the Filter Stack is Active
The dashboard shows MasterTrend state, volume regime, and current session at all times. Before a trade can occur, all three must be aligned — a bull score ≥ 5, volume ratio ≥ 0.90, and an active London or NY session window.
Step 2: Observe the EMA 4/5 Crossover
The entry trigger is the EMA 4 crossing EMA 5. With all filters active, the next crossover in the trend direction will generate an entry. The entry is executed at the open of the following bar (process_orders_on_close=false), which is the realistic execution point.
Step 3: Manage the Open Trade
The TP/SL boxes extend from the entry bar and update on each subsequent bar. The strategy's exit function manages the trade automatically — no manual management is required. The dashboard shows the current position state (LONG / SHORT / FLAT) at all times.
Step 4: Evaluate Backtesting Results Critically
Past results do not predict future performance. Before drawing conclusions from any backtest, ensure the trade count is at least 100. A small sample (under 50 trades) produces unreliable win rate and profit factor estimates. Test across multiple instruments and timeframes — a strategy that performs well on one asset in one period may not generalize.
Strategy Limitations
The EMA 750 requires 750 bars of chart history. On timeframes or instruments with limited bar history, the 750-period EMA will be inaccurate for the first 750 bars — backtest results including those bars should be discounted
Backtesting does not account for liquidity, market impact, or partial fills on real orders. The 2-tick slippage setting is an approximation — on illiquid instruments or during news events, actual slippage may be significantly higher
The EMA 4/5 crossover is a fast signal. In choppy, sideways markets where EMAs cross frequently, the strategy may enter multiple trades quickly that all exit at stop loss before the filter stack re-assesses. The session and volume filters reduce but do not eliminate this behavior
A fixed 3:1 RR ratio requires the market to travel 3× the initial risk without reversing. On short timeframes or on instruments with narrow average ranges relative to ATR, achieving the full TP target may be less frequent than on smoother-trending assets
Commissions, taxes, and regulatory fees vary by broker, instrument, and jurisdiction. The 0.05% commission default is a general estimate — actual trading costs should be substituted with broker-specific values before drawing performance conclusions
This strategy is one specific configuration of the underlying filter system. Adjusting the minimum MasterTrend score, volume threshold, session windows, or RR ratio will produce different results. Any configuration change constitutes a separate strategy with its own performance characteristics
Originality Statement
FTS implements a programmatic entry system by combining a seven-condition quantitative trend score, a relative volume regime gate, and a session time restriction into a unified, fully transparent open-source strategy. This is original for the following reasons:
The MasterTrend alignment score functions as a structural quality gate — rather than entering on any EMA crossover, the strategy explicitly requires a minimum number of the seven structural conditions to be simultaneously satisfied, producing a much stricter entry criterion than a standard crossover system
The volume regime gate uses a normalized ratio (not a raw volume level) to block entries during low-participation conditions — making the filter relevant across instruments and timeframes without requiring instrument-specific volume threshold calibration
The combination of structural alignment (EMA stack), activity quality (volume regime), and time context (session filter) as three independent prerequisites creates a compounding selectivity effect — the strategy only enters the specific intersection of all three conditions, which is a smaller, higher-conviction subset than any single filter alone
The live dashboard displaying all filter states, position context, and key performance metrics simultaneously provides full transparency into why any given bar does or does not produce a signal, making the strategy auditable in real time
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Backtesting results shown are based on historical data and do not guarantee or predict future performance. Past results are not indicative of future results. Commission and slippage values used in backtesting are estimates — actual trading costs will vary. The strategy does not account for all real-world execution factors. Always use proper risk management and consult a qualified financial professional before making trading decisions. The author is not responsible for any trading losses resulting from the use of this strategy.
-Made with passion by jackofalltrades Strategy

Session Range Architecture [JOAT]Session Range Architecture
Introduction
Session Range Architecture (SRA) is an open-source, institutional-grade session killzone engine that captures the opening range of the Tokyo, London, and New York trading sessions as live price-tracking boxes, draws high, low, and mid extension lines that persist after each session closes, and fires rejection signals when price wicks beyond a session extreme and closes back inside. Signals are filtered by an EMA alignment stack (EMA 4, EMA 5, and EMA 750) and confirmed exclusively on closed bars. ATR-based stop loss and take profit boxes visualize each signal's risk/reward from entry. Per-session and aggregate win rate statistics are tracked and displayed in a configurable dashboard.
The core problem SRA solves is the repetitive, daily manual work of marking opening range boxes for each session. ICT methodology identifies the first portion of each killzone as the period during which institutional order flow establishes the session's directional bias — the high and low of that range become the primary intraday reference levels. When price returns to those levels later in the session or in the following session and creates a wick rejection, it signals a potential liquidity grab and reversal opportunity. SRA automates the full process from box construction through signal detection to trade outcome tracking.
Core Concepts
1. Session Opening Range Construction
Each session's opening range is built dynamically during the configurable range window (default: first 15 minutes of each session). The high and low of every bar within that window expand the range in real time. At the end of the window, the range is finalized and stored as a SessionRange user-defined type containing the box, three extension lines (high, low, mid), and the session label:
if inTokyo and not tokBuilding
tokHi := high
tokLo := low
tokOpenBar := bar_index
tokBuilding := true
else if inTokyo and tokBuilding
tokHi := math.max(tokHi, high)
tokLo := math.min(tokLo, low)
2. Extension Lines
When a session's range window closes, three horizontal lines are drawn extending rightward from the range: a dashed line at the session high (buy-side liquidity), a dashed line at the session low (sell-side liquidity), and a dotted line at the session midpoint (50% equilibrium reference). These lines persist on the chart as long-term structural reference levels beyond the session itself.
3. Rejection Signal Detection
A rejection is detected when a bar's wick pierces a session high or low and the close returns inside the range. A minimum wick percentage filter ensures the penetration is meaningful relative to total candle range — trivial pokes are excluded. For a bullish rejection at a session low (price swept below, closed above), the setup is treated as a potential long opportunity. For a bearish rejection at a session high, it is treated as a short opportunity.
4. EMA Alignment Filter
Signals are optionally filtered by a simplified EMA alignment check: bullish signals require EMA 4 above EMA 5 and price above EMA 750; bearish signals require EMA 4 below EMA 5 and price below EMA 750. This ensures rejection signals at session levels are taken in the direction of the prevailing trend structure rather than against it.
5. ATR-Based Trade Visualization and Tracking
On each confirmed signal, ATR-based stop loss and take profit boxes are drawn from the entry close. Outcome is checked on subsequent bars — if price hits the SL or TP, the trade is recorded, counters for the originating session are updated, and the box color changes to reflect the result.
Features
Three Independent Session Ranges: Tokyo, London, and New York opening ranges built automatically each day — individually configurable with independent colors and visibility toggles
Configurable Range Window: Opening range capture window length adjustable from 5 to 60 minutes to match different analysis styles
Extension Lines: Session high, low, and mid extension lines drawn from completed ranges and extended rightward as persistent liquidity reference levels
Rejection Signal Detection: Wick-beyond, close-inside detection at session extremes with minimum wick percentage filter
EMA Alignment Filter: EMA 4/5 cross direction and EMA 750 price side required for signal confirmation — configurable on/off
ATR TP/SL Visualization: Risk and reward boxes from each entry bar — default 1.5× ATR stop, 3:1 reward ratio, fully adjustable
Session Win Rate Tracking: Independent win/loss/total counters for Tokyo, London, and New York sessions
Session History Management: Oldest range boxes automatically trimmed to prevent chart clutter (configurable maximum)
Non-Repainting: All signals gated on barstate.isconfirmed — session ranges never move backward
Timezone Configuration: Session windows evaluated relative to a configurable timezone to handle exchange-specific session times
Dashboard (Top Right): Per-session win/loss/rate table for Tokyo, London, NY, and aggregate total with color-coded performance rows
Session Background Tints: Subtle color fills applied to the chart background during Tokyo, London, and NY range-building windows — visually delineates the opening range capture period for each session in real time
Session Name Labels on Range Boxes: Session name label placed at the midpoint of each finalized range box — immediately identifies which session produced each visible range without requiring manual reference
EMA Alignment State in Dashboard: Current EMA alignment state (BULL ALIGN / BEAR ALIGN / NEUTRAL) displayed in the dashboard — provides a one-glance structural context for the active session
Live ATR Value in Dashboard: Current ATR value shown in the dashboard — communicates the prevailing volatility level used for TP/SL sizing at any given moment
Expanded Dashboard (8 Rows): Dashboard expanded to 8 rows — now includes EMA alignment state and live ATR value alongside the existing per-session win rate breakdown
Input Parameters
Session Settings:
Chart Timezone: Timezone for session window evaluation (default: America/New_York)
Show Tokyo / London / New York Range: Independent visibility toggles per session
Range Window (minutes): Opening range capture duration (default: 15)
EMA Filter:
Fast EMA: Period for fast EMA (default: 4)
Slow EMA: Period for slow EMA (default: 5)
Trend EMA: Period for long-term trend filter EMA (default: 750)
Require EMA Alignment: Toggle filter on/off (default: enabled)
Risk Settings:
ATR Length: ATR period (default: 14)
ATR SL Multiplier: Stop loss ATR distance (default: 1.5)
Reward:Risk Ratio: TP as multiple of SL distance (default: 3.0)
Show TP/SL Boxes: Toggle TP/SL visualization (default: enabled)
Signal Settings:
Require Rejection Wick: Toggle minimum wick filter (default: enabled)
Min Wick % of Range: Minimum wick size relative to candle range (default: 55%)
How to Use This Indicator
Step 1: Identify Session Range Levels
Each session's opening range box shows the high, low, and midpoint established during the opening window. These are the primary liquidity reference levels for that killzone. Extension lines persist after the session box closes, continuing to mark those price levels as the day progresses.
Step 2: Monitor for Rejection Signals
When price wicks beyond a session extreme and closes back inside, a rejection signal is generated. This event represents a liquidity grab — the market took the stops placed beyond the session extreme and reversed. The signal fires at the close of the rejecting bar, confirmed on that candle only.
Step 3: Confirm EMA Alignment
With the EMA filter enabled, only signals aligned with the current EMA 4/5 direction and EMA 750 trend side are triggered. This avoids trading session rejections against the prevailing structural trend.
Step 4: Manage Risk with TP/SL Boxes
The ATR-based TP/SL boxes extend from the entry close and show the exact risk/reward zone for each trade. The stop is placed 1.5× ATR from entry; the target is 3× that distance by default. Both are adjustable.
Step 5: Review Session Performance
The per-session win rate table shows which session ranges have historically produced the best rejection setups on the current instrument and timeframe. Use this to focus attention on the sessions with the strongest empirical edge.
Indicator Limitations
Session detection is based on time windows relative to the selected timezone. Instruments that observe daylight saving time shifts differently from the selected timezone may require manual session string adjustment during DST transitions
The opening range window is fixed in minutes. On timeframes coarser than the window (e.g., a 30-minute chart with a 15-minute range window), the range will capture only one or two bars, which may not accurately represent the opening range
The EMA 750 requires 750 bars of history to produce an accurate value. On instruments with limited history or on very long timeframes, the first 750 bars will show an inaccurate trend filter — use the indicator on instruments and timeframes with sufficient historical data
Session win rate counters are maintained within the current chart load session and reset when the indicator is refreshed. They reflect historical outcomes up to the current chart's loaded data, not a permanent multi-year backtest
Rejection detection uses bar closes. On timeframes with large candles (daily, weekly), a wick rejection at a session range level may span multiple intraday sessions, making the signal less precise for intraday execution
Originality Statement
SRA automates the full three-stage session range workflow — range construction, level monitoring, and rejection detection — within a single indicator, with per-session outcome tracking and EMA trend filtering. This is original for the following reasons:
The dynamic range construction (high/low expanding bar-by-bar during the opening window, then finalizing on window close) replicates the manual process of drawing opening range boxes in real time, including live box expansion during active sessions — behavior not available from static horizontal lines
Extension lines at the session high, low, and midpoint persist beyond the session box as separate structural reference levels, providing a layered view of session-specific liquidity without requiring additional drawings
The rejection detection system operates across all three active session ranges simultaneously in a single scan loop, identifying which specific session range produced the signal and tagging it for session-specific outcome tracking
The EMA alignment stack (fast EMA cross direction + long-term trend EMA) applied as a prerequisite filter to session rejection signals combines institutional level-based methodology with trend confirmation in a single indicator rather than requiring a separate trend indicator
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Session range levels and rejection signals are historical reference points. Price does not respect these levels in all market conditions, and rejection signals do not guarantee a reversal. Session win rates are derived from historical bar data and do not predict future performance. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Indicator

Indicator

Confluence Engine Strategy [JOAT]Confluence Engine Strategy
Overview
Confluence Engine Strategy is a fully automated Pine Script v6 strategy that combines four independent signal layers into a single numeric confluence score (0–100) before executing any trade. Entries require genuine agreement between linear regression momentum, dual EMA trend regime, ATR volatility state, and higher-timeframe bias. All exits are ATR-proportional with configurable take-profit and stop-loss multiples, plus a bar-based timeout and a trend-flip emergency exit. Commission (0.05% per side) and slippage (2 ticks) are configured for realistic backtesting.
Why Require Confluence?
Single-condition strategies (e.g., "go long when RSI crosses 50") produce entries in every conceivable market environment — ranging, trending, low-volatility, high-volatility — most of which are statistically unfavourable for that signal type. Requiring multiple independent conditions to agree simultaneously filters the entry universe down to the high-probability subset where each individual indicator is operating in its most favourable context. The Confluence Engine makes this filtering explicit and auditable through a numeric score.
Signal Layer 1 — Linear Regression Crossover
The primary entry trigger mirrors the Regression Flux Candles logic: a 21-bar linear regression of close (LR close) crossing above/below an 8-bar SMA of itself. The LR approach de-noises price before computing the crossover, significantly reducing the whipsaw rate compared to raw close-based SMA crossovers.
Signal Layer 2 — Dual EMA Trend Regime
Two exponential moving averages (fast: 21-period, slow: 55-period) define the trend regime. Long entries are only considered when the fast EMA is above the slow EMA; short entries only when fast is below slow. This prevents the LR crossover from triggering counter-trend entries in established trends — one of the most common sources of false signals in momentum strategies.
Signal Layer 3 — ATR Volatility State
The current 14-bar ATR is compared to a 50-bar ATR. Entries are only accepted when the current ATR is above a configurable fraction of the slow ATR (default 0.7). This volatility gate blocks trades during compression phases — low-volatility periods where breakouts frequently fail. The strategy only participates when directional energy is present.
Signal Layer 4 — Higher-Timeframe Bias
A higher-timeframe linear regression direction is fetched via request.security() with lookahead_off. The HTF LR close vs. HTF LR open comparison gives a single bullish/bearish vote from the higher timeframe. Long entries receive a confluence bonus when the HTF agrees; short entries receive a bonus when the HTF is bearish. This aligns trade direction with the prevailing macro bias.
Confluence Score and Threshold
Each of the four layers contributes points to the confluence score:
- LR crossover in direction: +30
- Dual EMA alignment: +25
- ATR volatility expansion: +20
- HTF bias alignment: +25
Maximum score: 100. The minimum required score to execute an entry (default 60) filters out entries where fewer than three layers agree. This threshold is adjustable — lower it for more signals, raise it for higher selectivity.
Entry Logic
Long: LR crossover up AND the accumulated confluence score >= minimum AND the signal is on a confirmed bar AND warmup has elapsed AND no position is currently open AND no cooldown bars remain.
Short: LR crossover down AND confluence >= minimum AND same guards.
A configurable cooldown period (default 5 bars) prevents re-entering the same direction immediately after an exit, avoiding overtrading in choppy conditions.
Exit Logic — Four Exit Conditions
1. ATR Take-Profit: Long exits when close >= entry + ATR × TP multiplier (default 2.0). Short exits below entry - ATR × TP.
2. ATR Stop-Loss: Long exits when close <= entry - ATR × SL multiplier (default 1.2). Short exits above entry + ATR × SL.
3. Bar Timeout: If neither TP nor SL is hit within a configurable number of bars (default 20), the trade exits at market — preventing capital from being locked in stalled trades.
4. Trend Flip Exit: If the dual EMA regime flips against the trade direction (fast EMA crosses slow EMA), the trade exits immediately — recognising that the structural basis for the entry has been invalidated.
Strategy Properties
- Initial capital: $10,000
- Order size: 10% of equity per trade (sustainable risk allocation)
- Commission: 0.05% per side (representative of major exchange fees)
- Slippage: 2 ticks (accounts for spread and execution delay)
- Currency: USD
- Pyramiding: disabled (one position at a time)
These settings are designed to produce realistic backtesting results. Risk per trade is capped well below the 5–10% equity guideline. Commission and slippage are included to prevent overstating performance.
Inputs Reference
Signal Layers
- LR Length (21) — linear regression period
- Signal SMA Length (8) — crossover trigger SMA
- Fast EMA (21) / Slow EMA (55) — trend regime definition
- ATR Length (14) / ATR Slow Length (50) / ATR Threshold (0.70)
- HTF Timeframe — higher-timeframe bias source (default "D")
Confluence & Filters
- Min Confluence Score (60) — minimum sum of layer scores required for entry
- Cooldown Bars (5) — bars to wait after exit before re-entering
- Max Bars in Trade (20) — timeout exit
Risk Management
- TP ATR Multiple (2.0) — take-profit distance in ATR units
- SL ATR Multiple (1.2) — stop-loss distance in ATR units
How to Read the Results
Apply the strategy to a liquid instrument on a 1H or 4H chart with sufficient history to generate 100+ trades. Evaluate:
- Net profit relative to max drawdown (seek ratio > 2:1)
- Win rate in context of average win vs. average loss
- Profit factor (total gross profit / total gross loss, seek > 1.3)
- Number of trades (sufficient sample size for statistical inference)
Adjust the confluence minimum score to trade off signal frequency against quality: 50 produces more trades, 75 produces fewer but higher-quality entries.
Non-Repainting Design
All entries fire on strategy.entry() within barstate.isconfirmed blocks. HTF bias uses lookahead_off. No future bar data is accessed. Historical signals do not shift position.
Limitations
- The strategy is designed as a general-purpose framework. It is not optimised for any specific instrument or session. Optimal parameters vary significantly across markets and timeframes.
- ATR-based exits are approximate. In gap markets (equities overnight, weekend gaps on crypto), the stop-loss may be exceeded significantly before the exit executes.
- Backtesting results are computed on historical data only and do not account for execution quality, broker-specific fees, or market impact. Past backtesting performance does not guarantee future live results.
- The bar timeout exit may prematurely close positions that would have eventually reached TP. This is a deliberate conservative design choice to limit capital lock-up, not a flaw.
Disclaimer
This strategy is provided for educational and informational purposes only. Backtesting results presented in the strategy tester represent historical simulation and do not guarantee any future trading outcome. Past performance is not indicative of future results. Never risk capital you cannot afford to lose. Always use proper risk management and conduct independent analysis before making any trading decisions.
Made with passion by officialjackofalltrades
Strategy

Indicator

Indicator

Confluence Signal Engine [JOAT]Confluence Signal Engine
Introduction
Most traders encounter a common trap: stacking multiple indicators that all claim to measure something different, yet each one is ultimately derived from the same price data. The result is not confirmation — it is correlated noise presented as agreement. The Confluence Signal Engine was built to address this directly.
This indicator assigns a composite score to the current market condition by evaluating six deliberately chosen dimensions of market behavior. Each dimension is designed to measure a fundamentally different property of price action. When multiple dimensions agree, that agreement carries more weight than any single indicator firing alone. The result is a single, normalised score between -1 and +1, accompanied by a visual confidence meter and a score breakdown table so you can see exactly what is driving the signal.
This is an overlay indicator — it plots directly on the price chart.
---
Core Concepts
The Six Scoring Dimensions
Each dimension returns one of three values: +1 (bullish contribution), -1 (bearish contribution), or 0 (neutral / insufficient data). These are summed and divided by 6.0 to produce the composite score.
D1 — EMA Alignment (Trend Direction)
Compares a fast EMA to a slow EMA. If the fast EMA is above the slow EMA, the trend dimension scores +1. If below, it scores -1. This is the structural backbone — a baseline read on which side of the trend the price currently sits.
D2 — Price Z-Score (Statistical Deviation)
Calculates how many standard deviations the current close is from a baseline EMA. A Z-score below the negative threshold suggests the price has deviated far enough below the mean to be considered statistically stretched — a potential reversion candidate, scored +1. A Z-score above the positive threshold scores -1. This dimension does not measure trend; it measures relative price position against recent statistical norms.
D3 — Volume Pressure (Demand Validation)
Uses a Volume RSI (RSI applied to volume over 8 bars, divided by 50) as a proxy for whether volume activity is elevated. When volume pressure exceeds the threshold, the candle's direction (close vs. open) determines the score: a bullish candle in high-volume conditions scores +1; a bearish candle scores -1. When volume is not elevated, this dimension returns 0, contributing nothing. This prevents volume noise on low-activity bars from polluting the signal.
D4 — RSI Momentum (Momentum Quality)
Evaluates both the current RSI value and its slope. A rising RSI above 50 scores +1 — confirming that momentum is positive and strengthening. A falling RSI below 50 scores -1. This differs from a simple RSI threshold because the slope requirement means momentum must be actively moving in the scored direction, not merely sitting above or below a level.
D5 — Structural Position (Range Placement)
Compares the current close to the midpoint of the highest high and lowest low over a configurable lookback period. Closing above the midpoint scores +1; closing below scores -1. This is a simple but useful structural context: is price holding in the upper or lower half of its recent range?
D6 — Volatility Context (Environment Quality)
Divides a fast ATR by a slow ATR to produce a volatility ratio. A low ratio (calm, contracting volatility) scores +1 — historically a more favorable environment for trend continuation. A high ratio (expanding, elevated volatility) scores -1, flagging that the current environment may be erratic. A ratio between the two thresholds is neutral. This dimension does not predict price direction; it assesses whether current conditions are conducive to acting on the other signals.
---
Composite Score and Confidence
compositeScore = (D1 + D2 + D3 + D4 + D5 + D6) / 6.0
confidence = math.abs(compositeScore) * 100
The composite score ranges from -1.0 (all six dimensions bearish) to +1.0 (all six dimensions bullish). The confidence value is simply the absolute magnitude — a score of ±1.0 represents 100% agreement across all dimensions, while a score near 0 represents disagreement or neutrality.
Signal thresholds:
Score > buy threshold (default 0.3) → bullish signal
Score < sell threshold (default -0.3) → bearish signal
Score > high-confidence threshold (default ±0.6) → high-confidence signal
Signals are gated by barstate.isconfirmed — they only fire on fully closed bars, preventing intra-bar repainting. State tracking also prevents the same directional signal from repeating consecutively without a change in direction first.
---
Visual Components
24-Cell Gradient Confidence Meter
A horizontal bar of 24 cells is displayed at the bottom of the chart. The left side is the bearish extreme, the center is neutral, and the right side is the bullish extreme. The current composite score position is highlighted within the meter, giving a continuous visual read of where the market sits in the conviction range — not just whether a signal has fired, but how strongly.
Score Breakdown Table
A table showing three columns for each dimension: dimension name, dimension number, and its current score (+1, -1, or 0). This allows you to see exactly which dimensions are contributing to the composite and which are neutral or conflicting.
Gradient Bar Coloring
Price bars are colored using a gradient that interpolates from a neutral color toward the signal color, weighted by the absolute value of the composite score. A high-confidence bull signal produces a strong green bar; a low-confidence or mixed signal produces a muted or neutral color. This keeps bar coloring proportional to actual conviction rather than using a binary flip.
---
Features
Six-dimension composite scoring system covering trend, statistics, volume, momentum, structure, and volatility
Composite score normalised to with confidence percentage
Non-repainting: all signals confirmed on bar close via barstate.isconfirmed
State-tracked signals prevent repeated same-direction firing
24-cell gradient confidence meter with continuous position display
Score breakdown table showing each dimension's individual contribution
Gradient bar coloring proportional to conviction level
Configurable thresholds for all six dimensions and signal levels
---
Input Parameters
EMA Fast / Slow (default 21 / 55) — D1 trend alignment
Z-Score Baseline EMA (default 50) — the mean used for Z-score calculation
Z-Score Window (default 50) — standard deviation lookback
Z-Score Threshold (default 1.5) — how many standard deviations trigger the score
Volume RSI Length (default 8) — RSI period applied to volume
Volume Threshold (default 1.2) — Volume RSI / 50 must exceed this to activate D3
RSI Length (default 14) — standard RSI period for D4
Structure Lookback (default 20) — bars used to define the high/low range for D5
ATR Fast / Slow (default 14 / 50) — periods for the volatility ratio in D6
Volatility Thresholds (default 0.8 / 1.5) — low and high boundaries for the ATR ratio
Buy Threshold (default 0.3) — minimum composite score to generate a long signal
Sell Threshold (default -0.3) — maximum composite score to generate a short signal
High-Confidence Threshold (default ±0.6) — score level at which a signal is classified as high-confidence
---
How to Use
Apply to any chart. The overlay paints directly on price bars.
Watch the confidence meter for the current composite score position. A score pressed toward either extreme with multiple dimensions aligned is a higher-quality read than one sitting near center.
Use the score breakdown table to understand why the composite score is what it is. If only 2 of 6 dimensions are contributing, the signal is weaker regardless of whether it crossed the threshold.
High-confidence signals (score beyond ±0.6 by default) indicate that four or more of the six dimensions are in agreement. These can be treated as stronger setups than threshold-level signals.
Combine the composite score read with your own price action, support/resistance, or higher-timeframe context before entering a trade. This indicator is a confluence tool, not a standalone entry system.
If several dimensions are conflicting (score near 0), the market is not in a clear state — no action is the appropriate response.
---
Limitations
No indicator can predict future price. The composite score reflects current market conditions based on recent historical data — not what will happen next.
Z-score and structural position dimensions are mean-reverting in nature, while EMA alignment and RSI momentum are trend-following. In strongly trending markets, D2 and D5 may produce persistent bearish readings even during a healthy uptrend, suppressing the composite score. This is by design — the indicator is more suited to environments where confluence across all dimensions is achievable.
Volume RSI (D3) is only reliable on instruments and timeframes with consistent, meaningful volume data. On synthetic instruments, indices, or very low-timeframe charts, volume data may be unreliable and D3's contribution should be weighted accordingly.
The volatility context dimension (D6) measures the environment , not direction. A low-volatility score of +1 does not mean the market is about to move up — only that conditions are historically more favorable for clean signals.
Signal state tracking prevents consecutive same-direction signals, which reduces noise but also means the indicator will not re-fire during a prolonged trending move. This is a deliberate design choice but should be understood before use.
Default thresholds were chosen for general applicability. Different asset classes, timeframes, and volatility regimes may benefit from threshold adjustment.
Past signal quality on any given instrument does not guarantee future performance.
---
Originality Statement
The core innovation of this indicator is the deliberate selection of six dimensions that measure fundamentally different market properties rather than multiple views of the same property. Standard multi-indicator approaches tend to combine RSI, MACD, and Stochastic — all of which are momentum oscillators derived from price, generating correlated signals that appear independent but are not.
This indicator separates the problem into distinct domains: trend direction (EMA alignment), statistical deviation from the mean (Z-score), demand-side pressure (Volume RSI), momentum quality and direction (RSI slope + level), structural placement within recent range (midpoint comparison), and environmental favorability (ATR ratio). Because these dimensions are largely uncorrelated with each other, genuine multi-dimension agreement represents a qualitatively different kind of confluence than stacking three oscillators. The 24-cell gradient meter goes further — it provides a continuous conviction read rather than a binary signal, treating market condition as a spectrum.
---
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice, investment advice, or a recommendation to buy or sell any security. All trading involves risk, including the possible loss of principal. Past indicator performance does not guarantee future results. Always conduct your own research and consult a qualified financial professional before making any trading decisions.
-Made with passion by officialjackofalltrades
Indicator

Volatility Regime Classifier [JOAT]Volatility Regime Classifier
Introduction
The Volatility Regime Classifier is an overlay indicator that continuously classifies the current market environment into one of four distinct volatility regimes — TRENDING , RANGING , VOLATILE , or MIXED — and adapts its visual output accordingly. Rather than simply measuring how much volatility is present, this indicator identifies what type of volatility environment is active, a distinction that is directly relevant to strategy selection.
The classification is built on three independent measures — ATR Z-score, ATR percentile, and EMA directional ratio — each capturing a different dimension of market behavior. Their combination produces a regime map that is both statistically grounded and practically actionable.
---
Core Concepts
1. ATR Z-Score — Detecting Statistically Extreme Volatility
The Z-score measures how far the current ATR deviates from its own historical mean, in units of standard deviation:
atrZ = (atr14 - ta.sma(atr14, lookback)) / ta.stdev(atr14, lookback)
A Z-score above the Volatile Z Threshold (default 2.0) means current volatility is more than two standard deviations above the recent average — a statistically uncommon spike. This is the trigger for the VOLATILE regime, indicating conditions where position sizing, stop distances, and strategy assumptions built around normal ranges may no longer apply.
The Z-score is a mean-reverting measure. An extreme reading does not tell you which direction price will move. It tells you the current volatility environment is atypical relative to recent history.
2. ATR Percentile — Identifying Volatility Compression
The percentile ranks current ATR linearly within its own recent range:
atrPercentile = (atr14 - ta.lowest(atr14, lookback)) / (ta.highest(atr14, lookback) - ta.lowest(atr14, lookback)) * 100
A percentile below the Ranging Percentile threshold (default 35%) means ATR is near its lowest levels of the lookback window — a compression signal. This is the trigger for the RANGING regime, which historically precedes expansion but does not predict its direction or timing. It is a descriptor of the current state, not a forecast.
Using percentile rather than a fixed ATR threshold makes the measure adaptive: it adjusts to the instrument's own volatility character and the current lookback window.
3. EMA Directional Ratio — Testing Movement Quality
Directional quality is measured by the separation between a fast and slow EMA, expressed in ATR units:
directional = math.abs(ema_fast - ema_slow) / atr14 > dirStrength
When the EMA separation exceeds the Directional Strength threshold (default 1.5 ATR units), the market is showing sustained, coherent movement in one direction relative to its current volatility level. This is the trigger for the TRENDING regime.
Expressing EMA separation in ATR units normalizes for volatility: a large EMA gap during a high-volatility period may be less directionally significant than the same gap during a low-volatility period.
4. Regime Classification Logic
The three measures are evaluated in priority order:
VOLATILE — if ATR Z-score exceeds the volatile threshold. Extreme volatility takes precedence over all other conditions.
RANGING — else if ATR percentile is below the ranging threshold. Volatility compression is checked next.
TRENDING — else if the EMA directional ratio is satisfied. Directional movement is confirmed if not in a spike or compression.
MIXED — else. The market does not clearly fit any of the above categories: volatility is average, not directional, and not compressed.
Regime transitions are confirmed on barstate.isconfirmed bars only, preventing labels and state changes from appearing on unfinished candles.
5. Adaptive Bands
Each regime applies a different ATR multiplier to a central EMA band:
VOLATILE: multiplier 3.0 — wide bands reflecting extreme range
TRENDING: multiplier 2.0 — moderate bands supporting trend context
MIXED: multiplier 1.5 — standard bands for undifferentiated conditions
RANGING: multiplier 1.0 — tight bands appropriate for compressed, mean-reverting conditions
upper = ema_center + baseMult * atr14
lower = ema_center - baseMult * atr14
The band envelope therefore scales automatically to the current regime, providing contextually appropriate support and resistance structure without manual adjustment.
6. Smooth Color Transitions
Regime colors are smoothed by applying a 10-period EMA to each RGB channel independently. This prevents abrupt color jumps at regime boundaries and provides a visual blending effect as the market transitions between states. The smoothing period is fixed at 10 bars and is not user-configurable, as it is a presentational feature rather than an analytical one.
7. Regime Transition Labels
A label is plotted at each confirmed regime change, marking the bar where the classification shifted. This creates a visual audit trail of regime history on the chart, allowing traders to review how conditions evolved across the session or swing.
8. Information Table
A compact table in the top-right corner displays the current state of all key measurements:
Current regime classification
ATR value (absolute)
ATR Z-score
ATR percentile
EMA trend direction (bullish/bearish based on fast vs slow EMA)
Band width (upper minus lower)
Directional threshold met (yes/no)
Active band multiplier
---
Features
Four-state regime classification: TRENDING, RANGING, VOLATILE, MIXED
ATR Z-score for statistical volatility spike detection
ATR percentile for volatility compression identification
EMA directional ratio normalized to ATR units
Priority-ordered regime logic with clear precedence rules
Adaptive ATR-based bands that scale multiplier per regime
Smooth RGB-channel EMA color blending at regime transitions
Regime transition labels at every confirmed state change
Per-bar color coding reflecting the active regime
Background tint per regime (high transparency, non-intrusive)
Real-time information table with all underlying metrics
---
Input Parameters
ATR Length (default 14): Period for all ATR calculations. Shorter values make the Z-score and percentile more reactive; longer values smooth them out.
Regime Lookback (default 100): The historical window used for Z-score (mean and standard deviation) and percentile (highest/lowest) calculations. Shorter lookbacks make the regime more sensitive to recent conditions; longer lookbacks require more extreme readings to trigger transitions.
Volatile Z Threshold (default 2.0): ATR Z-score level required to trigger the VOLATILE regime. 2.0 corresponds to a two-standard-deviation event relative to the lookback window.
Ranging Percentile (default 35%): ATR percentile below which the RANGING regime is triggered. Lower values require a tighter compression before classifying as ranging.
Directional Strength (default 1.5): EMA separation threshold in ATR units required for the TRENDING regime. Higher values require a stronger, more sustained directional move.
Fast EMA (default 20): Period for the fast EMA used in directional ratio and the band center.
Slow EMA (default 50): Period for the slow EMA used in directional ratio.
Band EMA (default 50): Period for the central EMA from which adaptive bands project. Can be set independently from the directional EMAs.
---
How to Use
Regime-to-strategy mapping: The four regimes map to four broad strategy postures:
TRENDING: Conditions are directional. Trend-following approaches — momentum entries, trailing stops, breakout continuation — have historically performed better in this state.
RANGING: Volatility is compressed. Mean-reversion approaches — fading extremes, range-bound entries — are more aligned with this environment. Be aware that compression often precedes expansion.
VOLATILE: Volatility is statistically extreme. Reduce position size. Wider-than-usual stops are required to avoid being shaken out by noise. Many strategies based on normal ATR assumptions will malfunction in this state.
MIXED: No strong signal. Conditions do not clearly favor trending, ranging, or risk-off postures. Waiting for a clearer regime or reducing exposure are reasonable responses.
Reading the bands: The adaptive bands are not support/resistance in a traditional sense. They represent a contextually appropriate price envelope for the current regime. In ranging conditions, expect price to interact with the tight bands; in volatile conditions, the wider bands reflect the expanded true range.
Using the table: The information table provides the underlying metric values at a glance. If a regime seems unexpected, check the raw Z-score, percentile, and directional values directly — this helps distinguish borderline cases from clear ones.
Transition labels: Regime transition labels mark where conditions shifted on historical bars. Reviewing these labels on historical data can help calibrate whether the default thresholds suit a particular instrument and timeframe.
---
Limitations
All three underlying measures are based on ATR and EMA — both of which are lagging indicators. Regime classification reflects recently confirmed conditions, not instantaneous market state.
The lookback window is critical to the behavior of both the Z-score and percentile. A short lookback makes the indicator reactive but prone to frequent transitions; a long lookback produces more stable regimes but may lag real condition changes.
The four-state classification is a simplification of a continuous, multidimensional market reality. Real market conditions exist on a spectrum; the regime labels are useful approximations, not rigid categories.
On instruments with low liquidity, thin volume, or irregular trading sessions (certain futures contracts, crypto on illiquid exchanges, small-cap equities), ATR behavior may be distorted by gaps or thin-market artifacts, producing unreliable Z-score and percentile readings.
Regime classification performs best when applied within a single session or consistent trading context. Applying it across major session boundaries (e.g., Asia open to New York close on forex) without adjustment may produce spurious transitions driven by liquidity changes rather than structural market behavior.
This indicator does not predict regime changes. It classifies the current regime after it has formed. The RANGING regime, for example, does not predict that expansion will occur — it describes that compression is currently present.
No indicator, including this one, predicts future price direction or magnitude. Regime classification informs which type of strategy is currently better aligned with conditions — it does not guarantee that any strategy will be profitable.
---
Originality Statement
Many volatility indicators answer the question "how volatile is the market?" — ATR, Bollinger Band width, historical volatility, and similar tools all provide variants of this measurement. This indicator answers a different question: "what type of volatility environment is the market currently in?"
The distinction matters because different volatility types require different responses. A spike in volatility during a strong trend calls for different handling than a spike caused by a news event in a ranging market. Compression before a directional breakout is a different environment than compression within an established range. The MIXED regime acknowledges that not all market conditions are clearly classifiable — a honesty that most binary volatility tools omit.
Three independent measures are combined by design, not convenience:
The Z-score is statistical — it grounds the VOLATILE trigger in the instrument's own distributional history rather than an arbitrary fixed threshold.
The percentile is rank-based and linear — it identifies compression relative to the full range of recent ATR values without being sensitive to individual outliers.
The EMA directional ratio tests movement quality in ATR-normalized units — a common EMA crossover system would classify direction identically regardless of whether price is moving coherently or chopping. Normalizing to ATR removes that ambiguity.
The adaptive band multiplier is a direct mechanical expression of the regime classification — not a cosmetic addition. It means the envelope drawn on the chart is always scaled to the current environment, rather than applying a single fixed multiplier that is simultaneously too tight for volatile conditions and too wide for ranging ones.
---
Disclaimer
This indicator is provided for informational and educational purposes only. It does not constitute financial advice, investment advice, or a recommendation to buy or sell any asset. Regime classification describes current market conditions based on historical data — it does not predict future conditions, price direction, or strategy outcomes. All trading involves risk. You are solely responsible for your own trading decisions.
-Made with passion by officialjackofalltrades
Indicator

Indicator

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

SMC EMA CROSS ZIG ZAG# Mega Trend Suite – SMC + EMA (Lightweight Edition)
**A professional Smart Money Concepts (SMC) toolkit combined with classic EMA crossovers and VWAP.**
No Heikin Ashi, no MA Cross EMA – just clean price action, order flow, and trend confirmation.
---
## 🔍 Overview
This indicator bundles the most essential tools for **institutional-style analysis**:
- ✅ **SMC Structure** (internal & swing BOS/CHoCH)
- ✅ **Order Blocks** (bullish/bearish, with box or candle highlight)
- ✅ **Fair Value Gaps (FVG)** with auto threshold & multi‑timeframe support
- ✅ **Premium / Discount Zones** + Equilibrium line
- ✅ **Multi‑Timeframe High/Low levels** (Daily / Weekly / Monthly)
- ✅ **ZigZag** (main & internal) with HH/HL/LH/LL labels
- ✅ **VWAP** – anchored to the session
- ✅ **Two EMA sets** (9/21 & 20/50) with cross signals
- ✅ **Compact Dashboard** (SMC bias & current timeframe)
- ✅ **Full alert system** for all SMC events and EMA crosses
---
## 🧠 Key Features Explained
### 1. Smart Money Concepts (SMC)
| Component | What it does |
|-----------|---------------|
| **Swing Structure** | Detects Break of Structure (BOS) and Change of Character (CHoCH) on a higher‑length pivot (default 50). Shows labels “BOS” or “CHoCH” when price crosses a swing high/low. |
| **Internal Structure** | Same as swing, but uses a shorter length (default 10) to catch micro‑structure changes. Optional confluence filter (body vs. wick). |
| **Order Blocks (OB)** | Stores the extreme bar (parsed by volatility filter) after a valid BOS/CHoCH. Displays as zone boxes or candle highlights. Mitigation detection (close / high/low). |
| **Fair Value Gaps (FVG)** | Detects 3‑bar imbalances on a chosen timeframe (or current). Uses auto‑threshold based on historical bar delta. Extendable boxes. |
| **Premium / Discount Zones** | Calculates the range between the highest swing high and lowest swing low. Shades the upper 50% (premium) and lower 50% (discount) with an equilibrium line in the middle. |
| **MTF High/Low Levels** | Plots previous period’s high/low for Daily, Weekly, Monthly. Line style (solid/dashed/dotted) and color customizable. |
| **ZigZag** | Classic pivot‑based ZigZag with HH/HL/LH/LL labels. Separate internal ZigZag available for finer swings. |
### 2. VWAP
- Standard Volume Weighted Average Price.
- Useful for intraday bias – price above VWAP = bullish tilt.
### 3. EMA Sets
Two independent EMA pairs:
- **Set 1:** 9 & 21 (fast)
- **Set 2:** 20 & 50 (slower)
Each set plots its own lines and generates up/down triangles on crossover / crossunder. Colours, widths, and signal colours are fully adjustable.
---
## ⚙️ Input Parameters (Grouped)
### 🔧 Master Controls
- `Enable SMC Module` – turn all SMC features on/off.
### 📊 SMC – General
- `Mode` – Historical (keeps all drawings) / Present (refreshes each bar).
- `Style` – Colored / Monochrome.
### 📊 SMC – Structure & Order Blocks
- Internal / Swing lengths, label sizes, BOS/CHoCH filter (All / BOS only / CHoCH only).
- OB display mode (Both / Zone Box / Candle Highlight).
- OB mitigation source (Close / High/Low).
- OB filter (ATR / Cumulative Mean Range).
### 📊 SMC – Fair Value Gaps
- Auto threshold on/off, custom timeframe, extend bars.
### 📊 SMC – MTF High/Low Levels
- Show Daily / Weekly / Monthly – each with independent line style & colour.
### 📊 SMC – Premium / Discount Zones
- Toggle zones, custom colours for premium, equilibrium, discount.
### 📊 ZigZag Swing Lines
- Main ZigZag depth/deviation/backstep, colours, width, style, labels.
- Optional internal ZigZag with separate settings.
### 📈 VWAP & EMA Sets
- VWAP on/off, colour, width.
- Two EMA sets: each with fast/slow lengths, colours, line width, cross signal colours.
### 📊 Dashboard
- Position (Top‑Left/Right, Bottom‑Left/Right), font size.
### 🎨 Colors
- Global bull / bear / neutral colours (used in dashboard).
---
## 🖥️ Dashboard
A small table shows at a glance:
- **SMC Bias** – Bullish / Bearish / Neutral (based on swing trend).
- **Current Timeframe** – e.g., “60” for 1h, “D” for daily.
The dashboard adapts to dark/light chart background.
---
## 🚨 Alerts (30+ conditions)
All alerts are available from the PulseWire alert dialog:
| Category | Alerts |
|----------|--------|
| **Internal Structure** | Bull/Bear BOS, Bull/Bear CHoCH |
| **Swing Structure** | Bull/Bear BOS, Bull/Bear CHoCH |
| **Order Blocks** | Bull/Bear Internal OB mitigated, Bull/Bear Swing OB mitigated |
| **Fair Value Gaps** | Bull FVG formed, Bear FVG formed |
| **EMA Crosses** | EMA Set 1/2 Bull Cross, Bear Cross |
---
## 🧩 How to Use
1. **Add the indicator** to any chart (any symbol, any timeframe).
2. **Keep default settings** for a clean SMC + EMA experience.
3. **For scalping / intraday:**
- Enable Internal Structure (length 5–10).
- Use VWAP as bias filter.
- Watch for FVGs on 1m–15m.
4. **For swing trading:**
- Focus on Swing Structure (length 50+).
- Use Premium/Discount zones for entries (buy in discount, sell in premium).
- Confirm with EMA Set 2 (20/50) cross.
5. **Order Blocks:**
- When price returns to a bullish OB zone, look for buying opportunities.
- When a bearish OB gets mitigated, expect continuation down.
---
## 💡 Tips
- **Monochrome style** is perfect for grayscale / minimalistic setups.
- **Present mode** keeps drawings only on the current visible bars – useful for low‑resource usage.
- **FVG auto‑threshold** works best on higher timeframes (1h+). For lower timeframes, you may turn it off and use manual threshold via the `barDelta` calculation (already built‑in).
- The **ZigZag** does not repaint – it uses confirmed pivots.
---
## 📜 Credits & Version
- **Original concept:** Mega Trend Suite (SMC + HAMA + MA Cross EMA)
- **This edition:** Removed HAMA, MA Cross EMA, and Heikin Ashi Smoothed – keeping only SMC, VWAP, and EMA sets.
- **Version:** 1.0 (Pine Script v6)
---
## ❗ Notes
- This indicator is **not a financial advice** – always use proper risk management.
- Maximum drawings (labels, lines, boxes) are set to 500 each – enough for several months of data.
- Multi‑timeframe levels (Daily/Weekly/Monthly) work correctly only if the chart has enough historical data.
---
**Happy trading!**
*Mega Trend Suite – SMC + EMA* Indicator

AG Pro EMA Ribbon Compression Map [AGPro Series]AG Pro EMA Ribbon Compression Map
Overview / What it does
AG Pro EMA Ribbon Compression Map is a ribbon-structure indicator built to read the internal condition of a multi-EMA cluster rather than the behavior of price around a single moving average. Instead of asking whether price reclaimed one reference EMA, this script evaluates how tightly the ribbon is compressed, how cleanly the EMAs are aligned, whether width is beginning to expand, and whether a developing move still looks organized or is starting to cool.
The default ribbon uses six EMAs and transforms their relative spacing into a visual structure that can be monitored directly on the chart. When the ribbon contracts, the script highlights coil conditions. When alignment and width expansion start to work together, it can mark bullish or bearish release conditions. When the ribbon is already wide and the expansion begins to lose energy, the script can flag fan-stretch / exhaustion behavior.
This makes the tool suitable for traders who want to study transition phases between compression, release, expansion, and late-stage cooling without reducing the chart to a single crossover event. It is designed as a structural read of ribbon behavior.
Unique Edge
The main objective of this script is not to provide another generic EMA ribbon display. Its edge comes from turning ribbon behavior into a state map.
First, it measures compression through normalized ribbon width rather than relying only on visual judgment. This helps distinguish between a ribbon that merely looks narrow and a ribbon that is statistically tight relative to its own recent behavior.
Second, it combines two layers of organization into one alignment read:
1) order agreement between the EMAs
2) slope agreement across the ribbon
This is important because a ribbon can appear stacked correctly while already losing directional integrity. By combining order and slope, the script attempts to separate cleaner directional structure from weaker, mixed, or transitional structure.
Third, the script focuses on release quality as a context event. A release is not treated as a simple EMA cross. It requires compression context, directional alignment, price location relative to the ribbon, and width expansion behavior. In practice, this helps frame release events as structural transitions rather than isolated triggers.
This also differentiates the script from single-EMA reclaim tools. AG Pro EMA Ribbon Compression Map is not built to analyze reactions around one anchor average. Its purpose is to interpret the internal geometry of the ribbon itself.
Methodology
The default ribbon is built from six EMAs:
8, 13, 21, 34, 55, and 89.
The script calculates the highest and lowest EMA in the group, derives ribbon width, and normalizes that width using ATR. It then compares the normalized width to its own historical range over the selected compression lookback. From this process, a Compression Score and an Expansion Score are derived.
Alignment is built from two components:
- EMA order agreement
- EMA slope agreement
If the ribbon is fully stacked in one direction and most slopes support that direction, alignment improves. If order and slope start to disagree, alignment weakens and the state can shift toward mixed / disorder behavior.
The state logic is designed around the following structural phases:
- Bullish Coil
- Bearish Coil
- Tight Compression
- Bullish Release
- Bearish Release
- Bullish Expansion
- Bearish Expansion
- Mixed / Disorder
- Fan Stretch / Exhaustion
- Transition
The visual model is intended to keep the chart readable while still making the ribbon feel alive. Compression and release are not presented as forecasting claims. They are chart states derived from ribbon width, order, slope, and price position relative to the ribbon.
Signals & Alerts
This script can display event labels for key structural transitions and can generate alerts for the most important state changes.
Available alert conditions include:
- Bullish Ribbon Release
- Bearish Ribbon Release
- Ribbon Compression Start
- Ribbon Compression Exit
- Ribbon Exhaustion
In practical use, traders may choose to treat these alerts as workflow signals rather than standalone decisions. For example, a compression start can identify a tightening structure worth monitoring. A bullish or bearish release can indicate that the ribbon is transitioning out of compression with directional alignment. An exhaustion event can indicate that a previously expanding ribbon may no longer be accelerating.
The script also includes an on-chart panel that summarizes:
- current state
- compression score
- alignment score
- directional bias
- width condition
Key Inputs
Ribbon Settings
- Six EMA lengths
- price source
Compression Engine
- ATR length
- compression lookback
- compression threshold
- minimum width expansion
- slope lookback
- exhaustion threshold
Visual Settings
- ribbon fill visibility
- event label visibility
- panel visibility
- optional bar tinting
- label size
- panel position
- label density and cooldown controls
These settings allow the script to be adapted to different instruments and timeframes. Users can keep the default ribbon structure or study how different EMA sets behave across their own workflow.
Limitations & Transparency
This script is not a prediction engine. It does not know whether a compression will resolve into continuation, reversal, or failed expansion. It reads ribbon structure; it does not guarantee outcome.
Compression is a contextual condition, not a trade confirmation by itself. A tightly compressed ribbon can remain compressed longer than expected. Likewise, a release event can still fail if the move does not continue.
Alignment is based on moving averages and slope behavior, which means the script is responsive to structure but still derived from lagging calculations. That tradeoff is intentional: the goal is to improve structural clarity, not to eliminate lag altogether.
The indicator is also not a substitute for market context, support / resistance work, volatility analysis, or risk management. It is best used as a chart-structure tool inside a broader decision process.
Risk Disclosure
This indicator is for chart analysis and workflow support only. It does not provide financial advice, investment advice, or guaranteed trade outcomes. All trading decisions involve risk, and users should evaluate any signal, state change, or alert within their own methodology, market conditions, and risk framework. Indicator

AG Pro EMA 200 Reclaim Map [AGPro Series]AG Pro EMA 200 Reclaim Map
Overview / What it does
AG Pro EMA 200 Reclaim Map is a chart overlay built to organize price behavior around the 200 EMA into a clearer workflow. Instead of treating the 200 EMA as a simple above/below filter, this script tracks how price interacts with that reference during reclaim attempts, acceptance phases, retests, and loss-of-level events. The goal is not to predict future price movement. The goal is to make the structure around a widely used long-horizon moving average easier to read on the chart.
The script highlights when price reclaims the 200 EMA, whether that reclaim is holding with acceptance, whether a retest develops after the move, and whether the reclaim later fails. A compact panel summarizes the current state so the chart can be read more quickly without reducing everything to a single binary signal.
This is designed as a decision-support overlay for traders who already use the 200 EMA as a contextual reference and want a more structured view of how price behaves around that level. It can be used on crypto, stocks, indices, forex, and other liquid markets, but outputs should always be interpreted in the context of the instrument, timeframe, volatility profile, and overall market structure.
Unique Edge
The main objective here is not to create another generic moving-average cross script. The distinctive part of this tool is that it treats the 200 EMA as a behavioral map rather than a yes/no trigger.
In many scripts, the 200 EMA is used only as a directional filter: price above equals bullish context, price below equals bearish context. That can be useful, but it does not say much about the quality of the interaction itself. A reclaim that is accepted cleanly after a controlled retest is different from a reclaim that briefly crosses the line and immediately loses it. Both may appear similar in a simple cross-based tool, but they do not carry the same structural meaning.
This script is built to separate those cases. It tracks whether a reclaim occurred, whether price is holding on the reclaimed side, whether a retest happened, how strong that retest appears relative to the script’s scoring rules, and whether the move later failed. In that sense, the script focuses on reclaim lifecycle mapping rather than raw cross detection.
Methodology
The core reference is the 200-period exponential moving average. From there, the script evaluates several conditions around that line.
1) Reclaim detection
A bullish reclaim occurs when price moves from below the 200 EMA to above it. A bearish reclaim occurs when price moves from above the 200 EMA to below it. These events define the initial transition point, but they are not treated as sufficient on their own.
2) Acceptance / hold logic
After a reclaim, the script tracks whether price remains on the reclaimed side for a defined window. This is used to separate fresh reclaim attempts from accepted holds and weaker continuation states. The panel reflects this with state language rather than presenting the move as an unconditional signal.
3) Retest tracking
After a reclaim, price may revisit the EMA zone. The script evaluates these retest behaviors and can classify them through an internal quality framework. This is intended to distinguish cleaner, more orderly interactions from weaker or less stable ones.
4) Stretch context
The script also measures how extended price is relative to the 200 EMA using an ATR-based context layer. This does not declare a reversal by itself. It simply adds information about whether price is relatively balanced or stretched around the reclaim structure.
5) Failure mapping
If a reclaim is later lost, the script can mark that condition as a failed reclaim. This helps separate accepted transitions from ones that could not maintain structure around the 200 EMA.
The map band around the EMA is only a visual aid. It is there to make the interaction corridor easier to recognize on the chart. It should not be interpreted as an independent support/resistance zone outside the script’s own framework.
States / Signals
This script is best read as a state-mapping overlay, not as a standalone trade engine.
Typical outputs include:
- Bias context relative to the 200 EMA
- Reclaim status
- Acceptance or weak-hold state
- Retest direction and latest retest quality
- Stretch condition relative to the 200 EMA
- Failed reclaim markers when the structure is lost
Depending on settings and chart history, you may see labels such as Bull Reclaim, Bear Reclaim, and retest quality annotations. These labels are visual markers for structural events detected by the script. They are not guarantees of continuation, reversal, or trade outcome.
Alerts
The script includes deterministic alert conditions tied to its event logic. These are designed to support workflow automation for users who want notification when a reclaim or failure condition is detected.
Because alerts are based on chart data and script logic, their usefulness will depend on the selected timeframe, the instrument traded, and the user’s own confirmation process. Alerts should be used as prompts for review, not as standalone execution instructions.
Key Inputs
The exact input list may evolve with future updates, but the script is centered around the following configuration areas:
- EMA length and source settings
- Acceptance / hold window controls
- Retest logic and retest label filtering
- Stretch context based on ATR
- Label visibility, spacing, and display density
- Map / zone display controls
- Panel visibility and panel styling options
These settings allow the script to be adapted for cleaner presentation or more event visibility depending on chart preference. A lower-noise layout may be more suitable for publishing or higher-timeframe review, while a denser layout may be more useful for inspection and testing.
Limitations & Transparency
This script does not forecast price. It does not know future direction, and it does not identify all valid trend continuations or reversals. It is a context tool built around a widely observed moving-average reference.
A reclaim above the 200 EMA does not always lead to continuation. A reclaim below the 200 EMA does not always lead to downside expansion. Retests can succeed or fail. Accepted states can break. Stretch conditions can persist longer than expected. False transitions can occur, especially in choppy or news-driven environments.
Like any moving-average-based framework, this script is also sensitive to timeframe selection. A chart that appears constructive on one timeframe may remain weak on a higher timeframe, or vice versa. Users should interpret the output within their own multi-timeframe and risk-management process.
Label placement, retest visibility, and apparent event density can also vary by volatility regime, zoom level, and chart compression. For that reason, the visual output should be treated as a structured reading aid rather than a complete market model.
This tool should not be viewed as a substitute for market structure analysis, liquidity awareness, execution discipline, or position management.
Risk Disclosure
This script is for chart analysis and educational use. It does not provide investment advice, financial advice, trading advice, or portfolio advice.
Trading and investing involve risk. Markets can move quickly, and losses can occur. No indicator, overlay, or alert system can eliminate that risk. Always use independent judgment, confirm conditions with your own process, and apply risk management appropriate to your market and strategy.
If you use this script in live markets, it is your responsibility to evaluate whether the instrument, timeframe, liquidity, volatility, and execution environment are suitable for your own decisions.
Indicator

Indicator

Strategy

Indicator

Smooth Trader - Volume Toolkit Smooth Trader Lite – Volume at a Glance ToolkitThis open-source toolkit is designed for one purpose: helping traders read volume behavior and market control at a single glance — no clutter, no signal overload, just clear visual context to support any trading style.
The five core components work in harmony to reveal volatility, momentum vs volume interaction, institutional volume entries, reversal zones, and directional pressure — all optimized for speed and readability.
Core Components & How They Connect
1. ATR Volatility Baseline
Displays Average True Range (default 14) in a compact top-right table.
Sets the "normal" movement scale so you instantly know whether current volume is significant relative to typical volatility — the foundation for judging every other element.
2. Momentum/Volume Wave (MV Cloud)
Plots a 21-period EMA against a dynamic running VWAP (50/100/200 length based on preset aggression).
The filled envelope shows how momentum is pushing against (or with) volume-weighted price — bullish fills when EMA leads, bearish when VWAP dominates.
Acts as the central "wave" that ties momentum to volume flow, giving immediate context for high-volume events.
3. PVSRA-Style High-Volume Candles
Classifies candles by volume relative to recent average and range magnitude. High volume (≥2× avg or max magnitude) → strong bull/bear color or diamond marker
Medium volume (≥1.5× avg) → lighter color
Instantly flags when big volume enters — often institutional buying/selling or manipulation setups (spikes followed by quick reversals).
4. Initial Balance (OBR) Reversal Levels
Plots the high/low of the regular session's opening range on selectable higher timeframes (default 15m & 60m).
Historical lines optional. These levels show where early volume was stopped and reversed — key reference points for judging later volume aggression or exhaustion.
5. Directional Volume Trend Coloring
Applies a smooth gradient to candle bodies based on multi-timeframe VIDYA z-score average (presets processed only on first bar for efficiency).
Colors shift gradually: neutral gray → strong bullish teal → strong bearish magenta.
Reveals whether volume pressure is consistently building in one direction, providing the "big picture" bias to interpret high-volume events and MV Cloud shifts.
Why These Components Work Together
ATR gives the volatility scale to judge "high volume."
MV Cloud shows momentum clashing with or riding volume-weighted levels.
PVSRA candles pinpoint the exact moments big volume arrives.
Initial Balance levels mark where that volume was previously rejected.
Trend coloring confirms if the volume flow is one-sided and gaining conviction.
The result: a lightweight, glanceable system that simplifies volume reading and helps spot control shifts, climaxes, or manipulation without generating explicit signals.
Optimizations
Enum-based inputs for clean, intuitive configuration
Calculations refactored for performance (first-bar preset evaluation, removed duplicates)
Lower-TF library upgraded to v5
Toggleable visuals with customizable colors and optional elements
How to Use
Add to chart → adjust presets and toggles → glance at the chart: Is volume high relative to ATR?
Is momentum breaking VWAP?
Are PVSRA candles firing?
Were Initial Balance levels respected?
Is trend coloring strengthening?
Ideal as a visual support layer on 5m–4h timeframes for stocks, forex, or crypto.This open-source toolkit provides clean volume and structure context. For traders seeking advanced delta-pressure signals and proprietary entry logic.
Disclaimer
For educational and informational purposes only. No trading advice or performance guarantees. Trading involves substantial risk of loss. Use at your own risk.
Indicator

Indicator

Strategy

Indicator

Indicator
