Indicator
Vwapbands
VWAP Intraday, Weekly, MonthlyA clean, professional implementation of three anchored VWAPs — Intraday, Weekly and Monthly — with standard deviation bands, cloud fills and candle coloring. Built for futures, stocks and forex traders who use VWAP as a core part of their analysis.
━━━━━━━━━━━━━━━━━━━━━━━━
WHAT IS VWAP?
━━━━━━━━━━━━━━━━━━━━━━━━
Volume Weighted Average Price is the most widely referenced intraday benchmark used by institutional traders, market makers and algorithms. It represents the average price at which all volume has transacted over a given period. Price above VWAP is generally considered bullish, price below is bearish. The standard deviation bands show statistical distance from fair value — the further price extends from VWAP, the more extended and mean-reversion prone the move becomes.
━━━━━━━━━━━━━━━━━━━━━━━━
FEATURES
━━━━━━━━━━━━━━━━━━━━━━━━
▶ Intraday VWAP — resets each session. Band 1 and Band 2 with optional cloud fill.
▶ Weekly VWAP — resets each week. Band 1 and Band 2 with optional cloud fill.
▶ Monthly VWAP — resets each month, correctly anchored to the first session of the calendar month. Band 1 and Band 2 with optional cloud fill.
▶ Candle Coloring — green when price closes above Intraday Band 1, red when below. Neutral inside the bands.
▶ Multiple Anchors — Globex (18:00 ET, best for NQ/ES futures), Midnight (stocks and forex), Market Open (9:30 ET RTH), London session (03:00 ET) and Asia session.
▶ Source Selection — HLC3 (typical price, institutional standard), Close, HL2 or OHLC4.
━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE
━━━━━━━━━━━━━━━━━━━━━━━━
Futures traders (NQ, ES, MNQ): use Globex anchor. This anchors VWAP to the 18:00 ET session open, matching institutional platforms like Sierra Chart and Bookmap.
Stock traders: use Midnight or Market Open anchor depending on your preference.
Forex traders: use Midnight anchor for a standard daily reset.
Band 1 (1.0 std dev) is the primary level. Price rejecting from Band 1 and reversing toward VWAP is one of the most reliable setups in VWAP trading. Price closing outside Band 1 signals a strong directional move. Band 2 (2.0 std dev) marks extended moves where mean reversion is statistically more likely.
Weekly and Monthly VWAPs act as macro support and resistance levels. Price above both is a bullish macro structure. Price between them shows a transitional zone. Price below both is bearish.
━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS
━━━━━━━━━━━━━━━━━━━━━━━━
All colors, opacity and line thickness are adjustable by clicking each color swatch — the popup includes color, opacity, thickness and line style in one place.
Each band's standard deviation multiplier is adjustable. The default 1.0 and 2.0 are the most commonly used values but some traders prefer 1.5 / 2.5 depending on their instrument and style.
━━━━━━━━━━━━━━━━━━━━━━━━
NOTES
━━━━━━━━━━━━━━━━━━━━━━━━
- Works on any timeframe and any instrument with volume data.
- For accurate Globex VWAP on NQ/ES, ensure your chart data includes the overnight session.
- Monthly VWAP is anchored to the first Globex session of each calendar month, not midnight of the 1st — this matches the institutional convention for futures.
Indicator
Anchored VWAP Pro#Anchored VWAP Pro
by: MasterTonyTA
## What it does
VERY SIMPLE MARK TOPS MARK BOTTOMS- SUPPORT AND RESISTANCE SHOWN
ANCHORED VWAP SHOWS YOU IMPORTANT LEVELS TO KEEP AN EYE TO FLIP, REJECT, OR HOLD
Two anchored VWAPs (top and bottom) with **color memory** — each line stays colored while holding as S/R, turns gray when broken — plus **real-time triangles** marking every wick rejection at the top and bounce at the bottom. Anchors can be set manually via the date/time input in settings, or dragged directly on the chart for fast experimentation.
---
## How it's calculated
**VWAP** (close-based, cumulative from anchor):
```
VWAP = Σ(close × volume) / Σ(volume)
```
Starts at the user-selected anchor bar and accumulates forward.
**Color logic:**
- **Top VWAP** — red while `close < VWAP` (resistance holding), gray when `close > VWAP` (broken)
- **Bottom VWAP** — green while `close > VWAP` (support holding), gray when `close < VWAP` (broken)
**Triangles** (wick-based, fires same bar):
- **🔻 Top Rejection** — `high ≥ Top VWAP` and `close < Top VWAP`
- **🔺 Bottom Bounce** — `low ≤ Bottom VWAP` and `close > Bottom VWAP`
---
## How to trade with it
1. **Anchor the top** to a major swing high — the red line is dynamic resistance from that pivot.
2. **Anchor the bottom** to a major swing low — the green line is dynamic support from that pivot.
3. **Read the state:**
- Red top + green bottom = price inside a dynamic channel, fade the edges
- Top turns gray = resistance broken, look for retest as new support
- Bottom turns gray = support broken, look for retest as new resistance
4. **Trade the triangles:**
- 🔻 = short the rejection, stop above the wick
- 🔺 = long the bounce, stop below the wick
Best anchors are pivots that already matter — major highs, major lows, capitulation candles. Drag the anchor to test different points; the right one is where price clearly respects the line.
---
Indicator
Smooths VWAP SuiteTitle: Smooth's VWAP Suite: Advanced Futures Context & Filtered Signals
Description:
Overview & Purpose
Smooth's VWAP Suite is a comprehensive volume-weighted average price toolkit engineered specifically for futures traders (e.g., NQ, ES).
The primary justification for combining these specific elements—Daily VWAP, Standard Deviation Bands, Session AVWAPs (Overnight, RTH, Weekly), and dynamic signals—into a single script is to solve the problem of "context fragmentation." Futures markets respect multiple volume anchors simultaneously. Rather than cluttering a chart with five individual, unlinked indicators, this suite unites micro (intraday) and macro (weekly) volume levels into one cohesive map. Furthermore, it introduces a custom "Current Day Only" filter mathematically anchored to the 18:00 EST futures open, fixing the common issue where standard indicators rely on the midnight calendar-day rollover.
How It Works: Underlying Concepts & Logic
This script calculates the Volume-Weighted Average Price by maintaining a cumulative running total of Price × Volume, divided by Total Volume.
Session AVWAPs & Previous Day: The script calculates distinct VWAPs based on specific time anchors. It automatically tracks the Weekly open, the Regular Trading Hours (RTH) open, and the Overnight (OVN) session. It also statically plots the Previous Day's closing VWAP value, acting as a critical pivot for the current session.
Standard Deviation Variance: The bands surrounding the Daily VWAP are calculated using the mathematical square root of volume-weighted variance. This provides dynamic, mathematically sound support and resistance zones based on current market volatility, plotted at user-defined multipliers (defaulting to 1.0, 2.0, and 3.0 SD).
Signal Engine & EMA Filter: The built-in signals are not basic crossovers. To prevent false signals in chopping ranging markets, the script requires an EMA (Exponential Moving Average) directional filter to confirm the trend.
Reversal/Cross Signals: Trigger when price straddles the VWAP, closes on the opposite side, is aligned with the EMA slope, and is positioned correctly relative to the Weekly VWAP.
Continuation Signals: Trigger when price pushes into a Standard Deviation band (e.g., SD 1 or SD 2) and actively rejects it, closing back toward the trend direction while maintaining the EMA slope.
How Traders Can Use It
This suite is designed for trend identification, mean-reversion targeting, and precise entry confirmation.
Macro Context Alignment: Use the Weekly and Previous Day VWAP lines to determine the broader bias. If the current Daily VWAP is trading above both, the macro trend is bullish.
Mean Reversion: When price extends into the SD 2 or SD 3 bands, the asset is statistically overextended based on current volume. Traders can look for price action weakness at these extremes to target a reversion back to the Daily VWAP (the mean).
Signal Execution: Utilize the script's visual markers (Arrows/Triangles) for entry confirmations. A bullish signal firing after a bounce off the lower SD 1 band, while the Daily VWAP remains above the Weekly VWAP, offers a high-probability continuation setup.
Chart Decluttering: For active day traders, toggle the "Current Day Only" setting. This utilizes custom logic to sever all historical visual data prior to the exact 18:00 EST futures anchor, keeping your screen entirely focused on the current session's price action.
Customization
Every element is modular. Traders can toggle specific bands, adjust standard deviation multipliers, change the EMA filter length for signals, and customize the visual offsets of the price labels to fit their specific screen layout.
Indicator
JOAT Pressure Composite [JOAT]JOAT Pressure Composite
Introduction
JOAT Pressure Composite is an open-source accumulation-distribution and participation oscillator built to measure whether buying or selling pressure is strengthening, weakening, rotating, or diverging from price.
It is designed to expose internal sponsorship behind price movement rather than price movement alone.
The script combines weighted close-location flow, relative-volume sponsorship, volume sigma, effort, efficiency, momentum bias, VWAP bias, and confirmed higher-timeframe context into one composite pressure model.
The problem it solves is hidden participation.
Price can rise on weak effort.
Price can fall on poor sponsorship.
Price can continue moving while internal pressure deteriorates.
Pressure Composite tries to expose those changes earlier by measuring how much of the move is actually being sponsored by participation.
The oscillator pane carries the composite, signal line, envelope, flow ribbon, and extreme states.
At the same time, the indicator projects tailored information onto the main chart.
Price divergence is labeled clearly.
Expansion and absorption states are labeled directly on candles.
Anchored VWAP and trend context are overlaid on price so the oscillator and chart remain connected.
Core Concepts
1. Weighted Pressure Engine
The base flow uses close-location value and weighted volume.
closeLocationValue = (2.0 * close - low - high) / barRange
weightedVolume = volume * sponsorshipFactor
2. Pressure Z-Score
The raw pressure series is normalized with a Z-score.
3. Sigma and Effort Layers
Volume sigma and effort help distinguish aggressive participation from ordinary rotation.
4. Efficiency Bias
The script measures whether price is moving efficiently over the selected lookback.
5. VWAP Bias
Distance from anchored VWAP is normalized in ATR terms.
6. Confirmed Divergence Logic
Pivot-based divergence compares oscillator highs and lows to price highs and lows.
7. Expansion and Absorption Labels
The chart prints Bid Expansion, Offer Expansion, Bull Absorption, and Bear Absorption labels directly on price.
8. Confirmed Higher-Timeframe Context
The script pulls confirmed HTF composite states only.
Features
Composite pressure model: blends pressure, effort, sigma, efficiency, and VWAP bias
Flow ribbon: shows whether pressure is widening or fading
Envelope and extreme states: separates normal expansion from aggressive pressure
Confirmed divergence detection: compares oscillator pivots to price pivots
Clear divergence labeling: bullish and bearish pressure divergence is labeled directly on price
Expansion / absorption labels: market states are marked on actual candles
Anchored VWAP context: projected onto the chart for alignment
Fast / slow trend context: price-side guides remain visible while using the oscillator
Confirmed HTF states: non-repainting higher-timeframe pressure context
No dashboard: information is pushed into the chart and oscillator instead of a table
Input Parameters
Composite Engine:
Smoothing Type
Flow Smoothing
Normalization Length
Relative Volume Baseline
Relative Volume Boost
Volume Sigma Length
Effort Smoothing
Efficiency Length
Signal Length
Envelope Length
Envelope Multiplier
Extreme Multiplier
Pivot Length
Divergence Scan
ATR Length
Qualification / Display:
Use Trend Gate
Trend Fast EMA
Trend Slow EMA
Use VWAP Gate
Minimum Spread
Show Histogram
Show Signal Line
Show Envelope
Show Flow Ribbon
Show Divergence
Tint Price Bars
Shade Momentum States
Show Price Context
Show Price Event Labels
How to Use This Indicator
Step 1: Read the composite vs signal relationship to judge widening or fading pressure.
Step 2: Check whether the state is expansion or absorption.
Step 3: Watch labeled divergences closely, especially after extension.
Step 4: Use anchored VWAP and trend overlays to connect the oscillator back to price structure.
Step 5: Use confirmed HTF context as a quality filter rather than a prediction tool.
Indicator Limitations
Divergences can persist before price responds
Confirmed higher-timeframe context intentionally lags unfinished HTF candles
Low-volume environments can flatten the composite even while price drifts
Pressure quality does not guarantee immediate reversal or continuation
Originality Statement
This script is original in how it integrates weighted close-location flow, RVOL sponsorship, sigma, effort, efficiency, VWAP distance, confirmed HTF context, and direct price-chart state labeling into one coherent participation framework.
The components are combined because they all address one question:
how much real sponsorship exists behind current price movement.
Disclaimer
This indicator is provided for educational and informational purposes only.
It is not financial advice.
Pressure readings and divergences do not guarantee reversal or continuation.
Use the script as context and confirmation, not as a promise of outcome.
Best Use Cases
Measuring whether price movement is being sponsored by real participation
Spotting divergence between price and internal pressure
Reading expansion versus absorption conditions
Combining participation context with VWAP and trend structure
Interpretation Notes
The strongest bullish pressure states usually include positive pressure, supportive spread, constructive effort, and favorable price context above value.
The strongest bearish pressure states are the mirror image.
Divergences are most useful when they appear after extension or at major contextual levels.
Absorption labels should be treated as warnings that apparent directional continuation may be losing quality.
Publication Notes
This script is intended to be published with a clean chart where the oscillator, labeled divergence, and at least one price-context label are clearly visible.
Because there is no dashboard, the publication image should make the chart-side annotations easy to read.
Keep the chart clean so the viewer can immediately understand that the script links oscillator behavior back to price.
-Made with passion by jackofalltrades\
Indicator
Meridian Regime Overlay [JOAT]JOAT Meridian Regime Overlay
Introduction
JOAT Meridian Regime Overlay is an open-source market context overlay built to classify whether price is operating in directional expansion, balanced auction, or compression.
It is designed as a chart-first regime engine rather than a standalone trigger study.
The script combines local baseline alignment, confirmed higher-timeframe bias, pivot structure, opening-range acceptance, realized volatility state, and session VWAP location into one integrated regime map.
The problem it solves is context.
Many indicators can say whether price is above or below an average.
Far fewer explain whether the move is supported by volatility expansion, structural acceptance, value migration, and higher-timeframe alignment.
Meridian Regime Overlay focuses on that exact problem.
It grades the live auction bar by bar.
It also shows what is supporting the grade.
That makes it useful as a decision filter before interpreting any lower-level signal source.
This script is not trying to predict the future.
Its job is to organize the present market condition.
It helps answer practical questions:
Is the market trending with real conviction?
Is price only drifting above a baseline without expansion?
Is the market compressing near a likely release point?
Is higher-timeframe structure aligned with the current move?
Is price accepting away from value or simply rotating around it?
Core Concepts
1. Baseline Stack Alignment
Fast, slow, and anchor baselines define the local directional stack.
Directional strength improves when those baselines align in sequence and their slopes support the move.
fastBase = ta.ema(close, fastLen)
slowBase = ta.ema(close, slowLen)
anchorBase = ta.ema(close, anchorLen)
2. Confirmed Higher-Timeframe Bias
Higher-timeframe context is pulled using confirmed values only.
This avoids depending on unfinished HTF candles.
htfFast = request.security(syminfo.tickerid, biasTf, ta.ema(close , fastLen), lookahead = barmerge.lookahead_on)
htfSlow = request.security(syminfo.tickerid, biasTf, ta.ema(close , slowLen), lookahead = barmerge.lookahead_on)
htfAnchor = request.security(syminfo.tickerid, biasTf, ta.ema(close , anchorLen), lookahead = barmerge.lookahead_on)
3. Compression and Expansion State
The script compares Bollinger width and Keltner position to identify squeeze behavior and release behavior.
ADX and realized variance refine the classification.
4. Pivot Structure State
Confirmed pivots define recent structural reference points.
Breaks through those pivots update the structural state.
5. Session VWAP Context
Distance from session VWAP is normalized in ATR units.
This helps reveal whether price is auctioning away from value with intent or just rotating around it.
6. Opening-Range Acceptance
The opening range is tracked and plotted.
Acceptance above or below that range adds useful early-session context.
7. Composite Regime Score
Multiple directional variables are folded into a single regime score.
The score is a context summary, not a standalone trade signal.
8. Confirmed Event Labels
The overlay prints confirmed auction-up, auction-down, and squeeze-release labels directly on the chart.
Features
Directional regime classification: bullish expansion, bearish expansion, balance, and compression states
Baseline cloud system: fast and slow cloud for local trend stack
Confirmed HTF alignment: higher-timeframe bias uses confirmed values only
Opening-range plotting: high, low, and midpoint are tracked
Session VWAP context: value migration is integrated into the read
Pivot structure state: recent structural breaks are tracked
Compression and release logic: squeeze and expansion state are visualized
Bar-state coloring: candles transition with regime intensity
Confirmed event labels: auction and expansion markers print on the chart
Dashboard: summarizes regime, score, HTF, structure, volatility, and VWAP context
Input Parameters
Trend Engine:
Fast Baseline
Slow Baseline
Anchor Baseline
Adaptive Mean Length
Bias Timeframe
Slope Lookback
Slope Threshold ATR
RVOL Impulse Threshold
Volatility Engine:
ATR Length
Compression Length
Band Deviation
Keltner Length
Keltner Multiplier
ADX Length
ADX Floor
Expansion Threshold
Realized Variance Length
How to Use This Indicator
Step 1: Read the regime color, cloud, and dashboard state.
Step 2: Check higher-timeframe alignment before trusting directional continuation.
Step 3: Compare structure and VWAP position to see whether price is accepting away from value.
Step 4: Watch squeeze-release transitions closely because those often precede cleaner directional movement.
Step 5: Use the script as a context filter for other tools rather than as a complete trading system.
Indicator Limitations
Pivot structure confirms after the pivot fully forms, which is intentional non-repainting behavior
Higher-timeframe values are confirmed and therefore intentionally delayed
Compression can persist longer than expected in slow auction environments
Directional classification does not guarantee continuation
Originality Statement
This publication is original in the way it integrates baseline structure, confirmed higher-timeframe bias, compression state, realized variance, session VWAP, opening-range acceptance, and pivot structure into one unified regime overlay.
The components are not combined arbitrarily.
They all answer the same core question:
what is the current quality of the auction?
Disclaimer
This indicator is provided for educational and informational purposes only.
It is not financial advice.
Market regimes can shift quickly.
All readings are based on historical and current bar data and do not guarantee future performance.
Always use independent analysis and risk management.
Best Use Cases
Directional trend filtering before using a separate trigger model
Session context analysis during London and New York activity
Volatility transition analysis when compression begins to release
Structure-aware regime filtering for discretionary execution
Interpretation Notes
The strongest readings usually occur when the local stack, confirmed higher-timeframe stack, VWAP position, and volatility expansion agree.
If only one or two of those are aligned, the chart can still move, but the regime read is weaker.
Compression should not be treated as a bearish or bullish state by itself.
It is a warning that the market is withholding directional commitment.
Opening-range acceptance adds value because many directional sessions reveal their intent early.
When price cannot hold outside the opening range, the regime should usually be treated more cautiously.
Publication Notes
This script is intended to be published with a clean chart where the cloud, baselines, opening range, and event labels are clearly visible.
The chart should not be cluttered with unrelated overlays.
If showing an example image, the regime state and at least one structural transition should be identifiable at a glance.
-Made with passion by jackofalltrades
Indicator
VWAP - Tokyo\Asian SessionVWAP auto anchored to the start of Tokyo\Asian session
Labelled that changes color to match the line color
The first calculation next to the VWAP name is the points distance from the VWAP to the Standard Dev Band. If you want to know the distance from one Std Dev +1 to -1 then double this
number.
The Ext is the real time points value of the current price outside of the Std Dev +1 or -1 band
Indicator
Helix Trend Ensemble [JOAT]Helix Trend Ensemble
Introduction
Helix Trend Ensemble is an open-source trend overlay built around a three-member weighted ensemble. Instead of relying on one moving average or one crossover, Helix evaluates multiple configurable members, normalizes slope behavior, and produces a consensus trend state only when enough internal agreement is present.
The problem Helix solves is false certainty. Single-line trend tools are easy to read but easy to break. Multi-line tools often create clutter without resolving disagreement. Helix is designed to preserve a clean chart while still exposing the quality of alignment between fast, intermediate, and structural trend engines.
Core Concepts
1. Multi-Member Trend Architecture
Three independent members can each use different MA types, smoothing methods, lengths, and weights. This allows the ensemble to mix responsiveness with structural stability.
2. Weighted Consensus
The final state is not a simple majority vote. Each member contributes according to its configured weight, and the ensemble requires sufficient agreement before it promotes a directional state.
3. Slope Normalization
Raw slope values are normalized so the dashboard can express trend energy in a stable way across different length combinations.
4. Filter Layer
ATR and ADX filters help suppress weak trend states and reduce low-quality directional transitions.
5. Confirmed Regime Transitions
Directional state changes are only recognized on confirmed bars, which keeps the ensemble consistent with real-time use.
Features
Three fully configurable members: Each member supports multiple MA and smoothing combinations
Weighted consensus engine: Final state depends on internal agreement quality, not one crossover
Normalized slope score: Slope behavior is translated into a stable strength readout
Ribbon and cloud system: Trend geometry is expressed through layered fills instead of cluttered markers
Optional candle coloring: Price bars can reflect the ensemble state without altering logic
Top-right dashboard: Regime, consensus, strength, slope, agreement, filters, and last flip are summarized continuously
How to Use This Indicator
Step 1: Read regime and consensus together
A bullish or bearish state is more meaningful when consensus is high and filters are passing.
Step 2: Watch slope and strength
An aligned ensemble with weakening slope often signals late-trend conditions rather than fresh expansion.
Step 3: Use Helix as a bias filter
Helix works well as a directional framework for execution models that need a clean trend gate.
Indicator Limitations
Longer member lengths will intentionally delay reversals
High responsiveness settings can increase whipsaws
Consensus does not eliminate all false trends; it only improves structural filtering
The script is a trend-classification tool, not a full strategy
Originality Statement
Helix Trend Ensemble is original in the way it combines configurable member diversity, weighted consensus, slope normalization, and clean institutional visualization into one open-source trend framework.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Trend-state tools can fail during rapid reversals, compressed markets, or structurally irregular conditions. Use proper risk control at all times.
Indicator
Aegis Arc Framework [JOAT]Aegis Arc Framework
Introduction
Aegis Arc Framework is an open-source anchored-trend overlay built to classify directional pressure through the interaction of three continuously updated reference systems: a confirmed trailing arc, anchored VWAP regime alignment, and ATR-normalized extension pressure. The script is designed to provide structured directional context without relying on repainting shortcuts or visually noisy retail markers.
The main problem Aegis Arc Framework solves is trend persistence versus trend exhaustion. Price can remain above a trailing framework while already becoming stretched relative to value. It can also reclaim value while a trend is still technically intact. Aegis addresses that by combining a ratcheting confirmed trail with session, weekly, and monthly VWAP context so the user can distinguish continuation, weak extension, and blocked transition states.
Core Concepts
1. Anchored VWAP Regime Gate
The indicator maintains manually anchored session, weekly, and monthly VWAP references and checks whether the active trend is aligned with those value anchors. Depending on the selected mode, the gate can require Session, Week, Month, Any, or All alignment before the dashboard and confirmed state fully agree with the direction of the arc.
bool s = bullish ? close >= vwapSession : close <= vwapSession
bool w = bullish ? close >= vwapWeek : close <= vwapWeek
bool m = bullish ? close >= vwapMonth : close <= vwapMonth
2. Ratcheted Arc Trail
The main trail is not a static moving average. It is a ratcheting arc that updates on confirmed bars, accelerates toward the active target band, and decays its internal velocity over time. This makes the line responsive during directional expansions while still preserving a smooth institutional appearance.
3. Extension Pressure
Distance from the active anchored VWAP is normalized by ATR and converted into an acceleration modifier. When price becomes stretched from value, the trail responds more aggressively. This helps expose when a trend is still directional but increasingly extended.
4. Confirmed Flip Logic
A trend flip is only confirmed on closed bars. The trail state does not anticipate future movement or use future references. This keeps the overlay safe for real-time use and consistent with non-repainting publication standards.
5. Forward Flip Levels
Each confirmed directional transition creates a horizontal level that extends forward until invalidated or aged out. These levels act as persistent decision references and help frame whether price is defending or losing prior transition zones.
Features
Anchored value logic: Session, weekly, and monthly VWAP tracking with selectable regime gate modes
ATR-based arc framework: Confirmed-bar ratcheting trail with velocity decay and acceleration logic
Extension awareness: ATR-normalized distance from value used to classify whether the active move is orderly or stretched
Persistent transition levels: Confirmed flip levels extend forward and self-clean when broken or aged out
Institutional visual shell: Trail glow, clean cloud fill, optional candle tint, and compact top-right dashboard
No retail markers: The script avoids arrows and clutter-focused signal decoration
Confirmed-bar logic: Trend transitions and level invalidations are gated by confirmed bars only
Input Parameters
Core Trajectory:
ATR Length
Trail Distance (ATRx)
Base Acceleration
Velocity Decay
Velocity Cap
Minimum Chase / Maximum Chase
Run Window
Minimum Flip Gap
VWAP Regime:
Regime Mode: Session, Week, Month, Any, All
VWAP Speed Boost
Show Selected VWAP
Visual System and Levels:
Bull, bear, and neutral palette controls
Cloud, trail glow, and candle tint toggles
Confirmed flip level styling and retention controls
Dashboard display toggle
How to Use This Indicator
Step 1: Read the active regime
Check whether price is above or below the confirmed trail and whether the dashboard shows value alignment with the selected anchored VWAP mode.
Step 2: Judge extension
Use the extension and acceleration rows in the dashboard to determine whether the move is orderly or increasingly stretched from anchored value.
Step 3: Use flip levels as structure references
When a confirmed transition occurs, the generated forward level becomes a practical decision point for retests, failures, and continuation checks.
Step 4: Combine with execution tools
Aegis is best used as a directional and structural context layer. It can filter other entry models by allowing long setups only when the trail and value regime agree, and short setups only when the opposite condition is present.
Indicator Limitations
Anchored VWAP alignment may temporarily lag during very early reversals, especially when a higher anchor such as the weekly reference is selected
The arc can tighten quickly during extreme volatility because acceleration is intentionally sensitive to extension pressure
Flip levels are contextual structure references, not guaranteed support or resistance
The script classifies directional state and extension; it does not predict future price movement
Originality Statement
Aegis Arc Framework is original in the way it combines a confirmed ratcheting trail, anchored VWAP regime gating, extension-driven acceleration, and managed forward flip levels into one coherent overlay. It is published because the combination is meaningfully different from a standard SuperTrend, a standalone VWAP overlay, or a simple trailing stop line.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice and does not recommend any specific trade or investment. All calculations are derived from historical and real-time chart data and can produce false signals. Trading involves substantial risk. Always use independent judgment and risk management.
Indicator
Crownmark Allocation Engine [JOAT]Crownmark Allocation Engine
Introduction
Crownmark Allocation Engine is an open-source PulseWire strategy that integrates regime classification, adaptive trend corridors, auction-value context, pressure confirmation, divergence suppression, and ATR-based trade management into one non-repainting framework. Its purpose is not to maximize signal count. Its purpose is to require multiple independent layers to agree before risk is deployed.
The problem this strategy solves is overcommitting to one analytical dimension. Trend alone can be late. Pressure alone can be noisy. Divergence alone can fire too early. Auction context alone does not create an entry. Crownmark combines those ideas so that entries occur only when broader regime, local structure, value position, and internal participation are aligned.
Core Concepts
1. Regime Filter First
The strategy begins with a composite regime score built from fast/slow EMA displacement, ADX strength via `ta.dmi()`, efficiency, volatility expansion, and trend slope. If the regime is not sufficiently directional, the strategy does not permit an entry.
2. Adaptive Corridor Pullback Entry
Once regime bias is directional, price must also align with an adaptive KAMA-based corridor. Longs require bullish corridor structure and a pullback that remains constructive relative to the baseline and inner band. Shorts require the mirror condition on the downside.
3. Auction and VWAP Context
Price must be positioned acceptably relative to a rolling value area and rolling VWAP. This is intended to keep entries from triggering in structurally poor locations when the rest of the model is favorable.
4. Pressure Confirmation and Divergence Guard
The strategy uses an effort-versus-result style pressure model to require directional initiative at the moment of entry. It also suppresses entries when recent confirmed divergence argues against the trade direction.
5. Managed Exits
Open positions use ATR-based stop loss and take profit levels, plus a trailing logic anchored to the adaptive baseline. Positions can also be closed by context failure, by opposite signal, or by maximum bar duration in trade.
Features
Composite regime filter: Trend, ADX, volatility, slope, and efficiency must support the direction
Adaptive corridor entries: Uses a KAMA baseline with hybrid ATR/stdev width
Auction location filter: Requires acceptable relation to rolling value area and VWAP
Pressure confirmation: Requires directional effort-versus-result support
Divergence suppression: Recent opposing divergence can block new entries
ATR-based risk management: Stop, target, and trailing logic
Context exits: Positions can flatten when regime or pressure collapses
Dashboard summary: Regime, corridor, auction, pressure, divergence, exposure, and regime score
Default Strategy Properties
Initial Capital: 100000
Order Size: 10% of equity
Pyramiding: 0
Commission: 0.01%
Order Processing: on close
calc_on_every_tick: false
Input Parameters
Regime Engine:
Fast/Slow regime lengths
ADX length
Volatility length
Efficiency length
Bull and bear regime thresholds
Trend Corridor:
Baseline length
KAMA fast and slow parameters
Width length
Width multiplier
Pullback tolerance
Auction Context:
Auction lookback
Value area width
Auction acceptance toggle
VWAP alignment toggle
Risk Management:
ATR length
Stop ATR multiple
Target ATR multiple
Trail ATR multiple
Maximum bars in trade
Flatten on opposite signal toggle
How to Use This Strategy
Step 1: Verify the Market Type
If the regime score is near balance, the strategy is intentionally selective. Crownmark is designed for directional conditions more than rotational ones.
Step 2: Let the Entry Layers Stack
An entry requires regime, corridor, auction, pressure, and divergence conditions to agree. If one layer is missing, the strategy waits.
Step 3: Respect the Exit Logic
The strategy uses both price-based and context-based exits. A position can close because the stop or target was reached, but it can also close because the original trade thesis has weakened.
Step 4: Review Results in Context
Do not evaluate the strategy by win rate alone. Regime selectivity, trade duration, average excursion, commission sensitivity, and the instrument being tested all matter.
Strategy Limitations
This strategy uses bar-close logic and does not replicate intrabar execution behavior
The rolling auction model is a simplified proxy and not a full market profile engine
Divergence suppression can skip trades that later work, by design
Different assets and timeframes may require threshold tuning to remain realistic
Originality Statement
Crownmark Allocation Engine is original in how it combines regime scoring, corridor structure, auction-value location, pressure confirmation, and divergence suppression into one coordinated execution model. The strategy is not a basic trend-following template with cosmetic additions. Each layer has a distinct analytical role, and entries are only allowed when those layers support one another.
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice and does not imply future performance. Backtest results depend heavily on instrument, timeframe, execution assumptions, and historical conditions. Use realistic expectations, confirm settings carefully, and apply sound risk management.
Strategy
Volatility-Driven VWAP Structure (Zeiierman)█ Overview
Volatility-Driven VWAP Structure (Zeiierman) is a VWAP-based market structure tool that adapts its regime logic using volatility, Z-score normalization, and reversal-anchored VWAP profiles.
The script builds a rolling VWAP structure and adjusts its transition distance using an adaptive volatility engine. The result is a dynamic structure line that shifts only when VWAP displacement is strong enough relative to current volatility conditions.
When a structure reversal occurs, the script resets an anchored VWAP profile from that point and builds deviation bands around it, allowing traders to track the active post-reversal value area.
█ How It Works
⚪ Rolling VWAP Base
The script first calculates a rolling VWAP using price multiplied by volume over the selected lookback period.
float rollingVwap = math.sum(src * volume, vwapLengthInput) / math.sum(volume, vwapLengthInput)
This creates a volume-weighted fair value line that updates continuously without relying on fixed session, daily, weekly, or monthly anchors.
⚪ Adaptive Volatility Engine
The structure step is not fixed. It is based on ATR, a slow ATR comparison, and a Z-score volatility reading.
float atrZ = atrDev != 0 ? (atrFast - atrMean) / atrDev : 0.0
float volRatio = atrSlow != 0 ? atrFast / atrSlow : 1.0
This allows the script to identify whether volatility is currently expanding or contracting compared to its recent behavior.
⚪ Sigmoid Volatility Mapping
The volatility ratio and Z-score are blended into a sigmoid function.
float sigmoidInput = 4.0 * (volRatio - 1.0) + 0.75 * atrZClamped
float sigmoid = 1.0 / (1.0 + math.exp(-sigmoidInput))
The sigmoid smooths extreme volatility changes, converting them into a controlled, adaptive multiplier.
This helps prevent the structure from becoming too sensitive during noise while still expanding during stronger volatility regimes.
⚪ VWAP Structure Engine
The rolling VWAP is compared against adaptive upper and lower structure levels.
When VWAP expands far enough beyond the current structure range, the script shifts the structure higher or lower.
float upsideExpansion = rollingVwap - (structureUpper + structureStep)
float downsideExpansion = (structureLower - structureStep) - rollingVwap
If the expansion is strong enough, a new structure direction is assigned:
int nextDirection = expandsHigher ? 1 : expandsLower ? -1 : direction
This creates bullish and bearish VWAP structure regimes based on volume-weighted displacement, not just candle closes.
⚪ Structure Mean
The main plotted line is the midpoint of the active VWAP structure range.
float structureMid = (structureUpper + structureLower) / 2.0
This line acts as the active structure mean:
When the regime is bullish, it uses the bullish color.
When the regime is bearish, it uses the bearish color.
⚪ Reversal-Anchored VWAP Profile
Every time the VWAP structure reverses, a new anchored VWAP profile begins.
bool anchorReset = isReversed or na(anchorSumPV)
From that reversal point, the script accumulates:
price × volume
volume
price² × volume
These values are used to calculate the active anchored VWAP and its weighted deviation.
float anchoredVwap = anchorSumV != 0 ? anchorSumPV / anchorSumV : na
float anchoredDev = not na(anchoredVar) ? math.sqrt(math.max(anchoredVar, 0)) : na
This creates a fresh value profile after every structural shift.
⚪ Anchored Deviation Bands
The script plots one or two deviation bands around the reversal-anchored VWAP.
float anchorUpper1 = anchoredVwap + anchoredDev * bandMult1
float anchorLower1 = anchoredVwap - anchoredDev * bandMult1
These bands help visualize the active post-reversal value area and potential stretched-price zones.
█ How to Use
⚪ Read the Structure Mean
Bullish color → VWAP structure is in an upward regime
Bearish color → VWAP structure is in a downward regime
The structure mean can be used as a dynamic guide for trend bias, continuation, regime changes, and identifying good areas to look for retests on the mean.
⚪ Watch for Structure Reversals
A reversal occurs when the adaptive VWAP structure changes direction.
These reversals reset the anchored VWAP profile, marking the start of a new active value phase.
⚪ Use the Anchored VWAP
After a reversal, the anchored VWAP shows the volume-weighted average price from that new structure point.
Price above anchored VWAP → stronger bullish control
Price below anchored VWAP → stronger bearish control
⚪ Use the Deviation Bands
The deviation bands show how far the price has moved from the active anchored VWAP.
Band 1 → normal value expansion
Band 2 → stronger price extension
Touches of the outer bands can be used to identify extended conditions, reaction zones, or continuation pressure.
█ Settings
Rolling VWAP Length: Controls the lookback period for the rolling VWAP calculation.
Structure Multiplier: Controls how wide the adaptive structure transitions are.
Volatility Length: Controls the ATR length used in the volatility engine.
Band 1 Multiplier: Controls the first anchored VWAP deviation band.
Band 2 Multiplier: Controls the second anchored VWAP deviation band.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Indicator
Hysteresis VWAP Regime Bands [ATC]Hysteresis VWAP Regime Bands is a VWAP-based market context indicator designed to help traders read price location, VWAP extension, and volatility structure more clearly.
This script plots an anchored VWAP with ±1SD and ±2SD bands, then adds two differentiating context layers:
1. A hysteresis-based price-location classifier that helps reduce noisy zone flicker around VWAP band boundaries.
2. A rolling Z-score VWAP bandwidth regime classifier that identifies whether the VWAP envelope is compressed, normal, or expanded compared to recent conditions.
This is not a buy/sell signal generator. It is a structured VWAP context tool intended to help traders understand where price is trading relative to volume-weighted value.
________________________________________
What Makes This Different From Standard VWAP Bands
Most VWAP band indicators simply plot VWAP and deviation bands. This script adds stabilized interpretation logic on top of the bands.
1. Hysteresis-Based Price Zones
Standard band logic can become noisy when price hovers near +1SD, -1SD, +2SD, or -2SD. A simple raw comparison may flip the displayed state back and forth every few bars.
This script uses a configurable Price-Zone Hysteresis Buffer. Price must clear a VWAP band boundary by a defined margin before the zone state updates. This helps create cleaner, more stable zone readings.
2. VWAP Bandwidth Regime Classification
The script also measures the current width of the VWAP envelope and compares it to its own rolling baseline using a Z-score.
This creates three bandwidth regimes:
• Compressed Width — the VWAP envelope is unusually narrow.
• Normal Width — the VWAP envelope is near its recent baseline.
• Expanded Width — the VWAP envelope is unusually wide.
This helps traders distinguish whether the market is operating in a tighter value structure or a wider, more volatile structure.
Together, these two additions turn VWAP bands from simple plotted levels into a more complete VWAP context framework.
________________________________________
Core Components
VWAP Line
The VWAP line is the central volume-weighted value reference for the selected anchor period. It represents the average price weighted by traded volume.
Price above VWAP means price is trading above volume-weighted value.
Price below VWAP means price is trading below volume-weighted value.
A rising VWAP suggests value is moving higher.
A falling VWAP suggests value is moving lower.
VWAP can act as a trend anchor, mean-reversion reference, or decision level depending on the structure of the session.
________________________________________
±1SD Bands
The ±1 standard deviation bands define the inner VWAP value envelope.
Price between +1SD and -1SD is closer to central VWAP value.
Price holding above +1SD shows upper-side acceptance.
Price holding below -1SD shows lower-side acceptance.
These bands are often useful for identifying whether price is still trading near value or
beginning to move directionally away from value.
________________________________________
±2SD Bands
The ±2 standard deviation bands define the outer VWAP envelope.
Price beyond +2SD is in an upper extension area.
Price beyond -2SD is in a lower extension area.
These zones can indicate strong directional movement or stretched price location. They should not be treated as automatic reversal signals. Strong trend sessions can continue to hold near or beyond outer VWAP bands for extended periods.
________________________________________
Price-Location Zones
The script classifies price into five VWAP location zones:
Above +2SD — Upper Extreme
Price is trading beyond the upper outer VWAP band. This is an extended upper location relative to VWAP.
This may represent strong upside momentum, but it can also mean the move is becoming stretched. Traders should avoid assuming that upper extreme automatically means reversal.
________________________________________
Above +1SD — Upper Bias
Price is trading above the inner upper VWAP band but below the outer upper band.
This shows price is accepting above central value. In a strong session, this can support a bullish continuation context.
________________________________________
Mid-Band — Neutral
Price is trading between +1SD and -1SD.
This is the central VWAP value zone. Price is closer to volume-weighted fair value, and directional conviction may be weaker unless there is clear price action confirmation.
________________________________________
Below -1SD — Lower Bias
Price is trading below the inner lower VWAP band but above the outer lower band.
This shows price is accepting below central value. In a weak session, this can support a bearish continuation context.
________________________________________
Below -2SD — Lower Extreme
Price is trading beyond the lower outer VWAP band. This is an extended lower location relative to VWAP.
This may represent strong downside pressure, but it can also mean price is stretched to the downside. It should be interpreted with confirmation.
________________________________________
Bandwidth Regime
The bandwidth regime measures the width between the outer VWAP bands and normalizes it against recent conditions.
The script calculates the current VWAP envelope width as a percentage of VWAP, then compares that value to its own rolling mean and standard deviation.
This creates a normalized bandwidth Z-score.
Compressed Width
The VWAP envelope is unusually narrow compared to recent conditions.
This may suggest a more balanced, contained, or compressed environment. Compression does not predict direction by itself. It simply tells you that the VWAP structure is tighter than normal.
________________________________________
Normal Width
The VWAP envelope is near its recent baseline.
This suggests that current VWAP band width is within a typical range relative to recent conditions.
________________________________________
Expanded Width
The VWAP envelope is unusually wide compared to recent conditions.
This may suggest increased price dispersion, volatility, or stronger directional movement. Expanded width also means risk can be wider, so chasing late moves may become less attractive.
________________________________________
Color and Visual Interpretation
The color system is designed to make the VWAP structure easier to read at a glance. Colors are not standalone trade signals. They are visual context cues.
________________________________________
Cyan / Blue — VWAP and Central Value
The bright cyan VWAP line is the central fair-value reference.
How to interpret it:
• Price above VWAP = trading above volume-weighted value
• Price below VWAP = trading below volume-weighted value
• Rising VWAP = value is moving higher
• Falling VWAP = value is moving lower
The blue/cyan fill between +1SD and -1SD represents the central VWAP value area.
________________________________________
Green / Mint — Upper VWAP Structure
Green or mint colors represent upper VWAP structure.
This includes:
• Upper VWAP bands
• Upper-side price zones
• Upper extension areas
• Bullish or upside location context
How to interpret it:
• Price above +1SD shows upper-side acceptance.
• Price between +1SD and +2SD shows price is elevated above value.
• Price above +2SD shows upper extension.
Green does not automatically mean buy. It means price is trading in the upper VWAP structure.
________________________________________
Pink / Red — Lower VWAP Structure
Pink or red colors represent lower VWAP structure.
This includes:
• Lower VWAP bands
• Lower-side price zones
• Lower extension areas
• Bearish or downside location context
How to interpret it:
• Price below -1SD shows lower-side acceptance.
• Price between -1SD and -2SD shows price is depressed below value.
• Price below -2SD shows lower extension.
Red does not automatically mean short. It means price is trading in the lower VWAP structure.
________________________________________
Blue / Cyan Fill — Neutral Value Zone
The area between +1SD and -1SD is lightly filled with a blue/cyan tint.
How to interpret it:
• Price inside this area is closer to volume-weighted value.
• This zone often reflects more balanced conditions.
• Directional conviction may be weaker unless price breaks and holds outside the inner bands.
• Traders may use this area to identify chop, mean reversion, or developing acceptance near VWAP.
________________________________________
Green Fill — Upper Extension Zone
The area between +1SD and +2SD may be filled with a green tint.
How to interpret it:
• Price holding in this area shows upper-side acceptance.
• During strong sessions, pullbacks toward +1SD can act as continuation areas.
• If price loses +1SD and cannot reclaim it, upper-side acceptance may be weakening.
________________________________________
Red Fill — Lower Extension Zone
The area between -1SD and -2SD may be filled with a red tint.
How to interpret it:
• Price holding in this area shows lower-side acceptance.
• During weak sessions, pullbacks toward -1SD can act as continuation areas.
• If price reclaims -1SD and holds above it, lower-side pressure may be weakening.
________________________________________
Violet / Purple — Compressed Width
Violet or purple represents a compressed VWAP bandwidth regime.
How to interpret it:
• VWAP bands are tighter than normal.
• Price may be in a more balanced or contained structure.
• Volatility is relatively compressed.
• Compression can precede expansion, but it does not predict direction.
Compression means the VWAP envelope is narrow, not necessarily bullish or bearish.
________________________________________
Amber / Orange — Expanded Width
Amber or orange represents an expanded VWAP bandwidth regime.
How to interpret it:
• VWAP bands are wider than normal.
• Price dispersion has increased.
• Volatility or directional movement may be elevated.
• Risk may be wider because price is moving across a larger structure.
• Late entries after a large move may require more caution.
Expansion means the VWAP envelope is wide. It does not automatically mean the move is over.
________________________________________
Background Tints
The script can apply subtle background tints for extreme price zones or bandwidth regimes.
How to interpret them:
• Green tint = upper extreme or strong upper-side context
• Red tint = lower extreme or strong lower-side context
• Violet tint = compressed bandwidth regime
• Amber tint = expanded bandwidth regime
If an extreme price zone and a bandwidth regime occur at the same time, the script prioritizes the more immediate price-location context so the chart remains readable.
________________________________________
HUD Display
The HUD provides a compact summary of the current VWAP structure.
It includes:
• VWAP Regime — current anchor mode and source price
• VWAP — current VWAP value
• +1SD / -1SD — current inner band values
• +2SD / -2SD — current outer band values
• Price Zone — current hysteresis-confirmed VWAP location
• Band Regime — current bandwidth regime and width Z-score
• Use — reminder that this is a context tool and should be confirmed with price action
The two most important HUD fields are Price Zone and Band Regime.
________________________________________
Price Zone
This shows where price is trading relative to the VWAP bands.
Because the zone logic uses hysteresis, it does not flip on every minor touch of a band. Price must move beyond the band boundary by the configured buffer before the state changes.
________________________________________
Band Regime
This shows whether the VWAP envelope is compressed, normal, or expanded compared to recent conditions.
This helps traders understand whether price is moving inside a tight VWAP structure or a wider volatility structure.
________________________________________
Anchor Modes
The script supports three anchor modes.
Session
VWAP resets at the selected regular trading session. This is the default mode and is best suited for intraday trading.
The default session is 0930–1600 New York time.
The session reset logic is designed to work whether extended-hours bars are visible or hidden. This helps keep the session VWAP behavior consistent on regular-hours-only charts.
________________________________________
Week
VWAP resets at the start of a new week.
This can be useful for traders who want broader weekly value context on intraday or lower-timeframe charts.
________________________________________
Month
VWAP resets at the start of a new month.
This can be useful for traders monitoring broader monthly value structure.
________________________________________
Source Price Options
The VWAP source can be configured as:
• hlc3 — average of high, low, and close
• hl2 — average of high and low
• ohlc4 — average of open, high, low, and close
• close — close-only source
For most intraday use, hlc3 is a balanced default.
________________________________________
Alerts
The script includes alert conditions for:
• VWAP Cross
• +1SD Cross
• -1SD Cross
• +2SD Cross
• -2SD Cross
• VWAP Zone Change
• VWAP Bandwidth Regime Change
The zone-change and regime-change alerts are the most specific to this script’s added logic. They are based on stabilized state models rather than raw band touches alone.
________________________________________
How to Use It
Use this indicator as a VWAP context layer, not as a standalone trading system.
A practical workflow:
1. Start with the VWAP line to identify whether price is above or below volume-weighted value.
2. Use the Price Zone to determine whether price is neutral, biased above value, biased below value, or extended.
3. Use the Band Regime to determine whether the VWAP envelope is compressed, normal, or expanded.
4. Use price action, structure, volume, or your own entry model to confirm trades.
________________________________________
Practical Interpretation Examples
Example 1
Price Zone: Above +1SD — Upper Bias
Band Regime: Expanded Width
This means price is trading above the central VWAP value area while the VWAP envelope is wider than normal.
The context is bullish in location, but risk may also be wider because price dispersion has expanded. In this environment, traders may prefer pullback confirmation instead of chasing after a large move.
________________________________________
Example 2
Price Zone: Mid-Band — Neutral
Band Regime: Compressed Width
This means price is near VWAP value and the bands are unusually tight.
This often represents a balanced or compressed environment. Traders may wait for price to break and hold outside the inner VWAP bands before treating the move as directional.
________________________________________
Example 3
Price Zone: Below -2SD — Lower Extreme
Band Regime: Expanded Width
This means price is extended below VWAP while the VWAP envelope is wider than normal.
This may reflect strong downside pressure, but it may also mean short-side chase risk is elevated. Confirmation from price action is important.
________________________________________
Recommended Markets and Timeframes
This indicator is designed for liquid instruments where VWAP is meaningful, including:
• Equity index futures
• Major ETFs
• Liquid large-cap stocks
• Major FX pairs
• Liquid crypto markets
Recommended intraday timeframes:
• 1-minute
• 3-minute
• 5-minute
• 15-minute
Session anchor mode is intended primarily for intraday charts. Weekly and monthly anchors may be useful when viewing broader value structure.
________________________________________
Important Notes
This indicator does not predict future price movement. It does not issue buy or sell signals. It provides a structured view of VWAP location, VWAP extension, and VWAP bandwidth regime so traders can make more informed decisions within their own strategy.
VWAP bands, price-location zones, and bandwidth regimes should be interpreted as context. Always confirm with price action, volume, risk controls, and your own trading plan.
Indicator
VWAP Auto Anchored TrendVWAP Auto Anchored Trend
This indicator is a Pine Script v6 recreation of an auto-anchored VWAP tool with an added trend and flatness readout. It is designed to help you study how volume-weighted price develops from a selected anchor and how stable or directional that VWAP remains over time.
What It Does
At its core, this script calculates a Volume Weighted Average Price (VWAP) . Unlike a simple moving average, VWAP gives more influence to bars with higher volume. That allows it to reflect where trading activity has been concentrated during the active anchor period.
The line begins at the selected anchor and updates forward from there, giving you a focused view of how price and volume have behaved from that point.
Anchor Periods
The script supports multiple anchor types, including:
Auto
Highest High
Lowest Low
Highest Volume
Session
Week
Month
Quarter
Year
Decade
Century
Earnings
Dividends
Splits
For time-based anchors such as Month , Quarter , or Year , the indicator displays only the currently active anchor period. That keeps the chart focused on the most recent cycle rather than extending the VWAP through the entire chart history.
Source and Calculation
The VWAP can be calculated from a selectable source, such as hlc3 , which is commonly used as a balanced price basis. The script accumulates price multiplied by volume, then divides that running total by cumulative volume over the active anchor period.
This makes the line responsive not only to price movement, but to how much trading participation occurred at those prices.
Bands and Visual Structure
The script includes optional upper and lower VWAP bands. These bands can be calculated using:
Standard Deviation
Percentage
Up to three band levels can be enabled, each with its own multiplier. When active, they can help frame how tightly or loosely price is trading around the anchored VWAP.
A background fill can also be used between the outer visible bands to make the VWAP zone easier to read visually.
Offset Support
An offset setting is included so the VWAP and its bands can be shifted visually on the chart. This affects display placement only and does not change the underlying VWAP calculation.
VWAP Flatness and Trend Readout
One of the main additions in this version is the VWAP Flatness section.
Instead of only judging the VWAP slope by eye, the script measures how much the VWAP has drifted from its anchor to the current bar. It then normalizes that drift using ATR to produce a more comparable trend/flatness reading.
The table compares two views:
All Period - the entire active anchor period
Last 50% - the most recent half of that same period
This can help show whether the VWAP has remained balanced over the full anchor period, or whether the more recent portion has started to trend more clearly.
Table Readout Includes
VWAP State - VERY FLAT, FLAT, MODERATE, TRENDING, or STRONG TREND
ATR Score - VWAP drift measured against ATR
Drift % - total percentage drift in VWAP over the measured section
Per Bar % - average drift per bar over that section
This is intended as a structured way to describe VWAP behavior. It does not predict future price movement, but it can help organize how stable or directional the VWAP has been within the chosen anchor window.
How It May Be Used
This indicator can be used as a reference for:
Tracking where volume-weighted price has developed from an anchor
Comparing current price to anchored average value
Observing whether price is staying near VWAP or expanding away from it
Viewing optional VWAP band structure
Comparing overall VWAP behavior with the most recent half of the anchor period
Notes
This script is intended as a charting and analysis tool.
The flatness and trend labels describe measured VWAP behavior, not guarantees.
Different symbols, timeframes, and anchor periods can produce very different readings.
Summary
This script combines anchored VWAP logic, optional bands, and a two-part flatness/trend readout into one tool. Its goal is to help you study where weighted price has developed, how price is behaving around that value, and whether the VWAP itself has remained relatively flat or become more directional over the active anchor period.
Indicator
Artemis Volatility Bands PRO🟦 Artemis Volatility Bands PRO is a price-overlay volatility indicator built on the KernelLens Nadaraya–Watson regression library (a_jabbaroff/KernelLens/1). A single kernel estimate — selectable from eight classical kernel families — anchors the Basis line. Around it, two outer bands fan outward by a fixed multiple of the residual standard deviation, creating an envelope whose width is model-consistent with the kernel. The interior is washed with a 6-layer neon halo that mirrors the statistical density of price residuals under normality. A signal engine detects basis-breaks with confirming slope direction, guarded by Confirmed (zero-repaint) or Realtime mode. Twelve cohesive color themes, a theme-aware Dark / Light dashboard, and four opt-in alert conditions complete the indicator.
🟦 HOW IT WORKS
Artemis Volatility Bands PRO fuses two mathematical operations on every bar — a single kernel regression pass and a residual standard deviation calculation:
basis = kl.estimate(type, src, ℓ, α, period, phase, filter)
sigma = kl.confidenceBand(src, basis, window)
upper = basis + k · σ
lower = basis − k · σ
where ℓ is the Primary Bandwidth, k is the Band Multiplier, and window is the Residual σ Window. The kernel regression produces the Basis line, and the residual standard deviation (σ of price − basis) produces the per-σ band half-width.
This architecture collapses classical Bollinger band duality: in Bollinger bands, the moving average and volatility estimate live in different statistical universes. In Artemis, both emerge from a single kernel pass, so the envelope is internally consistent by construction. The Basis is always non-parametric, and the band width always measures deviation relative to the Basis, never to a disconnected moving average.
The library handles all weighted-sum computation, kernel weight evaluation, NA-safe iteration, division-by-zero guards, and input validation internally. Artemis Volatility Bands PRO does not reimplement any kernel math — every bug fix or optimization in the library automatically propagates to this indicator.
🟦 KERNEL LIBRARY INTEGRATION
Artemis Volatility Bands PRO imports the published KernelLens library and uses the following exports:
| Library Export | Used For |
|---|---|
| `kl.estimate()` | Unified dispatcher — routes to the correct kernel based on the user's Kernel Type dropdown. Called once per bar to produce the Basis line. |
| `kl.confidenceBand()` | Rolling residual standard deviation — computes σ of (source − basis) over the specified window. |
| `kl.trendState()` | Ternary trend detector — returns +1 (rising), 0 (flat), or −1 (falling) based on a 1-bar finite difference of the Basis. |
Every regression computation — kernel weight evaluation, NA-safe summation, bandwidth-aware loop termination — is delegated to the library. The indicator itself contains zero kernel math; it only orchestrates three library calls and aggregates their outputs into the band envelope and signal logic.
🟦 KERNEL REGRESSION & RESIDUAL VOLATILITY
**The Basis line** — A non-parametric kernel regression anchored to the user's choice of price source (default: close; also supports hl2, ohlc4, custom). Eight kernel families available:
| Kernel | Behavior | Best For |
|---|---|---|
| Rational Quadratic | Multi-scale mixer; α controls stretch | Default, balanced responsiveness |
| Gaussian / RBF | Canonical smoother, infinitely differentiable | Smooth trend, minimize noise |
| Periodic | Resonates with a known repetition distance p | Cyclic markets, seasonal patterns |
| Locally Periodic | Periodic × gaussian blend | Seasonal + trend drift |
| Epanechnikov | MSE-optimal, compact support | Minimal tail contamination |
| Tricube | LOWESS standard, near-Gaussian profile | Fast computation, robust |
| Triangular | Simplest compact kernel | Lightweight, real-time responsiveness |
| Cosine | Raised-cosine, smooth boundary transition | Smooth rolloff, professional appearance |
Three filter modes applied on top of the raw kernel estimate:
| Filter | Description | Use Case |
|---|---|---|
| No Filter | Single-pass Nadaraya–Watson | Rawest output, maximum responsiveness |
| Smooth | Double-pass: kernel applied to its own output | Cleaner, slightly more lag |
| Zero Lag | Ehlers de-lagging: 2·raw − smooth | Sharpens edges without increasing lag |
**Residual volatility** — Once the Basis is computed, the per-bar residual is (source − basis). The residual standard deviation is the rolling σ of this residual over a configurable window (default: 14 bars). This is the model-consistent volatility estimate — price deviations are measured relative to the kernel Basis, guaranteeing alignment between trend and volatility.
**Band levels** — upper = basis + k · σ and lower = basis − k · σ, where k is the Band Multiplier (default: 2.0, Bollinger-style). The multiplier is user-adjustable from 0.5 (tight) to 5.0 (wide).
🟦 SIGNAL ENGINE
Artemis fires Long / Short signals when price breaks the Basis with a confirming slope direction:
Long → close > basis AND basis rising
Short → close < basis AND basis falling
The signal state is persistent — once a direction flips, it remains latched until the opposite condition fires. This state machine (vii ∈ {−1, 0, +1}) ensures the Basis hue stays coherent across bars even when the raw trigger is a single-bar event.
Signal markers fire ONLY on the bar the state flips, not on every bar that satisfies the raw condition. This keeps the chart uncluttered and mirrors how discretionary traders consume trend-flip information.
**Signal Mode** — Two gating options:
| Mode | Behavior | Repaint |
|---|---|---|
| Confirmed | Signals fire ONLY after the bar closes via `barstate.isconfirmed` | Zero repaint, fully reliable for live trading |
| Realtime | Signals fire on the current (open) bar as soon as the condition is met | Fastest reaction; signal may vanish if price reverses before bar closes |
Historical repainting never occurs at any Signal Mode value. The library's `_phase` parameter shifts every kernel center into the past by that many bars, so historical bars' plotted values are final once confirmed.
🟦 6-LAYER NEON HALO VISUALIZATION
The interior between the Basis and each outer band is filled with a 6-layer gradient: 5 interior step plots plus the outer band, creating a stepped transparency schedule that mirrors the statistical density of price residuals under normality.
**Transparency schedule:**
| Layer | Transparency | Meaning |
|---|---|---|
| Outer band ↔ 1st interior | 70 % | Densest layer |
| 1st ↔ 2nd | 78 % | |
| 2nd ↔ 3rd | 85 % | |
| 3rd ↔ 4th | 90 % | |
| 4th ↔ 5th | 95 % | |
| 5th ↔ Basis | 98 % | Nearly invisible fade to centerline |
Every transparency value is scaled by the Gradient Intensity input (0–100 %), so the user can dial the visual density from invisible (0) to heavy fills (100).
**Color assignment:**
- Upper band + gradient: Bearish theme hue (short signal color)
- Lower band + gradient: Bullish theme hue (long signal color)
- Basis line: Slope-adaptive color (thBull when rising, thBear when falling, previous color on flat bars)
**Signal markers** — Two-layer neon glow plotshapes:
- Halo: size.small, 40 % opaque theme hue (glow layer)
- Core: size.tiny, 100 % opaque theme hue (bright center)
🟦 THEME SYSTEM
Twelve cohesive color palettes tuned to every trading aesthetic. One selection drives every visual component — Basis line, outer bands, gradient halos, long / short signal markers, dashboard accents — all sharing the same bull / bear / neutral color axes:
| Theme | Bull | Bear | Usage |
|---|---|---|---|
| Tropic | Cyan steel | Deep orange | Default, electric contrast |
| Amber | Warm amber | Indigo blue | Fire tones |
| Pastel | Sky blue | Soft lavender | Cool arctic glow |
| Cyber | Neon lime | Hot crimson | Cyber terminal aesthetic |
| Helios | Bright gold | Scarlet | Solar warmth |
| Electric | Electric aqua | Magenta | High-voltage neon |
| Candy | Neon green | Hot pink | Dark energy pop |
| Bloomberg | Terminal orange | Cyan | Wall Street finance heritage (PRO) |
| Solar | Solarized olive | Crimson | Developer palette, easy on eyes (PRO) |
| Royal | Imperial gold | Deep purple | Luxury signature (PRO) |
| Midnight | Deep navy | Dark crimson | Dark depth |
| Graphite | Near-black | Silver grey | Monochrome minimal |
**Dashboard display modes** — Dark (black background, bright accents) or Light (white background, darker accents), auto-adapting visual contrast regardless of chart background.
🟦 DASHBOARD
A 2-column, 9-row theme-aware status panel that updates only on the last bar (zero historical overhead). Supports Dark and Light display modes, six docking positions, and four text sizes. Renders via `force_overlay = true` on the main price chart.
| Row | Label | Content |
|---|---|---|
| Header | ARTEMIS PRO | DARK / LIGHT |
| Theme | Theme | Active palette name |
| Divider | KERNEL | — |
| Type | Type | Selected kernel type |
| Bandwidth ℓ | Bandwidth ℓ | Primary bandwidth + Phase φ |
| Basis | Basis | Current Basis value in chart mintick format |
| Divider | VOLATILITY | — |
| Residual σ | Residual σ | Current residual standard deviation |
| Signal | Signal | ▲ LONG / ▼ SHORT / ━ FLAT (direction-colored) |
🟦 ALERT CONDITIONS
Four opt-in alert conditions, each gated by its own toggle:
| Alert | Fires When |
|---|---|
| Long Signal | Price breaks above the Basis with a rising slope (confirmed state flip) |
| Short Signal | Price breaks below the Basis with a falling slope (confirmed state flip) |
| Upper Band Touch | Price touches or exceeds the upper outer band (raw crossover) |
| Lower Band Touch | Price touches or falls below the lower outer band (raw crossunder) |
Band touch alerts are useful as pre-signal early warnings in trending markets. Signal alerts are gated by the Signal Mode setting, so Confirmed mode ensures zero-repaint alerts suitable for live trading.
All alerts use `alertcondition()` for maximum compatibility with PulseWire's alert system including webhooks. Messages are structured as `"Artemis Volatility Bands: "` for easy parsing in downstream automation.
🟦 RECOMMENDED PRESETS
| Trading Style | Bandwidth ℓ | Filter | Residual σ Window | Phase |
|---|---|---|---|---|
| Scalper | 10–20 | No Filter | 8–10 | 1 |
| Day Trader | 20–40 | Smooth | 14 | 2 |
| Swing | 30–60 | Smooth | 20–40 | 2 |
| Position | 60–120 | Smooth | 40–60 | 3 |
**Bandwidth tuning** — Smaller ℓ produces a tighter fit to price and faster reaction; larger ℓ produces smoother curves and more stability. Experiment with ℓ in your preferred style's range, then adjust the Residual σ Window and Filter mode for visual smoothness.
**Phase tuning** — Phase = 0 is live (flickers on the current bar); Phase = 2 is the recommended balance; Phase = 3+ adds margin against noise at the cost of lag. Historical charts are immutable at any phase value.
🟦 KERNEL-ONLY DESIGN PHILOSOPHY
Artemis Volatility Bands PRO contains zero classical technical analysis bolt-ons. No Bollinger Bands, no Keltner Channels, no linear regression, no ATR, no moving averages — only kernel regression and residual volatility. This kernel-only architecture guarantees that:
1. **Internal consistency** — The Basis and band width emerge from a single statistical model, not from mixing independent techniques.
2. **Unified parameterization** — All visual outputs (Basis, bands, gradient) are controlled by a single set of kernel-theoretic parameters.
3. **No analytical compromise** — Every choice in the indicator is mathematically motivated; no ad-hoc decorations.
The philosophy is defensive: traders who layer Artemis on top of their own edge strategies get a pure kernel-regression envelope that will not conflict with classical-TA signals already in use. Traders seeking a standalone kernel-based indicator get a complete, coherent system.
🟦 COMPATIBILITY
- Pine Script v6
- All exchanges, all asset classes (crypto, forex, equities, commodities, indices)
- All timeframes (1 minute through Monthly)
- Both Dark and Light chart themes — visual elements auto-adapt to chart background
- No exchange-specific logic — fully deterministic
Indicator renders on the main overlay chart with `force_overlay = true`. No secondary panes, no subplot logic.
🟦 TECHNICAL NOTES
- **Library dependency** — `import a_jabbaroff/KernelLens/1` — all kernel regression math is delegated to the published library
- **Plot budget** — 2 outer bands + 10 gradient interior plots + 1 Basis + 1 transparent anchor + 4 signal shapes + 12 fills + 4 alertconditions = 34 outputs, well under Pine's 64-output hard limit (50 % margin)
- **Table** — Single `var table` created once on `barstate.islast` with `force_overlay = true`; dashboard renders on the main chart pane, zero historical overhead
- **No persistent drawing objects** — no `box.new`, `line.new`, no `array.new`; all visuals are plots and fills
- **Opacity convention** — every user-facing opacity / transparency input follows `0 = invisible, 100 = fully opaque`; conversion to Pine's native transparency is centralized in a single helper function (`f_opac`)
- **Non-repainting** — inherits from the library's `_phase` parameter; no `request.security`, no lookahead, no future-bar leakage at any phase value
- **Residual consistency** — The residual σ is computed as `ta.stdev(source − basis, window)`, ensuring the band width always measures deviation relative to the kernel Basis
🟦 DISCLAIMER
Artemis Volatility Bands PRO is a technical analysis indicator built on the KernelLens Nadaraya–Watson regression library. It is provided solely for educational and research purposes and does not constitute financial, investment, or trading advice.
Kernel regression is a local smoothing technique. It estimates the mean of a source series in the neighborhood of the current bar based on historical data, but it does not predict future prices, does not generate trading signals on its own, and does not guarantee the profitability of any strategy built on top of its output. The signal engine is a mechanical detector of basis breaks and slope direction — not a forecast — and should always be combined with broader context: higher-timeframe structure, volatility regime, liquidity, news, and risk management.
Past performance of any model does not guarantee future results. Markets contain systemic risks that cannot be eliminated by any amount of mathematical rigor. Responsibility for any trading decisions rests entirely with the user. Always apply sound capital management, conduct your own independent analysis, and never risk capital you are not prepared to lose.
The author assumes no liability for direct or indirect losses incurred through the use of Artemis Volatility Bands PRO or the underlying KernelLens library.
Indicator
Velox Structure Ribbon [JOAT]Velox Structure Ribbon
Introduction
Velox Structure Ribbon (VSR) is an open-source multi-band trend structure ribbon that uses a volatility-normalized, dynamically-spaced band system to visualize how far price has extended from its trend baseline and in which direction. The ribbon is anchored by a dual SMEMA core — a fast and slow double-smoothed moving average — and radiates six equidistant bands above and below the baseline, with spacing determined by the smoothed average candle range. Each band that price has penetrated adds one point to a 0-3 bull or bear structure score. A 0-100 composite trend strength score combines band penetration with RSI momentum. Volume confirmation and RSI filters are available to sharpen signal quality.
The problem VSR solves is that standard envelopes and Bollinger Bands use fixed or volatility-scaled offsets that can cluster bands too tightly in low-volatility environments and spread them too far in high-volatility ones. VSR normalizes band spacing using the market's own smoothed candle range, meaning band width automatically contracts in quiet markets and expands in active ones. This keeps the structure score meaningful across all conditions: three bands penetrated in a quiet market represents the same degree of extension relative to current volatility as three bands penetrated in a volatile market.
Core Concepts
1. SMEMA Ribbon Core
The ribbon center uses two SMEMA lines — slow (full period, default 20) and fast (half period). The slow SMEMA defines trend direction: sloping upward means the trend is bullish, downward means bearish. The fill between fast and slow creates a visual ribbon that contracts during consolidation and expands during trends:
float smemaSlow = smema(close, smemaLen)
float smemaFast = smema(close, math.max(int(smemaLen / 2), 3))
bool trendUp = smemaSlow > smemaSlow
bool trendDn = smemaSlow < smemaSlow
2. Volatility-Normalized Band Spacing
The step unit for band placement is SMEMA applied to the high-low range over a long smoothing period (default 100 bars). This produces an adaptive measure of the average candle body size. Each of the six bands is placed at integer multiples of this step above and below the slow SMEMA:
float step = smema(high - low, stepSmooth)
float up1 = smemaSlow + step * 1
float up2 = smemaSlow + step * 2
float up3 = smemaSlow + step * 3
Because the step automatically adjusts to market volatility, the bands always represent meaningful structural extensions rather than arbitrary percentage offsets.
3. Bull and Bear Structure Scoring
Each bar, the indicator counts how many upper bands price has broken through (bullish penetration) and how many lower bands (bearish penetration). Each penetrated band adds one point to the respective score:
int bullStr = (above1 ? 1 : 0) + (above2 ? 1 : 0) + (above3 ? 1 : 0)
int bearStr = (below1 ? 1 : 0) + (below2 ? 1 : 0) + (below3 ? 1 : 0)
A score of 0 means price is between the baseline and first band — neutral zone. Score of 1 means first structural extension. Score of 3 means full breakout beyond all three bands in that direction.
4. Composite Trend Strength Score (0-100)
The strength score combines two inputs: the band penetration score converted to a 0-50 scale (each band = 16.7 points) and the RSI deviation from 50 on a 0-50 scale. The combination rewards moves that have both structural extension (price has pushed through multiple bands) and momentum confirmation (RSI is moving away from neutral):
float bandScore = math.min(float(math.max(bullStr, bearStr)) * 16.7, 50.0)
float rsiScore = math.min(math.abs(rsiVal - 50.0), 50.0)
int strScore = int(math.min(bandScore + rsiScore, 100.0))
5. Distance-Based Band Coloring
Each band receives a gradient color whose intensity scales with how far price is from that band relative to its historical range. Bands that price has recently broken through or is pressing against are rendered more vividly. Bands far from price are nearly transparent. This creates a visual heat-map effect showing where structural tension exists:
bandColor(float src, color col) =>
float dist = math.abs(close - src)
float pctNorm = ta.percentile_linear_interpolation(dist, 400, 100)
float colSize = pctNorm > 0 ? dist / pctNorm : 0.0
showBands ? color.from_gradient(colSize, 0, 0.5, color(na), col) : color(na)
Features
Six-Band Structure Grid: Three bands above and three below the slow SMEMA baseline, dynamically spaced by the smoothed candle range
Dual SMEMA Core Ribbon: Fast and slow baseline with gradient fill, colored by trend direction
Trend Direction Diamond: A small diamond marker on the baseline at every trend flip (when the slow SMEMA changes slope direction)
Bull / Bear Structure Score (0-3): Real-time count of penetrated upper or lower bands displayed in signal labels and the dashboard
Composite Strength Score (0-100): Combined band penetration and RSI momentum score with Strong/Moderate/Weak label
RSI Momentum Filter: Optional filter requiring RSI alignment before a signal is confirmed (configurable threshold, default 52)
Volume Filter: Optional filter requiring above-average volume (configurable multiplier, default 1.1x the 20-bar SMA). Auto-disables on volume-free instruments
Signal Labels: Small numeric labels at bull and bear signal bars showing the structure score (1, 2, or 3)
Strength Bar (Bottom Right): A visual bar table showing filled cells proportional to the current bull or bear structure score
Candle Coloring: Bar colors reflect trend direction at reduced opacity
9-Row Dashboard (Top Right): Trend direction, last signal and bars-since count, strength score with label, bull and bear band counts, RSI value, timeframe, and version
Watermark: JackOfAllTrades signature at chart center-bottom
Alerts: Bull signal, bear signal, and trend-flip alertconditions with optional JSON webhook format
Input Parameters
Ribbon Engine:
SMEMA Length: Core period for the slow baseline (default: 20). Fast = L/2
Step Smoothing: SMA period for the candle-range volatility step (default: 100)
Filters:
RSI Length: Momentum confirmation period (default: 14)
RSI Threshold: Minimum RSI for bull signal confirmation (default: 52). Bear mirror = 100 - threshold
Volume Filter: Enable/disable volume confirmation (default: off)
Volume Multiplier: Required volume multiple of the 20-bar SMA (default: 1.1)
Visuals / Dashboard:
Theme: Auto, Dark, or Light
Show Distance Bands: Toggle the six structural bands
Show Core Ribbon: Toggle the fast/slow SMEMA ribbon and fill
Show Signals: Toggle the numeric signal labels
Show Strength Bar: Toggle the bottom-right score visualization
Show Dashboard: Toggle the 9-row information panel
Color Palette: Bull, Bear, and Neutral colors are individually customizable
How to Use This Indicator
Step 1: Read Trend Direction from the Ribbon
When the ribbon is green and sloping upward, the baseline trend is bullish. When red and sloping downward, bearish. A flat ribbon in neutral color indicates a non-trending market.
Step 2: Use Structure Score for Entry Timing
A bull signal fires when price is above the first upper band (score 1+) and the trend slope is upward with RSI and volume confirmation. A score of 2 or 3 indicates deeper structural extension — potentially overextended for entry, better for trailing a position.
Step 3: Watch for Pullbacks to the Ribbon
After a bull signal, price often pulls back toward the ribbon (slow SMEMA) before continuing. Entries from the ribbon during an active bull structure are higher-probability than chasing at the outer bands.
Step 4: Scale Position with Strength Score
A strength score above 70 (labeled Strong) indicates both structural extension and momentum alignment — use for higher conviction. Below 40 (Weak) may indicate a fading move or early-stage structure not worth full position sizing.
Indicator Limitations
The warmup period (SMEMA length x3 or step smoothing + 50, whichever is larger) means the indicator is inactive for the first several dozen bars on any chart
The band spacing adapts to the smoothed candle range with a 100-bar lookback. On instruments with sharp volatility regime changes, the bands may lag behind the new volatility environment for many bars
The volume filter is automatically disabled when volume data is unavailable (e.g., indices, some forex pairs). In those cases, volume confirmation is effectively always true regardless of the toggle setting
Signal labels fire on every bull or bear structure bar — this can be frequent in strongly trending markets. The labels are informational, not entry triggers, and users should apply their own discretion for entry timing
Originality Statement
VSR is original in its use of the SMEMA-smoothed candle range as the band spacing unit. This indicator is published because:
The volatility-normalized step unit (SMEMA of high-low range) is a unique approach to band spacing that differs from standard ATR envelopes, Bollinger Bands (which use standard deviation), and Keltner Channels (which use raw ATR). The SMEMA smoothing produces a more stable, noise-resistant step unit than raw ATR
The 0-3 integer band-penetration scoring is a discrete structural measure that complements continuous oscillators. It quantifies how far price has extended structurally rather than how fast it has moved
The distance-based gradient coloring using percentile normalization creates an adaptive visual heat-map — the same visual logic is computationally novel within the band-coloring approach
The composite strength score combining band penetration with RSI deviation creates a measure that rewards both structural extension and momentum alignment simultaneously
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. Band structure scores are based on historical price position relative to smoothed averages and do not predict future price movement. A score of 3 (maximum bullish extension) can increase further or reverse immediately. Always use proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator
Meridian Session Atlas [JOAT]Meridian Session Atlas
Introduction
Meridian Session Atlas (MSA) is an open-source ICT-methodology session zone engine that renders all five major trading killzones — Asia, London, NY AM, NY Lunch, and NY PM — as live, price-tracking boxes on the chart. Each session gets its own high and low pivot lines that extend rightward until price sweeps them, a real-time session VWAP for fair-value reference, and a sweep detection system that fires when a wick pierces a session extreme and the bar closes back inside. Daily and weekly opening prices are overlaid as key reference levels. All five sessions are fully configurable: colors, time windows, and visibility can be customized independently.
The core problem MSA solves is the manual, time-consuming work of identifying and drawing session ranges each day. ICT traders use session high/low levels as primary liquidity pools — price regularly sweeps below Asia lows to grab sell-side liquidity before reversing, or above London highs to take buy-side liquidity before reversing. Identifying those sweeps in real time, across all sessions simultaneously, on a clean chart with VWAP context is what MSA automates completely.
Core Concepts
1. Session Detection and State Tracking
Each of the five sessions is detected using Pine Script's time() function with the user-configured session string and timezone. A session starts when the current bar's time falls inside the session window for the first time (transition from outside to inside), and ends when it transitions back out:
bool asiaOn = useAsia and not na(time("", asiaSess, tzInput))
bool asiaStart = asiaOn and not asiaOn
bool asiaEnd = not asiaOn and asiaOn
On session start, the high, low, left bar index, and VWAP accumulators are reset. During the session, the high and low expand with each bar. On session end, the pivot lines are drawn and extended right.
2. Killzone Boxes
Each session draws a box that expands in real time as the session progresses — the right edge and top/bottom move with each new bar's high and low. On session close, the box freezes at the final session high and low, creating a permanent visual record of that session's range. A configurable maximum history count prevents chart clutter by automatically deleting old session boxes when the count exceeds the limit.
3. Session VWAP
Volume-weighted average price accumulates from the first bar of each session. The formula uses cumulative price-volume (hl2 * volume) divided by cumulative volume, resetting at each session start:
float asiaVwap = asiaOn ? safeDiv(as_cpv, as_cv) : na
The VWAP is plotted as a line only during the active session, breaking between sessions. It represents the institutional fair-value level within each killzone — institutional order flow frequently uses the VWAP as an equilibrium reference.
4. Liquidity Sweep Detection
A sweep is detected when price wicks through a session's pivot high or low and then closes back inside. The logic applies a minimum depth filter (default 0.1 ATR) to eliminate trivial tag-and-return moves, an optional body filter to confirm directional close bias, and a cooldown period to prevent multiple signals from the same sweep:
if low < as_lo and close > as_lo and asWickDn >= minSweepATR * atrVal and asBodyOkB
as_bullSweep := true
as_sweep := bar_index
A bullish sweep fires when price wicks below the session low and closes back above it — this is the ICT buy-side liquidity grab pattern. A bearish sweep fires when price wicks above the session high and closes back below — the sell-side liquidity grab. All five sessions are monitored simultaneously.
5. Daily and Weekly Opens
The opening price of each new trading day and each new trading week is plotted as a horizontal line extending rightward. These levels represent the most important institutional reference prices of their respective periods — the daily open divides the day into a bullish (above) or bearish (below) context, and the weekly open does the same for the week.
Features
Five Independent Killzone Boxes: Asia, London, NY AM, NY Lunch, and NY PM each rendered as live price-tracking boxes with individual color, time, and visibility settings
Session Pivot Lines: High and low pivot lines extend from each completed session's extreme until price sweeps through them, providing persistent liquidity pool reference
Configurable Line Style: Pivot lines can be Solid, Dashed, or Dotted with adjustable width (1-3)
Five Session VWAPs: Real-time volume-weighted average price plotted for each active session in its respective color
Sweep Signal Labels: Bull and bear sweep labels fire at the bar where the wick/close confirmation occurs, sized Tiny, Small, or Normal, with the session name embedded in the label
Sweep Depth Filter: Minimum wick depth in ATR multiples prevents noise from triggering false sweep signals
Body Confirmation Filter: Optional close-in-upper/lower-half confirmation strengthens sweep signal quality
Sweep Cooldown: Configurable bar count prevents multiple signals from the same sweep event
Daily and Weekly Open Lines: Dotted (configurable) horizontal lines at the current day and week open prices
Timeframe Gate: All indicator elements automatically hide when the chart timeframe exceeds a configurable threshold — prevents the indicator from rendering on timeframes where session boxes are too compressed to be useful
Session History: Configurable maximum number of completed sessions to keep on chart (1-8 per killzone)
9-Row Dashboard (Top Right): Active session name with color, session highs and lows for all five sessions, daily open price, current timeframe, and version
Watermark: JackOfAllTrades signature at chart center-bottom
Sweep Alerts: Separate bull and bear sweep alertconditions with plain-text or JSON webhook format
Input Parameters
Main Settings:
Timezone: Exchange or broker timezone for session alignment (default: America/New_York)
Hide Above Timeframe: Chart TF at which indicator elements hide (default: 60-minute)
Session History: Number of completed sessions to keep per killzone (default: 3)
Killzones (each session has identical controls):
Enable toggle, session name, session time string, and color — fully independent per session
Default sessions: Asia 20:00-00:00, London 02:00-05:00, NY AM 09:30-11:00, NY Lunch 12:00-13:00, NY PM 13:30-16:00 (all in New York time)
Session Pivots:
Show Session Pivot Lines toggle
Show Session VWAP toggle
Pivot Line Style: Solid, Dashed, or Dotted
Pivot Line Width: 1-3
Sweep Signals:
Show Sweep Signals toggle
Min Sweep Depth (ATR x): Minimum wick depth as a multiple of ATR (default: 0.1)
Cooldown Bars: Minimum bars between sweep signals (default: 3)
Body Confirmation: Close must be in directional half of the candle body (default: enabled)
Signal Size: Tiny, Small, or Normal (default: Small)
How to Use This Indicator
Step 1: Identify the Active Session
The dashboard shows the current active session in its color. The live session box is expanding in real time. This gives immediate context for whether you are in a high-liquidity killzone or off-session dead time.
Step 2: Monitor Session Extremes for Liquidity Pools
Completed session highs and lows are the primary liquidity pools that ICT methodology targets. These are the levels where institutional order flow is placed — above previous highs (buy-side liquidity) and below previous lows (sell-side liquidity).
Step 3: React to Sweep Signals
When a sweep label appears, price has hunted a session extreme and rejected it. A bull sweep (below a session low, close back above) represents a sell-side liquidity grab and potential long entry opportunity. A bear sweep (above a session high, close back below) represents a buy-side liquidity grab and potential short entry opportunity. Confirm with higher-timeframe bias and session VWAP position.
Step 4: Use Session VWAP as Fair Value
Price above the active session VWAP is trading at a premium within that session. Price below is at a discount. ICT concepts suggest looking for longs from discount (below VWAP after a bullish sweep) and shorts from premium (above VWAP after a bearish sweep).
Step 5: Reference Daily and Weekly Opens
The daily open is the most important intraday reference level. Price holding above the daily open is a bullish intraday context. Sweeps of the daily open low with a close recovery signal potential long opportunities.
Indicator Limitations
Session times are fixed to the timezone input. On instruments that trade across midnight or on non-standard sessions, the default session strings may need manual adjustment
The timeframe gate hides the indicator above the configured threshold. On timeframes above that threshold, none of the visual elements render — intentional behavior to prevent meaningless session boxes on, for example, a daily chart
VWAP calculation uses hl2 (average of high and low) multiplied by volume. On indices, synthetic instruments, or assets with unreliable volume data, the VWAP reading will not be accurate
Sweep detection uses bar close as the confirmation. Intrabar wicks that would constitute sweeps but then recover within the same bar are captured; wicks that close beyond the pivot are not classified as sweeps (they become the new session extreme)
Session history has a maximum of 8 completed sessions per killzone. On very long charts or after major gaps, the oldest session data is automatically removed
Originality Statement
MSA is original in its simultaneous, automated management of five independent session zones with unified sweep detection and VWAP integration. This indicator is published because:
The integration of five simultaneous, independently configurable session zones — each with its own box, pivot lines, VWAP, and sweep detection — into a single, performance-efficient indicator is uncommon. Most session-zone indicators handle only one or two sessions
The sweep detection algorithm applies three independent confirmation layers (ATR depth filter, body filter, cooldown) simultaneously across all five sessions, with a unified aggregated signal that names the originating session
The session VWAP calculation resets correctly at each session boundary (not at day boundary), providing a genuine intra-killzone fair-value reference rather than a daily VWAP approximation
The timeframe gate is a usability feature that prevents the indicator from rendering meaninglessly on timeframes where session granularity is lost
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 high and low levels are historical reference points — price does not respect these levels in all market conditions, and sweep signals do not guarantee continuation in any direction. ICT methodology concepts described here represent one school of technical analysis and are not universally accepted. Always use proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator
Auric Regime Classifier [JOAT]Auric Regime Classifier
Introduction
Auric Regime Classifier (ARC) is an open-source, multi-factor market regime detection engine that classifies every confirmed bar into one of five distinct market states: Strong Bull, Weak Bull, Ranging, Weak Bear, or Strong Bear — with a special Compression override that fires when volatility is contracting. The engine uses five independent data sources — adaptive ATR volatility ratio, Bollinger Band squeeze detection, SMEMA trend slope, ADX directional index, and RSI momentum bias — fused through a weighted scoring system into a single net score that drives the regime classification.
The problem ARC solves is that most traders apply a fixed strategy regardless of whether the market is trending strongly, drifting weakly, compressing before a breakout, or chopping without direction. Each of those conditions demands a completely different approach. Applying a trend-following system in a ranging market produces losses. Trading with tight stops in a compression phase produces whipsaws. ARC gives you a clear, real-time label for the current market phase so you can match your approach to the conditions rather than fighting them.
Core Concepts
1. SMEMA Adaptive Baseline
The indicator uses SMEMA (Simple Moving Average of Exponential Moving Average) as its core trend baseline — a proprietary double-smoothing construct used throughout the JackOfAllTrades indicator suite. SMEMA applies a standard EMA first to capture responsiveness, then a SMA over the same period to suppress noise. The result is a baseline that reacts faster than a raw SMA but is smoother than a raw EMA:
smema(float src, int len) =>
ta.sma(ta.ema(src, len), len)
Two SMEMA lines run in parallel: a slow line over the full period (default 20) and a fast line at half the period. Their slope comparison over three bars determines the trend direction score. When the slow SMEMA slopes upward for three consecutive bars, two bull points are awarded. When it slopes downward, two bear points are awarded.
2. Adaptive ATR Volatility Ratio
ATR over the input period (default 14) is compared against a long-run SMA of ATR (default 50 bars) to produce a volatility expansion/contraction ratio:
float volRatio = safeDiv(atrRaw, atrBase, 1.0)
A ratio above 1.1 in the direction of the existing trend awards a bonus point — recognizing that trend moves are more reliable when accompanied by above-average volatility. This prevents the engine from scoring weak, low-volume drifts as strongly as genuine impulsive moves.
3. Bollinger Band Squeeze Detection
The indicator measures Bollinger Band bandwidth (upper minus lower) and compares it against its own 100-bar SMA. When bandwidth falls below the configurable threshold fraction (default 0.75) of its smoothed average, the market is classified as Compressing. Compression overrides all other regime classifications — a compressing market has no valid directional edge regardless of what the other signals say:
bool isSqz = bbBW < bbBWAvg * sqzPct
A Squeeze Release signal fires when compression ends (isSqz transitions from true to false), marking the potential start of an expansion move.
4. ADX Directional Index
ADX (Average Directional Index) and the +DI/-DI directional lines are calculated using Pine Script v6's built-in ta.dmi() function. ADX above the threshold (default 25) confirms that the market is in a genuine trending regime rather than a sideways range. The directional bias of +DI vs -DI adds two bull or bear points to the regime score:
= ta.dmi(adxLen, adxLen)
bool isBullDir = diPlus > diMinus
bool isBearDir = diMinus > diPlus
5. Regime Scoring Engine
All five components feed a dual-sided scoring system. Bull and bear points are accumulated independently, and the net score (bull minus bear, range -6 to +6) determines the regime code:
int bullPts = (trendUp ? 2 : 0) + (isBullDir ? 2 : 0) +
(rsiBull ? 1 : 0) + ((volRatio > 1.1 and trendUp) ? 1 : 0)
int netScore = bullPts - bearPts
int regCode = isSqz ? 0 : netScore >= 4 ? 2 : netScore >= 1 ? 1 :
netScore <= -4 ? -2 : netScore <= -1 ? -1 : 0
Strong Bull requires a net score of +4 or higher (all four components aligned). Weak Bull requires +1 to +3. Ranging sits at 0. The mirror applies for bearish regimes.
6. Trend Strength Score (0-100)
Beyond the categorical regime label, ARC produces a continuous trend strength score that measures conviction within the current regime. It combines a distance score (how far price is from the SMEMA baseline in ATR units, capped at 50 points) with a momentum score (RSI deviation from 50 in the trend direction, capped at 50 points). A score of 70+ indicates a strong, high-conviction regime. Below 40 indicates a weak or transitional state.
Features
Five-State Regime Classification: Every bar labeled Strong Bull, Weak Bull, Ranging, Weak Bear, or Strong Bear with a Compression override — no ambiguity
SMEMA Ribbon: Fast and slow SMEMA lines with a gradient fill between them, colored by the current regime state for instant visual context
Regime Background Tint: Subtle, semi-transparent background coloring that shifts with the regime — green family for bull states, red family for bear, yellow for compression
Candle Coloring: Bar colors inherit the regime color at reduced opacity, giving every candle immediate regime context without obscuring price action
Squeeze Markers: Circle markers on the SMEMA baseline during compression, with a diamond signal at the moment of squeeze release
Trend Strength Score: A 0-100 numeric score with a Strong/Moderate/Weak label updated each bar, shown in the dashboard
Regime Change Alerts: Alert fires on every confirmed regime state transition with either plain text or structured JSON for webhook delivery
12-Row Dashboard (Top Right): Displays current regime, trend strength score, ADX value and trending/ranging status, +DI/-DI directional reading, volatility ratio, Bollinger Band state, RSI, timeframe, and version
Watermark: JackOfAllTrades signature rendered at chart center-bottom
Input Parameters
Core Engine:
ATR Length: Period for raw ATR calculation (default: 14)
ATR Smoothing Period: Baseline ATR lookback for volatility ratio (default: 50)
Directional Index:
ADX / DI Length: Period for +DI, -DI, and ADX (default: 14)
Trend Threshold: ADX level above which the market is considered trending (default: 25)
Volatility Band:
BB Length: Bollinger Band period (default: 20)
BB Multiplier: Standard deviation multiplier (default: 2.0)
Squeeze Threshold: Bandwidth fraction of its 100-bar SMA below which compression is declared (default: 0.75)
Trend Engine:
SMEMA Length: Period for the double-smoothed baseline (default: 20)
RSI Length: Momentum confirmation period (default: 14)
Visuals / Dashboard / Alerts:
Theme: Auto, Dark, or Light — auto-detects chart background
Regime Background Tint: Toggle the subtle background color
Show SMEMA Baseline: Toggle the ribbon plots
Show Squeeze Markers: Toggle the circle and diamond markers
Show Dashboard: Toggle the 12-row information panel
Show Watermark: Toggle the JackOfAllTrades signature
Webhook JSON Format: Switch alert messages between plain text and JSON
Color Palette: All six regime colors are individually customizable
How to Use This Indicator
Step 1: Read the Regime
The dashboard regime field and the background tint tell you exactly where the market stands. This single label is the most actionable piece of information — it drives which strategy is appropriate.
Step 2: Match Your Approach to the Regime
Strong Bull / Strong Bear: All four scoring components are aligned. High-conviction directional trades, trend-following entries on pullbacks to the SMEMA ribbon
Weak Bull / Weak Bear: Only one or two components agree. Lighter position sizing, wider stops, prepare for a possible regime shift
Ranging: Net score near zero — avoid directional trades, consider mean-reversion or wait for breakout
Compression: All directional analysis is suspended. Reduce exposure, prepare for a breakout in either direction, and watch the squeeze release signal for timing
Step 3: Use Trend Strength for Conviction
Within any directional regime, the strength score tells you how far into that regime the market has moved. A Strong Bull reading with a strength score of 85 is a very different trade environment from one with a strength score of 42. Use the score to scale position size or filter lower-conviction entries.
Step 4: Set Alerts on Regime Transitions
The regime-change alert fires the moment a new regime is confirmed on bar close. Enable the Strong Bull and Strong Bear alertconditions specifically to catch the high-conviction regime entrances.
Indicator Limitations
All five components are backward-looking. The regime label describes what has happened over the lookback windows — not what will happen. A Strong Bull classification can reverse on the very next bar
The warmup period (equal to the longest lookback, at least 50 bars) means the indicator produces no signals on the first several bars of any chart, including after switching timeframes
Compression detection uses a 100-bar SMA of bandwidth, which is a long-run reference. On very short or illiquid charts with few bars, the bandwidth average may not be reliable
The five-state classification uses fixed score thresholds (+4 for Strong, +1 for Weak). These thresholds are not auto-calibrated to the instrument. In range-bound markets where ADX rarely exceeds 20, the Strong Bull/Bear states may rarely appear
RSI and ADX both work with default periods. No single set of periods is optimal across all assets and timeframes. Users may need to adjust periods when applying to highly volatile assets or longer timeframes
Originality Statement
ARC is original in its synthesis approach and the use of SMEMA as the core trend baseline. This indicator is published because:
The SMEMA construct (SMA of EMA) is a proprietary double-smoothing formula used consistently across the JackOfAllTrades suite — it provides a smoother baseline than raw EMA while retaining more responsiveness than raw SMA, and it is not a standard available in typical indicator libraries
The dual-sided bull/bear point system scores each directional component independently before computing a net score. This is distinct from composite oscillators that blend components into a single signed value — the dual-side approach preserves information about how many bear components are active even when the net score is positive
The Compression override takes precedence over all directional scores, explicitly suspending regime analysis during volatility contractions. Most regime indicators simply produce lower directional readings in compression without explicitly declaring the compression state
The trend strength score combines an ATR-normalized price distance with an RSI momentum deviation to produce a conviction metric that is distinct from the categorical regime label
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. Market regime classifications are based entirely on historical data and past behavior. A market classified as Strong Bull can and will reverse at any time. The Compression state does not guarantee a subsequent breakout, and the direction of any eventual breakout cannot be predicted from compression alone. 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
JOAT Institutional Convergence [JOAT]JOAT Institutional Convergence
Introduction
The JOAT Institutional Convergence strategy is a systematic, rules-based trading framework that unifies the logic from all five JOAT indicators into a single coherent entry and exit engine. Each indicator contributes a specific filter layer: the Volumetric Structure Engine provides directional market structure bias, the Adaptive Spectral Bands Hann ribbon provides the primary entry trigger, the Institutional Session Profiler contributes optional session timing, the Imbalance Zone Classifier contributes optional FVG proximity filtering, and the Fractal Liquidity Map contributes fractal-anchored stop placement. No layer is redundant — each addresses a different dimension of trade selection.
The core problem this solves: most PulseWire strategies use a single indicator as both entry and exit signal, producing over-fitting to one methodology. This strategy uses five independent measurement systems simultaneously. An entry only fires when multiple independent conditions converge — structure, momentum, regime, and optionally session and imbalance context. The result is a strategy that takes trades for quantifiable, multi-factor reasons, not because a single line crossed.
Core Concepts
1. Entry Logic — Hann Ribbon Crossover Primary
The primary entry trigger is the Hann FIR ribbon crossover — when the fastest layer (h0) crosses above the second layer (h1), a potential long entry is flagged. This is the earliest mathematically-grounded signal that momentum is shifting:
bool cross_bull = ta.crossover(h0, h1)
bool cross_bear = ta.crossunder(h0, h1)
bool long_sig = (cross_bull or (bos_bull_sig and h0 > h2)) and
struct_trend >= 0 and
adx >= i_adx_min and adx <= i_adx_max and
sess_ok and fvg_ok
The crossover fires on the bar where momentum begins to shift — not after full ribbon alignment is confirmed. This is intentional: waiting for full alignment reduces trade count significantly and enters late. The structural trend filter (struct_trend >= 0) ensures the crossover is not taken against a confirmed downtrend.
2. Structure Filter — VSE Swing Classification
Market structure is classified using the same non-repainting swing detection as the Volumetric Structure Engine. Higher highs and higher lows (struct_trend = 1) are bullish; lower highs and lower lows (struct_trend = -1) are bearish; a mixed state (struct_trend = 0) is neutral. The strategy allows longs in bullish or neutral structure (>= 0) and shorts in bearish or neutral structure (<= 0):
bool new_sh = high == ta.highest(high, i_sw_len) and high < ta.highest(high, i_sw_len)
bool new_sl = low == ta.lowest (low, i_sw_len) and low > ta.lowest (low, i_sw_len)
This prevents the ribbon crossover from triggering entries during confirmed counter-trend structure without requiring perfect alignment.
3. Regime Filter — ADX Gating
ADX gates entries in both directions. Below the minimum ADX, the market has no directional momentum — ribbon crossovers in flat, dead markets produce noise. Above the maximum ADX, the market is over-extended and new entries chase moves that are already mature:
float adx_val = ta.rma(math.abs(dmi_p - dmi_m) / (dmi_p + dmi_m + 0.001) * 100, i_adx_len)
bool adx_ok = adx_val >= i_adx_min and adx_val <= i_adx_max
Default range: 8–60. This wide range accommodates crypto and forex markets that trend aggressively for extended periods (ADX 40–60) as well as early-stage trends (ADX 8–15).
4. Position Sizing — Percentage Risk per Trade
Position sizing is calculated dynamically based on the user's equity risk percentage and the distance to the stop-loss level:
float sl_dist = math.abs(close - sl_price)
float qty = sl_dist > 0 ? (strategy.equity * i_risk_pct / 100.0) / sl_dist : 1.0
strategy.entry("Long", strategy.long, qty = qty)
This ensures every trade risks the same percentage of equity regardless of market volatility — a wider stop reduces size, a tighter stop increases size. The default is 1% risk per trade.
5. Stop-Loss Placement — Fractal Extreme + ATR Buffer
The stop-loss is placed beyond the most recent 20-bar fractal extreme in the direction of the trade, plus one ATR buffer. This anchors the stop to genuine structural pivots rather than arbitrary fixed-pip distances:
float sl_long = ta.lowest(low, 20) - atr_14 * i_sl_atr_buf
float sl_short = ta.highest(high, 20) + atr_14 * i_sl_atr_buf
Features
Five-Layer Entry Filter: Structure + Ribbon + Regime + Session (optional) + FVG proximity (optional)
Hann FIR Ribbon Crossover: Primary entry trigger — earliest mathematically-valid momentum signal
BOS-Armed Entries: Break of Structure signals additionally arm entries for up to 30 bars
Percentage Risk Sizing: Dynamic position size calculated from equity risk % and SL distance
Fractal-Anchored Stop Loss: Stop at 20-bar fractal extreme + ATR buffer
Fixed R:R Take Profit: Configurable reward-to-risk ratio for TP placement
Trailing Stop: Built-in trail_offset activates immediately from entry, protecting profits
Session Filter (optional): Trade only during Asia, London, and/or New York sessions. Off by default for 24h markets.
FVG Proximity Filter (optional): Require entry to be near an active imbalance zone. Off by default for maximum trade count.
Performance Dashboard: Displays trade count, win rate, average R, last trade result, and active filter states
Realistic Simulation: 2-tick slippage + 0.05% commission built into all backtests
Input Parameters
Structure (VSE):
Swing Length: Lookback for swing high/low detection (default: 20)
Ribbon Filter (ASB):
Hann Base Length: Core FIR filter period (default: 20)
Ribbon Spacing: Gap between ribbon layers (default: 3)
Regime Filter:
ADX Length: Period for ADX calculation (default: 14)
Min ADX for Entry: Minimum ADX to allow entries (default: 8). Lower = more trades. Raise to filter ranging markets.
Max ADX for Entry: Maximum ADX to allow entries (default: 60). Lower = skip over-extended moves.
Session Filter (ISP):
Enable Session Filter: Gate entries by session time (default: off — recommended for crypto and indices)
Trade Asia / London / NY: Toggle per-session entry permission
Imbalance Filter (IZC):
Require Near FVG Zone: Entry must be within ATR proximity of an active imbalance (default: off)
FVG Proximity (x ATR): Distance threshold for FVG proximity check (default: 1.5)
Risk Management:
Risk Per Trade (%): Equity percentage risked per trade (default: 1.0)
Reward:Risk Ratio: Take profit as a multiple of the SL distance (default: 2.0)
SL ATR Buffer: ATR multiple added beyond fractal extreme for stop (default: 0.5)
Trail Offset (ATR): Trail stop distance from price (default: 1.5)
BOS Armed Bars: How many bars a BOS signal remains active for entry (default: 30)
How to Use This Strategy
Step 1: Select Your Market and Timeframe
Start on the 1-hour chart. The strategy is calibrated for 1H on crypto, forex majors, and equity indices with default settings. Shorter timeframes (15m) can increase trade count further but require tighter ADX filtering to avoid noise.
Step 2: Run the Backtest with Defaults
With all optional filters off (session and FVG disabled), the strategy trades every valid ribbon crossover that passes structure and regime. This produces the highest trade count. Review the equity curve for smoothness — you want consistent growth, not reliance on a few large winners.
Step 3: Add Filters Progressively
Enable the session filter to restrict to London and NY on forex pairs. Enable the FVG proximity filter to require imbalance context on entries. Each filter reduces trade count but should improve win rate if the underlying edge is present on your instrument.
Step 4: Interpret the Dashboard
The dashboard shows the current state of every filter layer — which ones are active and whether each condition is currently met. This is the diagnostic view: if no trades are firing, the dashboard tells you exactly which filter is blocking entries.
Originality Statement
This strategy is original as a unified multi-indicator convergence framework where each component is an independently published, standalone indicator. Its publication is justified because:
The five-layer filter architecture uses genuinely independent measurement dimensions — market structure (price action), momentum (FIR frequency domain), trend strength (ADX), session timing, and price inefficiency (FVG) — reducing the risk of correlated signals that appear to confirm each other but measure the same thing
Hann FIR crossover as the primary trigger provides a mathematically grounded entry timing signal with lower lag than EMA crossovers of equivalent period — a meaningful improvement to the timing of systematic entries
Dynamic position sizing calculated from SL distance anchored to fractal extremes creates risk-normalized sizing that adapts to each trade's structural context rather than using fixed lot sizes
The modular filter design allows each filter to be toggled independently, making the strategy adaptable to different asset classes (crypto, forex, equities) without code changes — session filter off for 24h markets, FVG filter off for maximum trade generation
Limitations
Backtesting results depend critically on the instrument, timeframe, and parameter settings. Past performance in strategy tester does not guarantee future live trading results.
The 2-tick slippage and 0.05% commission defaults are approximations. Actual execution costs vary by broker, instrument, and session liquidity. High-slippage instruments (illiquid crypto, micro-cap) will perform worse than the backtest indicates.
The FVG proximity filter references FVG logic computed internally. It does not import live data from the separately published Imbalance Zone Classifier indicator — it recomputes the same logic in isolation.
The strategy does not incorporate news filters or earnings event exclusions. Entering positions around major economic releases (FOMC, NFP) during high-volatility events will produce results inconsistent with normal market behavior.
Trailing stop and take profit interact. If price reaches the TP level before the trail stop triggers, the TP closes the trade. Users should verify via strategy properties which exit is dominant in their use case.
Disclaimer
This strategy is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Backtested strategy results are hypothetical and do not account for the psychological challenges of live trading. Past results do not guarantee future performance. Always use proper risk management and never risk more than you can afford to lose.
-Made with passion by jackofalltrades
Strategy
Moon VWAPMoon VWAP (MAVWAP) overlays anchored VWAP (AVWAP) segments that reset on calendar-based anchors you choose—primarily every New Moon (and optionally Full Moon), plus optional anchors for Mercury retrograde start, Venus retrograde start, Total Lunar Eclipse (TLE), Total Solar Eclipse (TSE), and a regime-flip anchor derived from your scripted eclipse rules.
What you get
Lunar markers: New Moon and Full Moon events (UTC), with styling options including August New Moon emphasis and optional ±day background tint around New Moons.
Retrograde context: Mercury (and optional Venus) retrograde start/end markers, optional in-span shading, optional shadow shading, and optional “open at Rx start” reference.
Eclipse markers: Total (and optional partial) lunar/solar eclipse marks.
Optional regime backdrop: Background tinting for a lunar-cycle vs solar-cycle interpretation (user-configurable rules in the inputs).
AVWAP suite: Separate toggles/colors for VWAP segments anchored to the events above—useful for tracking how price behaves from each anchor forward.
How to use
Pick which anchors matter for your process (most users start with New Moon AVWAP).
Choose marker style (emoji-only vs vertical lines) for a cleaner chart.
If something looks off vs your reference almanac, confirm the underlying UTC tables against your preferred astronomical source—this tool is for visual context, not a guarantee of timing precision on every feed.
Disclaimer: For education and research only. Not financial advice. Past performance does not guarantee future results. Astronomical/astrological cycle overlays are discretionary; verify critical dates independently.
Indicator
Convergence Protocol [JOAT]
Convergence Protocol
Introduction
Convergence Protocol is an open-source strategy that combines four analytical modules — structural trend, volatility regime, delta pressure, and liquidity/structure break detection — into a multi-pathway entry and exit system. The strategy generates trade signals through five independent entry mechanisms, each requiring alignment between different analytical dimensions, and manages positions with ATR-based stops, dual take-profit levels, and an optional trailing stop that activates after the first target is reached.
The design rationale for combining these four modules is that each answers a different question about the market. Structure and trend analysis answers: what direction is the market likely to move? Volatility regime answers: does the market have the energy to sustain a directional move? Delta pressure answers: is volume supporting the proposed direction? Liquidity and structure break detection answers: has the market made a meaningful structural commitment that confirms directional intent? No single module alone provides a robust enough basis for a trade. Convergence across multiple modules provides a higher-quality signal set that reduces the frequency of marginal trades while maintaining enough opportunities to be practical.
Strategy Properties and Backtesting Settings
Default settings used for publication:
Initial Capital: Default PulseWire account size
Position Size: 5% of equity per trade
Commission: 0.04% per side (realistic for most crypto and equity platforms)
Slippage: 1 tick
Risk Per Trade: 5% of equity maximum (within sustainable limits)
Stop Loss: 1.5x ATR from entry
TP1: 1.2x risk (50% of position closed)
TP2: 2.5x risk (remaining position)
Trailing Stop: 1.0x ATR trailing offset, activates after TP1 hit
Backtesting results will vary significantly by instrument and timeframe. This strategy is intended to be evaluated across multiple instruments and market conditions before drawing conclusions. A single backtest run does not constitute evidence of future performance.
Core Modules
Module 1: Structural Trend Engine
The baseline uses a double-smoothed moving average (SMEMA). Swing highs and lows are tracked to classify market structure as bullish (HH+HL), bearish (LH+LL), or neutral. A 0-7 confluence score is assembled from: regime direction, structural alignment, volatility expansion, absence of squeeze, delta pressure, structure break confirmation, and liquidity sweep confirmation. Each module contributes a binary point to the score.
Module 2: Volatility Regime
Short-period ATR is compared to long-period ATR. A ratio above 1.05 with a rising oscillator confirms volatility expansion — the market has enough energy for directional moves. A squeeze condition (fast ATR well below slow ATR and its own moving average) signals that the market is coiling; entries are filtered or blocked depending on settings.
Module 3: Delta Pressure
Bar-by-bar delta (positive on bullish bars, negative on bearish bars) is smoothed into fast and slow EMAs. Their cross and relative position provide a directional bias from the volume perspective.
Module 4: Liquidity and Structure
A break of structure (BOS) is confirmed when price closes beyond the most recent pivot in any direction on a confirmed bar. Liquidity sweeps are detected when price wicks beyond a prior swing and closes back on the correct side. Both conditions contribute to the confluence score.
Entry Mechanisms
1. Confluence Score Entry
All four modules must be aligned and score at or above the minimum threshold (default: 2 of 7). This is the primary high-conviction entry.
2. Baseline Pullback Entry
In an established trend (regime confirmed), when price returns to within the step band of the baseline with positive delta confirmation, a pullback entry is generated. This produces more frequent entries by adding trend-continuation trades within an established directional move.
3. Squeeze Breakout Entry
When a detected squeeze condition resolves (squeeze ends) with trend and delta alignment, a breakout entry fires. This targets the expansion phase immediately following volatility compression.
4. Delta Crossover Entry
When the fast delta EMA crosses above the slow delta EMA in the direction of the regime, and the market is not in a squeeze, a momentum entry is generated.
5. Sweep Reversal Entry
When a liquidity sweep occurs with confirming delta pressure, a reversal entry is generated in the direction of the sweep reversal. This targets the classic sweep-and-go pattern.
Exit Logic
TP1: 50% of position closed at 1.2× risk. Locks in partial profit and reduces position size for the remainder of the trade
TP2: Remaining 50% targets 2.5× risk with a hard stop at the original stop level
Trailing Stop: After TP1 is hit, the strategy optionally converts to a trailing stop with an ATR-based offset, allowing the winning portion of the trade to capture extended moves
Regime Exit: If the market regime flips against the position (bullish regime while short, or bearish regime while long), the position is closed at market. This protects against holding trades through structural regime reversals
Limitations and Considerations
The strategy uses OHLCV-based calculations throughout. It does not have access to tick data, order book information, or real-time execution data that institutional traders use
Backtesting results are inherently optimistic due to perfect execution assumed at bar close prices. Real-world execution will differ
The five entry mechanisms produce different trade frequencies. Users should evaluate each mechanism independently in backtesting before enabling all simultaneously
The regime change exit can produce early exits in choppy markets where the regime briefly flips before resuming the original direction
The trailing stop activation after TP1 is a fixed ATR offset from the highest/lowest price reached. It does not adapt to subsequent volatility changes during the trade
The strategy is designed for trending markets. In persistent ranging environments, the confluence score-based entries will underperform because the regime module will frequently return a Ranging classification, suppressing primary entries
Commission and slippage settings in the strategy Properties should be adjusted to match the actual costs on the instrument and broker being used before drawing any performance conclusions
Originality Statement
This strategy is original in its specific multi-pathway entry architecture and the unified 0-7 confluence scoring system that synthesizes structural, volatility, delta, and liquidity analysis into a single conviction metric. Each of the five entry pathways serves a distinct market condition: confluence entries target high-alignment setups; pullback entries target trend continuation in established moves; squeeze breakout entries target volatility expansion transitions; delta crossover entries target momentum initiation; sweep reversal entries target institutional accumulation/distribution patterns. No single existing strategy approach covers all five scenarios. The combination is justified because these five market conditions occur at different points in the market cycle, and a strategy limited to one condition type will sit idle during the other four.
Disclaimer
This strategy is provided for educational and informational purposes only. Past backtest results do not guarantee future performance. No backtesting result should be interpreted as evidence that this strategy will be profitable in live trading. Markets change, and conditions that produced past results may not recur. The strategy does not account for taxes, broker requirements, or psychological factors in live trading. Always use proper risk management and consult with a qualified financial professional before making any investment decisions. The author is not responsible for any losses incurred from using this strategy.
-Made with passion by officialjackofalltrades
Strategy
Daily + Anchored VWAP**Daily VWAP + Anchored VWAP (RTH / Full Session Toggle)**
This script provides a clean and reliable implementation of Daily VWAP along with an Anchored VWAP, designed to behave consistently across different session types and chart settings.
The Daily VWAP automatically resets each day based on the selected mode. In RTH mode, it resets on the first regular-session bar and only includes regular trading hours. In Full Session mode, it resets on the first bar of the day and includes all available price data. The calculation uses a proper cumulative price × volume divided by volume approach, ensuring accuracy with no gaps or delayed starts on the opening candle.
The script includes a historical display control that allows switching between showing only the current trading day or displaying a configurable number of previous trading days. The “today only” mode is handled using chart-based date detection, which avoids the common issues seen in other VWAP scripts where the first bars of the session are incorrectly excluded.
An Anchored VWAP is also included, which starts from the first session bar of a user-defined number of trading days back and accumulates forward to the present. This anchored VWAP operates independently from the daily VWAP visibility settings and remains stable regardless of whether historical display is enabled or not.
A session toggle allows switching between RTH-only behavior and full-session behavior. This setting applies consistently to both the Daily VWAP and Anchored VWAP, making it easy to compare how price interacts with VWAP under different session definitions.
This script is designed to avoid common VWAP issues such as incorrect start points, broken “today only” filtering, and inconsistent handling of extended hours. The logic separates reset conditions, accumulation, and display filtering to ensure stable and predictable output.
This tool is useful for intraday trading, tracking institutional positioning, anchoring VWAP to recent sessions, and analyzing price behavior across different session types.
Anchored VWAP requires sufficient historical data on the chart to include the selected anchor start point. Behavior may vary slightly depending on the symbol’s session definition and chart settings.
Built for precision and reliability, with a focus on correct behavior in real trading conditions.
Indicator
Volatility Squeeze Oscillator [JOAT]Volatility Squeeze Oscillator
Introduction
Volatility does not move randomly. It compresses, coils, and then releases — and the magnitude of the release is frequently proportional to the depth and duration of the compression. This relationship between volatility contraction and subsequent expansion is one of the most durable patterns in market behavior across all asset classes and timeframes. The Volatility Squeeze Oscillator is built to quantify this relationship with precision, using a multi-layered analysis framework that goes well beyond standard squeeze detection.
At its core, the indicator uses an ATR compression ratio engine to measure the difference between a short-term and long-term ATR. When the short-term ATR is smaller than the long-term ATR, volatility is contracting — the market is coiling. When the short-term ATR expands beyond the long-term reference, the coil is releasing. This compression differential is normalized against the high-low range, making the oscillator comparable across different instruments and volatility regimes.
Three additional analytical layers are stacked on top of the compression engine. A cumulative delta proxy estimates buying versus selling pressure within each bar using range-based calculations — no Level 2 or order flow data required. A volume RSI module measures whether the current volume is elevated relative to its own history, providing a confluence filter that separates high-conviction from low-conviction squeeze releases. And a statistical deviation band system built on a 200-bar lookback marks the historically significant boundaries of the squeeze oscillator's own distribution, so traders can identify not just whether a squeeze is forming, but how extreme it is relative to its own history.
Core Concepts
1. ATR Compression Ratio Engine
The compression ratio is derived from two ATR calculations at different smoothing periods. Both use EMA smoothing rather than RMA (Wilder's method) to produce a more responsive and visually cleaner oscillator. The short-term ATR reflects current volatility conditions. The long-term ATR (calculated at double the base period) establishes the reference level representing the recent historical norm. The difference between these two — long minus short — is the squeeze value: positive when the market is contracting (short ATR below long-term baseline), negative when expanding.
trueRange = ta.tr(true)
atrShort = ta.ema(trueRange, len)
atrLong = ta.ema(atrShort, len * 2)
sqzRaw = atrLong - atrShort
hlRange = ta.highest(high, len) - ta.lowest(low, len)
sqzVal = hlRange > 0 ? sqzRaw / hlRange : 0
Normalizing by the HL range makes the oscillator dimensionless — a squeeze value of 0.3 carries the same meaning whether you are analyzing a $1 stock or a $50,000 Bitcoin contract. The signal line is an EMA of the squeeze value, used to detect the inflection point where the squeeze begins to build (sqzVal crossing above sqzSig) or release (sqzVal crossing below sqzSig).
2. Hyper-Squeeze Detection
A hyper-squeeze occurs when the squeeze value is not merely positive (compressing) but is actively rising for N consecutive bars — indicating an accelerating contraction rather than a stable one. Accelerating compression is particularly significant because it suggests market participants are increasingly reducing their activity, creating a coiled spring effect where the eventual release may be more forceful.
hyperSqz = sqzVal > 0 and ta.rising(sqzVal, hyperLen)
When a hyper-squeeze is active, a violet tint is overlaid on the oscillator background in addition to the regular delta-driven background color. The dashboard updates the hyper squeeze row to ACTIVE status. This dual visual layer makes extended compression phases immediately distinguishable from ordinary positive squeeze readings.
3. Cumulative Delta Proxy
Order flow analysis — understanding whether buyers or sellers are dominant within a given period — typically requires tick-level data or exchange-provided volume breakdown. This indicator constructs a proxy for cumulative delta using bar-level range analysis, making the information accessible without any data feed requirements.
barRange = high - low
bullPress = barRange > 0 ? (close - low) / barRange : 0.5
bearPress = barRange > 0 ? (high - close) / barRange : 0.5
deltaBar = bullPress - bearPress
deltaSma = ta.sma(deltaBar, deltaLen)
deltaPos = deltaSma > 0
A close near the high of the bar implies buyers dominated (bull pressure near 1.0). A close near the low implies sellers dominated (bear pressure near 1.0). The difference, smoothed over a configurable window, produces a normalized delta reading. When delta is positive during a squeeze, the compressed volatility is accumulating with a bullish lean. When negative, with a bearish lean. This directional information is used both in the histogram coloring (alpha derived from delta conviction) and in dashboard output.
4. Volume RSI Confluence
Volume RSI applies the standard RSI momentum formula to the volume series rather than price. This produces a normalized reading of whether current volume is elevated or depressed relative to its recent distribution. A high volume RSI (default threshold: 65) during a squeeze release indicates that the expansion is occurring on above-average participation — a meaningful distinction from low-volume releases that can quickly reverse.
volRsi = ta.rsi(volume, 14)
highVol = volRsi > volThresh
The volume RSI value and status are displayed in the dashboard. Alert conditions include a "high-volume release" alert specifically when both a squeeze release signal and elevated volume RSI occur simultaneously, providing a higher-conviction composite signal.
5. Statistical Deviation Bands
Rather than using fixed threshold lines at arbitrary values, the oscillator's own distribution is analyzed statistically using a 200-bar lookback. The mean and one and two standard deviation levels of the squeeze value over this window establish dynamically updating bands. These bands are filled with a gradient and rendered at adaptive transparency based on the current Z-score — as the oscillator approaches the 2σ band, the fill becomes more opaque, visually emphasizing extreme readings.
sqzMean = ta.sma(sqzVal, statLen)
sqzStd = ta.stdev(sqzVal, statLen)
band1Up = sqzMean + sqzStd
band2Up = sqzMean + 2 * sqzStd
band1Dn = sqzMean - sqzStd
band2Dn = sqzMean - 2 * sqzStd
zScore = sqzStd > 0 ? (sqzVal - sqzMean) / sqzStd : 0
A squeeze reading above the 2σ upper band is historically anomalous compression — significantly above what has been typical over the prior 200 bars. Such readings often precede the most explosive release moves.
6. Histogram Coloring and Background Rendering
The histogram bar colors encode two simultaneous dimensions. The base color is red when the squeeze is building (sqzVal above sqzSig) and teal when releasing (sqzVal below sqzSig). The alpha channel of each bar is modulated by the absolute value of the delta conviction — high delta conviction produces more saturated colors, while low-conviction delta (price closing near the bar midpoint) produces more transparent bars. The background color is a 93% alpha gradient driven entirely by delta: teal for bullish delta, red for bearish delta, with the hyper-squeeze violet tint layered on top when active.
Features
ATR Compression Ratio Engine: Measures the difference between short-term and long-term EMA-smoothed ATR, normalized by HL range for cross-instrument comparability.
Signal Line: EMA of the squeeze value provides the crossover reference for detecting compression buildup and release initiation.
Hyper-Squeeze Detection: Identifies accelerating compression phases where the squeeze is rising for N consecutive bars simultaneously.
Cumulative Delta Proxy: Bar-range-based buying and selling pressure estimate, smoothed and normalized, requiring no Level 2 data.
Volume RSI Confluence: RSI applied to volume series identifies above-average participation, separating high-conviction releases from low-volume ones.
Statistical Deviation Bands: 200-bar mean and sigma levels with gradient fill and adaptive transparency based on Z-score position.
Delta-Driven Alpha Histogram: Histogram color and opacity encode both squeeze direction and delta conviction simultaneously.
Layered Background Coloring: Delta-based background with hyper-squeeze overlay provides immediate pane-level context without requiring close inspection.
Signal Markers: Circle markers at oscillator bottom on squeeze cross and release cross events.
Seven-Row Dashboard: Real-time status covering state, hyper squeeze, volume RSI, delta bias, Z-score, and squeeze value.
Four Alert Conditions: Squeeze building, release detected, hyper squeeze active, and high-volume release composite signal.
Input Parameters
ATR Settings:
Base Length: Period for short-term ATR EMA and HL range lookback (default: 20)
Hyper-Squeeze Settings:
Hyper Squeeze Consecutive Bars: Number of consecutive rising bars required for hyper-squeeze (default: 3)
Delta Settings:
Delta Smoothing Window: SMA period for the delta bar average (default: 10)
Volume RSI Settings:
Volume RSI Period: RSI lookback applied to volume series (default: 14)
Volume RSI Threshold: Level above which volume is considered elevated (default: 65)
Statistical Bands Settings:
Statistical Lookback: Bar count for mean and standard deviation computation (default: 200)
Show Bands: Toggle deviation band fills (default: true)
Display Settings:
Show Background: Toggle delta and hyper-squeeze background coloring (default: true)
Show Signal Markers: Toggle circle markers at squeeze and release crosses (default: true)
Show Dashboard: Toggle the seven-row information table (default: true)
How to Use This Indicator
Step 1: Monitor the Squeeze State
The primary read from this oscillator is the current state displayed in the dashboard: SQUEEZING, RELAXING, or EXPANDING. Squeezing means the compression ratio is positive and rising — the market is actively coiling. Relaxing means the compression is positive but flattening or declining — the coil is beginning to unwind. Expanding means the oscillator has gone negative — volatility is actively expanding beyond the historical baseline. The transition from SQUEEZING to RELAXING is the early warning signal; the transition to EXPANDING is confirmation that the release has begun.
Step 2: Watch for Hyper-Squeeze Conditions
When the dashboard shows HYPER SQUEEZE: ACTIVE and the chart shows the violet tint overlay, the compression is accelerating — each bar the market is coiling tighter. These conditions historically precede more forceful releases. In hyper-squeeze conditions, position sizing on the anticipated breakout can be considered carefully, as the magnitude of the release may be larger than during ordinary squeeze exits.
Step 3: Check Delta Bias for Directional Lean
Before committing to a directional bias, check the delta row in the dashboard. Positive delta (bullish) during a squeeze indicates that even during compression, buyers have been closing bars near the upper portion of their range — a bullish accumulation signature. Negative delta (bearish) suggests the opposite. Delta bias does not guarantee direction, but it provides a useful lean when combined with the squeeze release signal.
Step 4: Require Volume RSI Confluence on Release
Not all squeeze releases produce sustained moves. Low-volume releases frequently reverse within a few bars. The "High-Volume Release" alert fires only when both a release cross and elevated volume RSI (above threshold) occur simultaneously. Waiting for this composite signal before acting on a release — rather than responding to the release cross alone — filters out a meaningful number of false expansion signals in low-participation environments.
Indicator Limitations
The ATR compression ratio measures relative volatility contraction but cannot determine the direction of the eventual breakout. This indicator identifies when a release is likely, not which way price will move. Directional analysis must come from structure, trend, or other contextual tools.
The delta proxy is a bar-level approximation of order flow. It does not access actual tick data, order book data, or trade-level information. In markets with high-frequency activity, the close-to-high/low ratio can systematically misrepresent actual buying and selling pressure.
The statistical deviation bands require 200 bars to be fully seeded. On instruments or timeframes with limited history, or immediately after loading a new chart, the bands may produce unreliable readings until sufficient data is available.
Volume RSI confluence is not applicable to instruments where volume data is unreliable, unavailable, or represents synthetic aggregation (some forex pairs, certain CFDs). In these cases, the volume RSI row should be treated as informational only.
The hyper-squeeze condition measures consecutive rising bars in the squeeze value. This makes it sensitive to the base period setting — shorter periods produce more variable squeeze values, leading to more frequent interruptions of the consecutive count.
This indicator operates entirely on the chart's native timeframe. It does not incorporate multi-timeframe squeeze data — a squeeze on a 15-minute chart may be occurring within the context of a much larger timeframe expansion that this indicator would not reflect.
Originality Statement
The Volatility Squeeze Oscillator is a purpose-built analytical instrument that combines techniques not previously assembled in this specific architecture.
The ATR compression ratio engine — using EMA-smoothed ATR at the base period versus double the base period, normalized by the HL range — is an original squeeze quantification method. It differs from the widely used Lazybear TTM Squeeze (which measures Bollinger Band width versus Keltner Channel width) by operating entirely within the ATR framework with range normalization.
The hyper-squeeze detection via ta.rising() on the already-positive squeeze value identifies accelerating compression as a distinct state separate from ordinary compression, a categorization not found in standard squeeze implementations.
The cumulative delta proxy using bar-range ratios (close minus low divided by range for bull pressure; high minus close divided by range for bear pressure), smoothed and normalized, provides order-flow-inspired information without any data dependency beyond OHLC — an original application of range analysis.
The integration of volume RSI as a confluence gate within the squeeze oscillator framework — not as a separate indicator but as an internal filter with dedicated dashboard output and composite alert conditions — is an original design choice.
The statistical deviation band system applied to the squeeze oscillator's own values (using a 200-bar SMA and StDev of the squeeze value itself) to create adaptive significance thresholds is an original meta-statistical layer not found in comparable oscillators.
Disclaimer
The Volatility Squeeze Oscillator is provided for educational and informational purposes only. It is a technical analysis tool and does not constitute financial advice. Identifying squeeze conditions does not predict the direction or magnitude of subsequent price moves with any certainty. All trading involves risk of loss. Users are solely responsible for their own trading decisions. Please consider your individual risk tolerance and consult a licensed financial professional before engaging in any trading activity.
-Made with passion by officialjackofalltrades
Indicator
Regime & Structure Engine [JOAT]Regime & Structure Engine
Introduction
Markets do not move randomly — they cycle through defined behavioral states: trending phases where momentum compounds in one direction, and ranging phases where price consolidates before the next impulse. Identifying which state the market is currently in, and detecting when structural breaks signal a transition, is fundamental to any disciplined trading approach. The Regime & Structure Engine is built around that single core principle: before anything else, know your regime.
This indicator unifies three distinct analytical layers into a single overlay system. The first layer is the Hull-EMA Hybrid (HEMA), a custom moving average that resolves the trade-off between smoothness and responsiveness by combining double-weighted EMA calculation with a square-root length final smoothing. The second layer is a three-state confirmed regime engine that uses the relative alignment of three HEMA periods to classify market condition as bull, bear, or neutral — with a mandatory two-bar confirmation to eliminate false transitions. The third layer is a market structure engine based on classical swing pivot logic, capable of identifying Break of Structure (BOS) and Change of Character (CHoCH) events that signal genuine momentum shifts.
All of this is augmented by a Z-score cumulative impulse detector that quantifies the statistical significance of directional momentum streaks, a trend cloud that visually represents regime state through gradient fills, proximity-based bar coloring that encodes distance from the HEMA mid-layer, a configurable alert system, and a compact six-row dashboard. Every signal in this indicator is anchored to confirmed bars only, eliminating any look-ahead repainting.
Core Concepts
1. Hull-EMA Hybrid (HEMA) Moving Average
The foundational calculation of this indicator is the HEMA — a three-step smoothing function that delivers both noise reduction and lag compensation. A standard EMA applies uniform smoothing that creates meaningful lag on higher periods. Hull Moving Averages address lag through weighted differencing but can produce jagged outputs. The HEMA bridges this by constructing the Hull-style weighted difference first, then applying a square-root-period EMA as the final smoother.
f_hema(src, len) =>
ta.ema(2 * ta.ema(src, len / 2) - ta.ema(src, len), math.round(math.sqrt(len)))
Three instances are calculated at lengths 20, 50, and 100, producing a fast, slow, and macro trend layer respectively. The fast layer reacts to short-term price action, the slow layer represents the primary trend, and the macro layer anchors the broader structural bias. When all three are aligned in sequence (fast above slow above macro, or inverse), the trend is considered directionally clean.
2. Three-State Confirmed Regime Engine
Regime classification is determined by the ordinal alignment of all three HEMA layers. A raw bull signal requires hema1 greater than hema2, which must in turn be greater than hema3. The inverse defines raw bear. Any other arrangement is classified as neutral. To prevent rapid regime flipping on borderline conditions, a two-bar confirmation requirement is enforced: the raw signal must hold for at least two consecutive bars before the confirmed regime variable updates.
rawBull = hema1 > hema2 and hema2 > hema3
rawBear = hema1 < hema2 and hema2 < hema3
var int confirmCount = 0
var int confirmedRegime = 0
if rawBull
confirmCount := confirmCount + 1
else if rawBear
confirmCount := confirmCount - 1
else
confirmCount := 0
confirmedRegime := confirmCount >= 2 ? 1 : confirmCount <= -2 ? -1 : 0
This confirmation mechanism is critical in volatile markets where HEMA layers can briefly reorder on a single candle only to revert immediately. The two-bar requirement sacrifices minimal reaction speed in exchange for a meaningful reduction in false regime transitions.
3. Z-Score Cumulative Impulse Detection
Regime direction tells you the structural bias. The Z-score impulse system tells you when that bias is being expressed with statistical force. Rather than measuring a single bar's momentum, this system accumulates consecutive directional closes into a running streak — a cumulative bull or bear pressure counter — then normalizes that streak against its own historical mean and standard deviation.
cumBull = close > close ? nz(cumBull ) + (close - close ) : 0
cumBear = close < close ? nz(cumBear ) + (close - close) : 0
zBull = (cumBull - ta.sma(cumBull, zLen)) / ta.stdev(cumBull, zLen)
zBear = (cumBear - ta.sma(cumBear, zLen)) / ta.stdev(cumBear, zLen)
impulseUp = ta.crossover(zBull, zThresh) and barstate.isconfirmed
impulseDn = ta.crossover(zBear, zThresh) and barstate.isconfirmed
An impulse fires when the Z-score exceeds the user-defined threshold (default: 2.0 sigma). This ensures that only statistically unusual momentum streaks generate signals, filtering out the ordinary ebb and flow of price during low-conviction moves.
4. BOS and CHoCH Market Structure
Market structure tracking is built on classical pivot high/low detection using Pine Script's built-in ta.pivothigh and ta.pivotlow functions. A Break of Structure (BOS) occurs when price closes or wicks beyond the most recent swing high (bullish BOS) or swing low (bearish BOS). A Change of Character (CHoCH) is a BOS that opposes the direction of the prior BOS — indicating a potential regime reversal rather than continuation.
swingHigh = ta.pivothigh(high, swingLen, swingLen)
swingLow = ta.pivotlow(low, swingLen, swingLen)
lastSwingHigh = ta.valuewhen(not na(swingHigh), swingHigh, 0)
lastSwingLow = ta.valuewhen(not na(swingLow), swingLow, 0)
bosUp = barstate.isconfirmed and ta.crossover(close, lastSwingHigh)
bosDn = barstate.isconfirmed and ta.crossunder(close, lastSwingLow)
chochUp = bosUp and lastBOSDir == -1
chochDn = bosDn and lastBOSDir == 1
CHoCH events are particularly significant because they represent the market's first structural evidence of a trend change — not merely a continuation of prior momentum. Distinguishing BOS from CHoCH allows traders to calibrate their response: a BOS in trend direction is a continuation entry opportunity, while a CHoCH warrants reassessment of existing positions.
5. Trend Cloud and Proximity Bar Coloring
The trend cloud fills the space between the HEMA fast and slow layers. The fill color matches the confirmed regime — teal for bull, red for bear, gray for neutral — creating an immediate visual encoding of market state across the chart. Bar coloring is driven by a normalized proximity calculation using the 14-period ATR as a reference distance.
normProx = math.abs(close - hema2) / (atr14 * 3)
barAlpha = math.min(math.round(normProx * 200), 200)
Bars that are far from the HEMA slow layer receive more saturated coloring, while bars trading near the HEMA mid-line are rendered at reduced opacity. This creates an intuitive gradient where extreme dislocations are visually prominent.
Features
HEMA Triple Layer: Three independent Hull-EMA Hybrid instances at periods 20, 50, and 100 provide fast, primary, and macro trend context simultaneously.
Confirmed Regime State: Two-bar confirmation gate prevents false regime transitions on temporary HEMA crossovers, reducing noise on volatile instruments.
BOS Detection: Swing-based Break of Structure signals on both bullish and bearish side, drawn at confirmed bars only with no look-ahead.
CHoCH Detection: Change of Character identification when BOS direction opposes the prior structural break, highlighting potential trend reversal zones.
Z-Score Impulse: Statistically normalized cumulative momentum streaks that fire signals only when directional pressure reaches a configurable sigma threshold.
Gradient Trend Cloud: Dynamic fill between HEMA layers color-coded by regime for instant visual orientation on any timeframe.
Proximity Bar Coloring: ATR-normalized distance from HEMA mid controls bar color alpha, making dislocations visually distinct.
Six-Row Dashboard: Compact table displaying regime, last BOS direction, bull Z-score, bear Z-score, and HEMA layer alignment.
No Repainting: All signals gated behind barstate.isconfirmed — no signals are printed on unfinished bars.
Full Alert Coverage: Seven alert conditions covering BOS, CHoCH, impulse, and regime flip events.
Input Parameters
HEMA Settings:
Fast Length: Period for the HEMA fast layer (default: 20)
Slow Length: Period for the HEMA slow layer (default: 50)
Macro Length: Period for the HEMA macro layer (default: 100)
Source: Price source for all HEMA calculations (default: close)
Regime Settings:
Confirmation Bars: Number of consecutive bars required to confirm a regime change (default: 2)
Structure Settings:
Swing Length: Pivot lookback for swing high/low detection (default: 10)
Show BOS Labels: Toggle BOS annotation labels on the chart (default: true)
Show CHoCH Labels: Toggle CHoCH annotation labels on the chart (default: true)
Z-Score Settings:
Z Lookback: Rolling window for Z-score mean and standard deviation (default: 50)
Z Threshold: Sigma level required to fire an impulse signal (default: 2.0)
Display Settings:
Show Trend Cloud: Toggle the gradient fill between HEMA layers (default: true)
Show Bar Colors: Toggle proximity-based bar coloring (default: true)
Show Dashboard: Toggle the six-row information table (default: true)
How to Use This Indicator
Step 1: Establish Regime Context
Before analyzing any signal, check the dashboard and the trend cloud to identify the confirmed regime. A bull regime (all three HEMA layers in ascending order with a teal cloud) means the structural bias favors long positions. A bear regime (descending alignment with a red cloud) favors shorts. A neutral regime suggests consolidation — reduce position sizing or stand aside. The regime confirmation requirement means the dashboard will update one to two bars after alignment begins, giving you a cleaner entry rather than reacting to the first crossover.
Step 2: Wait for Structure to Break
Within the context of the confirmed regime, watch for BOS events in the trend direction. A bullish BOS during a bull regime is a continuation structure signal — it means price has broken above a prior swing high, suggesting the up-trend is extending. A bearish BOS during a bull regime, especially if classified as a CHoCH, is your first warning that the structure may be shifting. Use the BOS labels on the chart to track the sequence of structural breaks over time.
Step 3: Confirm with Z-Score Impulse
A BOS or CHoCH becomes significantly more actionable when accompanied by a Z-score impulse signal in the same direction. When the cumulative bull streak normalized to 2+ sigma fires at the same time as or immediately following a bullish BOS, the move is backed by sustained directional momentum — not a single large candle. When regime, structure, and impulse all align, the signal quality is at its highest.
Step 4: Manage Position with HEMA Proximity
Once in a position, the proximity bar coloring helps manage exits. Bars that are far from HEMA mid (highly saturated) represent extended conditions — areas where mean reversion risk is elevated. Bars near HEMA mid are in equilibrium. Exits on strength (closing during a high-saturation bullish bar after a BOS continuation trade) allow for locking in gains at points of extension rather than waiting for a reversal to develop.
Indicator Limitations
The two-bar regime confirmation introduces a brief delay relative to the actual HEMA crossover. On fast-moving instruments, this can mean a slightly later entry but provides meaningful protection against false transitions.
BOS detection is based on prior swing highs and lows defined by the swing length parameter. On very low swing length settings, minor highs and lows will be used as structure levels, potentially generating frequent BOS events of less structural significance.
Z-score impulse requires a sufficient lookback to establish a stable mean and standard deviation for the cumulative streak. In the first Z-lookback bars of any chart, signals may be less statistically reliable as the normalization period is not fully seeded.
The HEMA and all derivative signals are calculated on the chart's native timeframe. This indicator does not internally pull higher timeframe data — users who want multi-timeframe regime context should reference signals from higher timeframe chart instances.
Like all trend-following tools, this indicator will produce whipsaw signals in choppy, range-bound markets where neither bulls nor bears sustain momentum long enough to trigger clean regime confirmation.
Proximity bar coloring uses ATR as a normalizer. During volatility regime shifts (e.g., sudden spike in ATR), the alpha thresholds may temporarily misrepresent proximity distance.
Originality Statement
The Regime & Structure Engine is not a repackaging of any single existing indicator. It is a purpose-built synthesis of methodologies that individually exist in various forms but have not been combined in this specific architecture.
The HEMA function (Hull-inspired double-weighted EMA followed by square-root-period smoothing) is a custom construction that differs from both standard HMA and standard EMA in its layering approach and final smoothing step.
The three-state confirmed regime engine with mandatory multi-bar confirmation is an original state machine design. Most indicators display regime as a simple crossover condition; this system enforces a holding period before state transition.
The Z-score cumulative impulse system measures the statistical significance of a directional streak rather than the magnitude of a single bar move. This normalization approach — accumulating consecutive closes and comparing against rolling sma/stdev — is not a standard oscillator pattern.
The combination of HEMA-based regime with classical BOS/CHoCH structural analysis on top of Z-score momentum creates a three-dimensional signal framework that no single publicly available indicator replicates.
The proximity bar coloring system using ATR-normalized distance to the HEMA mid layer as the alpha channel driver is an original visual encoding not found in standard bar coloring implementations.
Disclaimer
The Regime & Structure Engine is provided for educational and informational purposes only. It is a technical analysis tool and does not constitute financial advice. Past behavior of price relative to indicator signals does not guarantee future results. All trading involves risk, including the potential loss of principal. Users are solely responsible for their own trading decisions. Always conduct your own due diligence and consider consulting a licensed financial professional before making any investment decisions.
-Made with passion by officialjackofalltrades
Indicator























