Market Structure Shift [JOAT]═══ MARKET STRUCTURE SHIFT ═══
A complete Smart Money Concepts structure engine that reads the market the way institutional flow moves it — mapping every swing and internal shift, tagging each break as BOS (continuation) or CHoCH (reversal), then layering liquidity, premium/discount context, and a structure-anchored risk plan on top. It turns raw price action into a clean, labelled map of who is in control and where the shift happens.
▎ WHAT IT DOES
MSS tracks confirmed pivots and runs them through a two-layer structure state machine. When price closes (or wicks) beyond a protective swing, it draws the break line, labels it BOS or CHoCH, and updates the live trend state. Around that skeleton it adds equal-high/low liquidity marks, a premium/discount/equilibrium range map, an optional structure-anchored SL and Reward:Risk target zone, session VWAP with deviation bands, and a live dashboard summarising the whole picture.
▎ HOW IT WORKS
• Confirmed pivots — swing highs/lows are detected with a symmetric pivot length (bars each side), so a pivot only prints once fully confirmed. A separate, shorter internal pivot length tracks a faster inner structure layer.
• BOS vs CHoCH logic — each layer holds a trend state (bull / bear / range). A bullish break of the last swing high while the state is already bullish is a BOS (continuation); a bullish break while the state was bearish is a CHoCH (change of character / first reversal). The mirror logic applies to bearish breaks.
• Break confirmation — you choose whether a candle must close beyond the level (cleaner) or whether any wick penetration counts.
• Sequence read — every new pivot is classified HH / LH / HL / LL (or EQ) so you can see the higher-high / lower-low rhythm at a glance.
• Liquidity (EQH/EQL) — two consecutive pivots landing within an ATR-scaled tolerance are marked as Equal Highs or Equal Lows — resting liquidity pools where stops cluster.
• Premium / Discount — the active swing range is split into a Premium (upper) zone, a neutral Equilibrium band around the midpoint, and a Discount (lower) zone, so you always know which half of the range price is trading in.
• Structure-anchored risk — on a fresh signal the stop is placed just beyond the swing that would invalidate the shift (plus an ATR buffer), or by a fixed ATR distance. Risk is floored and capped by ATR, and the target is projected at your Reward:Risk multiple.
• VWAP magnet — session-anchored VWAP with inner and outer standard-deviation bands acts as the fair-value reference the structure tends to rotate around.
• ATR normalisation — label spacing, liquidity tolerance and stop distances all scale with ATR, so the tool behaves consistently across assets and timeframes.
▎ HOW TO USE IT
• Read the trend state first: a CHoCH warns the prevailing structure has broken; a following BOS confirms the new leg. Trade with the higher-conviction swing layer and use internal breaks for earlier, finer entries.
• BUY / SELL labels fire on the events you enable (CHoCH, BOS, or both) from your chosen layer — treat them as a structure trigger, not a blind entry.
• Favour longs from the Discount zone and shorts from the Premium zone; the Equilibrium band is neutral / no-man's-land.
• EQH/EQL marks show where liquidity rests — price often sweeps these before a genuine shift, so use them as targets and as traps to avoid.
• When a signal prints, the RISK ZONE (entry→stop, red) and TARGET ZONE (entry→TP, green) boxes project the plan; the SL and TP lines carry exact price and R labels. The zones extend live, then freeze once TP, SL, or the time-out is reached.
• Use VWAP and its bands as confluence — a shift back through VWAP into the opposite σ band is a common rotation target.
▎ KEY SETTINGS
• Structure Engine — swing pivot length, optional internal layer + its length, close/wick break confirmation, ATR length.
• Signals — signal source (Swing / Internal / both) and whether labels fire on CHoCH, BOS, or both.
• Liquidity & Zones — toggle EQH/EQL, equal-level tolerance, premium/discount zones, equilibrium band width, and the floating price-zone tag.
• Risk Model — stop basis (Structure+Buffer or ATR Multiple), buffer/ATR distance, Reward:Risk multiple, min/max risk floors and caps, projection length, max drawn setups.
• VWAP — show VWAP, inner/outer σ multiples, deviation lookback.
• Visuals — swing/internal break display, pivot markers, zone candle colouring, draw limits, and the blue/violet colour scheme.
▎ DASHBOARD
A compact blue/violet panel reports live: overall Trend , the Last Event (Bull/Bear BOS or CHoCH), the current Swing Sequence (e.g. HH · HL), the Internal structure state, the active Price Zone , running BOS and CHoCH counts, Liquidity (EQH/EQL) count, the current Signal , and the symbol/timeframe. Position and text size are adjustable.
▎ ALERTS
Six alertconditions are provided: Bullish BOS, Bearish BOS, Bullish CHoCH, Bearish CHoCH, BUY Signal, and SELL Signal — each with a ready message carrying ticker and interval.
▎ NOTES
• Works on all timeframes and all assets — everything scales with ATR.
• Pivots are confirmed (they need bars to close each side), so structure marks are non-repainting once printed; the price-zone label and dashboard update live on the last bar as expected.
• Every visual layer has a toggle — turn off what you don't need for a clean chart.
• Signals never fire both directions on the same bar; a conflicting wide-range bar is dropped.
For research and education only. This is not financial advice. No indicator can predict the future, and past behaviour does not guarantee future results. Any labels, zones, or counts describe historical price action only. Always do your own analysis and manage your own risk.
Made with passion by JackOfAllTrades ⚡ Indicator

ATR Trend Rail🚦 ATR Trend Rail — a trend rail that knows when to shut up.
Most ATR / SuperTrend clones flip you into every chop-fest, then repaint the "perfect" entry after the candle closes. This one doesn't. It runs on a single idea: a trailing ATR band is only worth trading when the market regime agrees with it. 🎯
WHAT'S UNDER THE HOOD
📐 The rail — a trailing ATR band that latches trend state and rides price until volatility says the move is done. Adaptive, clean, no lag-heavy MA soup.
🧭 Regime filter (the whole point) — every flip is gated against a regime SMA. Leave it on your chart timeframe, or point it at an HTF for a top-down bias. Wrong side of regime? The signal never fires. This is the piece most trend tools skip entirely.
🚫 Non-repainting, for real — flips confirm on closed bars only, the regime pull runs lookahead-off with a realtime offset, and each leg's regime status locks the moment the flip bar closes. What you see in replay is what you'd have traded live. No hindsight magic.
🌫️ Faded legs — trends that fire against regime don't disappear, they dim. You still see the move; you just know it didn't earn a signal. Context, not censorship.
🔔 Alerts that behave — Bull, Bear, and Flip, confirmed-bar only. Set them once and trust them.
READ IT IN ONE GLANCE
🟢 Bright rail under price → confirmed uptrend, regime agrees
🔴 Bright rail over price → confirmed downtrend, regime agrees
⚪ Faded rail → the move exists, regime says wait
🔺 Triangle + Bull / Bear tag → a flip that passed the gate
Still useful after it's been on your chart a while. 🚦
— SlatinaTrades Indicator

Reversal Confluence Sniper [JOAT]Reversal Confluence Sniper
Hunts exhaustion reversals by requiring several independent exhaustion signals to appear together, so it fades stretched moves with confirmation rather than hope.
What it is
Fading a trend is dangerous when done on a single cue. This indicator only flags a potential reversal when multiple, independent signs of exhaustion coincide at the same moment — turning a risky counter-trend guess into a confluence-gated setup. It is an original reversal engine, not a lone oscillator flip.
How it works
The engine looks for several exhaustion conditions and requires enough of them to align:
• Momentum extreme — an oscillator reaching and rolling over from an overextended level, showing the push is losing force.
• Volatility stretch — price extended a statistically large distance from a mean or band, marking an unsustainable move.
• Rejection candle — a wick or close that rejects the extreme, showing the aggressive side failed to hold new ground.
• Participation — a volume or effort read that flags climax or fade behaviour rather than steady continuation.
A Buy (bullish reversal) prints when enough downside-exhaustion factors align; a Sell when enough upside-exhaustion factors align. A minimum-gap control prevents repeated prints while a market chops around an extreme.
Trade levels
Each signal draws a red risk box to a stop placed beyond the exhaustion extreme and a green reward box to the third target, with inner dividers and right-edge labels for entry, stop and each take-profit at your R multiples. Placing the stop beyond the extreme respects the idea that if price makes a new extreme, the reversal thesis is wrong.
The dashboard
An adjustable sniper-scope panel shows which exhaustion factors are currently active, a combined conviction reading, the active signal, and a live first-target-before-stop tally from closed bars only, so you can see how much confluence backs each setup.
How to use it
• Works on any asset and timeframe.
• Most effective for timing entries at the end of a stretched move, ideally into a higher-timeframe level or zone.
• Because it fades momentum, pair it with structure or a level tool and keep stops disciplined — reversals that do not confirm should be cut quickly.
Settings
The exhaustion factor lengths and thresholds, the number of factors required to trigger, risk multiple and target R multiples, plus visual and dashboard controls.
Originality and usefulness
The contribution is the confluence gate itself: several independent exhaustion measures that must agree before a counter-trend signal is allowed, with a transparent readout of which factors fired and integrated, non-repainting trade framing. It is designed to make fading safer by demanding evidence, not to promise reversals.
Notes and limitations
• Counter-trend trading is inherently higher risk; strong trends can stay stretched far longer than expected and overrun any reversal signal.
• Requiring more factors reduces false signals but also reduces frequency — this trade-off is yours to set.
• The tally reflects only past bars on the current chart and is not a forecast.
• Educational and analytical tool, not financial advice.
— made with passion by officialjackofalltrades
Indicator

Heisenberg Uncertainty Bands [JOAT]HEISENBERG UNCERTAINTY BANDS
A novel band-and-state engine inspired by the Heisenberg uncertainty principle: the recognition that for a market, just as for a quantum particle, you cannot simultaneously be certain about both position (where price is) and momentum (how fast it is moving). Heisenberg Uncertainty Bands measures both uncertainties, tracks their empirical floor, classifies the current market into one of three quantum-inspired states — pure position |x⟩, pure momentum |p⟩, or mixed |ψ⟩ — and projects bands around price accordingly.
The principle, translated
In quantum mechanics, Δx · Δp ≥ ℏ/2 — the product of the position uncertainty and the momentum uncertainty cannot fall below a constant called Planck's reduced. For markets the analogue is:
Δx — the rolling standard deviation of price over a configurable window. The uncertainty in where price is sitting.
Δp — the rolling standard deviation of returns (log or arithmetic, configurable) over a separate window. The uncertainty in how fast price is moving.
ℏ̂ (hbar-hat) — the EMA-smoothed long-run product Δx · Δp. The script's empirical estimate of the market-specific lower bound.
Just like in physics, when the market is certain about position (price has been stable), it becomes uncertain about momentum (next direction is unknown) — and vice versa. The script measures both, computes the product, compares it to the empirical floor, and uses the ratio Δx/Δp as the state classifier.
Three quantum states
Pure Position State |x⟩ — Δx/Δp below the position threshold (default 0.40). Price is constrained to a tight band; the next directional move is uncertain. Yellow palette.
Pure Momentum State |p⟩ — Δp/Δx below the momentum threshold (default 0.40). Direction is committed; the range is widening. Magenta palette.
Mixed State |ψ⟩ — neither pure state condition holds. Violet palette.
The state badge on the right of the chart shows the bra-ket glyph (Unicode |x⟩ / |p⟩ / |ψ⟩ by default; can fall back to plain POS / MOM / MIX if your font lacks the brackets). A state cooldown (default 3 bars) debounces flicker.
Band projection
Two band families are projected around the live mid price:
Position bands — mid ± k × Δx. Solid by default. The classic "how wide is price ranging right now" envelope.
Momentum bands — mid ± k × (Δp scaled to the price axis). Dashed by default (configurable: Dashed / Dotted / Solid). Projected so their visual range matches the position bands.
When the two families are far apart in width, the state is decisive (|x⟩ if position is much tighter, |p⟩ if momentum is much tighter). When they are similar, the state is mixed.
Optional uncertainty-score candle tint
A toggleable layer recolours each candle based on how far the current Δx · Δp product deviates from the empirical floor ℏ̂. When the product is at the floor, the market is at its quantum-mechanical minimum — the most decisive setup; further from the floor means the market is "spending uncertainty" on both axes simultaneously.
Visual system
Position bands (solid, gradient fill optional).
Momentum bands (dashed / dotted / solid).
Mid line (style configurable).
State badge (right-side floating, configurable offset and size).
Background tint by state (configurable transparency, institutional default).
Optional candle re-tint by uncertainty score.
A locked Plasma palette (yellow position / magenta momentum / violet mixed on a deep-void ground) gives the chart a distinctive physics-inspired identity.
Dashboard
Monospaced table, positionable to any of nine corners, optional compact-no-header mode. Surfaces:
Current Δx and Δp values.
Δx · Δp product and its ratio to the ℏ̂ floor.
Δx / Δp ratio (drives the state).
Current state (|x⟩ / |p⟩ / |ψ⟩) with bar age.
Last state change with bars-ago.
Return mode (Log / Arithmetic) in use.
Alerts
Three alert conditions:
Pure Position State entry
Pure Momentum State entry
Mixed State return
How to read it
Two reads, in order of conviction:
Pure Momentum State |p⟩ entry is the script's directional commitment signal. Momentum has decisively exceeded position uncertainty — the move is real. Trend-following tools and breakout entries become high-conviction.
Pure Position State |x⟩ is the coil. Range has clamped down, direction is undecided. Reversion tools become high-conviction inside the band; the next state transition (back to |ψ⟩ or jumping to |p⟩) often produces a decisive breakout.
When Δx · Δp is close to ℏ̂ (the empirical floor) the market is at its most efficient — there is no slack in either axis to spare. These bars often coincide with the cleanest reversals and breakouts; the candle-tint layer is there specifically to highlight them.
Suggested settings
Defaults (position window 20, momentum window 20, hbar smoothing 100, k = 2.0, state threshold 0.40) are tuned for 15m–4H on liquid markets. For lower timeframes drop both windows to 10–14. For HTF (4H+) raise both to 30–50. Log returns are the theoretically-correct mode and the recommended default; switch to Arithmetic only if your instrument has trivially small price scale.
Originality
The implementation — the Δx / Δp dual-uncertainty pipeline, the EMA-smoothed empirical ℏ̂ floor, the three-state quantum-inspired classifier with bra-ket labelling, the dual-band projection with auto-scale, the uncertainty-score candle tint, the cooldown-debounced state machine, and the plasma palette — is JOAT-original. No third-party code reused. The Heisenberg principle is fundamental physics; the financial-market analogue and its implementation here are original work.
Limitations
The Heisenberg analogy is structural, not literal — markets do not obey the quantum-mechanical commutator relation; the script uses the concept of an inviolable joint-uncertainty floor as a market-regime classifier. The empirical floor ℏ̂ is estimated by EMA over a long window (default 100 bars) — on instruments with very short history the floor is approximate. State classification can flicker across the threshold; the cooldown is there to suppress this and is tunable.
—
-made with passion by jackofalltrades
Indicator

Arc Radius Trend [JOAT]Arc Radius Trend
Introduction
Arc Radius Trend is an open-source, overlay-based trend-following system that replaces the static ATR band of conventional supertrend-style indicators with a curved, acceleration-responsive radius. The band does not scale linearly with volatility alone — it also responds to how fast price is accelerating or decelerating, expanding when momentum surges and tightening when price action becomes uniform. This gives it a shape that mirrors how institutional participants view momentum: not as a constant envelope, but as one that breathes with the market.
The problem ART solves is over-sensitivity. Standard ATR-based trailing stops flip direction too freely during acceleration events, producing false exits at exactly the moment when the trend is strongest. By expanding the radius during acceleration, ART gives trends room to breathe without permanently widening the band for all conditions.
Core Concepts
1. Velocity and Acceleration from Price
ART computes price velocity as the EMA of the bar-to-bar change in close, and acceleration as the EMA of the change in velocity. Both use the same smoothing length. Acceleration is normalized by ATR so that it is dimensionless and comparable across instruments and timeframes:
velocity = ta.ema(ta.change(close), accelLength)
accel = ta.ema(ta.change(velocity), accelLength)
accelNorm = atr > 0 ? accel / atr : 0.0
2. Curved Radius Scaling
The base radius is ATR multiplied by a configurable multiplier. The acceleration norm is then used to scale that radius with a power function, creating a nonlinear expansion curve. The exponent (Curve Strength) controls how aggressively acceleration widens the band:
radiusScale = math.pow(1.0 + math.min(math.abs(accelNorm), 2.0), curvePower)
radius = atr * baseMult * radiusScale
3. Ratcheting Band Logic
The active band ratchets in the direction of the current trend. When price is above the band (bull), the lower band is preserved at its maximum achieved value, preventing it from retreating while the trend holds. The trend flips when price closes through the opposite band:
trend := close > upperBand ? 1 : close < lowerBand ? -1 : nz(trend , 1)
activeBand = trend == 1 ? lowerBand : upperBand
4. JOAT Institutional Expansion Layer
Each JOAT indicator carries a shared Expansion Layer — an adaptive spine built from price efficiency, Shannon entropy, Parkinson range volatility, and a market impact ratio. The spine tracks the dominant flow using an KAMA-style adaptive constant, and its width is scaled by ATR ratio, range volatility, and noise. Stress and calm rails extend beyond the outer context boundary and change color based on composite stress readings. Bull and bear regime shift nodes mark confirmed directional transitions in the expansion layer state.
Features
Curved radius expansion: Band width nonlinearly expands during price acceleration events
Ratcheting trend band: Lower band preserved on bull trend, upper band preserved on bear trend — no backward drift
Outer envelope: A second ring outside the active band provides an extended volatility reference
Trend-state candle coloring: Candles tinted to reflect current trend direction
Regime flip nodes: Circle markers on the active band at confirmed bull and bear regime transitions
JOAT Expansion Layer: Adaptive spine with efficiency/entropy scoring, context box, stress rails, calm rails, and shift nodes
Stress and calm telemetry rails: Outer halos that widen with impact ratio and volatility stress
Dashboard (top right): Live display of trend state, active band level, normalized acceleration, and last flip
All signals on confirmed bars: No repainting — all state changes fire only on barstate.isconfirmed
Input Parameters
Radius Model:
Radius ATR Length: ATR period for radius computation (default: 21)
Base Radius Multiplier: Baseline band width in ATR units (default: 2.4)
Acceleration Smoothing: EMA length for velocity and acceleration (default: 8)
Curve Strength: Power applied to acceleration scale — higher values expand the band more aggressively (default: 1.35)
Outer Envelope: Multiplier for the secondary outer ring (default: 1.65)
Display:
Trend-State Candles toggle
Show Dashboard toggle
JOAT Expansion Layer:
Efficiency, Entropy, Impact lengths; Adaptive Fast/Slow periods; Context Width
Spine, Context Box, Regime Nodes, Candle Tint, Projection Bars, and Opacity toggles
Independently configurable Bull, Bear, Neutral, and Accent colors
How to Use This Indicator
Step 1: Establish trend direction
Read the active band color and the dashboard. Green indicates bull trend; red indicates bear. Use this as the primary directional filter for entries.
Step 2: Watch for confirmed flip nodes
Circle markers at confirmed trend reversals mark the bar where the band direction changed. These are not entry signals — they are context anchors. Evaluate what triggered the flip (structural break, momentum loss) before acting.
Step 3: Use the outer envelope as a volatility reference
When price extends to the outer envelope, the market is in elevated acceleration. This is not necessarily a reversal signal — it may indicate trend continuation with excess momentum.
Step 4: Read the Expansion Layer spine
The JOAT spine color and state convey institutional flow independent of the ART band. Bull spine with bull ART band is high-confidence alignment. Divergence between the two (e.g., bull ART, neutral spine) suggests weakening conditions.
Indicator Limitations
Acceleration-driven radius expansion may produce very wide bands during high-velocity events, temporarily reducing the band's usefulness as a stop reference
The ratchet mechanism preserves the band in the trend direction — during prolonged consolidation, the band will not tighten until a directional break occurs
On very low-liquidity instruments, the ATR-based radius may be structurally noisy; increasing the ATR length reduces this
Arc Radius Trend does not generate entries. It identifies directional state and provides a trailing reference level
Originality Statement
Arc Radius Trend is original in its use of normalized price acceleration as a multiplicative, power-scaled modifier to ATR radius. Existing supertrend variants use static ATR multiples or linear volatility adjustments. The combination of:
Velocity → acceleration derivation applied to a curved radius (not a flat multiplier)
Power-function scaling that produces nonlinear radius expansion only during acceleration events
Ratcheting band logic that is conditioned on the curved radius (not a fixed channel)
An institutional expansion layer carrying efficiency, entropy, Parkinson range vol, and impact scoring as a second independent context layer
...makes ART a structurally distinct contribution rather than a parameter variation of existing published work.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any instrument. Trading involves substantial risk of loss. Past behavior of this indicator does not guarantee future results. All signals should be validated within a complete trading framework that includes risk management. The author is not responsible for trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Adaptive Divergence Core [JOAT]Adaptive Divergence Core is an open-source Pine Script v6 oscillator that combines HMA-smoothed RSI behavior, adaptive percentile bands, confirmed divergence lines, and regime fills. It is designed to make oscillator extremes relative to the current chart sample instead of relying only on fixed overbought and oversold levels.
The script is useful when standard oscillator thresholds are too rigid. A market can stay strong or weak for long periods. Adaptive Divergence Core recalculates upper and lower fields from recent oscillator distribution, then plots confirmed divergence only after both price and oscillator pivots are confirmed.
Core Concepts
1. HMA-RSI Core
The oscillator blends RSI on raw price, RSI on HMA-smoothed price, and an HMA-smoothed RSI value. It is centered around zero for easier bullish and bearish reading.
hmaSource = ta.hma(src, hmaLen)
rawRsi = ta.rsi(src, rsiLen)
rsiOnHma = ta.rsi(hmaSource, rsiLen)
smoothedRsi = ta.hma(rawRsi, smoothLen)
core = (rsiOnHma * 0.58 + smoothedRsi * 0.42) - 50.0
2. Adaptive Percentile Bands
The upper and lower bands are calculated from rolling percentiles of the oscillator. This lets the bands adapt to the recent distribution of momentum.
upperRaw = ta.percentile_nearest_rank(core, percentileLength, upperPercentile)
lowerRaw = ta.percentile_nearest_rank(core, percentileLength, lowerPercentile)
3. Extreme Fields
Additional 95th and 5th percentile fields help show deeper oscillator stretch zones beyond the primary adaptive bands.
4. Confirmed Divergence Detection
Bearish divergence requires price to form a higher confirmed pivot high while the oscillator forms a lower confirmed pivot high. Bullish divergence requires price to form a lower confirmed pivot low while the oscillator forms a higher confirmed pivot low.
5. Regime Fill
The script fills the oscillator against zero and against its guide line, making positive and negative regimes easy to read without large markers.
Features
HMA-RSI oscillator: Blends raw RSI, RSI on HMA, and smoothed RSI
Adaptive percentile bands: Upper and lower thresholds adjust to recent oscillator behavior
Extreme bands: Additional outer fields for deeper stretch readings
Confirmed divergence lines: Divergences plot only after price and oscillator pivots confirm
Divergence labels: Small S Div and B Div labels are placed near confirmed divergence lines
Divergence line cap: Old lines are deleted to respect object limits
Optional candle tint: Can color chart candles from the oscillator pane setting
Dashboard: Shows core value, bands, divergence counts, and current field
Alerts: Divergence, band entry, and band release conditions
Input Parameters
Core:
Source: Price source
RSI Length: Base RSI period
HMA Price Length: HMA source smoothing
HMA RSI Smooth: Smoothing for the raw RSI component
Adaptive Bands:
Percentile Length: Lookback used for adaptive thresholds
Upper Percentile: Upper adaptive threshold percentile
Lower Percentile: Lower adaptive threshold percentile
Divergence:
Divergence Left Bars / Right Bars: Pivot confirmation settings
Maximum Divergence Lines: Object cap for plotted divergence lines
Divergence Labels: Shows or hides compact divergence labels
Visuals:
Tint Candles: Optional candle tint from the oscillator state
Show Dashboard: Shows or hides the compact top-right pane dashboard
Palette: Selects the local JOAT color preset
How to Use This Indicator
Step 1: Read the Core Relative to Zero
Values above zero show positive oscillator regime. Values below zero show negative oscillator regime.
Step 2: Use Adaptive Bands
When core enters the upper or lower adaptive band, momentum is stretched relative to its recent sample.
Step 3: Evaluate Divergence After Confirmation
Divergence lines are delayed by pivot confirmation. This is intentional and avoids projecting unconfirmed pivots into the past.
Indicator Limitations
Divergences confirm late because pivots need right-side bars
Adaptive bands depend on the selected lookback and can shift over time
Divergence is context, not a complete trade plan
During strong trends, oscillator stretch can persist for many bars
Originality Statement
Adaptive Divergence Core is original in its HMA-RSI blend, rolling percentile threshold system, confirmed pivot divergence logic, and compact dashboard. It uses public Pine v6 functions to build a distinct oscillator workflow.
Disclaimer
This script is provided for educational and informational use only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Oscillator divergences can fail or remain early for extended periods. Always use independent analysis and proper risk management.
-Made with passion by jackofalltrades
Indicator

VWAP Gravity Bands [JOAT]VWAP Gravity Bands is an open-source Pine Script v6 overlay that builds an anchored VWAP field with a smoothed T3 basis and ATR ladder bands. It is designed to show how far price has traveled from a session, weekly, or monthly value anchor, then classify that distance as center pull, ladder drift, expansion, or outer-band reaction.
The script is useful when a trader wants the chart to show both location and behavior around VWAP. Instead of a single VWAP line, it creates a full distance map around the anchor, colors candles by their distance from the basis, and highlights confirmed outer reactions without using arrow-style signal clutter.
Core Concepts
1. Anchored VWAP Selection
The anchor can reset on the session, week, or month. The script uses timeframe.change() to produce the reset pulse and ta.vwap() to calculate the anchored value.
anchorTimeframe = anchorChoice == "Week" ? "1W" : anchorChoice == "Month" ? "1M" : "1D"
anchorPulse = timeframe.change(anchorTimeframe)
rawVwap = ta.vwap(sourceInput, anchorPulse)
2. T3 Basis Smoothing
Raw anchored VWAP can move sharply at the beginning of an anchor period. VWAP Gravity Bands runs that value through a T3-style smoother to create a cleaner basis while preserving responsiveness.
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
e3 = ta.ema(e2, length)
basis = c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3
3. ATR Ladder Bands
The band ladder is based on ATR, not fixed percentages. This lets the distance field expand and contract with the market's current movement range.
ladderUnit = atr * bandStep
upperOne = basis + ladderUnit
lowerOne = basis - ladderUnit
upperThree = basis + ladderUnit * 3.0
lowerThree = basis - ladderUnit * 3.0
4. Distance State Model
Distance from VWAP is normalized by the ladder unit. The script classifies large directional continuation as expansion and failed outer-band tests as reactions.
5. Gradient Candle Coloring
Candles can be colored by their normalized distance from VWAP. This helps identify when price is balanced around the anchor, drifting away from it, or stretched toward an outer band.
Features
Session, weekly, or monthly anchor: Select the VWAP reset period from inputs
T3-smoothed VWAP basis: Cleaner centerline for visual trend and location analysis
ATR ladder bands: Three upper and lower bands scale with current volatility
Expansion state detection: Highlights directional movement away from the basis
Outer reaction detection: Marks confirmed failed tests near the outer ladder
Distance candle mode: Optional gradient candles based on normalized VWAP distance
Dashboard: Shows anchor, state, distance, ATR step, and basis slope
Alert conditions: Upper reaction, lower reaction, upper expansion, and lower expansion
Input Parameters
Visual System:
Palette Preset: Selects color pair
Distance Candles: Enables candle coloring by VWAP distance
Dashboard: Shows top-right state panel
Raw VWAP: Displays the unsmoothed anchored VWAP
Outer Reaction Marks: Shows compact TP-style outer reaction markers
VWAP Gravity:
Anchor: Session, Week, or Month
Source: Price source used for VWAP
T3 Basis Length: Smoothing length for the VWAP basis
T3 Factor: Controls T3 smoothness
ATR Length: Volatility length used for ladder distance
ATR Step: Distance between ladder bands
Expansion Step: Threshold for expansion classification
Reaction Step: Threshold for outer reaction classification
How to Use This Indicator
Step 1: Choose the Anchor
Use Session for intraday context, Week for swing context, and Month for broader value location.
Step 2: Read Distance From Basis
The dashboard distance value shows how many ladder units price is away from the smoothed VWAP basis.
Step 3: Separate Expansion From Reaction
Expansion means price is moving away from VWAP with slope confirmation. Reaction means price tested an outer area and closed back inside.
Step 4: Use the Bands as Context
The bands are not automatic entry levels. They show location. Combine them with market structure, candle behavior, and risk planning.
Indicator Limitations
VWAP is volume-based and may behave differently on symbols with sparse volume
The first bars after a new anchor can be less stable because VWAP is starting a new sample
Reaction markers show a confirmed close back inside a zone, not a future reversal forecast
ATR bands adapt to volatility but can widen quickly after large bars
Originality Statement
VWAP Gravity Bands is original in how it combines anchored VWAP selection, T3 smoothing, ATR ladder geometry, distance-colored candles, and separate expansion/reaction states. It is built from public Pine v6 functions and original logic rather than copied indicator source.
Disclaimer
This script is provided for educational and informational use only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. VWAP location and band reactions can fail in trending, news-driven, or low-liquidity markets. Always use independent analysis and proper risk management.
-Made with passion by jackofalltrades
Indicator

Sentinel Cascade [JOAT]Sentinel Cascade
Sentinel Cascade is a three-stage adaptive Supertrend overlay. Where a classic Supertrend uses one fixed-ATR band, this script chains three Supertrend stages on top of each other and modulates each stage's width with a different regime signal. Bands tighten when the market is trending cleanly and widen when volatility expands or behavior turns mean-reverting.
What makes it different
A standard Supertrend gives one binary direction state. Sentinel Cascade gives three nested direction states that act like a confluence stack. Alignment of all three is the highest-conviction read.
The ATR feeding the Supertrend is smoothed through a Kaufman Efficiency Ratio. Trend-efficient periods get a faster ATR response. Choppy periods get a slower response.
Stage 2's width scales with a volume Z-score. High-volume bars widen the band so transient noise is less likely to flip the stage.
Stage 3's width scales with a lightweight two-point Hurst estimator (R/S over short and long windows). Trending Hurst above 0.5 widens. Mean-reverting Hurst below 0.5 tightens.
A Sentinel pulse fires only when Stage 3 flips AND Stage 2 confirms the new direction within three bars. A coincidence filter for higher-quality regime shifts.
How it works
Compute a basis price as the midpoint of the recent highest high and lowest low.
Compute a KAMA-smoothed ATR from the basis.
Build Stage 1 as a Supertrend on the basis using the KAMA-ATR and the Stage 1 factor.
Build Stage 2 as a Supertrend on Stage 1's output, with its factor multiplied by a clamped volume-Z modulator.
Build Stage 3 as a Supertrend on Stage 2's output, with its factor multiplied by a clamped Hurst modulator.
Track the Sentinel pulse, the ATR-percentile regime (squeeze / normal / expansion), and a running count of intraday Stage 3 flips.
Reading the chart
Three stacked trend lines. Stage 1 thickest, Stage 3 thinnest. Colors flip between bull and bear on direction changes.
A gradient ribbon between Stage 1 (or Stage 2 by user choice) and Stage 3 brightens when the stack is spread, fades when it converges.
An optional iridescent candle recolor scales tint with distance from Stage 3.
A horizontal sight-line projects Stage 3's current level back into history so past respect or rejection at that level is visible.
Persistent flip markers record each Stage 3 flip and retroactively append an OK or FAIL tag after a user-defined persistence window.
A right-edge state block summarizes alignment of all three stages plus the ATR squeeze and expansion read.
Signals
Stage 3 bull / bear shift (any flip)
Cascade alignment (all three stages agree)
Stage 2 retest / bounce inside an active trend
ATR squeeze and expansion entry (percentile-based)
All signals are gated on barstate.isconfirmed or barstate.ishistory. No future-bar referencing. No lookahead_on.
Inputs
Cascade : range basis length, ATR period, KAMA efficiency length, Stage 1 / 2 / 3 factors.
Regime : volume-Z lookback, Hurst short / long windows.
Visual : bullish color, bearish color, toggles for ribbon, sentinel pulse, iridescent candles, bounce markers, ribbon anchor.
On-chart : stage value labels, flip timeline labels, squeeze background tint, Stage 3 cloud, sight-line, state block, daily flip counter.
Dashboard : position, size, watermark row.
How traders use this
Trend continuation : take in the direction of Stage 3 when price retests Stage 2 from the trending side.
High-conviction entries : wait for cascade alignment (all three stages agree) before sizing up.
Mean-reversion fades : when Hurst is clearly below 0.5 and a Stage 3 flip prints near recent extremes, the new trend is statistically less likely to persist.
Volatility context : ATR percentile regime tells you whether the move is happening in a compressed, normal, or extended volatility environment. Sizing should account for that.
Limitations
The two-point Hurst estimator is a fast approximation, not the full rescaled-range statistic. It is monotonically meaningful but is not a precise persistence coefficient.
Like every Supertrend variant, this is a trend-following construct. It is best on instruments with clear directional regimes and worst in extended choppy ranges.
Pivots and percentile-based regime classifications need warm-up bars before their values stabilize.
Past behavior is not a guarantee of future behavior. No indicator can remove market uncertainty.
Compatibility
Pine Script v6, single-file open-source indicator. Works on any symbol and any timeframe. Uses no request.security calls. Non-repainting beyond the normal Supertrend right-bar reactivity inherent to band ratchet logic.
Defaults
Mint bullish color, red bearish color, top-right medium dashboard, all on-chart visualizations on. Open the inputs panel to tune for your instrument or to declutter for screenshots.
Indicator

Orion Regression Field [JOAT]Orion Regression Field
Introduction
Orion Regression Field builds a weighted regression valuation field with standard error bands, curvature options, compression detection, and reprice signals.
This open-source indicator is designed as a context tool, not a standalone trading system. It focuses on explaining the current market state with restrained visuals and confirmed-bar logic where signals are used.
Core Concepts
1. Weighted Regression
Recent bars can receive more influence while still preserving a full model window.
2. Standard Error Bands
Inner and outer bands show statistical distance from the modeled path.
3. Curvature and Confidence
Optional curvature and R2-style confidence control when the field is considered reliable.
4. Pinch and Reprice
Compression and outer-band reactions create filtered reprice events.
mid = weightedRegression(close, len); band = standardError * multiplier
Features
Weighted regression midline
Inner and outer SEE bands
Optional curvature
Pinch shading and projection field
Filtered reprice labels
Input Parameters
Regression window and projection bars
Curvature toggle and weight floor
Minimum R2 confidence
Inner and outer band multipliers
Pinch ratio and cooldown
How to Use This Script
Use the field as statistical fair-value context. Outer band interaction means stretch, not automatic reversal.
Limitations
The script uses historical OHLCV data and cannot know future prices.
Signals and states can be late during fast reversals because confirmed-bar logic is used to reduce repainting.
Model outputs should be interpreted with market context, risk controls, and independent analysis.
No visual state should be treated as a certain trade outcome.
Originality Statement
Orion is original in combining weighted regression, curvature, standard error fields, compression context, and filtered reprice logic.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any financial instrument. All calculations are derived from historical market data and may produce inaccurate readings in some market conditions. No indicator can predict future market behavior. Use proper risk management and independent judgment.
-Made with passion by jackofalltrades
Indicator

Nexus Kinetic Reactor [JOAT]Nexus Kinetic Reactor
Introduction
Nexus Kinetic Reactor estimates price as a noisy state process. It tracks state, velocity, uncertainty, confidence, and optional projection cones.
This open-source indicator is designed as a context tool, not a standalone trading system. It focuses on explaining the current market state with restrained visuals and confirmed-bar logic where signals are used.
Core Concepts
1. Recursive State Estimate
A smoothing lambda updates the estimated price state bar by bar.
2. Velocity Regime
Changes in the state estimate create velocity and acceleration-style context.
3. Uncertainty Bands
Noise windows and sigma bands show how uncertain the current estimate is.
4. Confidence Gate
Signals require tracking confidence and expectancy thresholds before labels appear.
state := state + lambdaAdjustment * (price - state)
Features
Recursive price-state estimator
Velocity and acceleration regime logic
Uncertainty bands
Projection cone
Blocked signal markers and dashboard
Input Parameters
Smoothing lambda and noise window
ATR length and velocity threshold
Minimum confidence and expectancy
Band sigma and projection bars
Cone, candle, and panel toggles
How to Use This Script
Use the state estimate and uncertainty bands as kinetic context. Labels only appear when the model clears confidence and expectancy gates.
Limitations
The script uses historical OHLCV data and cannot know future prices.
Signals and states can be late during fast reversals because confirmed-bar logic is used to reduce repainting.
Model outputs should be interpreted with market context, risk controls, and independent analysis.
No visual state should be treated as a certain trade outcome.
Originality Statement
Nexus is original in combining state estimation, velocity gating, uncertainty bands, expectancy filtering, and projection visualization.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any financial instrument. All calculations are derived from historical market data and may produce inaccurate readings in some market conditions. No indicator can predict future market behavior. Use proper risk management and independent judgment.
-Made with passion by jackofalltrades
Indicator

Aurelian Consensus Bands [JOAT]Aurelian Consensus Bands
Introduction
Aurelian Consensus Bands is an open-source price consensus map built around a log-volume profile, dynamic consensus bands, VWAP context, and confirmed-bar signal logic. It is designed to answer a specific question: where is price trading relative to the market's recent volume-weighted agreement zone, and is that move supported by session pressure?
The script plots VPOC, consensus area, boundary bands, session VWAP deviation shells, a dynamic volume node, right-side price rails, managed signal boxes, candle coloring, and a compact top-right dashboard. Its goal is not to predict the future. It provides a structured chart layer for reading acceptance, rejection, and directional pressure around consensus levels.
Core Concepts
1. Log-Volume Consensus Profile
The script builds a rolling profile on a logarithmic price canvas. Recent bars contribute volume across high-low rows, with recency weighting applied before the profile is converted into levels. This reduces sensitivity to one-off spikes while preserving important volume clusters.
// Conceptual summary
// volume is distributed across log-price rows
// rows are then analyzed for VPOC, mean, and stdev bands
2. VPOC, CA, and Boundary Band
The engine extracts a volume point of control, consensus area high/low, and wider boundary bands. The midpoint of the consensus area and the VPOC can be blended into the active anchor. Price displacement from that anchor is normalized so the indicator can classify whether price is inside, above, or below the agreement zone.
3. Dual-Anchor Coherence
Aurelian compares the VPOC view and consensus-area midpoint view. Signals are only stronger when both views agree. If the two anchors conflict, the coherence score falls and the dashboard shows weaker context.
4. VWAP and Session Pressure
The script adds session VWAP, VWAP deviation shells, synthetic delta pressure, and a dynamic volume node. Qualified signals require more than a simple cross; they also consider whether VWAP and pressure agree with the band event.
5. Right-Side Price Rails and Signal Box
The current VPOC, anchor, consensus levels, VWAP, and dynamic node are projected to the right edge with price labels. Qualified signals can also create a managed visual box with entry, stop, T1, and T2 levels based on ATR and planned R multiples.
Features
Rolling log-volume profile: Builds VPOC, consensus area, and boundary bands from recent price-volume structure
Dual-anchor coherence filter: Compares VPOC and consensus midpoint before qualifying signals
VWAP deviation shells: Adds session VWAP context and upper/lower deviation bands
Dynamic volume node: Tracks a lighter-weight volume anchor for current conditions
Candle color blending: Colors bars using consensus direction and institutional context strength
Qualified signal markers: Uses clean dots/squares rather than arrows or retail-style markers
Managed signal box: Projects entry, stop, T1, and T2 for visual planning only
Right-side rails: Labels VPOC, anchor, CA high/low, VWAP, and node prices at the chart edge
Top-right dashboard: Shows mode, bias, coherence, score, VWAP state, delta, node, quality, and state
Confirmed-bar logic: Main signal events are gated on confirmed bars
Input Parameters
Profile Core:
Profile Rows controls profile resolution
Profile Lookback controls how much recent history is used
Recency Weight Span controls how quickly old bars lose influence
Profile Smooth controls smoothing on extracted levels
Context and Rails:
Show Session VWAP and VWAP Deviation Shells
Show Dynamic Volume Node
Show Right-Side Price Rails
Show Managed Signal Box
Signal Stop ATR Mult and Target R settings
How to Use This Indicator
Step 1: Read the anchor
Use the VPOC and consensus anchor to understand where the market's recent agreement zone sits.
Step 2: Check coherence
Higher coherence means the VPOC and consensus midpoint agree. Lower coherence suggests mixed structure.
Step 3: Watch VWAP and node context
Signals carry more context when price, VWAP, delta, and the dynamic node point in the same direction.
Step 4: Use right-side rails
The rails provide forward reference levels for continuation, rejection, or mean reversion planning.
Indicator Limitations
The profile depends on the selected lookback and row resolution
Signals are contextual, not standalone trade recommendations
Very low volume symbols may produce less reliable profile and delta readings
Confirmed-bar logic means signals appear after the bar closes, not before
Originality Statement
Aurelian combines a rolling log-volume consensus profile, dual-anchor coherence, session VWAP deviation context, synthetic pressure, dynamic node tracking, right-edge rails, and managed visual signal boxes in one open-source Pine v6 tool. The purpose is not to merge unrelated indicators, but to create a single acceptance/rejection framework around volume agreement and session context.
Disclaimer
This script is for educational and informational use only. It is not financial advice and does not ensure any trading outcome. Market behavior is uncertain, and all signals should be evaluated with risk management and independent judgment.
-Made with passion by jackofalltrades
Indicator

Volume Participation Curve [JOAT]Volume Participation Curve
Introduction
VPC Volume Participation Curve is an open-source volume seasonality indicator that compares current volume against historical participation for the same time bucket. It helps answer a simple but important question: is current activity meaningful compared with what usually happens at this time?
Instead of treating all volume bars equally, VPC builds recurring buckets by minute, hour, day, or month, then compares live volume against the expected bucket value. It also tracks session pace so traders can see whether the session is leading or lagging expected participation.
Core Concepts
1. Time-Bucketed Expected Volume
The indicator builds historical volume samples by time bucket. Auto mode chooses practical buckets based on the chart timeframe.
2. Median or Mean Summary
Expected volume can be calculated by median or mean. Median is the default because it is more robust against abnormal spikes.
3. Participation Ratio
The main curve is current smoothed volume divided by expected volume. A value above 1.0 means current activity is above expectation.
4. Session Pace
Session cumulative volume is compared with cumulative expected volume to determine whether the whole session is leading or lagging.
5. Regime Bands
Expansion and compression thresholds are shown as clean bands around the 1.0 baseline.
Features
Expected volume engine: Learns recurring volume behavior from historical buckets
Participation curve: Displays current volume relative to expected activity
Session pace curve: Shows whether cumulative session activity is ahead or behind
Expansion and compression bands: Identifies above-expected or below-expected participation
Dark-mode fills: Uses restrained green/red/neutral blends
Top-right dashboard: Shows bucket, participation, pace, surprise, growth, state, and sample count
Confirmed alerts: Includes expansion, compression, pace lead, and pace lag alerts
Input Parameters
Seasonality:
Historical Samples per Bucket
Bucket Mode: Auto, Minute, Hour, Day, or Month
Expected Value: Median or Mean
Curve:
Volume Smoothing
Session Pace Window
Visual:
Show Regime Bands
Show Pace Curve
Color Background
How to Use
Step 1: Read the participation curve relative to the 1.0 baseline.
Step 2: Treat readings above 1.2 as expansion context and readings below 0.8 as compression context.
Step 3: Confirm whether session pace agrees with the current bar's participation.
Step 4: Use the output as a participation filter for breakout, continuation, or reversal tools.
Limitations
New symbols or sparse histories may need time to build useful bucket samples
Unusual news or event-driven sessions can distort expected-volume comparisons
Volume reporting differs by asset class and exchange
This indicator does not predict direction; it measures participation context
Originality Statement
VPC is an original JOAT volume model combining time-bucketed expected volume, session pace, expansion/compression bands, and confirmed alerts in a Pine Script v6 pane indicator.
Disclaimer
This script is for educational and informational purposes only. It is not financial advice and does not guarantee future results. Trading involves risk, and users should apply their own risk management.
Made with passion by jackofalltrades
Indicator

Adaptive Forecast Bands [JOAT]Adaptive Forecast Bands
Introduction
Adaptive Forecast Bands is an open-source adaptive regression and mean-reversion framework. It estimates a live fair-value path from price, wraps that path in volatility-aware bands, and marks confirmed re-entry conditions only after the bar closes.
The problem this indicator solves is context around stretched price. A static moving average band can lag badly when volatility changes. Adaptive Forecast Bands uses a recursive regression engine, a live model error estimate, and an ATR blend so the envelope expands and contracts with current market behavior.
Core Concepts
1. Adaptive Regression Mean
The centerline is built from a persistent two-parameter regression state. The script uses normalized local time so the model does not depend on raw bar index growth over long histories.
forecastMean = beta0 + beta1 * xNorm
forecastErr = source - forecastMean
2. Error-Based Confidence Bands
Band width is derived from the model's exponentially weighted error plus an ATR component. This keeps the band reactive to both forecast error and realized volatility.
3. Confirmed Re-Entry Signals
The script arms a long or short setup when price reaches an outer band. A signal only prints when price confirms a re-entry back through the relevant band on `barstate.isconfirmed`.
4. Forecast Guide Lines
The right-edge guide projects the current regression slope forward for visual context. It is a guide, not a prediction, and is redrawn on the last bar to avoid object clutter.
Features
Adaptive fair-value line: Recursive regression centerline based on current price behavior
Volatility-aware envelope: Error variance and ATR combine to form dynamic upper/lower bands
Confirmed long/short labels: Re-entry signals use closed-bar logic
Right-edge forecast guide: Dashed and dotted guide lines show current slope context
Top-right dashboard: Bias, confidence, band width, slope, guide state, and signal state
Alert conditions: Long and short confirmed re-entry events
Input Parameters
Model:
Source: Price source used by the model
Forgetting Factor: How quickly the model adapts to new price information
Regression Horizon: Normalization horizon for the regression slope
Band Multiplier: Multiplier applied to model error
ATR Blend: Extra realized-volatility padding in the band width
Rebase Interval: Periodic reset to keep the adaptive model stable
How to Use This Indicator
Step 1: Use the centerline as an adaptive fair-value reference.
Step 2: Treat outer-band touches as stretched conditions, not immediate entries.
Step 3: Wait for confirmed re-entry labels when enabled.
Step 4: Read the dashboard confidence and slope before interpreting the signal.
Indicator Limitations
The right-edge guide is a visualization of current model slope, not a forecast guarantee
Mean-reversion signals can underperform during strong directional trends
The model periodically rebases by design to reduce long-history numerical drift
Signals are confirmed on closed bars and can appear after the intrabar extreme occurred
Originality Statement
Adaptive Forecast Bands is an original JOAT implementation combining normalized recursive regression, error-based confidence bands, ATR blending, confirmed re-entry logic, and a compact interpretive dashboard. It does not copy third-party source code.
Disclaimer
This open-source 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 risk, and historical behavior does not ensure future results. Always use proper risk management.
-Made with passion by jackofalltrades
Indicator

Sentinel Trailing Bench [JOAT]Sentinel Trailing Bench
Introduction
Sentinel Trailing Bench is an open-source contextual trailing-stop overlay designed to behave differently from a standard ATR stop. It blends a sorted price-distribution engine, ATR protection, adaptive recovery behavior, and a benchmark rail so the trailing structure can react to both volatility and local value geometry.
The problem Sentinel solves is stop quality. Simple trailing stops either hug price too tightly in noisy conditions or drift too far away to be useful. Sentinel uses neighborhood structure from a sorted close buffer to estimate contextual bands, then mixes that with ATR logic and recovery tightening when the active side is under pressure.
Core Concepts
1. Sorted distribution engine
The script maintains a rolling close buffer and a sorted mirror of that buffer. This allows it to derive contextual neighborhood slices around the current price instead of relying on ATR alone.
2. Percentile-derived context bands
Supportive and defensive reference levels are estimated from the nearby distribution rather than only from recent swing points.
3. ATR-backed resilience
An ATR anchor remains part of the design so the stop still respects current volatility when distribution structure becomes thin or unstable.
4. Recovery tightening
If price moves materially against the active side relative to the last switch price, the adaptive rail is pulled closer to price to avoid stale trailing behavior.
5. Institutional bench display
The overlay shows the active stop, a benchmark line, the adaptive rail, directional clouding, candle tinting, and a compact dashboard that summarizes trend state, value state, stop gap, and recovery status.
Features
Distribution-aware trailing stop: Uses a sorted close engine and local neighborhood structure
ATR defensive anchor: Keeps the stop grounded in current volatility
Adaptive recovery pull: Tightens the guidance rail when the active side is stressed
Benchmark line and adaptive rail: Adds visual context beyond the raw stop itself
Directional cloud and candle tint: Clean visual bias cues without retail-style arrows
Top-right dashboard: Reports trend state, regime context, value position, stop gap, and recovery status
Confirmed-bar flips: Regime flips are confirmed on closed bars only
Input Parameters
Core:
Distribution Buffer
Neighborhood Radius
ATR Length
ATR Anchor
Benchmark Length
Context:
Distribution Blend
Recovery Threshold xATR
Recovery Pull
Anchor Smoothing
Visuals:
Show Benchmark
Show Adaptive Rail
Show Band Clouds
Color Candles
Show Dashboard
How to Use This Indicator
Step 1: Read the active side
The dashboard and cloud color show whether the stop is currently managing an ascent or descent state.
Step 2: Watch stop gap and rail gap
The dashboard shows how far price sits from the active stop and adaptive rail in ATR terms. This helps frame whether the trailing structure is loose or tight.
Step 3: Monitor recovery
If recovery becomes active, the stop structure is signaling that the current side is under stress and the rail is tightening.
Step 4: Use it as trade management context
Sentinel is most effective as a management tool layered onto entries generated elsewhere.
Indicator Limitations
Distribution-derived bands depend on the sample window and will evolve as new closes enter the buffer
In extremely fast conditions, any trailing stop can still gap beyond the intended exit area
Recovery tightening improves responsiveness but can also accelerate exits in choppy reversals
Originality Statement
Sentinel Trailing Bench is original in how it fuses sorted-distribution neighborhood structure, ATR resilience, and adaptive recovery behavior into one trailing-stop overlay. It is published because:
The stop uses local price distribution context instead of ATR alone
The recovery module changes behavior when the active side is materially under pressure
The benchmark, rail, cloud, and dashboard turn trailing logic into a full management framework rather than a single line
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice and does not guarantee future market behavior. Trailing stops can still be affected by volatility shocks, gaps, and structural changes in the market. Always use independent judgment and proper risk management.
Indicator

Cadence Reversion Cartography [JOAT]Cadence Reversion Cartography
Introduction
Cadence Reversion Cartography is an open-source mean-reversion and exhaustion overlay designed to locate stretched conditions around an EMA envelope and anchored VWAP framework. It focuses on mapping where price has moved too far from local balance, then grades whether a return toward value has enough supporting evidence to matter.
The problem this script solves is selective reversal timing. Price can stay overextended for longer than expected, so simple band-touch logic is not enough. Cadence Reversion Cartography combines envelope stretch, VWAP stretch, RSI exhaustion, volume impulse, rejection-candle behavior, reclaim logic, and projected response boxes so the user can distinguish weak touches from stronger reversion candidates.
Core Concepts
1. Dual Stretch Model
Price is compared to both an EMA deviation envelope and an anchored VWAP deviation layer. A long-side exhaustion condition requires price to stretch below both lower references. A short-side exhaustion condition requires price to stretch above both upper references.
2. Exhaustion Quality Filters
RSI can require oversold or overbought context, volume can require impulse relative to average participation, and candle structure can require a visible rejection profile.
3. Reclaim And Signal Grading
A setup becomes actionable only after price closes back inside the envelope on a confirmed bar. The script then scores the setup by counting how many filters aligned and promotes stronger signals to a prime grade.
4. Projection Mapping
When a setup forms, the script can draw a forward projection with a risk box, reward box, signal zone, and reclaim line. This is meant to show the structure of the reversion idea rather than acting as a promise of outcome.
Features
EMA reversion envelope: Basis plus statistical deviation bands
Anchored VWAP stretch layer: Secondary value reference around VWAP
RSI exhaustion filter: Optional momentum exhaustion gate
Volume impulse filter: Optional participation confirmation
Rejection-candle filter: Optional candle-structure confirmation
Signal grading: Standard and prime long or short responses
Signal zones and reclaim lines: On-chart response structure around the active setup
Risk and reward projection boxes: Optional forward mapping of stop and target structure
Context candle coloring: Candles can tint with stretch state
Dashboard: Displays stretch, setup bias, and active context
Input Parameters
Reversion Envelope:
Channel Length
Deviation Multiplier
VWAP Stretch Multiplier
Filters And Display:
RSI settings
Volume average and impulse multiplier
Rejection-candle requirement
Projection-box toggle, stop percent, reward multiple, projection length, and signal cooldown
Dashboard, background, candle-color, and signal-zone toggles
How to Use This Indicator
Step 1: Wait for price to stretch beyond both the EMA envelope and the VWAP stretch layer.
Step 2: Check whether RSI, volume, and rejection filters support the move.
Step 3: Wait for confirmed re-entry back inside the envelope instead of fading the first touch.
Step 4: Use the signal grade and projection structure to judge whether the setup is marginal or stronger.
Step 5: Use the basis and reclaim line as the first balance reference after entry.
Indicator Limitations
Strong directional trends can keep price stretched for extended periods and delay reversion
Volume-based confirmation is less meaningful on symbols with irregular volume reporting
Projection boxes are planning tools, not guaranteed outcomes
This script is designed for reversion analysis and is not intended to replace broader trend context
Originality Statement
Cadence Reversion Cartography is original in how it coordinates envelope stretch, VWAP stretch, filter-based exhaustion grading, and forward projection structure inside one reversion workflow. The components are combined to answer one analytical problem: not just whether price is stretched, but whether the stretch is mature enough to support a structured return toward value.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Reversion setups can fail during strong trends or regime expansion, so all signals should be used with independent confirmation and risk management.
-Made with passion by jackofalltrades
Indicator

Cartograph Bands [JOAT]Cartograph Bands
Introduction
Cartograph Bands is an open-source price-space mapping overlay that translates internal momentum and regime pressure into adaptive bands around price. Instead of displaying momentum in a separate pane and forcing the user to mentally translate it back into price context, the script projects a composite regime score directly into layered price envelopes.
The problem Cartograph Bands solves is disconnected interpretation. Oscillators can show strength or weakness, but they often fail to communicate where that state matters on the chart. Cartograph Bands closes that gap by converting internal regime intensity into inner, outer, and far price-space bands, then combining that with multi-timeframe confirmation and volatility-state transitions.
Core Concepts
1. Composite Momentum Engine
The script blends several internal measurements including RSI, CMO, ROC normalization, and slope behavior to create a bounded momentum/regime score. This reduces reliance on any single oscillator.
2. Price-Space Mapping
That composite score is mapped into adaptive offsets around price using ATR and standard deviation inputs. The result is a set of bands that express regime intensity as chart structure rather than as a separate panel line.
3. Layered Band Geometry
Three band families are used:
Inner bands for local equilibrium
Outer bands for state extension
Far bands for exceptional displacement
4. Non-Repainting Higher Timeframe Confirmation
Confirmed higher-timeframe values are requested using offset expressions and lookahead handling intended to avoid future leakage on historical bars.
5. Compression and Expansion State Tracking
Cartograph Bands also classifies whether the current market state is compressing or expanding, which gives context to outer-band tests and re-entry events.
Features
Composite momentum model: Multiple internal regime factors instead of one oscillator
Mapped price-space bands: Regime intensity projected directly onto chart structure
Inner, outer, and far layers: Different depths of price displacement
MTF confirmation dashboard: Top-right summary with higher-timeframe agreement context
Compression and expansion tracking: Identifies volatility-state transitions
Outer-band re-entry events: Useful for exhaustion or reacquisition studies
State candle tinting: Visual context without heavy marker clutter
Gradient cloud system: Layered institutional-style fills
Confirmed-signal mode: Optional bar-close confirmation behavior
Alertconditions: Regime flips, re-entry, expansion, compression, and MTF conflict
How to Use This Indicator
Step 1: Read the Band State
Price inside the inner structure implies local balance. Sustained travel into outer and far layers implies stronger directional pressure.
Step 2: Check the Dashboard
Use the dashboard to confirm whether the chart-timeframe state aligns with higher-timeframe conditions.
Step 3: Watch Re-entry Behavior
Re-entry from outside the outer band can highlight exhaustion or failed extension, especially when expansion begins to fade.
Step 4: Use Compression and Expansion as Context
A compression state reduces the importance of directional interpretation. Expansion after compression matters more than random outer-band wandering.
Indicator Limitations
The mapping is adaptive, so band distance changes with symbol volatility
Higher-timeframe context is intentionally confirmed and may feel slower than live-developing HTF tools
Band interaction alone should not be treated as a complete trade system
The script maps internal regime state into price context, but it does not forecast exact reversal points
Originality Statement
Cartograph Bands is original in the way it blends multiple internal regime measurements and projects them into layered price-space geometry. Its value is not just an oscillator or just bands, but the interaction between regime scoring, mapped offsets, MTF confirmation, and state transitions.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. All mapped bands are analytical references derived from historical price behavior and should be used with sound judgment and risk management.
- Made with passion by jackofalltrades
Indicator

Charter Execution Model [JOAT]Charter Execution Model
Introduction
Charter Execution Model is an open-source Pine Script v6 strategy that integrates the broader JOAT framework into a single non-repainting execution model. It does not rely on one trigger alone. Instead, it uses a hierarchy of filters: regime eligibility first, liquidity bias second, structure confirmation third, and imbalance or displacement triggers fourth. Only when those layers align does the strategy consider taking a trade.
The goal of this strategy is not to present a magical black box. It is to model a disciplined decision stack. Many strategies fail because they treat every trigger the same way regardless of context. Charter Execution Model is built around the idea that context should do most of the work. If the market is not in a mature directional regime, if the liquidity ledger is not skewed appropriately, or if local structure does not agree, then a trigger by itself is not enough.
The script uses realistic execution controls directly in the declaration: fixed initial capital, percent-of-equity sizing, non-zero commission, non-zero slippage, no pyramiding, confirmed-bar evaluation, and orders processed on close. Those defaults are intended to make the backtest more responsible and easier to interpret than an overly aggressive model with idealized execution assumptions.
This strategy is best understood as a research framework. It can help traders study how context filters, imbalance triggers, continuation pressure, and ATR-based exits behave when combined inside one model. It is not a guarantee of future profitability, and it should be evaluated thoughtfully across symbols, regimes, and timeframes.
Core Concepts
1. Regime Eligibility Layer
The first gate determines whether the market is mature enough to even consider longs or shorts. It uses a directional midpoint and structural midpoint built from EMA and HMA references, then normalizes their spread by ATR and combines that with heat positioning inside the recent price range.
bool bullRegime = directionalMid > structuralMid
float regimeStrength = clamp(spreadNorm * 0.60 + math.abs(heatNorm - 50.0) * 0.80, 0, 100)
bool matureBullRegime = bullRegime and regimeStrength >= regimeFloor and regimePersistence >= 12
That means the strategy does not allow triggers to fire in weak or undeveloped directional states. Context comes first.
2. Liquidity Bias Layer
Next, the strategy builds a rolling bin-based liquidity distribution and compares buy-side volume versus sell-side volume. A long context requires positive liquidity bias and price above the reference EMA. A short context requires negative liquidity bias and price below the reference EMA.
This adds an inventory-style filter so the strategy is not trading purely off price shape.
3. Structure Filter
Local structure is confirmed using pivot-derived reference points and a rolling swing lookback. Longs require price to hold above recent swing support and above the slow EMA. Shorts require the inverse.
This helps reduce cases where a regime and liquidity reading are still positive or negative, but local price structure has already started to degrade.
4. Trigger Stack
Once context aligns, the strategy allows three possible triggers: a confirmed imbalance gap, a displacement shift, or an optional continuation retest into the directional midpoint. This means the model can participate through both fresh displacement and controlled continuation.
Importantly, the trigger layer does not override the context layer. It only becomes active when the earlier filters already agree.
5. ATR-Based Exit Framework
Risk management is handled through ATR-sensitive invalidation and two fixed-R profit targets. When the regime is especially strong, an optional trailing rule tightens the stop using recent local price action.
This creates a trade structure with a defined stop, two staged exits, and optional adaptation in stronger conditions without relying on unrealistic all-in-all-out assumptions.
Features
Four-layer decision hierarchy: Regime, liquidity, structure, and trigger conditions must align before entry
Confirmed-bar logic: Entries are evaluated only on confirmed bars to avoid repaint-style execution logic
Non-zero execution costs: Includes realistic commission and slippage in the strategy declaration
No pyramiding: Prevents stacking multiple positions in the same direction
Partial profit framework: Uses two independent `strategy.exit()` orders to scale out at separate R multiples
Optional continuation triggers: Allows pullback-style participation inside already qualified context
Optional strong-regime trailing stop: Tightens exits when regime strength is elevated
Dashboard summary: Displays regime, liquidity bias, pressure, trigger state, position state, stop settings, and current risk fields
Clean visual overlay: Shows directional and structural mids with contextual fill directly on the chart
Open-source research design: Lets users inspect and adapt the full context-to-execution hierarchy
Default Strategy Properties
Initial capital: `100000` is used as the default starting capital in the script declaration
Position sizing: Orders use `strategy.percent_of_equity` with a default quantity of `10`, meaning the strategy allocates 10% of equity per position by default
Commission: Commission is modeled as `0.02%` per trade
Slippage: Slippage is modeled as `2` ticks
Pyramiding: Pyramiding is set to `0`, so the model does not stack entries in the same direction
Order timing: `process_orders_on_close = true` and `calc_on_every_tick = false`, so the model evaluates and processes with confirmed-bar logic
Input Parameters
Regime:
Fast Length: Controls the fast directional reference
Slow Length: Controls the slow structural reference
ATR Length: Sets the ATR normalization length
Heat Window: Defines the range window for heat normalization
Regime Strength Floor: Sets the minimum maturity threshold for context eligibility
Liquidity Filter:
Liquidity Lookback: Sets the rolling history used for the liquidity model
Liquidity Bins: Controls the liquidity distribution granularity
Liquidity Bias Floor: Sets the minimum skew required before liquidity counts as directional
Structure Filter:
Pivot Length: Sets pivot confirmation sensitivity
Swing Lookback: Defines the rolling structural context window
Trigger Stack:
Gap Sigma Filter: Sets the minimum imbalance displacement required for gap-style triggers
Shift Momentum Length: Controls the raw momentum lookback
Shift RSI Length: Controls the pressure RSI smoothing
Displacement Floor: Sets the threshold for shift-style triggers
Allow Continuation Triggers: Enables or disables pullback continuation entries
Continuation Pressure Floor: Sets the minimum pressure level for continuation logic
Risk Management:
Stop ATR Multiplier: Scales the ATR contribution to stop placement
Target 1 R: Sets the first partial profit target
Target 2 R: Sets the second partial profit target
Trail In Strong Regime: Enables optional trailing behavior when regime strength is elevated
How to Use This Strategy
Step 1: Evaluate Context Before Results
Begin by understanding what the strategy is trying to do rather than focusing immediately on performance output. It only wants to trade when a mature regime, directional liquidity bias, and confirming structure are all aligned. If that idea does not match your own process, the results will be hard to interpret.
Step 2: Study Trigger Type Distribution
Not all entries come from the same source. Some come from imbalance gaps, some from displacement shifts, and some from continuation pressure. Understanding which trigger type dominates on a given market can be more useful than simply checking net profit.
Step 3: Understand The Exit Framework
The model uses a staged exit approach. Half the position is managed toward the first target and half toward the second. A stop is always active, and strong-regime trailing can tighten the exit path further. Review this logic carefully before drawing conclusions from the backtest.
Step 4: Keep Expectations Realistic
The strategy includes commission, slippage, confirmed-bar logic, and no pyramiding, but that still does not make the backtest “real.” Results depend on the instrument, the timeframe, the data sample, and how well the context assumptions fit the market studied.
Step 5: Use It As A Research Framework
Charter Execution Model is best used as a framework for studying context-first execution logic. Adapt the filters, test the thresholds, and evaluate how the hierarchy behaves across different environments rather than assuming the defaults are universally optimal.
Strategy Limitations
The strategy relies on historical context filters that may adapt poorly to sudden regime shifts or atypical event-driven conditions
Liquidity bias is based on bar-level directional volume attribution rather than true exchange order-flow data
Processing orders on close simplifies execution and can differ materially from real fills on fast markets
Backtest results are sensitive to parameter choices, timeframe selection, instrument behavior, and dataset length
Originality Statement
Charter Execution Model is original in the way it organizes multiple analytical layers into a disciplined execution hierarchy. It is not published as a simple indicator mashup strategy:
It requires mature regime, directional liquidity bias, and local structure to align before any trigger is allowed to matter
It supports multiple trigger archetypes inside the same context framework rather than treating one trigger as universally sufficient
It combines staged exits, ATR-sensitive invalidation, and optional strong-regime trailing inside a consistent risk model
It exposes its internal context state on-chart so users can study why the strategy is active or inactive at any point
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Backtest results depend on assumptions, data quality, slippage, commission, bar resolution, and market conditions. Past performance does not guarantee future results. Always use independent judgment and proper risk management before using any strategy logic in live markets.
-Made with passion by jackofalltrades
Strategy

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

Volatility Prism [JOAT]Volatility Prism
Introduction
Volatility Prism is an open-source dual Bollinger Band envelope system with percentile-based bandwidth squeeze detection and Stochastic RSI confirmation. It renders two independent envelopes — an inner band at a configurable standard deviation multiplier and an outer band at a wider multiplier — with gradient fills that color dynamically based on whether price is in a bullish or bearish position relative to the moving average basis. When the bandwidth compresses to a historically low percentile, a squeeze state is declared. When the squeeze releases, an expansion signal fires.
The problem Volatility Prism solves is that volatility states are cyclical: periods of compression (squeeze) reliably precede periods of expansion (breakout), and the direction of the breakout is where the opportunity lies. By combining a statistically-based squeeze detector — which uses percentile thresholds rather than fixed bandwidth levels — with Stochastic RSI extreme confirmation, Volatility Prism identifies both the compression state and the likely directional bias of the coming expansion simultaneously.
Core Concepts
1. Dual Bollinger Band Structure
Two separate Bollinger Band pairs share the same basis (SMA of the source) but use different standard deviation multipliers. The inner band (default 2.0x) is the primary envelope. The outer band (default 3.0x) defines the extreme extension zone. Price trading beyond the inner band but inside the outer band is in the elevated zone. Price trading beyond the outer band is in a statistical extreme:
basis = ta.sma(src, bbLen)
dev = ta.stdev(src, bbLen)
upper1 = basis + bbMult1 * dev // Inner upper
lower1 = basis - bbMult1 * dev // Inner lower
upper2 = basis + bbMult2 * dev // Outer upper
lower2 = basis - bbMult2 * dev // Outer lower
The trend bias is determined by whether the close is above or below the basis. When bullish, all envelope lines and fills render in the bullish color. When bearish, they render in the bearish color. This makes the trend state immediately visible from the envelope color alone.
2. Gradient Envelope Fills
Four gradient fills create the visual envelope structure. The inner fills gradient from a near-opaque shade at the band edge to a nearly transparent shade at the basis, creating a density effect that visually represents how far price is from the center. The outer fills extend this gradient into the extreme zone at reduced opacity, cleanly separating the normal, elevated, and extreme price zones:
fill(basisPlot, upper1Plot, upper1, basis, color.new(envCol, 85), color.new(envCol, 98), "Upper Inner Fill")
fill(upper1Plot, upper2Plot, upper2, upper1, color.new(envCol, 75), color.new(envCol, 88), "Upper Outer Fill")
3. Percentile-Based Bandwidth Squeeze Detection
The bandwidth (the width of the inner band as a percentage of the basis) is computed on each bar and added to a rolling history array of configurable length. The current bandwidth is compared to the percentile threshold of that history — if the current bandwidth is below the configured percentile (default 15th percentile), the squeeze state is active:
bandwidth = basis > 0 ? (upper1 - lower1) / basis * 100 : 0.0
// Sort history and find threshold at configured percentile
threshIdx = int(array.size(sorted) * sqzPctile / 100) - 1
sqzThreshold = array.get(sorted, threshIdx)
isSqueezing = bandwidth <= sqzThreshold
This approach adapts to the instrument and timeframe automatically — a 15th percentile squeeze on a low-volatility bond future and on a high-volatility crypto asset will both correctly identify when that specific instrument is in an unusually compressed state relative to its own history.
4. Stochastic RSI Extreme Confirmation
The Stochastic RSI (an oscillator that applies Stochastic logic to RSI values) provides momentum extreme confirmation. Overbought and oversold readings from the K and D lines confirm when band extremes coincide with momentum extremes, strengthening band rejection signals:
rsiVal = ta.rsi(src, rsiLen)
stochVal = ta.stoch(rsiVal, rsiVal, rsiVal, stochLen)
kLine = ta.sma(stochVal, smoothK)
dLine = ta.sma(kLine, smoothD)
stochOB = kLine > upperLim and dLine > upperLim // Overbought
stochOS = kLine < lowerLim and dLine < lowerLim // Oversold
5. Band Rejection Signals and Squeeze Breakout
Three signal types are generated. Bullish band rejection fires when price was below the inner lower band on the previous bar and closes back above it, with Stochastic RSI confirming oversold — a failed breakdown with momentum confirmation. Bearish band rejection fires on the symmetric condition above the inner upper band. Squeeze Breakout fires on the first bar that transitions from squeeze to non-squeeze state — the moment the bandwidth begins expanding:
bearRejection = close > upper1 and close <= upper1 and stochOB
bullRejection = close < lower1 and close >= lower1 and stochOS
sqzBreakout = isSqueezing and not isSqueezing
6. Band Price Labels at the Right Edge
All five band lines (U2, U1, MA, L1, L2) receive price labels at the right edge of the chart. These labels update every bar to show the current price of each level, eliminating the need to hover over lines or read the y-axis to determine band values:
if barstate.islast and showBandLbls
lblU2 := label.new(bar_index + 2, upper2,
"U2 " + str.tostring(upper2, format.mintick),
style=label.style_label_right, ...)
Features
Dual Bollinger Band envelopes: Inner and outer bands with independently configurable multipliers
Adaptive gradient fills: Four gradient fills (inner upper, inner lower, outer upper, outer lower) color dynamically with trend bias
Dynamic trend coloring: All envelope elements switch between bullish and bearish colors based on close vs. basis
Percentile-based squeeze detection: Bandwidth compared to a configurable percentile of its rolling history — adapts to any instrument's volatility profile
Configurable squeeze lookback: Rolling bandwidth history window from 20 to 500 bars
Squeeze background shading: Optional chart background shading during active squeeze state
Stochastic RSI confirmation: K and D line extreme zones confirm band rejection signal quality
Three signal types: Bull Rejection, Bear Rejection, and Squeeze Breakout markers with distinct shapes
Band price labels at right edge: Live price labels for all five band levels (U2, U1, MA, L1, L2) at bar_index + 2
Institutional dashboard (top right): 11-row table with Volatility state (SQUEEZE/EXPANDING), Bandwidth %, Trend, StochRSI state, K and D values, Basis price, and Envelope range
Fully configurable inputs: BB length, both multipliers, squeeze lookback and percentile, Stochastic RSI parameters, and all colors independently adjustable
Alerts: Bull Rejection, Bear Rejection, Squeeze Breakout, and Squeeze Entry alertconditions
Input Parameters
Bollinger Bands:
Source: Price source (default: close)
BB Length: MA and standard deviation period (default: 20)
Inner Mult: Standard deviation multiplier for inner bands (default: 2.0)
Outer Mult: Standard deviation multiplier for outer bands (default: 3.0)
Squeeze Detection:
Bandwidth Lookback: Rolling history window for percentile calculation (default: 120 bars)
Squeeze Percentile: Bandwidth percentile below which squeeze is active (default: 15th)
Stochastic RSI:
K Smoothing (default: 3), D Smoothing (default: 3)
RSI Length (default: 14), Stochastic Length (default: 14)
Overbought level (default: 80), Oversold level (default: 20)
Display:
Show Dashboard toggle
Squeeze Background toggle
Band Price Labels toggle
Bullish Envelope color, Bearish Envelope color, Basis Line color, Squeeze Background color
How to Use This Indicator
Step 1: Identify the Volatility State
The dashboard's Volatility row shows SQUEEZE (yellow) or EXPANDING (gray). When SQUEEZE is active, the chart background shades yellow. A squeeze state means bandwidth has compressed to a historically low percentile — the market is loading energy for a directional move.
Step 2: Watch for Squeeze Breakout Signals
The cross (x) marker appears at the first bar that exits a squeeze. This is the moment bandwidth begins expanding. The direction of the breakout bar (bullish or bearish candle) combined with the trend color of the envelope provides the directional lean for the expansion phase.
Step 3: Interpret Envelope Color for Trend Bias
When all envelope elements are teal, price is above the basis — bullish bias. When all elements are orange, price is below the basis — bearish bias. Use the envelope color as a continuous trend indicator overlaid directly on the price.
Step 4: React to Band Rejection Diamonds
Diamond markers at the band edge indicate price failed to sustain a move beyond the inner band and recovered inside, with Stochastic RSI confirming the extreme. These are mean-reversion entry signals — price rejected the statistical extreme with momentum confirmation.
Step 5: Reference Band Price Labels
The right-edge labels show the current price of each band level. Use these when planning take-profit targets (opposite band) or stop-loss placement (outer band beyond entry) without needing to manually read prices from band lines.
Indicator Limitations
The squeeze detector requires a minimum of sqzLen bars of bandwidth history to activate. On short charts or immediately after the indicator is applied, the squeeze state will not register until enough history is accumulated
The percentile-based squeeze threshold adapts to the lookback window. A longer lookback produces a more stable threshold; a shorter lookback adapts faster but may produce more frequent squeeze entries and exits
Band rejection signals require the close to recover inside the band on the bar immediately following the outside close. Multi-bar breakouts that recover more slowly are not detected as rejections
Squeeze Breakout markers fire on the first bar exiting a squeeze regardless of candle size or direction. They do not independently confirm the breakout direction — the envelope trend color and Stochastic RSI must be used to assess directional bias
Stochastic RSI is a double-transformed oscillator (RSI → Stochastic). It can reach and hold extreme levels for extended periods in strong trends, producing frequent overbought or oversold readings that reduce the specificity of band rejection confirmation
Originality Statement
Volatility Prism is original in its adaptive, percentile-based squeeze detection combined with a dual-envelope gradient structure and Stochastic RSI extreme confirmation with right-edge band price labels. This indicator is published because:
Using the rolling percentile of bandwidth history — rather than fixed bandwidth values or the classic Keltner Channel comparison method — for squeeze detection provides an instrument-adaptive and timeframe-adaptive threshold that requires no manual calibration
The dual-envelope structure (inner and outer bands) with four independent gradient fills that change color based on real-time trend bias creates a visually rich, information-dense chart overlay without adding separate indicator panes
The right-edge band price labels for all five band levels eliminate a common usability friction point in Bollinger Band analysis, where traders must hover over lines or estimate prices from the y-axis scale
The three-signal system (Bull Rejection, Bear Rejection, Squeeze Breakout) operating from two independent mechanisms (band geometry + Stochastic RSI for rejections, bandwidth percentile for breakout) provides distinct signal categories suited to different trading styles
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. Bollinger Bands and Stochastic RSI readings are historical statistical tools. Squeeze states can persist for extended periods without producing a breakout, and breakouts can occur in either direction. Band rejection signals do not guarantee price will reverse from the band. 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

Sovereign Trend Strategy [JOAT]Sovereign Trend Strategy
Introduction
The Sovereign Trend Strategy is a systematic, rules-based trend-following strategy built on the SMEMA (SMA of EMA) crossover engine — a double-smoothed moving average system that removes the erratic noise of raw EMA crossovers while remaining faster to respond than pure SMA systems. It enters long and short trades on SMEMA fast/slow crossovers, applies four optional confirmation filters (ADX, RSI, volatility ratio, and baseline), and manages each trade through a full exit framework: stop loss, two take-profit levels with partial close at TP1, a dynamic trailing stop, a trend-reversal exit, and a maximum bars cap that forces turnover.
This is a strategy designed to trade constantly — the default configuration is tuned for maximum trade frequency across all assets and timeframes, with all optional filters disabled so that every valid SMEMA crossover generates a signal. Traders seeking higher-quality entries can enable the ADX, RSI, baseline, or volatility filters individually to raise the bar.
Core Concepts
SMEMA — Double-Smoothed Moving Average Engine
The SMEMA construction applies a simple moving average on top of an exponential moving average, producing a line that is more responsive than a plain SMA but smoother than a raw EMA:
smema(float src, int len) =>
ta.sma(ta.ema(src, len), len)
float fast = smema(close, smFast)
float slow = smema(close, smSlow)
float baseline = smema(close, smBase)
Three SMEMA lines are computed: a fast line (default length 2), a slow line (default length 5), and a longer baseline (default length 15). Crossovers between fast and slow generate the entry signals. The baseline provides an optional directional filter when enabled.
Entry Conditions
Long entries fire when the fast SMEMA crosses above the slow SMEMA with all active filters passing:
bool xUp = ta.crossover(fast, slow)
bool longOk = xUp and adxOk and rsiLongOk and volOk and baseOk
and warmed and inDateRange and barstate.isconfirmed and doLong
Short entries mirror this on downward crossovers. Entries only fire when there are no open trades (pyramiding disabled), ensuring clean one-trade-at-a-time management.
Trade Management Framework
Each trade uses ATR-based levels calculated at entry:
| Level | Default Multiplier | Purpose |
|-------|-------------------|---------|
| Stop Loss | 1.8× ATR | Full position stop |
| TP1 | 2.5× ATR | 50% partial close, breakeven stop move |
| TP2 | 4.5× ATR | Full position close |
| Trailing Stop | 1.5× ATR | Activated after TP1 hit |
After TP1 triggers, the stop-loss is moved to the entry price (breakeven). The trailing stop then follows price by 1.5× ATR, locking in profit while letting the remaining position run toward TP2. This staged approach captures quick-reaction profits at TP1 and rides momentum toward TP2.
Six Exit Paths
// Priority order for long exits:
// 1. Stop Loss — low <= entrySL
// 2. TP1 — high >= entryTP1 (50% partial, breakeven stop set)
// 3. TP2 — high >= entryTP2 (full close after TP1 hit)
// 4. Trailing — low <= trlStop (after TP1 hit)
// 5. Reversal — fast SMEMA crosses below slow (xDn confirmed)
// 6. Max Bars — barsInTrd >= maxBars
The max bars exit (default 10) is particularly important for trade frequency — it guarantees no position is held longer than 10 bars regardless of whether any other exit triggers, creating rapid capital recycling and enabling 100+ trade sample sizes even on daily timeframes.
Optional Confirmation Filters
All four filters are disabled by default and can be enabled individually:
ADX Filter — requires ADX above a minimum threshold before entry. Prevents entries in ranging, low-momentum markets.
RSI Filter — requires RSI above the bull minimum for longs (default 52) or below the bear maximum for shorts (default 48). Confirms momentum alignment with direction.
Volatility Ratio Filter — requires current ATR to be at least a configurable fraction of its own SMA. Filters out squeeze conditions where ATR is compressed.
Baseline Filter — requires close to be above the baseline SMEMA for longs and below for shorts. Adds a medium-term trend confirmation layer.
Strategy Parameters (Backtesting Standards)
Initial capital: $10,000 (realistic for the average retail trader)
Position size: 100% of equity (maximizes trade count visibility in backtest)
Commission: 0.05% per side (appropriate for most spot and futures markets)
Slippage: 2 ticks (conservative estimate for liquid instruments)
Pyramiding: 0 (no compounding positions)
Features
SMEMA fast/slow crossover entry engine with three configurable period lengths
Full trade management: ATR-based SL, TP1 (50% partial), TP2 (full), trailing stop, reversal exit, max bars exit
Breakeven stop migration to entry price after TP1 hit
Four optional confirmation filters: ADX, RSI, volatility ratio, and SMEMA baseline
Long-only, short-only, or both directions configurable
Date range filter for restricted backtesting windows
Live SL, TP1, and TP2 dashed lines drawn on the chart while a trade is open
SMEMA ribbon fill between fast and slow lines, colored by crossover direction
▲ LONG / ▼ SHORT signal labels at every entry signal
Dashboard: position, SMEMA cross direction, ADX, RSI, vol ratio, trade count, win rate, net P&L, bars in trade, settings summary
Alerts for long entry and short entry signals
Webhook JSON alert format
Watermark
Input Parameters
SMEMA Engine
Fast SMEMA Length — period for the fast crossover line (default 2)
Slow SMEMA Length — period for the slow crossover line (default 5)
Baseline SMEMA — period for the optional trend baseline (default 15)
Trend Filter
ADX Length — period for ADX / DMI calculation (default 14)
Min ADX — minimum ADX value required before entry (default 18)
Enable ADX Filter — master toggle (default off)
RSI Filter
RSI Length — period for RSI calculation (default 14)
RSI Bull Min — minimum RSI for long entries (default 52)
RSI Bear Max — maximum RSI for short entries (default 48)
Enable RSI Filter — master toggle (default off)
Volatility Filter
ATR Length — lookback for ATR (default 14)
ATR Smooth — lookback for the ATR average used in ratio (default 20)
Min Vol Ratio — ATR/AvgATR minimum threshold (default 0.8)
Enable Vol Ratio Filter — master toggle (default off)
Baseline Filter
Enable Baseline Filter — when on, requires close above baseline for longs and below for shorts (default off)
Trade Management
Stop-Loss ATR Mult — distance of initial stop from entry in ATR units (default 1.8)
TP1 ATR Mult — distance of first take-profit from entry (default 2.5)
TP2 ATR Mult — distance of second take-profit from entry (default 4.5)
Use Trailing Stop — enables dynamic trailing after TP1 (default on)
Trailing Stop ATR Mult — trail distance in ATR units (default 1.5)
Max Bars in Trade — maximum bars before forced exit (default 10)
Trade Direction
Allow Long Trades — toggles long entry signals (default on)
Allow Short Trades — toggles short entry signals (default on)
Date Range
Enable Date Filter — restricts backtesting to a specific window
From Date / To Date — start and end of the active period
Visuals
Bull Color — cyan default for upside elements
Bear Color — red default for downside elements
Neutral Color — gray for baseline and neutral dashboard text
Show Dashboard — live performance and settings panel
Show Watermark
Show Signal Labels — ▲ LONG / ▼ SHORT markers on entry bars
Show SMEMA Bands — toggles the ribbon and three SMEMA line plots
How to Use
Add the strategy to any chart. The default settings are tuned for high trade frequency — no filters enabled, fast periods of 2/5, max bars 10.
Run the Strategy Tester to review backtest performance. Check that the trade count is above 100 on your chosen timeframe and symbol before drawing any performance conclusions.
To increase signal quality at the cost of trade frequency, enable filters one at a time: start with the ADX filter to eliminate ranging entries, then add RSI if you want additional momentum confirmation.
Use the SL/TP dashed lines drawn on-chart during live trades to monitor your risk levels visually in real time.
Set the Long Entry and Short Entry alerts to receive notifications. Use Webhook JSON format to route signals to automation platforms.
Adjust the ATR multipliers to fit the volatility profile of your market. Higher-volatility assets like altcoins benefit from wider stops (2.0–2.5×) and wider TP levels. Lower-volatility assets like indices may work better with tighter parameters.
The Max Bars in Trade parameter is the most powerful lever for trade frequency. Reducing it to 5–7 generates very high trade counts. Increasing it to 20–40 gives trades more room to develop but reduces total trade count.
Indicator Limitations
SMEMA crossovers are inherently lagging — by definition, the crossover confirms a direction change after it has already begun. In fast-moving markets this means entries will not be at the exact turning point.
The default configuration (all filters off, max bars 10) optimizes for trade count and sample size rather than highest possible win rate. Enabling filters will reduce trade count but may improve per-trade quality — test thoroughly on your symbol and timeframe before live use.
The 100% equity position sizing in the backtest is chosen to keep commission effects proportional and performance metrics visible at small capital sizes. This does not represent a recommendation to risk your entire account on any trade.
Backtested results are not a guarantee of future performance. Past performance under any parameters does not imply future results.
The strategy uses `calc_on_every_tick=false` — all orders execute at bar close, which is more realistic than tick-by-tick simulation but means intrabar SL/TP wicks may not be captured accurately in the backtest.
Originality Statement
The Sovereign Trend Strategy is an original Pine Script v6 strategy publication. The SMEMA (SMA of EMA) double-smoothing construction is an original baseline engineering choice that produces a distinct crossover behavior not replicated by standard EMA or SMA crossover systems. The six-path exit framework, the staged TP1/breakeven/trailing/TP2 management sequence, and the modular optional filter architecture are original design decisions. The strategy.position_size derivation of position state (avoiding the Pine Script v6 timing bug with strategy.opentrades and manual boolean flags) is an original technical solution developed for this publication.
Disclaimer
This is a backtested strategy provided for educational purposes only. It does not constitute financial advice or a recommendation to trade any specific instrument. All trading involves risk of capital loss. Backtested performance does not guarantee future results. Commission, slippage, and real-world execution conditions will differ from backtest simulations. Always perform your own analysis and consult a licensed financial professional before trading with real capital.
-Made with passion by jackofalltrades
Strategy

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

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
