Citadel Microstructure Edge [JOAT]CITADEL MICROSTRUCTURE EDGE
A tribute to the high-frequency / market-making style of microstructure-edge extraction. Builds three orthogonal microstructure signals — tick imbalance (which side is aggressively crossing the tape), spread tightness (how thin the bid-ask is relative to its baseline), and micro momentum (the EMA-pair spread on the fastest timeframe) — then composes them into a single decaying edge value with an exponential half-life. When the edge crosses a configurable threshold and has sustained for N bars same-sign, a directional signal fires. Cooldown plus asymmetric lockout keep the signal stream institutional.
Three orthogonal components
Each component is computed independently and Z-normalised (optional for tick imbalance) for stationarity:
Tick Imbalance — LTF-reconstructed buy/sell tick classification. Output is the rolling imbalance bounded in ; optionally Z-normalised over a configurable window (default 60 bars) for cross-asset stationarity. The dominant input for fast / scalping reads.
Spread Tightness — (H − L) / C against its own EMA-smoothed baseline, Z-scored. Tight spread (low relative range) is constructive for whichever side momentum favours. The sign is borrowed from the micro-momentum factor.
Micro Momentum — EMA-fast minus EMA-slow on the tick-reconstructed flow, Z-scored. The directional engine.
Default weights (0.45 / 0.25 / 0.45) bias the read toward the two most-actionable components (tick imbalance + momentum), with spread tightness as confirmation. Optional auto-normalisation to sum=1.
Decaying edge with half-life ~ 3 bars
Microstructure edges decay quickly. The script does not just sum the three components per bar — it accumulates with decay :
edge_t = decay × edge_{t−1} + contribution_t
The default decay (0.78) gives the edge a half-life of approximately 3 bars — the standard market-making decay window. Older contributions fade out automatically; new contributions get incorporated immediately. This is the institutional way to track a fast signal without re-introducing flicker.
Sustained-edge signal logic
Edge Threshold (default 0.75) — minimum |edge| magnitude required to fire.
Sustained Edge (default 5 bars same sign) — the edge must have held its sign for N consecutive bars before a signal fires. This is the script's most important false-positive filter.
Cooldown (default 7 bars) — minimum bars between signals.
Asymmetric lockout (default ON) — an opposite-side signal CAN fire during cooldown. This means a quick flip from buy to sell remains responsive while consecutive same-side signals are suppressed.
Visual system
Edge histogram — projected at the top of the chart at a configurable percent of price (default 2% of price, 1.2% top padding). Histogram columns are coloured by edge sign with magnitude-proportional intensity. At a glance you see the edge's recent trajectory.
Buy / Sell labels with optional Unicode lightning glyph (toggleable to plain ">").
Slope-tinted micro ribbon — the micro fast / slow EMAs plotted with a translucent fill coloured by spread sign. Toggleable.
Subtle background shade by edge sign (off by default).
A locked Crimson Pulse palette: electric blue buy edge / lime-yellow sell edge / muted neutral on a deep crimson-black ground — the institutional HFT aesthetic.
Dashboard
9-row monospaced table positionable to any of nine corners. Surfaces:
Edge value with status (BUY / SELL / FLAT).
Tick imbalance value.
Spread tightness Z.
Micro momentum Z.
Sustained-edge counter (how many consecutive same-sign bars).
Last signal direction with bars-ago.
Decay setting and effective half-life.
Cooldown remaining.
Configuration: LTF, weights, threshold.
Alerts
Three alert conditions, each independently controllable:
Edge Buy
Edge Sell
Sustained Edge (N bars same sign) — the script's headline alert; fires before the signal does, useful as an early-warning notification.
{image]https://www.tradingview.com/x/ybVYCAr3/
How to read it
Three reads, in order of conviction:
Sustained edge into a structural level — the highest-conviction read. The microstructure has been one-sided for N+ bars AND price is at a known S/R; the next move into the level usually breaks it.
Edge buy / sell with all three components agreeing — fast directional commitment. The dashboard's per-component rows tell you whether the read is dominated by tick imbalance (aggressive tape) or by micro momentum (sustained direction) or by spread tightness (regime-aware confirmation).
Edge above threshold but not sustained — early-warning state. Edge has crossed threshold but the sustained counter has not yet reached N. Watch the counter — if it ticks up bar-by-bar, the signal is forming; if it drops, the edge is decaying.
Suggested settings
Defaults (1m LTF, spread EMA 14 / Z 60, micro EMA 3/8 / Z 60, weights 0.45/0.25/0.45, edge threshold 0.75, sustain 5 bars, decay 0.78, cooldown 7 bars) are tuned for 5m–15m charts on liquid futures and crypto where microstructure has meaningful presence. For 1m scalping drop LTF to 15s (Premium required) and sustain to 3 bars. For HTF the script is not the right tool — microstructure edges decay too quickly to be meaningful on 1H+ timeframes.
Originality
The implementation — the three-component microstructure pipeline (tick imbalance + spread tightness + micro momentum), the LTF tick-rule reconstruction with optional Z-normalisation, the weighted-sum composition with auto-normalisation, the exponential-decay edge accumulator with configurable half-life, the sustained-edge counter and asymmetric-lockout signal logic, the price-anchored histogram render at the top of the chart, the slope-tinted micro ribbon, and the Crimson Pulse palette — is JOAT-original. No third-party code reused. The script is a tribute to Citadel-style market-making microstructure-edge extraction, not a direct replication of any proprietary Citadel code.
Limitations
Reconstructed tick direction is an inference — the tick rule is the accepted public-market proxy but is not a direct read of bid/ask. Sub-minute LTFs require a TradingView Premium or Ultimate plan. Microstructure edges decay fast by design; on 1H+ timeframes the engine produces few signals — that is correct behaviour, not a bug.
—
-made with passion by jackofalltrades
Indicatore

Bridgewater All-Weather [JOAT]BRIDGEWATER ALL-WEATHER
A tribute to Ray Dalio's All-Weather framework — the macro-regime engine that classifies the current environment along two orthogonal axes : growth (rising or falling) and inflation/volatility (rising or falling) — and maps the resulting quadrant to the asset class that historically performs best in that regime. Bridgewater All-Weather distils that idea into a Pine script: a quadrant classifier built on Z-scored growth and volatility proxies, a 2×2 mini-chart rendered on the chart itself, a regime-tinted background, a rotation-event label, and a Suggested-JOAT-Indicator row that names the best companion script for the current quadrant.
The four quadrants
Q1 — Growth UP, Vol DOWN — Risk-On / Equities regime. Blue.
Q2 — Growth UP, Vol UP — Inflation / Commodities regime. Gold.
Q3 — Growth DOWN, Vol DOWN — Disinflation / Bonds regime. Sage.
Q4 — Growth DOWN, Vol UP — Crisis / Gold regime. Pink.
The asset-class analogues are Dalio's institutional defaults; they can be toggled off if you want pure regime classification without the asset overlay.
Growth and Vol proxies
Macro frameworks need macro inputs. The script approximates the two factors purely from chart data so it runs on any instrument:
Growth proxy — long-window smoothed return (default 100-bar EMA-smoothed return). Z-scored against a long baseline (default 252 bars, the trading-year canonical).
Volatility proxy — rolling standard deviation of returns over the volatility window (default 100 bars). Z-scored against the same baseline.
A configurable Z dead-zone (default ±0.10) treats small Z values as neutral and refuses to register quadrant changes until the Z moves clearly off zero. This eliminates flicker between adjacent quadrants when the signal is genuinely uncertain.
Minimum-bars-hold filter
A quadrant must persist for at least N bars (default 3) before a rotation is committed. This prevents whipsaw classification when growth and volatility cross their respective zero lines on the same bar.
Mini 2D quadrant chart
The script's signature visual: a 2×2 grid rendered directly on the chart (anchored to any of four corners, with configurable cell size in bars and price-height in ATR units). The currently-active quadrant is highlighted in its quadrant colour; the other three are muted. At a glance you see the entire four-state regime classification mapped to its asset analogue. The four hues appear simultaneously only in the mini chart — by design — because elsewhere the script obeys strict one-active-quadrant colour discipline.
Visual system
Background tint by active quadrant (configurable transparency, default 92 institutional-subtle).
Quadrant badge — right-side floating label showing the active quadrant with its colour. Configurable corner.
Rotation label — drops a label on the chart every time the quadrant changes.
Mini 2D quadrant chart (the signature) — 2×2 grid in the chosen corner.
Hidden growth-Z and vol-Z line plots — for users who want to see the underlying scores in the Data Window or feed them to alerts. Off by default.
A locked Sapphire palette: one hue per quadrant (Q1 blue, Q2 gold, Q3 sage, Q4 pink). Because only one quadrant is active at a time, the chart only ever shows one family + the muted background. The strict 4-hue discipline only appears in the mini chart.
Suggested JOAT Indicator row
The dashboard exposes a Suggested Indicator row that names the best-fit companion from the JOAT suite per quadrant. Defaults:
Q1 (risk-on) → Quantum Trend Matrix (trend amplification in a benign environment).
Q2 (inflation) → Liquid Reversal Engine (mean-reversion bands in a volatile-up regime).
Q3 (disinflation) → Smart SR Zones (structure-focused reads in a calming environment).
Q4 (crisis) → Z-Score Flow Pro (extreme-statistics regime for risk-off conditions).
Every suggestion is user-configurable.
Dashboard
Monospaced table, positionable to any of nine corners, with optional row-gradient. Surfaces:
Active quadrant with asset analogue.
Growth Z value and direction.
Vol Z value and direction.
Bars in current quadrant.
Last rotation: from → to with bars-ago.
Suggested JOAT Indicator (toggleable).
Alerts
Three alert conditions, each independently controllable:
Any Quadrant Rotation
Entered Q4 (Risk-Off / Crisis) — the most actionable single alert; usually accompanies risk-off moves across asset classes.
Entered Q1 (Risk-On) — off by default; useful for trend-following entry timing.
How to read it
Three reads, in order of conviction:
Q4 entry — the highest-priority macro alert. Growth is falling and volatility is rising — historically the regime in which risk assets sell off, gold rallies, and defensive positioning wins. Reduce risk exposure regardless of the chart-timeframe signal.
Sustained Q1 — the trend amplifier. The market is in a healthy growth/calm environment; momentum tools have their largest edge. The mini chart visually confirms the regime.
Rotation between adjacent quadrants (e.g. Q1 → Q2 or Q3 → Q4) — regime-transition warning. The market is rotating along one of the two axes; this often precedes the larger directional move.
Suggested settings
Defaults (growth 100 / vol 100 / baseline 252 / dead-zone 0.10 / 3-bar hold) are calibrated to daily charts on broad indices. For lower timeframes drop windows proportionally. For weekly+ raise to 200 / 200 / 500. The dead-zone is the single most important anti-flicker input; widen if your instrument has noisy growth/vol behaviour.
Originality / what's reused
The All-Weather framework is Ray Dalio / Bridgewater Associates' published macro philosophy — a public conceptual framework, not proprietary code. The implementation here — the chart-data-only growth and volatility proxies, the Z-baseline normalisation with dead-zone gate, the minimum-bars-hold rotation filter, the 2×2 mini-chart render in chart units with ATR-scaled cell height, the per-quadrant single-hue palette discipline, the suggested-JOAT-indicator dashboard row, and the rotation-event label engine — is JOAT-original. No third-party code reused. The script is a tribute , not a direct replication of any proprietary Bridgewater model.
Limitations
The growth and volatility proxies are computed from chart data only — they are approximations, not the macroeconomic series an actual All-Weather portfolio uses. The Z-baseline assumes 252 bars approximates a trading year; on non-daily timeframes the interpretation shifts (e.g. on 1H, 252 bars is roughly 10 trading days). The quadrant classification is descriptive of recent chart behaviour, not of the broader macro environment — pair with macro context for serious portfolio decisions.
—
-made with passion by jackofalltrades
Indicatore

AQR Momentum Factor [JOAT]AQR MOMENTUM FACTOR
A tribute to AQR Capital Management's seminal momentum-factor research — including Asness's classic "Value and Momentum Everywhere" framework. The script estimates cross-horizon momentum by ranking returns across five independent look-back horizons (default 1, 5, 20, 60, 120 bars — including the AQR-canonical 12-1 month equivalent), volatility-adjusting the result, and producing a composite momentum score in that fires Buy / Sell labels when the score crosses configurable thresholds.
Why cross-horizon ranking
A single momentum lookback is fragile. AQR's published research (Asness, Moskowitz, Pedersen, and others) shows that momentum is best estimated by agreement across horizons — when short-, medium-, and long-term momentum all point the same way, the signal is much more reliable than any single horizon alone. The script encodes that directly:
Five horizons — 1 / 5 / 20 / 60 / 120 bars by default (configurable independently).
At each horizon the return is percentile-ranked against its own trailing 252-bar (trading year) distribution.
The five percentile ranks are mapped from to (50% → 0; 100% → +1; 0% → −1).
The composite is the average of the five mapped ranks.
The output is bounded in and represents how unusual current momentum is relative to its own recent history, averaged across timeframes .
Volatility adjustment (optional but on by default)
The composite is divided by a volatility Z-score over a configurable window (default 60 bars), clamped at a Z cap (default 2.5) to avoid division-by-zero blow-ups. This dampens signals during high-volatility regimes — which is what AQR's "low-vol momentum" research finds is the genuinely tradeable component of the factor.
When vol-adjustment is off, the score is raw cross-horizon momentum. When it is on, the score is risk-adjusted momentum, which is the institutional read.
Signal engine
BUY — composite > buy threshold (default +0.70 → top ~15% across horizons).
SELL — composite < sell threshold (default −0.70).
Extreme High / Low alerts — composite > +0.90 / < −0.90. The script's strongest reads.
A configurable Min Bars Between Same-Side Signals (default 5) prevents clustering. A confirm-on-close toggle (default ON) ensures non-repaint signals.
Bar colouring — strict 2-hue discipline
The chart bars are coloured by the sign of the composite, with saturation proportional to magnitude. The "Bar Color Saturation Floor" input controls how aggressively the colour fades when momentum is weak — at 0 the bars are always full colour; at 1 they fade toward background when momentum is weak. The defaults (0.65) produce a clean institutional read where strong-momentum bars stand out and weak-momentum bars merge into the background.
A hidden composite-line plot (toggleable) opens a pane below the chart for users who want to see the score itself, or feed it to Data Window / webhook automation.
Visual system
Buy / Sell labels on threshold crosses (configurable size).
Bar colouring by signed momentum with saturation floor.
Hidden composite line (toggleable, pane).
Light regime background (off by default) — very subtle bgcolor sampled from bull/bear.
A locked Golden Blaze palette: gold bull / oxblood bear / off-white neutral on a dark-slate ground — the classic AQR institutional aesthetic. Strict 3-hue discipline + bg.
Dashboard
Monospaced table positionable to any of nine corners. Surfaces:
Composite score with signed value.
Per-horizon percentile ranks (h1 / h2 / h3 / h4 / h5).
Horizon agreement count (how many horizons agree with the composite sign).
Volatility Z value and adjustment factor in use.
Last signal direction with bars-ago.
Configuration: rank window, vol window, thresholds.
Alerts
Four alert conditions, each independently controllable:
BUY (composite crosses above buy threshold)
SELL (composite crosses below sell threshold)
Extreme Score (|composite| crosses extreme high or low)
Horizon Disagreement (off by default) — fires when horizons split (~half above 50%, half below). Useful as a "no edge" warning.
How to read it
Three reads, in order of conviction:
Extreme score with full horizon agreement — the highest-conviction read. All five horizons agree, the score is in the top 10% / bottom 10% of its own distribution, and vol-adjustment has not damped it. This is the institutional setup.
Buy / Sell with vol-adjustment active in a low-vol regime — the "low-vol momentum" setup AQR's research identifies as the strongest factor exposure. Pair with a directional execution tool.
Horizon disagreement alert — stand-aside signal. Some horizons say bull, some say bear; there is no momentum factor exposure available. Wait for agreement to return.
Suggested settings
Defaults (horizons 1/5/20/60/120, rank window 252, vol window 60, vol Z cap 2.5, ±0.70 thresholds, ±0.90 extreme) are tuned for daily charts on broad indices — the timeframes where momentum factor exposures are statistically most meaningful. For lower timeframes drop all horizons proportionally (1/5/15/30/60) and the rank window to 200. For weekly+ keep defaults; momentum on weekly is the canonical factor.
Originality / what's reused
The momentum factor is published academic finance — Jegadeesh & Titman 1993, Asness 1994, AQR's "Value and Momentum Everywhere" 2013. The 252-bar / one-year ranking window is the classical institutional convention. The implementation here — the five-horizon configurable engine, the ta.percentrank -based ranking pipeline, the linear remap, the volatility-Z adjustment with clamp, the saturation-floored bar-colouring with strict 2-hue discipline, the horizon-disagreement alert logic, and the AQR Golden Blaze palette — is JOAT-original. No third-party code reused. The script is a tribute to AQR's published methodology, not a direct replication of any proprietary AQR model.
Open source
Published open-source under the default Mozilla Public License 2.0. The horizon pipeline, the ranking engine, the vol-adjustment routine, the signal engine, and the dashboard are isolated modules. Forks welcome with credit.
Limitations
The 252-bar ranking window assumes a daily chart for the "trading year" interpretation; on lower timeframes the window represents a different real-world horizon. The momentum factor is well-documented historically but, like all factor exposures, it can underperform for extended periods — the dashboard's horizon-agreement count is the script's own early warning when the factor is breaking down. Vol-adjustment is on by default because it is statistically supported; turn it off only for research.
—
-made with passion by jackofalltrades
Indicatore

Standing Wave Phase Coherence [JOAT]STANDING WAVE PHASE COHERENCE
A phase-coherence engine that asks a question almost no public indicator can answer: are the LTF and HTF oscillators in phase or out of phase ? Two oscillators that move together (peaks and troughs aligned) form a standing wave — a state of constructive interference where the trend is amplified. Two oscillators that move opposite (peaks aligned with troughs) form an anti-standing wave — a state of destructive interference where a reversal is forming. Standing Wave Phase Coherence measures phase, computes the coherence between the two timeframes, and surfaces a single number bounded in that tells you which regime you are in.
Phase, not just direction
A moving average tells you "where price is sitting". A momentum oscillator tells you "which way it is moving". Phase is the location inside the cycle — are we approaching a peak, leaving a peak, approaching a trough, leaving a trough? Two oscillators on different timeframes can be:
In phase — both rising or both falling at the same rate of cycle progression. Constructive interference. Trend amplifies.
Anti-phase — one rising, the other falling at the same cycle rate. Destructive interference. Reversal forms.
Decoherent — phases are uncorrelated. The wave structure is breaking down. No directional edge from coherence.
The script estimates phase from each timeframe's RSI series (both legs at the same RSI length for fair comparison), differences the phase smoothly, then takes the cosine of the phase difference — which is exactly the quantum-mechanical coherence metric on a scale.
Non-repainting HTF construction
The HTF leg uses request.security with lookahead_on AND a offset on the expression — the only non-repainting form per Pine v6 docs. This is exposed as a toggle but ON by default; the warning in the input tooltip explains the trade-off (turn off only for research, never live).
Three thresholds, three states
Coherence > +0.70 (configurable) — IN PHASE . Standing wave constructive. Trend amplifies. Bull-palette background tint.
Coherence < −0.70 — ANTI PHASE . Standing wave destructive. Reversal forms. Bear-palette background tint.
|Coherence| < 0.30 (decoherent band) — DECOHERENT . No standing wave. Mid-palette neutral.
In between — transitional.
Phase-status arrows print inside the pane at every regime entry, so the chart history shows when each standing wave formed and collapsed.
Visual system
Coherence line with configurable width.
Glow halo — a wider semi-transparent copy of the coherence line below the main line, creating a soft glow effect.
Background tint by phase status — bull when IN PHASE, bear when ANTI PHASE, none when decoherent. Transparency configurable.
Threshold lines at ±0.70 (toggleable).
Zero line .
Fill between threshold and ±1 — soft bull / bear fill highlights the active phase zone so it is immediately obvious which side is engaged.
Phase status arrows inside the pane on state transitions.
The pane uses the JOAT default palette (cyan-teal bull / magenta bear).
Amplification factor
A separate EMA-smoothed trend amplification factor is computed from the coherence and surfaced in the dashboard. When coherence is sustained high (in-phase), the amplification factor rises — quantifying how much the LTF/HTF agreement is reinforcing the move. Useful as a position-sizing input: bigger amplification = stronger conviction = larger size.
Dashboard
Monospaced table, positionable to any of nine corners. Surfaces:
Current coherence value and bar age.
Phase status (IN PHASE / ANTI PHASE / DECOHERENT) with glyph.
LTF and HTF RSI values.
Phase difference in radians and degrees.
Trend amplification factor (smoothed).
HTF timeframe in use with non-repaint flag.
Alerts
Multiple alert conditions:
Coherence crosses above +0.70 (IN PHASE entry)
Coherence crosses below −0.70 (ANTI PHASE entry)
Coherence returns to decoherent band
Sustained IN PHASE (held above threshold for N bars)
Sustained ANTI PHASE
How to read it
Three reads, in order of conviction:
Sustained IN PHASE — the highest-conviction trend read. LTF and HTF oscillators are decisively moving together. This is the regime in which momentum tools have their largest edge.
Entry into ANTI PHASE — the reversal warning. The two timeframes have rotated opposite each other; whichever direction LTF is moving, HTF is opposing. Often precedes meaningful reversals.
Decoherent zone — stand-aside signal. The wave structure has broken down. Coherence-based reads are not actionable; switch to a regime-classification tool (FDI, Hurst, Entropy).
The cleanest workflow: only take trend trades when IN PHASE; only take reversal trades when ANTI PHASE; do nothing when DECOHERENT.
Suggested settings
Defaults (RSI 14, HTF 4H, phase smoothing 3, coherence smoothing 8, ±0.70 thresholds, ±0.30 decoherent band) are tuned for 15m–1H charts. The HTF should always be greater than or equal to the chart timeframe; mismatching produces meaningless phase reads. For HTF (4H+ chart timeframes) raise HTF to Daily and consider the LTF/HTF coherence as a daily-vs-weekly read.
Originality
The implementation — the dual-timeframe RSI phase estimator, the smoothed phase-difference cosine coherence (quantum-style metric), the non-repainting HTF request with -offset + lookahead_on pattern, the three-threshold phase classifier with decoherent band, the trend amplification factor formulation, the glow-halo line render, and the pane-overlay phase-status arrows — is JOAT-original. No third-party code reused. The notion of phase coherence between timeframes as a market regime metric is the original quantitative contribution, borrowed conceptually from optical and quantum physics.
Limitations
Phase estimation from discrete bar data is inherently noisy on short windows; the smoothing inputs (phase EMA and coherence EMA) exist to address that — over-smoothing destroys phase information, so the defaults are intentionally light. The HTF request is non-repainting in the useStrictHtf = ON configuration; do not turn it off in live trading. The decoherent band is a heuristic to avoid acting on noise reads; widen it on instruments with naturally choppy oscillator structure.
—
-made with passion by jackofalltrades
Indicatore

Schrodinger Zone Probability [JOAT]SCHRÖDINGER ZONE PROBABILITY
The most quantitatively ambitious indicator in the JOAT suite. Detects Fair Value Gaps and Order Blocks the way a serious SMC engine should — and then, before they are touched, treats each one as a superposition zone with two simultaneous probabilities: P_S (the probability it will act as Support when revisited) and P_R (the probability it will act as Resistance). The two probabilities sum to one. The zone exists in a superposition of both states until price actually touches it; at that moment the wavefunction collapses to a single classical state — S or R — driven by the bars-after-touch confirmation logic. Then the script tags the zone with the committed direction and archives the collapse.
Detection — FVGs and OBs done properly
Two independent zone types feed the superposition engine:
Fair Value Gaps — the standard 3-candle imbalance definition, ATR-filtered (minimum gap = configurable × ATR, default 0.30×) so only meaningful gaps qualify. Bull and bear FVGs both detected.
Order Blocks — three methods exposed:
Last Opposite — latest opposite-color candle before displacement.
Extreme Opposite — most extreme (lowest low / highest high) candle in the walk-back window.
Strict Volume — Last Opposite filtered by volume above MA.
Displacement (the move that creates the zone) requires a body of displacement ATR multiple × ATR (default 1.20×). A configurable walk-back window controls how far back to search for the OB origin. Configurable mitigation rule (Wick = any pierce, Close = bar must close beyond).
The headline math — three-factor superposition probability
The collapse probabilities P_S / P_R are computed as a weighted blend of three orthogonal factors:
Distance factor — distance from current price to the zone, decayed exponentially with a configurable half-life in ATR units (default 2.0 ATR). Closer zones have higher commit probability.
Direction factor — which side of the zone current price is on. Above the zone leans the read toward Support collapse; below leans toward Resistance.
Flow factor — EMA-slope alignment over a configurable flow window (default 20 bars). Bullish flow biases toward Support; bearish flow biases toward Resistance.
Each factor's weight is independently tunable. Defaults (0.45 distance / 0.30 direction / 0.25 flow) are the script's institutional calibration. The output is two probabilities that sum to 1.
A zone with P_S ≈ P_R ≈ 0.5 is in pure superposition — the model is genuinely undecided. A zone with P_S = 0.85 / P_R = 0.15 is in a state nearly committed to Support; the wavefunction has already partly collapsed.
Wavefunction collapse — the engine's headline event
When price enters the zone within a configurable touch tolerance (default 0.05 × ATR slack) and holds inside for the configurable holdBars window (default 3 bars), the zone collapses to a single classical state:
Collapse to S — price bounced; the zone acted as Support. Marker prints "(+)→S" at the centroid.
Collapse to R — price was rejected from the other side; the zone acted as Resistance. Marker prints "(+)→R".
A configurable connector line is drawn at the committed level. Collapsed zones are optionally archived (default ON) so the chart shows the full history of how superpositions resolved.
Visual system — superposition rendering
Vertical gradient fill — each zone is rendered as a stack of N sub-boxes (configurable, default 8 slices) with progressive transparency, creating a vertical gradient that visually communicates "high probability of support at the bottom of the zone, high probability of resistance at the top". This is the script's signature visual.
Glow border — configurable glow intensity; becomes thicker when uncertainty is high (P_S ≈ P_R).
Animated superposition pulse — for zones in pure superposition (P ≈ 0.5), transparency oscillates with bar_index to indicate undecided state. Configurable period and amplitude.
Probability labels — P_S / P_R values printed on each active zone.
Zone type tags — FVG_BU, FVG_BE, OB_BU, OB_BE so origin is unambiguous.
Collapse markers — fancy glyphs (+)→S / (+)→R or plain S / R, configurable.
Show-only-superposition mode — hide collapsed and archived zones for a minimalist view.
Right extension — zones project a configurable number of bars to the right.
A locked institutional palette (cyan-teal bull / magenta bear) gives the chart a distinctive quantum-finance identity.
Dashboard
Monospaced table positionable to any of nine corners. Surfaces:
Active superposition zone count and archived count.
Nearest zone with its P_S / P_R values and distance.
Last collapse direction with bars-ago.
Current flow direction.
Detection thresholds and weights in use.
Mitigation rule.
Alerts
Multiple alert conditions:
New Superposition Zone Created (FVG or OB)
Collapse to Support
Collapse to Resistance
Approaching Zone (within collapse-touch tolerance)
High-Uncertainty Zone formed (P_S ≈ P_R ≈ 0.5)
How to read it
Three reads, in order of conviction:
Collapse alert with extreme one-sided probability — e.g. a zone with P_S = 0.85 collapses to S. The model was confidently pointing at one outcome, and the market confirmed it. The highest-conviction confluence read the script produces.
Approaching a zone with sharp probability bias — when P_S or P_R is dominant before touch, the model is committed to one direction. Position toward the dominant side; if the collapse confirms, you are in early.
High-uncertainty zone (P ≈ 0.5) — stand-aside signal. The model is genuinely undecided; trade only with strong external confluence (HTF structure, news flow) or skip the zone entirely.
Suggested settings
Defaults (FVG ATR 0.30×, displacement 1.20×, OB Last-Opposite, 15-bar walk-back, weights 0.45 / 0.30 / 0.25, half-life 2.0 ATR, 3-bar hold) are tuned for 15m–4H on liquid markets. For lower timeframes drop displacement to 1.0× and hold to 2. For HTF raise FVG ATR to 0.50× to keep only large gaps. The weights are calibrated together — change one and the others rebalance the probabilities; experimenting with the weights is a legitimate way to specialise the script to your instrument.
Originality
The implementation — the dual-source zone detector (FVG + OB) with three OB methods, the three-factor probability blend (distance / direction / flow) with independent weights, the exponential ATR-halflife distance decay, the touch-with-hold collapse-confirmation state machine, the vertical-gradient zone render using N stacked sub-boxes, the uncertainty-modulated glow border, the animated superposition pulse for high-uncertainty zones, the archive-on-collapse logic, and the dashboard's probability-aware layout — is JOAT-original. No third-party code reused. The Schrödinger framing (superposition → collapse) is the original conceptual contribution; the math is purpose-built.
Limitations
The "probability" output is a heuristic blend of three factors that historically correlate with which side a zone acts as — it is a ranked confidence, not a true Bayesian posterior. The factor weights are exposed precisely because no single weighting is universally correct. The collapse confirmation requires the holdBars window to elapse, so collapse markers lag the actual touch by that window (intentional — single-bar pierces should not commit a zone). The animated pulse for high-uncertainty zones is purely visual.
-made with passion by jackofalltrades
Indicatore

Market Microstructure Pulse [JOAT]MARKET MICROSTRUCTURE PULSE
A composite microstructure oscillator that fuses three lower-timeframe-reconstructed flow primitives into a single bounded pulse line — the tick imbalance, the aggressive ask/bid streak, and the single-bar massive imbalance event. The pulse tells you in one number whether buyers or sellers are currently dominant at the tape level, and whether that dominance is at warning or extreme intensity.
Lower-timeframe reconstruction
Real microstructure lives below the chart timeframe. The pulse engine pulls intrabar prints from a configurable LTF (default 1 minute; auto-mode picks ~1/20 of the chart TF) and classifies each tick via the standard tick rule. The classified ticks are then EMA-smoothed by a configurable pulse length (default 14) and optionally volume-weighted (default ON) so a heavy print contributes proportionally more to the read than a light one.
The output is a smoothed signed value bounded approximately in where:
+1 — all recent ticks were buy-classified.
−1 — all recent ticks were sell-classified.
0 — perfectly balanced flow.
Aggressive streak histograms
Two separate counters track consecutive same-side ticks — one for aggressive asks, one for aggressive bids. When a streak exceeds the Aggressive Streak Min threshold (default 5), it qualifies as institutional persistence. The two histograms are rendered as a colour-coded background to the pulse line so you can see at a glance which side has been running consecutively. EMA-smoothed for visual stability.
Massive imbalance event
A single-bar event: when one side's share of total bar volume exceeds imbalancePct (default 80%), a Massive Imbalance event fires. This is the script's strongest single-bar read — institutional decisiveness landing on the tape.
Two-tier threshold system
Pulse Warning — |pulse| above the warning threshold (default 0.50). Inner band, visual reference.
Pulse Extreme — |pulse| above the extreme threshold (default 0.70). Triggers the Pulse Extreme alert and tints the chart background.
A toggleable Aggression Flip Marker prints a glyph at the bar where the pulse sign actually flips — useful for catching the moment dominance rotates sides.
Visual system
Pulse line in the iridescent palette (magenta buy / cyan sell) with configurable width.
Aggressive streak histograms — two-sided coloured columns behind the pulse (transparency configurable).
Threshold levels at ±warning and ±extreme (toggleable).
Gradient fill from pulse line to zero, coloured by current sign (transparency configurable).
Background tint on extreme — magenta or cyan tint when |pulse| is above extreme threshold (transparency configurable).
Aggression flip markers at sign-change bars (toggleable).
A locked Iridescent palette (magenta buy aggression / cyan sell aggression / yellow extreme accent on pure black) gives the pane a distinctive cyberpunk-tape identity.
Dashboard
Monospaced 11-row table positionable to any of nine corners. Surfaces:
Current pulse value with sign.
Buy streak count and sell streak count.
Aggressive side dominance with bar age.
Last extreme event direction with bars-ago.
Last flip direction with bars-ago.
Last massive imbalance event with bars-ago.
LTF in use, volume-weighting flag, pulse EMA length.
Threshold values for warning and extreme.
Alerts
Three alert conditions, each independently controllable:
Pulse Extreme — fires when |pulse| crosses above extreme threshold.
Aggression Flip — fires when pulse sign flips (positive ↔ negative).
Massive Imbalance — fires when a single bar's directional share exceeds the imbalance threshold.
How to read it
Three reads, in order of conviction:
Massive Imbalance alert at a structural level — the highest-conviction single read. Institutional decisiveness landed on the tape at a known S/R; the next directional move is more conviction-aligned with the imbalance side.
Pulse Extreme + matching aggressive streak — sustained dominance. The pulse is decisively past its extreme threshold AND the streak histograms show consecutive same-side runs above the streak minimum. This is the regime where momentum tools have their largest edge.
Aggression Flip after extreme — exhaustion read. The pulse hit extreme then flipped sign; the institutional commitment that drove the extreme has just rotated. Often produces clean reversals.
Suggested settings
Defaults (1m LTF, pulse EMA 14, streak EMA 7, volume-weighted ON, ±0.50 / ±0.70 thresholds, 80% imbalance, 5-tick streak min) are tuned for 5m–15m charts on liquid futures and crypto. For lower-timeframe scalping, drop LTF to 15s or 30s (Premium plan required) and pulse EMA to 8. For HTF, set LTF auto-mode and raise streak min to 10. The volume-weighting is the recommended default — without it, equal-tick instruments dominate the read regardless of size.
Originality
The implementation — the LTF tick-rule reconstruction with optional volume weighting, the bounded pulse formulation, the dual aggressive-streak histograms with EMA smoothing, the two-tier (warning / extreme) threshold system, the single-bar massive-imbalance detector, the aggression-flip marker logic, the chart-overlay extreme tinting, and the iridescent dual-hue palette — is JOAT-original. No third-party code reused. The pulse is the original composite formulation.
Limitations
Reconstructed tick direction is an inference — the tick rule is the accepted public-market proxy but it is not a direct read of bid/ask volume. Sub-minute LTFs require a TradingView Premium or Ultimate plan. The pulse is bounded approximately in but extreme volume-weighted reads can briefly exceed those bounds; this is intentional and not a bug. EMA smoothing introduces a small lag; turn pulse length to 1 to see the raw imbalance.
—
-made with passion by jackofalltrades
Indicatore

Kalman Quantum Drift [JOAT]KALMAN QUANTUM DRIFT
A trend-and-envelope engine built on the cleanest pair of state-space tools in quantitative finance: a Kalman filter for the centreline (Bayesian, adaptive, mathematically optimal under linear-Gaussian assumptions) and a GARCH(1,1) conditional-variance model for the envelope (the institutional standard for time-varying volatility). The script reads price as a noisy observation of an unobservable true state; the Kalman filter estimates that state recursively; GARCH estimates the noise's volatility; the envelope = mid ± k · σ_GARCH. A signal engine layered on top detects Collapse events (>3σ excursions) and Tunnel events (gap-throughs of the envelope) — the quantum analogues of state collapse and quantum tunnelling.
The Kalman filter, properly
A single-state recursive Bayesian filter. At each bar:
Predict : prior estimate = previous estimate. Prior variance = previous variance + Q.
Update : Kalman gain = prior variance / (prior variance + R). New estimate = prior + gain × (observation − prior). New variance = (1 − gain) × prior variance.
The two tuning knobs are:
Q (process noise) — how much the script trusts new observations. Higher Q = faster, noisier mid-line.
R (measurement noise) — how much the script trusts the model. Higher R = slower, smoother mid-line.
This is the Bayesian-optimal smoother for linear-Gaussian state-space data. Real markets are not perfectly linear-Gaussian, but the Kalman estimate is robust enough to be the cleanest mid-line you can build without going into heavy non-linear filtering.
GARCH(1,1) envelope
The envelope around the Kalman mid is not ATR or stdev — it is GARCH(1,1) :
σ²_t = ω + α · ε²_{t−1} + β · σ²_{t−1}
ω is the long-run variance baseline, α is the reaction to last shock squared (ARCH term), β is the persistence of past variance (GARCH term). For stationarity, α + β < 1 (the script's α/β defaults respect that). Optional log returns (default ON) and a warm-up window seed the variance from realised returns.
The envelope is mid ± k · σ_GARCH , rendered as a gradient (configurable number of nested fills, each at progressive transparency from edge to core).
Three-signal engine
Collapse — fires when price travels more than collapse threshold (default 3.0) σ-units from the Kalman mid. The "state collapse" event — price has decisively departed the filter's expected band. Bull or bear depending on direction.
Tunnel — fires when a bar gaps through the entire envelope from one side to the other. The "quantum tunnel" event — a discontinuous jump that bypasses the band gradient.
Buy / Sell crosses — fire when price crosses the Kalman mid from one side. Optional Collapse confirmation gate (default ON) — Buy / Sell only fires when a Collapse occurred within the configurable lookback window. This dramatically improves signal quality.
A configurable signal cooldown (default 5 bars) prevents stacking.
Visual system
Kalman mid-line — coloured by its own slope (bull / bear), configurable width.
Gradient envelope — nested fills (configurable steps, default 6) using the same base hue with progressive transparency from edge to core. Strict two-hue discipline (bull cyan / bear pink only).
Price bar colouring by mid slope (toggleable).
Background tint on extremes — subtle bgcolor when price is at envelope edge (toggleable, default 92 transparency).
Event glyphs — C (Collapse) and T (Tunnel) markers at the event bar. Configurable size.
A locked Quantum palette (cyan bull / pink bear / muted cyan mid on a deep violet-black) gives the chart a distinctive quant-physics identity.
Dashboard
Monospaced table positionable to any of nine corners. Surfaces:
Current Kalman mid value with slope direction.
σ_GARCH value and the envelope half-width.
Distance of price from mid in σ-units.
Last Collapse / Tunnel / Buy / Sell event with bar age.
Q / R settings in use.
GARCH ω / α / β confirmation.
Alerts
Six alert conditions, each independently controllable:
Collapse Up / Down (>kσ excursion)
Tunnel Up / Down (envelope gap-through)
Slope Flip (Kalman mid changes direction)
Sigma Spike (σ_GARCH exceeds its own recent baseline)
How to read it
Three reads, in order of conviction:
Buy/Sell after a Collapse (the script's intended signal) — the cleanest trend-entry the engine produces. A Collapse means price decisively departed expected range; the subsequent mid-line cross confirms the new direction with the strongest possible context. This is the highest-conviction read.
Tunnel — an exceptional, rare event. When a single bar jumps the entire envelope, the market has experienced a discontinuity (news, large block, exchange dislocation). Often produces the day's largest moves; almost always followed by elevated volatility.
σ Spike alert without a directional event — a regime warning. Volatility just expanded without a directional commitment yet. The next signal that fires is statistically more likely to be meaningful than the one before the spike.
Suggested settings
Defaults (Q = 0.02, R = 1.5, GARCH ω=2e-6 / α=0.10 / β=0.85, k = 2.5, gradient steps 6) are tuned for 15m–1H on liquid markets. For lower timeframes drop k to 2.0. For HTF raise R to 3.0 (more model trust on smoother data). The GARCH α/β defaults are the institutional standard; α + β remains under 1 for stationarity.
Originality
Kalman filtering and GARCH(1,1) are textbook quantitative-finance methods — both decades-old, both well-documented. The implementation here — the single-state recursive Kalman with exposed Q/R, the GARCH(1,1) variance recursion with warm-up window, the gradient-envelope render using strict two-hue alpha-only variation, the three-signal engine (Collapse / Tunnel / Cross), the optional Collapse-confirmed Buy/Sell gating, the event glyph markers, and the background tint on extremes — is JOAT-original. No third-party code reused. The pairing of Kalman + GARCH + quantum-inspired signal naming is the original presentation.
Limitations
The Kalman filter assumes linear-Gaussian state dynamics — real markets violate this, especially around news and gaps. The Q / R tuning is exposed precisely because no single setting is universally correct; tune to your instrument's noise profile. GARCH's α/β must sum to less than 1 for stationarity — the defaults respect this; if you push them too aggressively the variance can explode. Collapse and Tunnel events are confirmed on bar close (non-repainting).
—
-made with passion by jackofalltrades
Indicatore

Hurst Regime Sentinel [JOAT]HURST REGIME SENTINEL
A proper R/S Hurst-exponent regime classifier — the single most respected statistical test for "is this market trending, mean-reverting, or random?". On top of the textbook R/S analysis, the Sentinel adds a five-class regime taxonomy (Strong MR, MR, Random, Trend, Strong Trend), a confirmation-bars filter to suppress flicker, a right-side floating Hurst badge, a regime-tinted background, and — uniquely — a Suggested JOAT Indicator dashboard row that names the best-fit companion script in the JOAT suite for the current regime.
The Hurst exponent, properly
The Hurst exponent H is a number between 0 and 1 that characterises the long-run persistence of a time series:
H < 0.5 — anti-persistent / mean-reverting. The series tends to reverse its recent direction.
H = 0.5 — random walk (Brownian motion). No memory.
H > 0.5 — persistent / trending. The series tends to continue its recent direction.
The classical estimator is R/S analysis (rescaled range): split the window into sub-segments, compute the range of cumulative deviations from each sub-mean, normalise by the sub-stdev, average, and fit a log-log slope. This script implements that estimator over a configurable lookback (default 100, the canonical value), with optional log-return source for theoretical correctness, and an EMA smoother on top of the raw H series to give a stable regime read.
Five-class regime taxonomy
The Sentinel does not just classify into trend/MR/random — it sub-classifies the trend and MR sides:
Strong MR — H below the strong-MR boundary (default 0.30). Severely anti-persistent. Aggressive reversion regime.
MR — H between strong-MR and the MR upper (default 0.40). Mean-reverting.
Random — H between MR upper and trend lower (default 0.55). No statistical edge from persistence assumptions.
Trend — H above trend lower. Trending.
Strong Trend — H above the strong-trend boundary (default 0.65). Strongly persistent. Aggressive momentum regime.
A Minimum-bars-to-confirm filter (default 3 bars) suppresses regime flicker; a change must persist this many bars before it is committed.
Suggested JOAT Indicator row (unique)
The dashboard exposes a Suggested Indicator row that names the best-fit companion script from the JOAT suite for the current regime. The user can pick which suggestions appear (defaults: Volatility Reversion Bands Pro for MR, Quantum Trend Matrix for Trend, Liquidity Magnet Pro for Random — but every other JOAT indicator is selectable). This converts the abstract regime read into a concrete next action: when the regime changes, the script tells you which other tool in the suite to put on the chart.
Visual system
Right-side floating label — anchored N bars to the right of the latest bar with current H value, regime, and sub-class.
Regime-change labels — drawn at the bar where a confirmed regime change occurs.
Background tint by regime — violet for MR, teal for Trend, untinted for Random. Strong sub-classes use a stronger (lower-transparency) alpha than mild sub-classes. Both alphas are configurable.
Optional Hurst line companion — when enabled, plots the H series scaled to a configurable fraction of the visible price range. Use to visually track H movement over time. Off by default for a clean chart.
Optional reference levels at 0.40 / 0.50 / 0.55 when the line is shown.
A locked Mystic palette (teal trend / violet MR / white random on a midnight-blue ground) gives the chart a distinctive structural identity.
Dashboard
Monospaced table positionable to any of nine corners. Surfaces:
Current H value (raw and smoothed).
Regime classification with glyph.
Sub-class (Strong MR / MR / Random / Trend / Strong Trend).
Bars in current regime.
Distance from H to nearest threshold.
Suggested JOAT Indicator row (toggleable).
Source series in use (Close / HL2 / HLC3 / OHLC4 / Log Returns).
Alerts
Multiple alert conditions, each independently controllable:
Regime changed to MR / Random / Trend
Sub-class changed to Strong MR / Strong Trend
H crosses 0.50 (random-walk centre)
How to read it
Three reads, in order of conviction:
Sub-class entry (Strong MR or Strong Trend) — the highest-conviction read. The market has decisively committed to a persistence regime; the suggested companion indicator becomes high-conviction.
Regime change confirmed (after the minimum-bars filter) — meaningful enough to switch toolkits. If you were trading momentum and the script now reads MR, your edge has just rotated.
H crossing 0.50 — the structural fault line. Above, persistence is positive; below, it is negative. Even without a sub-class entry, a clean cross of 0.50 is a regime warning.
Suggested settings
Defaults (lookback 100, EMA smoothing 14, MR upper 0.40, trend lower 0.55, strong boundaries 0.30 / 0.65) are tuned for daily and 4H charts on liquid markets — the timeframes where R/S analysis is statistically most meaningful. For 1H and below the indicator works but the H estimate becomes noisier; raise the EMA smoother to compensate. For very long horizons (1W+) increase lookback to 200.
Originality / what's reused
The R/S Hurst estimator is the textbook 1951 method — public-domain statistics, implemented from the original Hurst paper. The implementation here — the bounded-loop R/S computation with sub-segment averaging, the five-class regime taxonomy with strong sub-classes, the confirmation-bars regime-change filter, the regime-driven background tint with mild/strong alpha tiers, the optional scaled Hurst-line overlay, the right-side floating badge, and the suggested-JOAT-indicator dashboard row — is JOAT-original. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. The R/S loop, the regime classifier, the suggested-indicator router, and the dashboard are isolated modules. Forks welcome with credit.
Limitations
Hurst R/S is statistical — it describes the recent past, it does not predict the future. The estimator carries the natural noise of finite-sample R/S; the EMA smoother is there to suppress flicker but cannot eliminate underlying noise on short lookbacks. The "Suggested JOAT Indicator" row is a heuristic mapping from regime to tool, not a prediction that any specific signal from that tool will fire — it tells you which corner of the toolkit to look at; the tool itself tells you when to act.
—
-made with passion by jackofalltrades
Indicatore

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
Indicatore

Fractal Dimension Index [JOAT]FRACTAL DIMENSION INDEX
A proper Higuchi-method Fractal Dimension Index that tells you whether the market is currently trending (D approaches 1.0 — a smooth, linear path), chopping (D approaches 2.0 — a noisy, plane-filling random walk), or somewhere in between. Unlike volatility, FDI does not care about how much price moved — it cares about how convoluted the path was getting there . That makes it the single cleanest regime-classification number in technical analysis.
What FDI measures
The fractal dimension of a curve is a number between 1.0 (a perfect line) and 2.0 (a curve dense enough to fill a plane). For price series:
D ≈ 1.0–1.4 — the price path is close to a straight line. The market is trending; momentum tools work, reversion tools don't.
D ≈ 1.4–1.6 — the path is in a transitional regime. Use neutral tools.
D ≈ 1.6–2.0 — the path is chaotic and self-intersecting. The market is chopping; reversion tools work, momentum tools whipsaw.
The Higuchi-paper canonical thresholds are 1.4 (trend) and 1.6 (chop); both are configurable.
Higuchi algorithm — done properly
The implementation is the standard Higuchi method:
For each k from 1 to k_max (configurable, default 8), compute the average curve length L(k) across k starting offsets, normalised by the window length N.
Build the k_max pairs (log k, −log L(k)) .
Fit a least-squares line through those pairs; the slope is the fractal dimension D .
Apply optional EMA smoothing (configurable, default 5 bars) to suppress per-bar jitter.
A minimum-valid-pairs guard (default 3) prevents D from being computed when too few (k, L) pairs are finite, and a warmup-bars gate (default 50) prevents wild D values on sparse early data.
Regime classification with hysteresis
Raw D is mapped to one of three regimes — Trending / Random / Chop — using the two-threshold scheme. Two extra alert thresholds ( Extreme Trend D < 1.30 and Extreme Chop D > 1.70) flag the high-conviction tail cases.
Visual system
Background tint by regime — pastel mint for trend, coral for chop, cream for random. Transparency configurable (default 88, institutional-subtle).
Regime-change markers — tiny up/down/circle glyphs above price at every confirmed flip.
Optional candle tinting by regime (off by default to preserve user's chart style).
Optional D-line companion — when enabled, the smoothed D is plotted as a series. Because the script is overlay, pin the line to its own scale (right-click → Pin to scale → No Scale). For a true sub-pane, add the indicator a second time and drag that instance into a new pane.
Right-side floating label — anchored N bars right of the live close showing current D and a regime glyph. Configurable size, offset, regime text.
Optional reference horizontal lines at D = 1.4 / 1.5 / 1.6 when the D-line is shown.
A locked Pastel palette (mint trend / coral chop / cream random on a warm-white ground) gives the indicator a distinctive soft-institutional look.
Dashboard
Monospaced table positionable to any of nine corners. Surfaces:
Current D value and smoothed D value.
Regime classification with glyph.
Bars in current regime.
Distance to nearest threshold.
Extreme-state badge when in tail regions.
Alerts
Four alert conditions, each independently controllable:
Regime Flip (any classification change)
Extreme Trend (D crosses below 1.30)
Extreme Chop (D crosses above 1.70)
D Series Crosses 1.5 (the random-walk centre)
How to read it
Two reads, in order of conviction:
Regime classification + bars in regime — the more bars the current regime has persisted, the more reliable the read. Brand-new flips can flicker; multi-bar confirmed regimes do not.
Extreme regime alerts — when D crosses below 1.30, the market is in an extremely directional regime — momentum trades are the highest-conviction setups. When D crosses above 1.70, the market is in pathological chop — fade extremes, do not chase breakouts.
The single most useful workflow is to use FDI as a meta-filter — pair every signal-generating indicator with FDI regime. Trend signals from a momentum tool become high-conviction when D < 1.4; reversion signals from a Z-score oscillator become high-conviction when D > 1.6. The Suggested JOAT Indicator dashboard rows in Hurst Regime Sentinel and Entropy Oscillator follow exactly this principle.
Suggested settings
Defaults (window 30, k_max 8, EMA smoothing 5, warmup 50) are tuned for 15m–1H. For lower timeframes drop window to 20 and EMA to 3. For HTF (4H+) raise window to 50 and EMA to 8. The Higuchi-paper thresholds (1.4 / 1.6) are intentionally classical — tighten only if you find the regime classification too sensitive on your instrument.
Originality / what's reused
The Higuchi fractal-dimension algorithm is the textbook 1988 method — a public-domain piece of applied mathematics, implemented from the paper. The implementation here — the bounded-loop Higuchi pipeline with minimum-pairs guard and warmup gate, the two-threshold regime classifier with extreme-tail alerts, the pastel-palette regime tint, the pin-to-scale D-line companion logic, the right-side floating label, and the dashboard — is JOAT-original. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. The Higuchi loop, the regime classifier, the alert logic, and the dashboard are isolated modules — adapt any single piece without reading the whole file. Forks welcome with credit.
Limitations
Higuchi D is statistical — it tells you about recent path complexity , not future direction. A trending regime (D < 1.4) does not say which way; it says momentum tools should work. Combine with a directional indicator. The algorithm uses bounded Pine loops; very large window values increase compile cost. D is smoothed (EMA-filtered) by default, which trades some lag for substantially reduced flicker; turn smoothing off to see raw D.
—
-made with passion by jackofalltrades
Indicatore

Entropy Oscillator [JOAT]ENTROPY OSCILLATOR
A pane oscillator that measures the Shannon entropy of recent returns — the information-theoretic measure of how uncertain (chaotic) vs how predictable (directional) the recent distribution of price moves has been. Low entropy = the market is in a directional regime; high entropy = the market is chopping. Unlike volatility, entropy does not care about how big moves are — only how concentrated their distribution is. That distinction is what makes it one of the cleanest regime-classification tools in quantitative finance.
Shannon entropy, applied to markets
For a sequence of N recent log returns, the script:
Bins the returns into B equal-width bins across the empirical range.
Computes the probability of each bin (count / N).
Computes the Shannon entropy: H = −Σ p(i) · log(p(i)) over non-zero bins.
Normalises to by dividing by log(B) — the maximum possible entropy for B bins, which corresponds to a perfectly uniform distribution.
A perfectly uniform distribution (returns evenly spread across all bins → chaotic chop) produces normalised entropy of 1.0. A perfectly concentrated distribution (all returns in one bin → directional regime) produces entropy of 0. Real markets sit in between, and the script's job is to tell you where.
Two-threshold regime classification
Normalised entropy < low threshold (default 0.30) → DIRECTIONAL regime. The distribution of returns is concentrated; momentum tools work.
Normalised entropy > high threshold (default 0.70) → CHOP regime. The distribution is spread; reversion tools work.
Between the thresholds → MIXED regime. Neither side has the edge.
The thresholds are the spec-default institutional values; tighten or loosen for your instrument.
Slope-coloured entropy line
The smoothed entropy series is plotted in the pane with a slope-driven colour gradient — bull colour when entropy is falling toward directional, bear colour when entropy is rising toward chop. At a glance you can see which way the regime is moving even before it has crossed a threshold.
Visual system (pane + chart overlay)
In the pane:
Slope-coloured entropy line.
Threshold lines at low / 0.5 / high (toggleable).
Translucent fill zones for the low and high regions.
Pane background tint by current regime (toggleable).
On the chart (force_overlay):
Bar colouring — chart bars tinted by regime (cool when directional, hot when chop, neutral when mixed). Off by default.
Overlay background — subtle bgcolor projected onto the main chart marking the current regime. Off by default.
A locked Crimson Pulse palette (electric blue directional / lime-yellow chop / muted mauve mixed on a crimson-black ground) gives the pane a distinctive structural identity.
Regime Suggestion dashboard row
Like its sister script Hurst Regime Sentinel, Entropy Oscillator exposes a Suggested JOAT Indicator row that names the best companion script for the current regime. Defaults: AlphaTrend / Kalman Quantum Drift / Doppler Velocity Shift family for Directional regimes; Z-Score Reversion / Heisenberg Uncertainty Bands / Brownian Motion Residual / Renaissance Mean Reversion for Chop; Liquidity Magnet / Schrödinger Zone Probability / Fractal Dimension Index for Mixed. Every suggestion is user-configurable — you pick from the JOAT suite which tool the dashboard recommends per regime.
Dashboard
Monospaced table positionable to any of nine corners. Surfaces:
Current normalised entropy value.
Smoothed entropy and its slope direction.
Regime classification.
Bars in current regime.
Distance from entropy to nearest threshold.
Source series + window length + bin count in use.
Suggested JOAT Indicator (toggleable).
Alerts
Three alert conditions, each independently controllable:
Cross into Low Entropy (directional regime entry).
Cross into High Entropy (chop regime entry).
Any Regime Change (any classification flip).
How to read it
Two reads, in order of conviction:
Entry into Low Entropy — the directional commitment signal. The recent distribution of returns has narrowed; the market is in a momentum regime. Pair with a directional indicator (the dashboard's suggestion row tells you which).
Entry into High Entropy — the chop confirmation signal. Returns are widely distributed; momentum tools whipsaw, reversion tools work. Pair with a reversion indicator.
The "slope of entropy" itself is the leading read — when the line is falling toward the low threshold, a directional regime is forming; when it is rising toward the high threshold, chop is building. You do not need to wait for the threshold cross if you trust the slope gradient.
Suggested settings
Defaults (window 50 returns, 10 bins, EMA smoothing 3) are tuned for 15m–4H on liquid markets. The rule of thumb is window / bins ≥ 5 so each bin has enough samples to be statistically meaningful. For lower timeframes drop window to 30 and bins to 6. For HTF raise window to 100 and bins to 12.
Originality / what's reused
Shannon entropy is textbook 1948 information theory — public domain. The implementation here — the rolling N-return histogram pipeline with configurable bins, the log(B)-normalised entropy formula, the two-threshold regime classifier with mixed centre, the slope-coloured entropy line, the chart-overlay bar-colouring projection from the pane, and the user-configurable Suggested JOAT Indicator dashboard row — is JOAT-original. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. The histogram + entropy loop, the regime classifier, the slope-colour pipeline, and the dashboard are isolated modules. Forks welcome with credit.
Limitations
Shannon entropy describes the recent distribution of returns — it does not predict direction. A directional regime tells you momentum tools should work; it does not say which way. The histogram is sensitive to bin count and window length; the rule-of-thumb window / bins ≥ 5 is the default sanity check. EMA smoothing trades some lag for substantially reduced flicker; turn smoothing to 1 to see raw entropy.
—
-made with passion by jackofalltrades
Indicatore

Doppler Velocity Shift [JOAT]DOPPLER VELOCITY SHIFT
A trend-acceleration / exhaustion detector built on the Doppler shift principle : a stationary observer (the baseline frequency) compared to a moving source (the instant frequency) produces a measurable shift whose sign tells you whether the source is approaching (compression / acceleration) or receding (rarefaction / exhaustion). For markets the analogue is simple: when the residual wave's oscillation frequency is slower than its long-run baseline, momentum is accelerating into the trend; when it is faster than baseline, the trend is exhausting into chop.
The Doppler analogue, translated
The script's pipeline:
Detrend price by subtracting an EMA (configurable length). The result is a residual wave oscillating around zero.
Optionally normalise by ATR so the wave amplitude is regime-aware.
Count zero-crossings of the residual over a short window — this gives the instant frequency .
Count zero-crossings over a long window — this gives the baseline frequency .
Compute the Doppler shift = (instant − baseline) / baseline. Positive shift = faster than baseline → exhaustion. Negative shift = slower than baseline → acceleration.
EMA-smooth the shift to reduce flicker.
The output is a percentage that is intuitive to read: +0.30 means oscillations are 30% faster than baseline (approaching exhaustion); −0.30 means 30% slower (accelerating into trend).
Two-threshold event detection
Exhaustion — shift > +exhaustion threshold (default +0.30) for N consecutive bars (configurable, default 3). Fires the Exhaustion label.
Acceleration — shift < −acceleration threshold (default −0.30) for N consecutive bars. Fires the Acceleration label.
Frequency Anomaly — when |shift| crosses threshold × multiplier (default 2.0× → ±0.60). The anomaly alert fires and the chart background tints accordingly.
A configurable Event Cooldown (default 8 bars) prevents same-type events from stacking. A multi-bar confirmation gate prevents single-bar noise from triggering events.
Visual system
Detrend residual line (overlay) with configurable transparency and cosmetic display scale.
Vertical event lines at each Acceleration / Exhaustion event, with optional full-height extension for emphasis.
Event labels — Unicode glyphs by default (toggleable to plain text ACCEL / EXHAUST).
Frequency anomaly background tint when the |shift| crosses the anomaly trigger.
Pane companion (toggleable, on by default) — plots instant frequency, baseline frequency, and Doppler shift % in a separate pane below the chart.
A locked Cyber Aqua palette (electric blue acceleration / hot pink exhaustion / muted blue-gray stable on a near-black ground) gives the indicator a distinctive physics-inspired identity.
Dashboard
Monospaced table, positionable to any of nine corners, with row-fade gradient. Surfaces:
Instant frequency (zero-crossings in the short window).
Baseline frequency (zero-crossings in the long window).
Doppler shift % (signed).
Current status (ACCEL / EXHAUST / STABLE).
Last event direction with bars-ago.
Configuration: detrend length, frequency window, baseline window.
Anomaly flag when triggered.
Alerts
Three alert conditions, each independently controllable:
Trend Acceleration (shift < −threshold for N bars)
Approaching Exhaustion (shift > +threshold for N bars)
Frequency Anomaly (|shift| > threshold × multiplier)
How to read it
Two reads, in order of conviction:
Acceleration label after a quiet period — the script's intended trend-entry signal. Frequency has slowed, meaning the residual is making fewer mid-line crossings — the wave has lengthened and is now committed in one direction. Pair with a directional indicator for entry.
Exhaustion label inside an extended trend — the script's intended trend-exit signal. Frequency has risen above baseline — the residual is making more crossings, meaning the trend is fragmenting. Reduce / exit trend exposure; the next move is often a reversal.
The Frequency Anomaly alert is the script's headline event — when |shift| spikes far past threshold the market is in an extreme state, almost always associated with either an explosive breakout (acceleration anomaly) or an exhaustion blowoff (exhaustion anomaly).
Suggested settings
Defaults (detrend EMA 20, frequency window 40, baseline window 200, smoothing EMA 3, ±0.30 thresholds, 3-bar confirmation) are tuned for 15m–1H on liquid markets. For lower timeframes drop windows proportionally (10 / 20 / 100). For HTF (4H+) raise windows (30 / 80 / 400). The ATR-normalised residual is the recommended default — without it, the script's behaviour drifts on instruments with changing volatility levels.
Originality
The Doppler shift is a fundamental result of classical physics; the financial-market analogue and its implementation here are original. The pipeline — the EMA-detrended residual wave with optional ATR normalisation, the rolling zero-crossing frequency estimator at two scales, the (instant − baseline) / baseline shift formula, the EMA-smoothed shift, the multi-bar confirmed event classifier with cooldown, the anomaly multiplier layer, the vertical event line render, the pane-companion three-series overlay, and the dashboard — is JOAT-original. No third-party code reused. The use of oscillation-frequency shift as a trend acceleration / exhaustion metric is the original quantitative contribution.
Limitations
Zero-crossing frequency estimation is noisy on short windows; the smoothing input (default 3) exists to suppress that. The frequency-anomaly trigger is a heuristic — it tells you the market is in a rare state, not which direction it will resolve. Events confirm only after the multi-bar threshold; events are non-repainting but lag by the confirmation window.
-made with passion by jackofalltrades
Indicatore

Brownian Motion Residual [JOAT]BROWNIAN MOTION RESIDUAL
A regime classifier rooted in the sqrt(T) scaling law of geometric Brownian motion. Under a true random walk, the standard deviation of T-bar returns scales as σ₁ · √T — that is the central fact of Brownian motion in continuous time. Markets violate this scaling in revealing ways: when they trend, dispersion at long horizons grows faster than √T; when they mean-revert, it grows slower. Brownian Motion Residual measures that violation across three horizons simultaneously, aggregates it, and surfaces a single Z-like residual that classifies the market into Strong MR / MR / Random / Trend / Strong Trend.
The sqrt(T) scaling law, restated
For a Brownian process with per-bar volatility σ₁:
σ(T-bar return) = σ₁ · √T
For a real market the observed σ at horizon T can be measured directly. The residual is the deviation of the observed value from the Brownian-implied value:
residual(T) = σ_observed(T) − σ₁ · √T
When the residual is positive , dispersion at T is greater than Brownian predicts — the market is trending (price travels further than a random walk in T bars). When it is negative , dispersion is less than Brownian predicts — the market is mean-reverting (price ends up closer to home than a random walk would).
Optional normalisation by σ₁ · √T turns the residual into a unit-less percentage of expected dispersion, so the same threshold values are meaningful across instruments and timeframes.
Three horizons, weighted blend
A single horizon is noisy. Brownian Motion Residual reads three horizons simultaneously (default 5 / 20 / 100 bars), each independently toggleable and weighted (default 1.0 each). The horizons are aggregated into a single residual line — the script's headline metric. Toggling off the short horizon makes the read smoother and slower; toggling off the long horizon makes it more reactive. Configurable.
A configurable EMA on top of the aggregated residual suppresses single-bar noise without lagging the regime view.
Two-tier classification
The aggregated residual is mapped to one of five regimes by two symmetric thresholds (default ±1 mild, ±2 strong):
Strong Trend — residual > +2. Aggressive momentum regime.
Trend — residual between +1 and +2. Trending.
Random — residual between −1 and +1. Brownian-like.
MR — residual between −2 and −1. Mean-reverting.
Strong MR — residual < −2. Aggressive reversion regime.
Visual system
Slope-coloured residual line with configurable width and optional area fill under it (transparency configurable).
Zero line and ±1 / ±2 threshold lines (toggleable).
Background tint by regime (subtle 88 transparency default) — teal trend, lavender MR, mint random.
Per-horizon plots (toggleable, off by default) — each horizon's residual as a faint dotted overlay; useful for seeing which horizon is driving the read.
Regime-change dots above the line at every confirmed flip.
A locked Aurora palette (teal trend / lavender MR / mint random on a deep-night ground) gives the pane a distinctive structural identity.
Dashboard
Monospaced table, positionable to any of nine corners, with vertical row-fade. Surfaces:
Aggregated residual (raw and smoothed).
Regime classification with glyph.
σ₁ value (the Brownian anchor).
Per-horizon residuals (h1 / h2 / h3) when enabled.
Bars in current regime.
Distance to nearest threshold.
Optional fancy Unicode header for the institutional aesthetic.
Alerts
Three alert conditions, each independently controllable:
Regime Change (any classification flip)
Strong threshold cross (±2)
Mild threshold cross (±1) — off by default
How to read it
Three reads, in order of conviction:
Strong Trend / Strong MR entry — the highest-conviction read. The market has decisively departed from Brownian scaling in one direction. Pair with a momentum tool in Trend regimes, a reversion tool in MR regimes.
Residual crossing zero — the regime fault line. Even before crossing a threshold, a sustained sign flip means the underlying distribution has rotated; the next threshold cross will confirm the new regime.
Per-horizon disagreement (when enabled) — when the short horizon is in trend regime but the long horizon is in MR regime, the market is in a nested state: short-term momentum inside a longer reversion. This is the textbook setup for fade-the-extreme intraday plays inside a wider range.
Suggested settings
Defaults (σ₁ window 100, observed σ window 60, horizons 5/20/100, equal weights, log returns ON, normalisation ON) are tuned for 15m–4H on liquid markets. For lower timeframes drop horizon 3 to 50. For HTF (daily+) raise horizon 3 to 200 and σ₁ window to 200. Log returns are theoretically correct and the recommended default — the script's regime classification depends on the scaling law, which assumes log returns; switch off only for research.
Originality
The √T Brownian scaling law is textbook continuous-time finance — the central piece of Bachelier's 1900 thesis and the foundation of every diffusion model in pricing. The implementation here — the per-horizon σ measurement pipeline, the σ₁-anchored Brownian baseline with optional normalisation, the three-horizon weighted aggregation, the EMA-smoothed residual classifier with two-tier thresholds, the per-horizon overlay layer, the regime-tinted background, and the dashboard — is JOAT-original. No third-party code reused. The use of residual against Brownian as a regime classifier is the original quantitative contribution.
Limitations
The √T law is exact only for Brownian motion — real markets have fat tails, autocorrelation, and discrete bars, so the measured "residual" is always non-zero even in a regime that looks random. The thresholds (±1 / ±2) are calibrated to be the regime boundaries empirically; tighten or loosen if your instrument has unusual variance behaviour. Per-horizon σ values need their respective windows populated to be meaningful — early bars give a warm-up read.
—
-made with passion by jackofalltrades
Indicatore

Whale Absorption Profile [JOAT]WHALE ABSORPTION PROFILE
The flagship orderflow visual in the JOAT suite. A complete institutional-grade footprint dashboard — heatmap candle strips, horizontal volume profile, delta ladder, side histogram, POC/VAH/VAL lines, and whale / absorption / imbalance glyphs — all driven by the same underlying lower-timeframe-reconstructed intrabar data and rendered in a curated asthetics. Built to give you the entire auction picture in one indicator, on chart, without a dedicated orderflow platform.
Six visual layers, one engine
Every layer reads from the same intrabar data pipeline. The pipeline uses request.security_lower_tf at a configurable LTF (1m / 3m / 5m / 15m / 30m) to sample sub-bar prints, classifies each via the standard tick rule, then buckets the classified volume into a price-binned profile (configurable rows, default 50). Every layer below reads from those bins.
Heatmap candle strips — the body of each recent chart candle is overlaid with horizontal heat slices coloured along an absorption-intensity ramp (deep blue → indigo → violet → magenta → gold). At a glance you can see where, inside each bar, the auction happened.
Horizontal volume profile — a classic side profile of total volume per bin, rendered with split buy/sell colour so you can read which side dominated each price.
Delta ladder column — a vertical ladder of per-bin delta (buy − sell), positionable to any of nine corners on the chart. Drawn as a horizontal-going-left-to-right cell array so it never collides with the dashboard.
Side volume histogram — a compact buy/sell volume histogram aligned to the profile bins, for traders who want a second view of side-share that is not contaminated by total volume.
POC / VAH / VAL lines — the Point of Control, Value Area High, and Value Area Low computed from the profile and rendered as horizontal lines that extend right of the latest bar.
Whale / Absorption / Imbalance glyphs — three separate detection layers (described below) each render a distinct on-chart glyph at the bin where their condition fires.
A Lite Mode toggle disables the heaviest layers (heatmap strips + side histogram) for low-end machines or multi-indicator stacking.
Three orthogonal detection layers
Whale Print — a bin qualifies as a whale row when total bin volume is above a configurable percentile (default 95th of the bin distribution) and is above the whale-delta threshold (default 70%). Both gates: large and one-sided.
Absorption Zone — score = min(buy, sell) / (priceMovement + ε) . High when both sides traded heavily but price did not move — the classic limit-order-absorption signature. A bin qualifies when its absorption score exceeds the configurable percentile (default 90th).
Imbalance Spike — a bin qualifies when one side's volume is at least N× the other (default 3.0×). The standard footprint imbalance ratio.
These three are deliberately separate — a single price can be a whale row, an absorption zone, and an imbalance spike at once, in which case all three glyphs fire and you have a textbook stacked-signature read.
POC shift alert
The Point of Control's bar-to-bar bin-distance is tracked. When the POC jumps more than the configurable POC Shift: Bin Distance Trigger (default 2 bins) between consecutive bars, the POC Shift alert fires — the auction's value has rotated price levels, which is the most actionable single regime-change signal a profile produces.
Visual aesthetic
A locked institutional palette: cyan-teal bull (#5CF0D7), magenta bear (#FF4D75), and a signature absorption ramp — deep void → ultramarine → indigo → violet → magenta → gold — designed to read like a heat-mapped orderbook on a deep-space background (#02011A). The four multi-stop gradients drive heatmap, absorption, delta, and whale layers independently, so the chart never looks visually flat.
Dashboard
Monospaced table, positionable to any of nine corners, with row-fade gradient. Surfaces:
Current POC price + bin distance from previous POC.
VAH / VAL price levels.
Cumulative bar delta.
Whale print count, absorption zone count, imbalance spike count in the lookback.
Current row classifications for the active price (Whale / Absorption / Imbalance).
LTF in use and bin count.
Alerts
Four alert conditions, each independently controllable:
Whale Print
Absorption Zone
Imbalance Spike
POC Shift (bin distance > threshold)
How to read it
Three reads, in order of conviction:
Stacked detection at the same bin — when a bin fires Whale + Absorption + Imbalance simultaneously, the auction has experienced a complete event: large size, both sides traded heavily, and the side imbalance was extreme. These are the rarest and strongest reads the script produces.
POC Shift through a previous structural level — value migration. The auction's centre of gravity has just moved through your S/R; the rest of the session usually follows.
Heatmap candle strip + delta ladder agreement — when the heatmap concentration sits at the same price the delta ladder shows one-sided imbalance, the bar is institutionally meaningful regardless of the candle shape.
Suggested settings
Defaults (1m LTF, 50 bins, 40-bar lookback, 95th percentile gates) are tuned for 5m–15m on liquid futures and crypto. For 1m scalping, drop bins to 30 and lookback to 20 to keep the script responsive. For 1H+ HTF, raise lookback to 100 and bins to 60. Lite Mode is recommended when stacking with other heavy indicators.
Originality
The implementation — the unified intrabar pipeline that feeds six independent visual layers, the percentile-gated whale detector, the min(buy,sell) / priceMovement absorption score, the diagonal-imbalance row detector, the multi-stop absorption gradient (six-stop signature ramp), the configurable delta ladder with nine-corner positioning, the POC bin-distance shift detector, and the grade composite palette — is JOAT-original. No third-party code reused. The footprint vocabulary (POC, VAH/VAL, imbalance, absorption, whale) is public-domain auction-theory language; this implementation is purpose-built for Pine v6 with bar data only.
Limitations
Reconstructed intrabar data is an approximation — the tick rule is the accepted public-market inference but it is not a direct read of bid/ask. Sub-minute LTFs require a TradingView Premium or Ultimate plan. The script renders many polylines, boxes, and labels — Pine's max_polylines_count / max_boxes_count / max_labels_count caps apply. Lite Mode exists specifically for low-spec / multi-indicator scenarios. POC, VAH, VAL, and detection layers are computed from confirmed intrabar data so they update on bar-by-bar close (non-repainting beyond the current developing bar).
—
-made with passion by jackofalltrades
Indicatore

Sweep and Cluster [JOAT]SWEEP AND CLUSTER
A two-stage liquidity-sweep engine. Most public "sweep" indicators print a label on every wick that pokes past a recent high or low — which is mostly noise. Sweep and Cluster requires two separate events to register a tradeable signal: first a strict 5-condition sweep, then a confirming cluster of price action in the rejection direction. The label that actually appears on the chart is the rare intersection — the moments where institutional stop-running is followed by genuine commitment in the opposite direction.
Stage 1 — Strict 5-condition sweep detection
A sweep is registered only when all of these are true on the same bar:
Real pivot reference — the swept level is an actual minor pivot (ta.pivothigh / ta.pivotlow) from the rolling cache, not a rolling max/min. A scan-depth input controls how far back to look; a minimum-age gate prevents self-reference.
Wick magnitude — the wick that exceeds the pivot must be at least Wick ATR Multiplier × ATR(14) (default 0.8 ATR). The KB-published strict threshold.
Wick dominance — wick length must be at least Wick/Range Ratio of the candle's total range (default 35%). The wick must dominate the bar's shape, not be a side-effect of a large body.
Closing direction — close must be back inside the swept level. A clean wick that closed beyond the pivot is a breakout, not a sweep — and is filtered out by construction.
Cooldown — at least N bars (default 8) since the last same-side sweep. Prevents one stop-run from being counted as multiple sweeps when the wick prints over several bars.
If all five conditions are met a pending marker is placed (optional). Pending markers represent "a sweep happened" but not yet "the sweep was meaningful" — until the cluster confirms, the sweep is not actionable.
Stage 2 — Cluster confirmation
After a sweep fires, the next N bars (cluster window, default 5) are monitored for confirming follow-through. The cluster confirms only when:
At least M bars (default 1) close against the swept direction inside the window.
Average body/range across the qualifying cluster bars exceeds the Min Body Ratio (default 0.25) — the rejection candles must be impulsive, not micro-bodies.
Cumulative volume across the cluster window is at least Volume Multiplier × Average Volume (default 0.8×). Without volume the cluster is not commitment.
When all three confirm, the script fires the SAC (Sweep And Cluster) label — the actionable signal. A cluster strength badge (body sum / ATR) is rendered next to the label so you can rank one SAC vs another at a glance.
A failed sweep marker (toggleable, off by default) tracks sweeps that expired without confirming — useful for auditing the false-positive rate visually and for choosing thresholds.
Visual system
Sweep wick highlight — a thin coloured line at the swept reference price, extended right by a configurable number of bars. Makes the rejection unmistakable.
Reference level triangle — small glyph at the actual pivot level that was swept.
Cluster candle override — when SAC fires, the confirming cluster candles are repainted in the active-side theme colour via plotcandle so the move stands out from background.
Optional background tint — fading directional bgcolor for a few bars after a confirmed SAC.
Optional bar paint by active bias — every bar painted bull/bear based on the most recent SAC. Off by default to preserve chart neutrality.
A locked Quantum palette (cyan-quantum bull / pink-quantum bear on a deep void) gives the chart a distinctive sweep-and-reverse identity.
Dashboard + rolling statistics
A monospaced table, positionable to any of nine corners, with vertical row-fade for premium feel. Surfaces:
Total sweeps and total SACs since the last session/day/week reset (configurable reset frame).
Rolling Confirmation Rate (% of recent sweeps that became SACs) over a configurable window (default 50). The script's own success metric.
Pending sweep status with bars-remaining-in-cluster-window.
Last SAC direction with strength badge and bars-ago.
Last failed sweep tag (when failed markers are enabled).
Confirmation Rate is the headline read — it lets you see whether the current threshold settings are producing meaningful or sparse signals on the instrument you are trading.
Alerts
Three alert conditions, each independently controllable:
Pending Sweep (Stage 1 fires)
SAC Confirmed (Stage 2 confirms)
SAC Failed (Stage 2 expires without confirming) — off by default
How to read it
Two reads, in order of conviction:
SAC Confirmed alert with a high strength badge — the script's intended signal. Liquidity was swept, a real rejection followed inside the window, and the rejection had body and volume. This is the actionable read.
Pending Sweep at a known structural level (S/R, supply/demand) — useful as a "watch for the cluster" warning. If the cluster confirms, you have a high-conviction reversal at a structural location.
In persistent trends the failed-sweep rate climbs — that is the script telling you the regime does not currently favour sweep-and-reverse setups; stand aside or use the script in the trend direction only.
Suggested settings
Defaults (pivot lookback 8, wick ATR 0.8, body ratio 0.35, cluster window 5) are tuned for 15m–1H on liquid markets. For scalping (1m–5m), drop pivot lookback to 4 and cluster window to 3. For HTF macro reads (4H+), raise pivot lookback to 12–20 and cluster window to 8. The strict-threshold wick filters (0.8 ATR + 35%) are intentionally institutional — loosen for less liquid instruments.
Originality
The implementation — the five-condition strict sweep gate, the rolling minor-pivot cache with age and scan-depth filters, the three-condition cluster confirmation, the cluster-strength badge calculation, the pending → confirmed → failed state machine, the wick-level highlight render, the plotcandle override for confirming bars, the rolling confirmation-rate metric, and the session-reset counter — is JOAT-original. No third-party code reused. The "sweep + reaction" pattern is well-known to professional tape readers; the strict double-gate implementation is built specifically for chart-based Pine data.
Limitations
A confirmed SAC requires the cluster window to elapse — by definition the signal carries the cluster window bars of lag relative to the sweep. This is intentional; the cluster is what makes the signal meaningful. Failed sweeps are expected — the confirmation rate metric is there for you to see and tune accordingly. The script is structure-aware (uses real pivots) but does not know about HTF structure; combine with a higher-timeframe S/R indicator for best fit.
—
—
-made with passion by jackofalltrades
Indicatore

Order Flow Footprint [JOAT]ORDER FLOW FOOTPRINT
A full intrabar footprint engine — POC, Value Area, per-row imbalance detection, stacked imbalance zones, delta-flip alerts, POC-shift alerts, and per-bar footprint ladder labels — built to read like a Bookmap-style auction view directly on a TradingView chart. Uses the native Footprint API when your plan provides it, with a graceful fallback to lower-timeframe tick-rule reconstruction so the script works on every account tier.
Data source — Footprint API or reconstructed
Three modes, behaviourally identical:
Footprint API — uses request.footprint() with a configurable aggregation (Auto / 1m / 3m / 5m / 15m / 30m). Native bid/ask volume per row when your plan supports it.
Reconstructed — uses request.security_lower_tf() to sample intrabar prints, then assigns each tick to buy or sell via the standard tick rule. Configurable LTF (1m / 3m / 5m / 15m / 30m).
Auto — picks Footprint when available, falls back to Reconstructed. The recommended default.
A configurable Profile Rows input (default 24, max 80) sets the vertical resolution — each chart bar's intrabar volume is bucketed into N horizontal price slices and the footprint is built from those buckets.
Imbalance detection (Bookmap diagonal)
The institutional definition of an imbalance is diagonal , not lateral :
A buy row is imbalanced when buy ≥ ratio × sell (this row's buys vs the row below it's sells).
A sell row is imbalanced when sell ≥ ratio × buy (this row's sells vs the row above it's buys).
The ratio is configurable (default 3.0× — the institutional norm). An optional minimum-row-volume filter mutes illiquid wick rows from being counted as imbalances. When N or more same-side imbalances occur inside a single bar, the Burst alert fires.
Stacked imbalance zones (the headline)
Stacked imbalances are the textbook order-flow structural read: N consecutive same-side imbalanced rows on top of each other. They mark where price had to gap through multiple thin levels to print — and they are reliable revisit zones.
Minimum stack count is configurable (default 4 consecutive rows).
Each stack zone is drawn as a box extending right by a configurable bar count.
Optional glow border on stack zones (toggleable).
Maximum active zones is capped (default 8) — older zones shift out FIFO.
POC + Value Area
Per-bar Point of Control (the row with the highest volume), Value Area High and Value Area Low (the 70%-volume centred range) are computed and toggleable. POC is rendered as a dot; VAH / VAL as lines. A configurable POC Shift Threshold (in mintick units) fires the POC Shift alert when the POC jumps more than the threshold bar-over-bar.
Delta flip detection
Per-bar delta (buy − sell) is computed continuously. The delta-flip alert fires only when delta switches sign after at least N consecutive same-sign bars (configurable, default 5). This filters out the micro-fluctuations that pure-sign-flip detectors would noise on.
Per-bar footprint ladder (optional, heavy)
When enabled, inline labels at every row of every recent bar (configurable history depth) show the buy × sell tuple per row — the full Bookmap-style read. This is visually rich but rendering-heavy; keep it off when scrolling long histories or running on low-end hardware.
Visual system
POC dot in accent yellow.
Value Area lines (VAH / VAL).
Imbalance cells highlighted in palette colour per row.
Stacked imbalance zones with optional glow.
Bar colouring by delta sign (toggleable).
Per-bar delta annotations every N bars (configurable).
Per-bar ladder labels (optional).
A locked Iridescent palette (magenta bull / cyan bear / yellow POC accent on pure black) gives the chart a cyberpunk holographic identity that reads as institutional rather than retail.
Dashboard
Monospaced table positionable to any of nine corners. Surfaces:
Source mode in use (Footprint / Reconstructed) with aggregation/LTF.
Current bar's delta value and sign.
POC price and intrabar volume share.
Imbalance count this bar (buy / sell).
Active stack zone count.
Last delta-flip direction with bar-age.
Alerts
Five alert conditions, each independently controllable:
Stacked Imbalance Zone Formed
POC Shift (POC jumped > threshold)
Delta Flip After Run (delta sign change after N+ same-sign bars)
Buy Imbalance Burst (N+ buy imbalances in one bar)
Sell Imbalance Burst (N+ sell imbalances in one bar)
How to read it
Three reads, in order of conviction:
Stacked imbalance zone — the highest-conviction read. Price had to plough through multiple thin levels to print. Future revisits are reliable reactive zones.
Delta flip after run — regime-change signal. When delta has been net-buying for many bars and finally flips net-selling, the auction direction has just rotated.
POC shift through a structural level — value migration. When the POC moves through a previous-day VAH or VAL, value has migrated and the next session's bias often follows.
Suggested settings
Defaults (1m reconstruction LTF, 24 rows, 3.0× imbalance ratio, 4-stack minimum) are tuned for 5m–15m charts on liquid markets. For 1m scalping, drop rows to 16 and stack minimum to 3. For HTF macro (1H+), raise rows to 36 and stack minimum to 5. The 3.0× imbalance ratio is the institutional Bookmap norm; tighten to 2.5× for more frequent imbalance prints.
Originality
The implementation — the Auto/Footprint/Reconstructed source router, the diagonal-Bookmap imbalance detector with row-volume filter, the consecutive-row stack zone builder with glow border, the POC-shift detector with mintick-unit threshold, the run-length-gated delta-flip alert, the per-bar ladder renderer with history depth control, and the dashboard's holographic palette — is JOAT-original. No third-party code reused. The footprint vocabulary (POC, VAH/VAL, imbalance, stacked imbalance, delta) is public-domain auction-theory language; the implementation here is purpose-built for chart-based Pine v6.
Limitations
Reconstructed footprints are an approximation — the tick rule is the accepted public-market inference for assigning intrabar trades to buy/sell but it is not a direct read of bid/ask volume. Footprint API requires a TradingView Premium or Ultimate plan and is unavailable on some instruments. The per-bar ladder labels are rendering-heavy; keep them off when historical performance matters. Stacked-imbalance zones honour the max active cap (FIFO eviction) and the extension bars cap.
—
-made with passion by jackofalltrades
Indicatore

Liquidity Heatmap MTF [JOAT]LIQUIDITY HEATMAP MTF
A weighted multi-timeframe liquidity-zone heatmap that aggregates pivot-based resting liquidity from up to four higher timeframes (1H / 4H / 1D / 1W by default), decays old pivots over a configurable half-life, and projects the resulting hot bins as a right-side colour strip plus optional horizontal lines that extend back across the chart so the key levels are visible on price. Adds an estimated liquidation-level layer on top — the price ranges where leveraged positions get unwound — and warns when price approaches one.
Why MTF aggregation matters
Single-timeframe liquidity maps miss the structural reality that institutional flow operates on multiple horizons simultaneously. A daily pivot high carries more resting liquidity than a 1H pivot high, but both contribute. Liquidity Heatmap MTF lets you turn on / off each of four timeframes (1H, 4H, 1D, 1W) independently and assign each a weight so the contribution to the heatmap is proportional to your conviction about how much that timeframe matters.
Defaults:
1H weight 1.0×
4H weight 1.5×
1D weight 2.5×
1W weight 4.0× (off by default; enable for macro reads)
Pivots are detected in each HTF context using configurable left/right lookbacks. Each pivot contributes intensity proportional to the volume traded on its bar (with optional log compression for instruments that have rare extreme prints).
Decay — half-life modelled
A pivot from 200 bars ago should not contribute equally to today's heatmap. The script applies an exponential decay:
intensity = volume × exp(−ln(2) × age / halfLife)
The Decay Half-Life input (default 180 bars) sets how quickly old pivots fade. After one half-life, an old pivot contributes half as much; after two, a quarter; and so on. This is the principled way to weight history — it never drops contributions discontinuously and it never lets ancient liquidity poison the current read.
Heatmap grid + hot-zone classification
The price range over the visible lookback (configurable, default 500 bars + 2% padding) is divided into N bins (default 60, capped at 200 by Pine's max_boxes_count). Each pivot's decayed intensity is accumulated into the bin closest to its level. Bins are then normalised against the hottest bin and any bin above the Hot Zone Threshold (default 70% of max) is tagged HOT.
The heatmap is rendered as a vertical strip on the right of the chart (configurable width and gap from latest bar) with bins coloured along a deep-ocean blue gradient — cold bins are near-invisible (transparency floor), hot bins are vivid cyan.
Hot-zone projection across chart (JOAT enhancement)
This is the headline visual: the top hot bins are projected back across the chart as horizontal lines (configurable count, default 5) with price labels, extending back a configurable number of bars (default 120). So you do not just see the heatmap as a right-side strip — you see the key levels on the chart at the price levels they actually occupy. Toggleable.
Estimated liquidation levels (the second layer)
On top of the liquidity heatmap, an optional liquidation layer estimates where leveraged positions get stopped out. Each significant HTF pivot extreme gets a projected liquidation level at:
liq_level = pivot ± (ATR × liqPad)
Configurable liqPad (default 0.5 ATR). Configurable caps on liquidation lines above (default 4) and below (default 4) the current price. Lines extend right by a configurable bar count. When price comes within liqAtrMult × ATR of a liquidation line, the !LIQ alert fires and the line is rendered in the accent colour (the only off-family colour in the palette — bright orange).
The liquidation logic is intentionally conservative — pivots provide the structural anchor; the ATR pad is the only configurable variable; lines are capped to avoid clutter.
Dashboard
Monospaced table positionable to any of nine corners. Surfaces:
Active timeframes and their weights.
Total pivots tracked.
Hottest bin price and intensity %.
Hot-zone count.
Liquidation lines above / below current price counts.
Distance (in ATR units) to nearest liquidation line.
Last hot-zone activation with bar-age.
Visual system
Heat strip (toggleable width / gap / transparency).
HOT tags on hottest bins (toggleable).
Optional strip border.
Horizontal hot-zone lines extending back across the chart (toggleable, capped, configurable length).
Liquidation level lines above and below (toggleable, capped).
LIQ labels (toggleable).
A locked Deep Ocean palette (bathypelagic blue gradient on near-black, with the bright orange #FF6B00 reserved exclusively for liquidation warnings) gives the chart a distinct institutional liquidity-map identity.
Alerts
Three alert conditions, each independently controllable, each cooldown-gated:
Hot Zone Activated — fires when a new bin crosses the hot threshold.
Approaching Liq Level — fires when price comes within liqAtrMult × ATR of a liquidation line.
New HTF Pivot Added — fires when a new HTF pivot is detected and added to the cache.
A configurable cooldown (default 8 bars) prevents back-to-back alert spam.
How to read it
Three reads, in order of conviction:
Approaching Liq Level alert — the most actionable single signal. Price is within striking distance of estimated leveraged-position stop-out levels. Liquidations tend to be self-fulfilling on the way in (cascade through stops) and exhaustive at the extreme (no more sellers / buyers left after the cascade).
Multi-timeframe hot zone — when a hot bin is contributed to by more than one HTF, it is by definition more significant. The hot line projections show you which levels are MTF-confluent.
New HTF Pivot in 1D or 1W context — these are the slowest-moving structural events. A new daily or weekly pivot reshapes the heatmap meaningfully.
Suggested settings
Defaults (1H/4H/1D enabled, weights 1.0/1.5/2.5, decay half-life 180, hot threshold 70%) are tuned for intraday-to-swing trading on liquid futures, FX, and crypto. For pure scalping, disable 1D / 1W and raise 1H weight. For pure macro, enable 1W and raise its weight; reduce 1H to 0.5×. The liqPad default 0.5× ATR is conservative — raise to 1.0× for more cautious liquidation projections.
Originality
The implementation — the MTF pivot aggregation pipeline with per-TF weights, the exponential half-life decay model, the bin-grid heatmap with hot-zone threshold, the cross-chart hot-line projection layer, the ATR-based liquidation level estimator with above/below caps, the cooldown-gated multi-alert engine, and the deep-ocean palette with the orange liquidation accent — is JOAT-original. No third-party code reused. The "liquidity map" concept comes from professional desks; the implementation here is purpose-built for Pine v6 with bar data only.
Limitations
Estimated liquidation levels are an inference from pivots and ATR — Pine cannot read actual leverage data or aggregated futures funding/open-interest. The lines mark where stop clusters are statistically likely to sit, not where they actually do. Pine's max_boxes_count caps the grid at 200 bins; the script clamps to 200 max even though the input allows higher requests. MTF pivots use request.security in non-lookahead mode, so they are non-repainting once confirmed at their HTF.
—
-made with passion by jackofalltrades
Indicatore

Large Lot Reverse Engineer [JOAT]LARGE LOT REVERSE ENGINEER
A regression-driven block-trade detector that infers the implied size of an off-tape institutional order from the residual between price movement and volume — and turns that residual into an estimated lot count. The premise is straightforward: when a single large order moves price meaningfully more than the visible volume would justify, the gap is the size of the hidden order that absorbed the move. Large Lot Reverse Engineer models that relationship, flags the outliers, and estimates the size.
The core idea — what price movement is "worth"
In normal conditions there is a stable statistical relationship between volume and the magnitude of a bar's return. A rolling regression over a configurable window (default 60 bars) estimates expected volume as a function of return — i.e., for the move you just saw, how much volume should there have been?
The residual is the difference between actual and expected volume, Z-normalised by its own rolling stdev. Two signs of residual matter:
Implied block (residual Z ≥ +threshold) — more volume traded than the price move warrants. Someone large was on the passive side absorbing aggression. The direction of the bar tells you which side.
Thin market (residual Z ≤ −threshold) — price moved on suspiciously low volume. Liquidity was missing; the move was a low-conviction air-pocket.
Both reads are institutionally interesting. The first identifies absorbed-aggression — the textbook signature of an institutional block trade. The second identifies regimes where price prints are unreliable.
R² reliability gate
A regression is only meaningful when the underlying relationship is actually there. The script computes the rolling R² of the model and exposes a configurable minimum (default 0.10). When R² falls below the gate the model is considered unreliable; the dashboard cell turns warning-coloured and the script tags any signals fired in that regime as low-confidence. This is the difference between a real residual reading and a noise residual — a professional read forbids the same.
Significant block sizing
Three thresholds are stacked:
Implied Block Sigma (+) (default 2.0σ) — baseline implied-block trigger.
Thin Market Sigma (−) (default 2.0σ) — baseline thin-market trigger.
Significant Block Sigma (default 3.0σ) — above this the bar is rendered with a polygon glyph and gets an estimated lot-size badge . Empirical scaler converts residual-volume into a lot count.
The size unit is configurable: Shares/Coins for spot instruments, Notional USD for size in dollars (using a configurable price proxy), or Auto which picks based on instrument. The scaler is exposed because no single conversion factor is universally correct — calibrate to your instrument's typical notional.
Cluster detection
When N blocks fire inside a rolling window (configurable, default 3 in 5 bars) the Block Cluster alert fires. Cluster signals are the strongest read this script produces — they indicate sustained off-tape activity, not a single statistical outlier.
Visual system
Residual Z histogram — bars coloured bull/bear by direction, magnitude by residual.
Threshold lines at ±2 and ±3 with on/off toggle.
Zero line and significant-block polygon glyphs.
Thin-market dots in the muted palette.
Background recency fade — fresh blocks tint the background and decay to transparent over a configurable number of bars.
Cumulative implied delta (optional) — running sum of implied-block directional contributions, useful for reading sustained institutional bias.
A locked Carbon palette (neon green / neon red / white midline on carbon black) gives the pane an institutional terminal feel.
Dashboard
Monospaced table, positionable to any of nine corners, with a compact mode and optional legend footer. Surfaces:
Current residual Z value and sign.
R² value with reliability colour-coding (green / amber / red).
Last significant block direction with estimated lot size.
Block count and thin-market count in the recent window.
Cluster status with bars-since-last-cluster.
Cumulative implied delta (when enabled).
Alerts
Four alert conditions, each independently controllable:
Implied Buy Block (positive residual + up bar)
Implied Sell Block (positive residual + down bar)
Thin Market Event (negative residual)
Block Cluster (N-in-window)
How to read it
Three reads, in order of conviction:
Block Cluster + high R² — the highest-conviction read. Multiple statistically-significant blocks inside a window, with the underlying model reliable. Institutional flow is actively moving size.
Significant block (3σ+) at a known level — a single large polygon glyph at a key support/resistance is a textbook absorbed-print read. The lot-size badge gives you a magnitude proxy you can compare across bars.
Thin market warning — when the residual goes deeply negative, treat any move you see with extreme caution; the tape is hollow. Often precedes either a violent move once real flow returns or a fade back to fair value.
Suggested settings
Defaults (60-bar window, R² ≥ 0.10, ±2σ block, +3σ significant) are tuned for 5m–1H on liquid futures, FX, and large-cap equity. For lower timeframes drop the window to 30 and raise the sigma thresholds to 2.5σ / 3.5σ to filter noise. For daily and above, widen the window to 100+ and consider log returns for instruments with large price scales.
Originality
The implementation — the rolling return-vs-volume regression with R² gate, the residual-Z classifier with bidirectional thresholds, the empirical lot-size scaler with auto/notional unit switching, the polygon-glyph significant-block render, the thin-market dot variant, the N-in-window cluster trigger, the recency-fade background, and the cumulative implied delta — is JOAT-original. No third-party code reused. The "volume that should have been" inference pattern is well-known to institutional desks; the implementation here is purpose-built for chart-based bar data.
Limitations
Implied block size is an inference from residual statistics, not a direct read of off-tape trades. Pine cannot see actual block prints that occur away from the lit market; what the script flags is the visible footprint those prints leave behind. The lot-size badge depends on the empirical scaler, which must be calibrated per instrument — the default 1.0× is generic. The R² gate is the most important reliability filter; when R² is low, no signal in the model should be considered reliable, by construction.
-made with passion by jackofalltrades
Indicatore

Iceberg Detector [JOAT]ICEBERG DETECTOR
A hidden-liquidity detector that infers iceberg orders from their footprint on the tape — without needing direct L2 data. The detection pattern is well-known to professional tape readers: the same price level being repeatedly tested by long wicks, with above-average volume, and price each time getting rejected back in the opposite direction. That repeated-rejection pattern is the visible signature of an iceberg — a large resting order broken into smaller slices to hide its true size. This script catches the pattern, clusters the tests, paints the zone, and tells you when the iceberg gets broken or eaten.
Detection — five gates, all required
A bar is a candidate iceberg test only when every one of these is true:
Long wick — wick-to-body ratio above the configurable threshold (default 0.75). The wick is the visible rejection; the body is the failed push.
Local extremum — the wick reached a local high or low over the configurable pivot lookback (default 5 bars). A wick that did not actually probe new territory does not count.
Above-average volume — bar volume must exceed volume average × multiplier (default 1.0×). Real absorption needs real size hitting the tape.
Wick rejection bias — the candle must close in the rejection direction (opposite of the wick).
Cluster within tolerance — at least N (default 2) of these qualifying tests must occur within ATR × tolerance of the same level inside the detection window (default 40 bars).
Only when all five gates pass does the script paint a zone. The wick rejection bias % input controls how strict the rejection-direction filter is; raising it to 70%+ makes the zone confirmation slower but cleaner.
Cluster-aware level building
When two or more qualifying tests fall within ATR-multiplier tolerance of each other, they are clustered into a single zone whose vertical extent (configurable in ATR units) covers the cluster. This means an iceberg sitting at 4382.50–4383.25 is rendered as a single horizontal band, not two separate ticks — which is how a real iceberg would actually appear on the tape.
Visual system
Iceberg zone — a horizontal band rendered in the cool-blue palette (deep void → pale violet gradient) with configurable opacity.
Glow layers — N (configurable, default 4) stacked transparent boxes behind the zone produce a soft glow border.
Pulse animation — for a configurable number of bars after a fresh test, the zone's transparency oscillates to highlight that the iceberg has just been re-tested. Toggleable.
Test ticks — small markers at each individual test bar inside the zone.
Test count badge — small number tag showing how many tests have hit the level.
Right extension — configurable bar count for forward zone projection.
A locked Void palette (cool violet gradient on a deep void ground) gives the chart a distinctive hidden-liquidity identity.
Lifecycle — persist, archive, break
Every iceberg has three life stages:
Active — currently in front of price and being honoured. New tests add ticks and trigger pulse animations.
Broken — price closed through the level by Break Distance × ATR (default 0.5 ATR). The zone moves to the muted broken-archive palette and stays on the chart for brokenStaleBars (default 150) bars so you can see where structure failed.
Stale — older than the archive lifetime, automatically removed.
A maximum-concurrent-icebergs cap (default 12 active) and a max-broken cap (default 8) keep the chart legible.
Dashboard
Monospaced table, positionable to any of nine corners, surfaces:
Active iceberg count, broken count.
Nearest iceberg level with side (resistance / support), distance in ticks or %.
Test count and age of the nearest iceberg.
Last broken event with bars-ago tag.
Alerts
Three alert conditions, each independently controllable:
New Iceberg Detected — fires the bar an iceberg is first confirmed (all five gates pass).
Iceberg Re-Tested — fires when an existing iceberg gets another qualifying test.
Iceberg Broken — fires when price closes through by the break-distance threshold.
How to read it
Two reads, in order of conviction:
Active iceberg in front of price is your immediate liquidity wall. Faded iceberg the market keeps probing without breaking = strong demand-side or supply-side hidden order. Use as a context level — fade touches if your bias is reversal, expect continuation through if your bias is breakout.
Iceberg Broken alert is your highest-conviction directional event. A hidden order has been eaten through, meaning the side that was holding it has either pulled it or been exhausted — either way, the resistance / support is gone, and the move that follows is unencumbered by the absorbed liquidity.
Suggested settings
Defaults (2 minimum tests, 40-bar detection window, 0.5 ATR cluster tolerance, 0.75 wick/body ratio) are tuned for 5m–1H on liquid markets. For lower-timeframe scalping, lower the wick/body ratio to 0.5 and raise the volume multiplier to 1.5×. For higher-timeframe macro reads, raise minimum tests to 3 and widen the detection window to 100+ bars.
Originality
The implementation — the five-gate detection (wick + extremum + volume + rejection % + cluster tolerance), the ATR-cluster level-builder, the cool-palette glow layers, the post-test pulse animation, the break-distance lifecycle with archive, and the test-count badge rendering — is JOAT-original and tuned together. No third-party code reused. The hidden-liquidity / iceberg concept is well-known to tape readers; the detection pipeline here is built specifically for chart-based bar data without requiring L2 access.
Limitations
Pine indicators cannot read L2 order book data. Iceberg Detector infers iceberg presence from the visible tape footprint — long-wick rejection candles, clustered at a level, with above-average volume, all closing in the rejection direction. This is the accepted public-market inference pattern but it is by nature an inference, not a direct observation. The script can produce false positives on instruments with naturally wicky candles and false negatives on instruments where icebergs are filled too quickly to show as multi-bar tests. On low-volume instruments the volume gate may need to be raised to compensate.
—
Open source- The five-gate detection pipeline, the ATR-cluster level-builder, the post-test pulse compositor, and the lifecycle-with-archive state machine are proprietary. Free to use; behaviour is fully described above.
—
-made with passion by jackofalltrades
Indicatore

CVD Delta Divergence [JOAT]CVD DELTA DIVERGENCE
A full-featured Cumulative Volume Delta engine with proper pivot-based divergence detection. CVD on its own is one of the cleanest reads of net flow you can produce without L2 data — but the value of CVD lives almost entirely in its divergence with price. CVD Delta Divergence builds the CVD properly (with footprint-API or reconstructed-tick options), then runs a strict pivot-vs-pivot divergence engine on top of it, with strength scoring and configurable cooldown.
Three data-source modes
CVD is only as good as the delta classification underneath it. Three modes are exposed:
Footprint API — uses TradingView's Footprint dataset when the instrument supports it. The cleanest read, equivalent to professional delta feeds.
Reconstructed — when Footprint is unavailable, reconstructs buy/sell from a configurable lower-timeframe stream (1m / 3m / 5m / 15m / 30m) using the standard tick rule. Optional intrabar volume weighting.
Auto — picks Footprint when present, falls back to Reconstructed. The recommended default.
This is unusual — most public CVD scripts hardcode one method. Auto-mode means the script works correctly on any instrument that has either dataset, without per-instrument configuration.
Four CVD anchors
Cumulative deltas need an anchor — running a sum from inception of data is rarely meaningful. Four anchoring modes:
Cumulative — never resets. Maximum context, slowest divergence detection.
Session Reset (default) — anchors at the start of each trading session. The most useful read for day-trading reference.
Day Reset — anchors at midnight exchange time.
Week Reset — anchors at week boundary. Good for swing-frame divergences.
Pivot-based divergence engine (the headline)
Slope-comparison divergence is noisy. CVD Delta Divergence uses proper pivots :
ta.pivothigh / ta.pivotlow on price with a configurable lookback (default 5 bars left/right).
At each confirmed pivot, the corresponding CVD value is recorded.
A divergence is built only when two price pivots and their CVD readings disagree directionally.
A minimum-strength filter (default 15.0 on a 0–100 scale) suppresses weak signals — strength is the normalised disagreement magnitude between the price-pivot motion and the CVD-pivot motion.
A strict HL/LL toggle requires the second pivot to strictly exceed/undershoot the first by a small fraction so equal-pivot edge cases do not produce noise divergences.
A cooldown per divergence class (default 3 bars) prevents back-to-back fires of the same class.
Four divergence classes are detected:
Regular Bull — price lower-low, CVD higher-low. Reversal up.
Regular Bear — price higher-high, CVD lower-high. Reversal down.
Hidden Bull — price higher-low, CVD lower-low. Trend continuation up.
Hidden Bear — price lower-high, CVD higher-high. Trend continuation down.
Divergence markers can be force-overlaid onto the main chart pane (toggleable) so you see them on price without flipping panes.
Visual system
Slope-coloured CVD line — bull / bear gradient based on the CVD's own short-term slope (configurable window).
Smoothed CVD overlay — toggleable EMA-smoothed CVD on top of the raw line. Useful for cutting through noisy 1m reconstructions.
Delta histogram — bar-by-bar delta as columns behind the CVD line. Useful for seeing per-bar flow vs cumulative flow.
Zero line and crossover alerts.
Divergence connecting lines — when a divergence fires, a connector line is drawn between the two pivots for visual proof.
A locked Lava palette (gold bull / orange-red bear / oxblood mid on a deep lava-black ground) gives the pane a distinctive flow-read identity.
Dashboard
Monospaced table, positionable to any of eight corners, with:
Current CVD value with sign.
CVD slope direction (Rising / Falling / Flat).
Active anchor mode.
Last divergence class with bar age.
Source mode in use (Footprint / Reconstructed).
Zero-cross status with bars-ago.
Alerts
Six alert conditions, each independently controllable:
Regular Bull Divergence
Regular Bear Divergence
Hidden Bull Divergence
Hidden Bear Divergence
CVD Crosses Zero
CVD Slope Flips
How to read it
Three reads, in order of conviction:
Regular divergence — the classic reversal read. Price made a new extreme, CVD did not. The flow that was needed to extend the move did not show up. A regular divergence at a known structural level is one of the highest-conviction reversal setups in tape reading.
Hidden divergence — the trend-continuation read. Price retraced, but CVD did not. The flow is still committed in the original direction even though price wavered. Often produces clean re-entry signals in trends.
CVD zero-cross + slope flip — the regime change read. Cumulative flow has rotated sides — what was net-buying is now net-selling (or vice versa). Useful as a "the tape has flipped" notification.
Suggested settings
Defaults are tuned for 5m–1H charts on liquid markets in Session Reset mode. For lower timeframes, drop pivot lookback to 3 and divergence window to 30. For higher timeframes, raise pivot lookback to 7–10 and switch anchor to Day Reset. The minimum strength threshold (15) is intentionally loose; raise to 25–30 if you want only the strongest divergences.
Originality / what's reused
CVD (cumulative volume delta) is public-domain market-structure language; the tick rule is standard. The implementation — the Auto/Footprint/Reconstructed source switch, the four-anchor reset logic, the pivot-based divergence engine with strict HL/LL gating and minimum-strength filter, the slope-coloured CVD with histogram backdrop, the force-overlay divergence markers, and the cooldown-per-class state machine — is JOAT-original and tuned together. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. The source is sectioned, every input has a tooltip, every helper is documented inline. The CVD engine, the source-mode router, the pivot logic, and the divergence engine are independent modules — adapt any single piece without reading the whole file.
Limitations
Reconstructed CVD is a proxy — the tick rule is the accepted public-market inference but it is not a direct read of bid vs ask volume. Footprint mode requires the TradingView Footprint dataset and is unavailable on some instruments. Pivot divergences are non-repainting once confirmed (they lag by the pivot's right-lookback) but the divergence between two pivots cannot fire until both are confirmed — so the second pivot's lag is the structural lag of the signal.
—
-made with passion by jackofalltrades
Indicatore

Technical Strength Gauge [HexaTrades]Most traders watch a handful of indicators and weigh them by gut feel. Technical Strength Meter does this objectively and at scale: It evaluates 74 indicator votes across 34 technical indicator families, turns each into a single Buy / Neutral / Sell vote, and aggregates those votes into three colour-graded strength gauges, each scored 0-100: Leading, Lagging, and an overall Summary. On top sits an analytics row that translates the raw votes into market context: regime, trend strength, volatility, confidence, probability and an A+ to D quality grade.
HOW IT WORKS - THE VOTING ENGINE
Each indicator votes : All 74 indicators are evaluated, and each casts exactly one vote:
+1 Buy (its bullish condition is met)
0 Neutral (no clear signal)
-1 Sell (its bearish condition is met)
The voting rule is matched to the indicator's nature:
• Oscillators vote by mean reversion, e.g. RSI must be below the oversold level AND turning back up to vote Buy; above the overbought level AND turning down to vote Sell; otherwise Neutral. The same "stretched, then turning" logic drives Stochastic, CCI, Williams %R, MFI, Ultimate, Stochastic RSI, TSI, Fisher and CMO.
• Moving averages vote by price location: close above the MA = Buy, below = Sell. This repeats for 10 MA families across 5 lengths (50 votes in total).
• Trend tools vote on their own state: Supertrend direction, price vs the Ichimoku cloud, +DI vs -DI, Parabolic SAR side, Linear-Regression slope, Vortex, and so on.
Votes are grouped & averaged : The votes split into a Leading set (early movers) and a Lagging set (trend confirmers). Each set is averaged into one number from -1 to +1, and the Summary is the average of the two halves.
Weighting & exclusions: By default every vote counts equally, but each gauge is a weighted average: you can scale whole categories (Oscillators / MAs / Trend) up or down, or switch any indicator off. A disabled indicator (weight 0) is dropped from both the average and the counts; it is NOT silently counted as Neutral. On symbols with no volume data, volume-based votes (VWMA, MFI) are auto-excluded the same way, so they don't dilute the score.
Score & verdict : Each -1…+1 average is rescaled to a 0-100 score and mapped to a five-step verdict:
0-25 Strong Sell · 25-45 Sell · 45-55 Neutral · 55-75 Buy · 75-100 Strong Buy
(Internally: rating <= -0.5 = Strong Sell, <= -0.1 = Sell, between = Neutral, >= 0.1 = Buy, >= 0.5 = Strong Buy.)
⭐️THREE GAUGES
• LEADING (16 indicators) momentum / early-mover tools that tend to turn before price: RSI, Stochastic, CCI, Williams %R, MFI, ROC, Momentum, Ultimate Oscillator, Awesome Oscillator, Stochastic RSI, TSI, Fisher Transform, CMO, plus Bollinger, Donchian and Aroon.
• LAGGING (58 indicators): trend-followers that confirm an established move: MACD histogram, 50 moving-average votes (10 MA types EMA, SMA, VWMA, WMA, HMA, RMA, ALMA, DEMA, TEMA, KAMA across 5 lengths), and Supertrend, ADX, Ichimoku, Parabolic SAR, Linear Regression, Vortex and DMI.
• SUMMARY: the balance of the Leading and Lagging halves; your one-number bias.
When the two halves agree, conviction is high; when Leading leads Lagging, a turn may be forming.
⭐️ANALYTICS ROW
• MARKET REGIME : Strong Bull / Bull / Sideways / Bear / Strong Bear. Combines five trend engines (Supertrend, Ichimoku, DMI, stacked-MA alignment, LinReg slope) into a directional bias, then gates it with ADX: low ADX = Sideways; high ADX + strong bias = a "Strong" trend.
• TREND STRENGTH % : how strong and aligned the trend is, blending the size of that directional bias with ADX magnitude.
• VOLATILITY : Low / Normal / High / Extreme, from the percentile rank of Bollinger Band width over the last 100 bars (so it adapts to each symbol).
• CONFIDENCE % : how trustworthy the current reading is: a blend of decisiveness (how far Summary is from neutral), Leading–Lagging agreement, and vote consistency.
• BULL / BEAR PROBABILITY % : the weighted balance of all votes, always summing to 100.
• SIGNAL-QUALITY GRADE : A+ to D, a composite of Confidence, Trend Strength and favourable volatility, for a quick "is this a clean setup?" read.
⭐️ SETTINGS GUIDE
Layout : anchor position, total width, summary size, height, compact mode, per-gauge show/hide, the five MA lengths, and toggles for the analytics row and breakdown table.
Signals & timeframe: analysis timeframe (MTF), confirm-on-close, Strong and normal Buy/Sell arrows, the signal trigger levels, the ADX whipsaw filter, background tint and the volatility alert.
Indicator periods : lengths for RSI, Stochastic, CCI, MFI, Williams %R, ROC, Momentum, ADX/DMI, Bollinger and MACD.
Overbought / Oversold: the OB/OS thresholds for RSI, Stochastic, MFI, Ultimate Oscillator, CCI and Williams %R.
Analytics thresholds: the ADX bands for regime and the percentile bands for volatility.
Weights & toggles: category weights (Oscillators / MAs / Trend) and an on/off switch for all 34 named indicators.
Colors: the full Strong-Sell to Strong-Buy palette and table colours.
Signals are calculated using closed-bar data when "Confirm on Close" is enabled. The indicator does not intentionally use future data or repaint historical signals.
⭐️How to use
Context first: read Market Regime and Volatility. "Strong" regimes favour trend-following; "Sideways" favours mean-reversion or standing aside; "Extreme" volatility means wider stops and more false breaks.
Bias: read the Summary gauge and its 0–100 score: your single-number lean.
Alignment:compare Leading vs Lagging. Both same side = confirmed conviction; Leading
ahead of Lagging = possible early turn; disagreement = mixed/choppy, so smaller size or wait.
Quality: check Confidence % and the A+…D Grade. An A-grade Strong Buy in a Strong Bull regime ≠ a borderline Buy in chop.
Execute: use the Buy/Sell arrows as visual triggers, or attach the built-in alerts.
Make it yours: shorter periods/lower triggers for scalping, longer/higher for swing; re-weight or disable indicators you don't trust; set an Analysis timeframe to read a higher TF from a lower chart.
⭐️ BEST USE CASES
Best suited for:
• Trend confirmation and trend-following strategies
• Market regime analysis (Bull, Bear, Sideways)
• Multi-indicator consensus and bias assessment
• Swing trading and position trading
• Day trading and intraday market analysis
• Higher-timeframe directional bias and confirmation
• Identifying alignment between momentum and trend indicators
Not designed for:
• Standalone trade entries without additional analysis
• Predicting exact tops, bottoms, or reversals
• Guaranteed market forecasts or future price predictions
• Fully automated trading systems without validation
• Replacing risk management, position sizing, or trading plans
Technical Strength Meter combines the signals of 74 widely used technical indicators into a single, transparent decision-support framework. By separating indicators into Leading and Lagging categories, the indicator helps traders identify potential turning points, confirm established trends, and understand the overall market bias at a glance. Rather than relying on a single indicator, it provides a structured consensus view supported by market regime, volatility, confidence, probability, and signal-quality analysis. Whether used for scalping, day trading, or swing trading, the goal is to simplify complex technical data into actionable market context while keeping every vote visible and explainable.
We would love to hear your suggestions. If you have ideas for new features, indicators, analytics, or improvements, please share your feedback. Your input helps guide future updates and improve the indicator for all traders.
For educational and informational purposes only. This indicator is designed to assist technical analysis and should not be considered financial, investment, or trading advice.
Indicatore

Z-Score Flow Pro [JOAT]Z-SCORE FLOW PRO
A rigorously-statistical mean-reversion oscillator built on top of two of the cleanest primitives in market analysis — the Z-score of price against its own rolling mean and the EMA-smoothed RSI — and wrapped in a regime-aware visual and signal pipeline that knows when not to fire.
Why Z-score
A Z-score answers the question every reversion trader is really asking: "How many standard deviations is price from where it usually sits?" It is regime-aware by construction — when realised volatility expands, the same dollar move produces a smaller Z; when it contracts, the same dollar move produces a larger Z. That means the signal levels (Z = ±2, ±3, etc.) carry the same statistical meaning across instruments and timeframes, which a price-distance level never does.
Z-Score Flow Pro uses:
Z-score core — close vs SMA basis, normalised by rolling stdev, over a configurable lookback (default 100).
EMA trend filter — a long EMA (default 50) decides which side of the chart the engine considers in-regime. Signals are weighted by regime alignment, not blindly suppressed.
Smoothed RSI — RSI is computed, then EMA-smoothed (default 8-bar) to eliminate the single-bar whipsaws that plague the raw indicator without re-introducing visible lag.
A signal needs both the Z-score and the smoothed RSI to be at extremes on the same side — that AND-gating is what removes most of the false signals that pure RSI or pure Z systems produce.
Signal engine
A Buy signal requires Z ≤ Buy threshold (default −2.0) and smoothed RSI ≤ oversold level (default 30). A Sell signal requires Z ≥ Sell threshold (default +2.0) and smoothed RSI ≥ overbought level (default 70). A configurable cooldown prevents back-to-back signals; the labels respect the EMA regime filter so the strongest read is when signal direction agrees with the EMA trend.
Background heatmap (JOAT enhancement)
The chart pane is tinted bull or bear with an intensity proportional to |Z|. The mapping is linear: at Z = 0 the heatmap is nearly invisible, at |Z| = the saturation threshold (default 1.5) the tint reaches its loudest configured opacity. Both ends are tunable, so you can dial the heatmap from "barely there" to "institutional cockpit". This is the cleanest at-a-glance read of how stretched the market is right now — you do not need to read the Z value itself.
Divergence engine (JOAT enhancement)
A slope-comparison divergence runs in parallel: it compares the slope of the Z-score against the slope of price over a configurable lookback. A bullish divergence requires price slope negative and Z slope positive; bearish is the mirror. Both slopes must exceed a small epsilon to suppress flat-region noise, and a divergence cooldown spaces them out. Divergences print directly in the chart pane in the palette colour.
Slope-coloured Z-mean line
The Z-score's own running mean is plotted as a slope-coloured ribbon: bull / bear / flat colours based on the slope over a configurable sensitivity window. The shadow underneath the line uses an alpha-modulated version of the same colour so the line visually breathes with regime.
Dashboard
A compact monospaced table, positionable to any of nine corners, with togglable cell transparency. Rows surface:
Current Z-score and its direction (Rising / Falling / Flat).
One-year (252-bar) percentile of Z — how unusual the current reading is in its own recent history.
Smoothed RSI and its slope direction.
Active EMA regime (Up / Down / Neutral).
Distance of Z from its own min/max range (position-in-Z, 0–100%).
Alerts
Alerts are exposed for buy / sell signals, divergences, regime flips, and a configurable Z-extreme alert that fires when |Z| crosses a user-set high level (default 3.0). The extreme alert is the cleanest "the market is genuinely far from home" trigger this script produces and is suitable for end-of-day notification workflows.
How to read it
Three reads, in order of conviction:
Background heatmap — a glance tells you whether you are in a normal-Z regime (no tint) or stretched (bright tint). Most of the time, do nothing.
Signal labels — fade extremes only when both Z and RSI agree, and respect the EMA regime — counter-trend trades into a sustained EMA-aligned move are lower-conviction by definition.
Divergences — the highest-conviction reads. A bullish divergence with the heatmap saturated bear and the signal in the right direction is the cleanest setup the engine can produce.
Suggested settings
Defaults are tuned for 1H–4H on liquid markets. For 5m–15m, drop Z period to 50 and RSI period to 9. For daily and above, raise Z period to 200 and EMA trend filter to 100. The thresholds (±2.0 Z, 30/70 RSI) are intentionally classic — they correspond to the textbook two-sigma deviation and are well-understood; loosen them only if you are running on a less-liquid instrument.
Originality / what's reused
Z-score and RSI are public-domain mathematics, used here as primitives. The implementation — the smoothed-RSI gating, the slope-coloured Z-mean line with alpha shadow, the |Z|-driven background heatmap, the 252-bar percentile rank, the divergence epsilon filter, and the AND-gated signal pipeline — is JOAT-original and tuned together. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. Every section is banner-headed, every helper is documented inline, every input carries a tooltip. The Z-mean line, the heatmap, the divergence engine, and the dashboard are each in their own isolated module so you can study or adapt any single piece without reading the whole file.
Limitations
Z-score mean-reversion is a counter-trend tool by definition. In sustained one-sided trends the Z will live at an extreme for many bars and the signals will give back giveback — the EMA regime filter exists to warn you when you are in this state. The 252-bar percentile rank needs ~1 year of data to be meaningful; on shorter histories it warms up to neutral. Divergences are non-repainting but carry the natural lag of slope-over-window comparison.
—
-made with passion by jackofalltrades
Indicatore

Volatility Reversion Bands Pro [JOAT]VOLATILITY REVERSION BANDS PRO
A two-layer reversion envelope: inner Bollinger band for the normal volatility envelope, outer ATR-extended band for the extreme envelope. Signals only fire when price has reached the outer ring — the inner band is context, the outer band is the trigger. The result is a clean mean-reversion engine that respects the difference between "stretched" and "actually stretched".
Two envelopes, one principle
Inner band — classic Bollinger: basis (SMA or EMA) ± stdev × multiplier. The familiar 20-period, 2-sigma defaults are preserved.
Outer reversion band — the outer envelope extends inner band ± ATR × multiplier . This is the band that triggers signals. Setting the ATR multiplier high makes signals rarer but deeper; setting it low makes them frequent and shallower.
Reversion bands using stdev alone collapse in low-volatility regimes (too many false signals) and explode in high-volatility regimes (signals come too late). The ATR extension on top of stdev fixes both: ATR adds a constant-floor protection in quiet markets and scales the outer band proportionally in loud ones.
Strong vs weak signals
Two signal tiers from a single channel-ratio read (close position within the outer band, normalised 0–1):
Strong signals — fire on the outer band itself (ratio ≤ 0 or ≥ 1). The high-conviction reversion read.
Weak signals — fire when ratio reaches a configurable near-band threshold (default 0.10 / 0.90). The "approaching outer band" read — useful for traders who want earlier hints. Easily disabled.
A signal cooldown suppresses same-side repetition; an exhaustion arrow prints when N consecutive bars (default 3) all live in the outer-band zone — a configurable escalating-glyph string ("^", "^^", "^^^"…) makes the run length visible at a glance.
Volatility regime classification
Independent of signals, the script classifies the current volatility regime by comparing current stdev to its own rolling average over a long lookback (default 100 bars):
Low regime — stdev / avgStdev below the low threshold (default 1.0×). Reversion is more reliable here.
High regime — above the high threshold (default 2.0×). Reversion is less reliable here; trends become dominant.
Normal regime — in between. Default mode.
Background tinting (toggleable, transparency-controlled) paints the chart by regime so the trader can see at a glance whether the current environment is suitable for reversion. This is the "do not fight the tape" filter — when the background is hot, every reversion signal is lower-conviction by definition.
Visual system
Bar gradient — bars are coloured by their position-in-band ratio (bull → mid → bear via plasma palette). At a glance you can see where price is sitting in the channel without reading the value.
Inner band fill — toggleable shoulder fill between BB and outer reversal bands with configurable transparency.
Inner BB lines and basis line are each independently toggleable for traders who want a minimalist or full envelope view.
Signal label style — Glyph (compact), Text (verbose), or Both.
A locked Plasma palette (yellow bull, magenta bear, violet mid) on a deep-void background gives the chart a distinctive look without competing with price action.
Dashboard
Monospaced table, positionable to any of nine corners, with togglable legend footer. Rows surface current basis, inner band values, outer reversion band values, channel ratio %, stdev / avgStdev ratio, regime label, last signal direction with age, and an exhaustion run counter.
Alerts
Four alert conditions, each independently controllable:
Strong Long / Short (outer band touch reversion)
Weak Long / Short (near-band threshold)
Vol Regime Change
Exhaustion Arrow (consecutive bars in outer-band zone)
How to read it
Two reads, in order of conviction:
Strong signal in a Low or Normal regime — the script's intended sweet spot. The outer band has been touched, price is statistically far from its mean, and the volatility environment supports the idea of mean-reversion.
Exhaustion arrow — when 3+ bars sit in the outer band, you usually have either a genuine breakout (the bands themselves will start to expand) or an exhaustion (the next reversal candle will be the signal). Either way, the next move is meaningful.
In a High regime, treat strong signals as cautionary at best — the bars are coloured by ratio for a reason; the gradient will tell you when one side is dominating.
Suggested settings
Defaults (length 20, stdev mult 2.0, ATR mult 1.5) are tuned to 1H–4H on liquid markets — the classical Bollinger settings plus a 1.5-ATR outer cushion. For 5m–15m, drop length to 14 and ATR multiplier to 1.0. For daily and above, raise length to 50 and ATR multiplier to 2.0. The regime thresholds (low 1.0×, high 2.0× of the long-run stdev average) are conservative — tighten the bands if your instrument is unusually quiet.
Originality / what's reused
Bollinger Bands and ATR are public-domain primitives. The implementation — the outer-band = inner-band ± ATR construction, the channel-ratio bar gradient, the regime classifier with auto-tinted background, the exhaustion-arrow consecutive-bar run logic, the weak/strong signal tiering, and the dashboard's monospaced regime-aware layout — is JOAT-original and tuned together. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. Section-headed source, tooltips on every input, helper functions documented inline. The band engine, the regime classifier, the exhaustion logic, and the dashboard are independent modules — fork or extend any single one without reading the whole file.
Limitations
Reversion bands are a counter-trend tool by construction. In sustained one-sided moves the outer band will be repeatedly touched without producing a profitable reversion — the High regime tint and the exhaustion-arrow run logic both exist to warn you when you are in this state. Signals are confirmed on bar close (non-repainting), so an intra-bar wick into the outer band that gets reabsorbed will not fire.
—
-made with passion by jackofalltrades
Indicatore
