Regime Ribbon + CompassTraditional ADX asks you to read three tangled lines at once — +DI, −DI, and the ADX line — and combine them in your head in real time. This tool collapses all three into a single, intuitive read: direction by color, trend strength by height. No sub-pane needed — the entire regime picture lives right on your price chart.
◈ WHAT IT DOES
The Regime Ribbon recolors a smoothed baseline directly on your candles: green when the directional index confirms an uptrend with strength, red for a downtrend with strength, and muted gray during low-ADX chop. An optional faint background tint reinforces the current regime at a glance.
The Regime Compass — a floating right-edge gauge — turns the same read into a live instrument you can check at a glance:
Fill direction shows who's in control: the meter fills upward from its midline when bulls lead (+DI over −DI) and downward when bears lead (−DI over +DI).
Fill color matches the regime: green for an up-regime, red for a down-regime, dim gray during chop.
Fill height encodes conviction: the stronger the trend (higher ADX), the further the meter fills toward its pole. A weak or ranging market barely lifts off the midline; a powerful trend pushes the fill close to the edge.
Bull / Bear poles mark the top and bottom of the gauge so you always know which way is which.
A live readout on the meter prints the current state and ADX value — for example "▲ TREND 34", "▼ TREND 28", or "◈ CHOP 12" — and a light-blue dashed midline marks the neutral point.
One glance answers both questions traders normally have to compute from three separate lines: which way, and how much to trust it. The gauge floats to the right of the last candle so it never sits on top of your price action, and it can be slid further out to taste.
An on-chart dashboard ties everything together in one row along the bottom of the chart — no separate pane. Each cell is a live readout:
REGIME — the current state in plain terms: BULL ▲, BEAR ▼, or CHOP ◈, colored to match.
ADX — the raw ADX value plus a word for context: WEAK (below the trend threshold), TREND (trend confirmed), or STRONG (a powerful move).
STRENGTH — a compact bar that fills with ADX, so you can gauge trend power without reading the number.
+DI — the positive directional value (up-pressure).
−DI — the negative directional value (down-pressure).
BALANCE — the two directional values distilled into a single signed percentage. Positive means bulls lead, negative means bears lead, and the size shows how lopsided it is. This is the "collapsed" read at the heart of the tool.
TP/SL — the take-profit and stop-loss distances currently configured, with their unit (percent or ATR).
COOLDOWN — how many bars remain before a new signal is allowed, or "clear" when it's ready.
STATUS — the current position state: FLAT, LONG ●, or SHORT ●.
Together the ribbon, compass, and dashboard give you the full regime picture — direction, strength, the underlying directional balance, your trade parameters, and current state — all on the price chart, readable in a single glance.
◈ HOW TO USE
Read it in two steps — direction, then conviction:
Ribbon and compass green with the meter filling high → an uptrend with conviction. Continuation-style approaches tend to suit these conditions, and the taller the compass fill, the more decisive the move.
Red with the meter filling low → a downtrend with conviction.
Ribbon dim gray and the compass short (hugging the midline) → ADX is low; a chop/range regime where trend-following is prone to whipsaw and range tactics tend to fit better. Many traders simply stand aside here.
Watch the BALANCE cell and the compass together: when balance swings from negative to positive (or vice-versa) and the compass starts filling with height, that's the regime waking up — the shift from chop into a directional move.
Optional markers and funnel labels highlight the exact moment the regime flips into a confirmed strong trend, drawing example take-profit and stop-loss reference levels on the chart so you can see the setup framed end to end.
A practical workflow: use the ribbon for your at-a-glance bias, the compass for how much weight to give it, the BALANCE cell to spot early shifts, and the STATUS/COOLDOWN cells to keep your own entries disciplined.
◈ SETTINGS
Regime Engine — DI Length, ADX Smoothing, Trend Threshold (the ADX level separating trend from chop), Strong-Trend level.
Regime Ribbon — baseline length, background tint toggle.
Regime Compass — right-edge offset, width, height (in ATR).
Trade Levels — TP/SL in Percent or ATR, ATR length, TP/SL box toggle.
Risk Management — cooldown between signals, max bars in trade, optional EOD flatten window.
Webhook — optional alert payload with a configurable strategy ID.
Dashboard — on/off.
◈ NON-REPAINTING
All signals evaluate only on confirmed (closed) bars, and every directional value is read from closed bars — so a signal that prints will not disappear or shift intrabar. Entry logic arms on the signal bar's close and references the next bar's open, matching realistic order timing. No future data is used anywhere in the logic.
◈ DISCLAIMER
This script is a technical-analysis tool provided for educational and informational purposes only. It is not financial advice, does not predict future price movement, and does not guarantee any outcome. Trading carries a substantial risk of loss. Always do your own research and manage your own risk. The past behavior of any indicator or market condition does not indicate future results. Indicator

Regime-Conditional Correlation [RC Tools]RC Tools — Regime-Conditional Correlation
─────────────────────────────────────────────────────────────
█ OVERVIEW
Plain rolling correlation between two assets is well-covered ground. The angle here: correlation is not a constant — it changes with the market regime. This tool computes rolling correlation against a second symbol of your choice and buckets it by the same regime framework as the Regime Classifier, so you can see whether a correlation you're relying on actually holds up across market conditions, or only shows up in one of them.
█ WHAT IT DOES
Plots rolling correlation (Pearson, default 20-bar window) between the current chart's symbol and a compare symbol you choose. Colours the background by the current market regime (Trending — Expansion/Exhaustion, Ranging — Quiet/Volatile), using the identical directionality × volatility-percentile logic as the Regime Classifier. A table shows the current regime and correlation, plus the average correlation, its standard deviation, and the sample count for each of the four regimes historically.
█ THE THEORY BEHIND IT
A single "the correlation is 0.8" number hides a lot. Two assets can be tightly linked during calm trending markets and decouple completely during volatile chop — or vice versa. Regime-conditioning the correlation surfaces that structure instead of averaging it away. This matters directly for anything relying on a stable cross-asset relationship: hedges, pairs, or diversification assumptions that quietly break exactly when you need them most (in the volatile regime).
█ HOW IT IS CALCULATED
CORRELATION: standard Pearson correlation between the current symbol's close and the compare symbol's close (fetched via request.security on the same timeframe), over a rolling window (default 20 bars).
REGIME: identical to the Regime Classifier — Efficiency Ratio for directionality, percentile-ranked realised volatility for volatility state, crossed to give four states. Regime is measured on the CURRENT chart's own price action, not the compare symbol. See the Regime Classifier's description for the full methodology.
The correlation reading and the regime are both "as of now" — contemporaneous — so unlike the Regime Classifier's forward-return table, no forward-looking attribution is needed here: each confirmed bar's correlation is added directly to the running average for whichever regime was active on that same bar.
█ SETTINGS & CONFIGURATION
• Compare Symbol (default BTCUSD) — the second asset to correlate against
• Correlation Length (default 20 bars)
• Regime settings mirror the Regime Classifier exactly (Efficiency Ratio lookback, directionality threshold, realised vol lookback, percentile window, volatility percentile threshold) — keep these in sync if you run both indicators together
• Paint Main Chart Background — off by default; enable on only one of the two indicators if running both, to avoid overlapping backgrounds
█ HOW TO USE IT
Check whether a correlation you're relying on is regime-dependent before trusting it. Example: if a hedge shows strong negative correlation in Ranging — Quiet but the average correlation flips or weakens in Ranging — Volatile, that hedge may not protect you exactly when volatility spikes. Always check the sample count (N) per regime before drawing conclusions — a regime with few historical bars hasn't been tested enough to trust its average.
█ LIMITATIONS
• Correlation is measured over a short rolling window and is noisy by nature — it will swing even when the underlying relationship is stable.
• The compare symbol is fetched via request.security on the same timeframe; illiquid symbols, different exchange sessions, or timezone misalignment can introduce lag or missing values.
• Regime classification carries the same caveats as the Regime Classifier: it is backward-looking by construction, unstable near threshold boundaries, and needs substantial history to be reliable.
• Per-regime correlation statistics accumulate only from where the chart's loaded history begins — early sample counts are small and not yet statistically meaningful.
• This script does NOT repaint. All classification and correlation display values update on confirmed bar close only.
█ DISCLAIMER
For educational and informational purposes only. Nothing here is financial advice. Past correlation between any two assets does not indicate future results. Trade at your own risk.
Indicator

Market Regime Engine [NQ Labs] WHAT THIS ANSWERS
Almost every indicator tells you WHAT the market is doing. Very few tell you
whether the current market has enough exploitable structure to be worth
risking money on at all. The Market Regime Engine is built for that second
question: should I be trading this right now, and if so, what style of
approach do current conditions actually favour?
It is not a signal generator. It produces no entries. It is a filter you run
underneath whatever you already trade.
WHY IT IS BUILT THIS WAY
Two design decisions separate this from a conventional regime or trend filter.
1. EVERY AXIS IS PERCENTILE-RANKED AGAINST ITS OWN HISTORY.
Most regime tools use fixed thresholds - an ADX of 25, an ATR multiplier of 3.
Those numbers are calibrated to whatever the author tested on. They are the
reason a tool behaves sensibly on one instrument and nonsensically on the
next. Here, each axis is ranked against its own recent distribution on the
current symbol and timeframe, so a 65th-percentile reading carries the same
meaning on a crypto pair as it does on an FX major. Nothing needs retuning
per market.
2. THE THREE AXES ARE ORTHOGONAL BY DESIGN.
Many "confluence" tools stack three views of momentum and present the
agreement as confirmation. Correlated inputs agreeing is not evidence. These
three measure genuinely different properties:
DIRECTIONAL EFFICIENCY - net distance travelled divided by the total path
walked to get there. A value near 1 is a straight line. A value near 0 means
price ended where it started after a great deal of work. This is the most
direct available answer to "is there a trend here", and it is independent of
direction.
VOLATILITY STATE - ATR ranked against its own history. Not "is volatility
high" in absolute terms, but "is volatility high for this instrument".
RETURN PERSISTENCE - lag-1 autocorrelation of log returns. Positive means an
up bar tends to be followed by an up bar, so momentum approaches have
something to work with. Negative means the market reverts. Near zero means
returns carry no usable memory.
THE SCORING LOGIC
The Tradeability Score (0-100) rests on one idea:
Efficiency is the signal. Volatility is the cost of being wrong.
Volatility only hurts you when there is no direction to exploit.
So the noise penalty is the product of how little direction exists and how
violent the market is. It approaches zero inside a strong trend no matter how
wild conditions get - because volatility inside a trend is opportunity, not
noise - and it peaks precisely where traders are most reliably ground down:
low efficiency combined with high volatility. That specific combination is
what the engine exists to flag.
THE FIVE REGIMES
TREND Efficiency high. Directional. Follow it.
VOLATILE CHOP Efficiency low, volatility high. No direction, maximum cost
of being wrong. The state that does the damage.
COIL Efficiency low, volatility low. Compression. Wait.
RANGE Efficiency low, volatility middling. Edges are tradeable.
TRANSITION Efficiency mid-range. No clean read. Reduce size.
A raw regime read must hold for a configurable number of consecutive bars
before it is confirmed. Without that filter, readings that straddle a
threshold flip back and forth for single bars.
REGIME MATURITY - THE PART I HAVE NOT SEEN ELSEWHERE
The engine records the length of every completed regime run on the current
chart and reports the current run against that learned baseline, together with
the sample size behind it.
A trend at 0.3x its typical duration and a trend at 2.4x are not the same
trade, even though every conventional indicator prints the identical reading
for both. A compression that has lasted three times longer than compressions
normally last on this instrument is a different proposition to one that
started six bars ago.
The sample size (n=) is shown deliberately. Below the configured threshold the
cell dims, because a baseline built from two observations is not evidence and
should not be dressed up as though it were.
HOW TO USE IT
The engine is a gate, not a trigger. The intended workflow:
1. Read the Verdict first. STAND DOWN means your edge, whatever it is, is
probably not present. The most valuable output of this tool is the trades
it talks you out of.
2. Read the Regime and Favoured Style. Trend-following systems belong in
TREND. Mean-reversion belongs in RANGE, and only when Persistence confirms
the market is actually reverting rather than merely quiet. COIL means the
setup has not arrived yet. VOLATILE CHOP means nothing you own works here.
3. Read Persistence before choosing an approach. If it reads Random, the
market has no memory to exploit in either direction, and both momentum and
mean-reversion are coin flips.
4. Use vs Typical for position management, not entry. An extended regime is
not a reversal signal. It is a reason to stop adding and to tighten what
you already hold.
5. Let the ribbon and score do the work on the price chart. The dashboard can
be forced onto the main pane so the engine occupies a pane without costing
you chart real estate.
SETTINGS THAT ACTUALLY MATTER
RANKING LOOKBACK is the important one. It must span several complete regime
cycles on your timeframe or every axis will rank near the middle and
everything will read TRANSITION. 250 bars on a daily chart is roughly a year -
a real baseline. 250 bars on a 5-minute chart is under a day, and is not.
On intraday timeframes, raise it substantially.
MINIMUM REGIME RUN trades responsiveness for stability. Higher values give a
calmer read and a cleaner duration baseline at the cost of confirming changes
later. Set it to 1 to see the unfiltered classification.
CHOP PENALTY controls how hard low-efficiency volatility is punished. Set it
to 0 and the score becomes pure efficiency rank.
EFFICIENCY and VOLATILITY thresholds are percentiles, not raw values. They do
not need adjusting per instrument. That is the point.
LIMITATIONS - STATED PLAINLY
- This is a lagging, descriptive tool. It classifies conditions that have
already formed. It does not forecast, and it cannot tell you a regime is
about to end.
- Confirmation costs lag. A genuine regime change registers a few bars late by
design. That is the price of not flickering.
- The maturity baseline is learned from visible chart history and rebuilds
whenever settings, symbol, or timeframe change. It is not persistent memory.
Early in a chart, or for a rarely-occurring regime, the sample is thin. The
n= value tells you when to discount it.
- On intraday equity charts, overnight gaps inflate ATR and distort the
persistence reading. Daily and above, or extended hours, handle this better.
- Autocorrelation is a weak statistic on short samples. Persistence readings
close to zero should be read as "no information", not as a subtle signal.
- Efficiency is directionless. TREND tells you a trend exists, not which way
it points. Pair it with something that reads direction.
- No regime classification is correct at the moment it matters most, which is
the turn. Nothing here changes that.
This script is open-source. Read the code, disagree with it, improve it.
This is an analytical tool for studying market conditions. It is not financial
advice, and it does not generate trade recommendations. Trading involves risk
of loss. Indicator

Distributional Shift Sentinel Wasserstein Regime MonitorDistributional-Shift Sentinel — Wasserstein Regime Monitor
Detects when the SHAPE of returns changes — not just the average or the variance. It claims a change, never a direction.
What it does
Most regime tools watch a moving average or a volatility band, so they only react to changes in LEVEL or SPREAD. But a market can keep the same mean and variance while its return distribution quietly changes shape — skew flips, tails fatten, the character of the auction turns. Those are the shifts that moment-based tools see late. This sentinel compares the recent return distribution against a reference window using the Wasserstein-1 ("earth-mover") distance — a metric sensitive to the whole shape — and raises a flag when the shape has moved unusually far.
How it works, and why these components together
This is a deliberate synthesis of three parts, each covering the previous one's weakness:
The Wasserstein-1 distance (optimal-transport statistics: Monge; Kantorovich). For one-dimensional data it is simply the average gap between the two windows' matched order-statistics: sort both return windows and average the absolute differences. Unlike KL/JS divergence it registers both the location and the magnitude of the difference, so a fattening tail or a skew flip shows up even when mean and variance are unchanged. Weakness it leaves open: the raw number is meaningless in isolation — "0.4" is not a shift.
A self-calibrated alarm. The distance is normalized by the reference dispersion (comparable across symbols) and ranked against its own recent history; a shift is flagged only when the reading is unusually large for this symbol and timeframe (percentile input). No fixed magic threshold. Weakness it leaves open: readings near the alarm line flicker.
A minimum-dwell announcement filter (the standard anti-chattering design from switched-systems control): SHIFT/STABLE is announced only after surviving a set number of confirmed bars. Cost: that many bars of lag — stated and adjustable.
When a shift fires, the dashboard decomposes it into what moved — location (median), scale (dispersion), shape (skew) — so the flag is informative, not just a light.
How to read it (all visuals)
Shift lane — the thin strip at the pane bottom: amber = distribution shifted, green = stable. Alert colors (change/normal), never direction. The one-glance read.
Dashboard — SHIFT/STABLE headline; shift rank; normalized distance; DRIVER (loc/scale/shape); STABILITY (% of the last 50 bars in the current state); PENDING (a forming state with countdown); windows and alarm settings.
HTF STACK — the raw shift state on three higher timeframes derived as multiples of the chart (defaults 3×, 5×, 15× — a 5m chart reads 15m/25m/75m automatically). ✓ = every timeframe agrees; ⚠ = a higher timeframe has shifted while the chart looks stable — a shape change above your resolution. Note: the deeper slots need many bars of their own timeframe (reference + calibration windows), so they warm up slowly on intraday charts; "—" for a while is correct.
SHIFT tags print on announced changes; a subtle background tint marks shifted spans.
How to use it
Treat a SHIFT as an early warning to widen stops, cut size, or re-evaluate any model or setup that assumed the old regime — not as a buy or sell. It pairs naturally with trend, structure, and fragility tools: they tell you what the regime is; this tells you when the regime's distributional character stopped being what it was. Alerts fire on shift start and shift end.
Non-repaint
Windows, the distance, the alarm, and all state announcements advance only on CONFIRMED bars; the live bar is provisional. Higher-timeframe requests use lookahead-off. No lower-timeframe data is used anywhere, so the script runs identically on every plan and symbol.
Use on any market
Price source, return type, window lengths, and the alarm percentile are all inputs; the metric is scale-relative (normalized by reference dispersion). Defaults suit liquid intraday index futures.
Originality & credits
The synthesis — sorted-sample Wasserstein-1 on a rolling chart window, dispersion normalization, self-calibrated percentile alarm, dwell-filtered state, driver decomposition, and the multi-timeframe stack — is original work for this publication. Concept credits: optimal transport / earth-mover distance — G. Monge, L. Kantorovich; Wasserstein two-sample comparison for change/drift detection — standard optimal-transport statistics literature. Implementation and charting design are the author's own.
Disclaimer
Research and education only. NOT financial advice, NOT a signal service, NOT a guarantee of future results. A detected shift is a descriptive statement about the past distribution on this chart; it does not predict direction or magnitude. Regimes change without warning. Validate independently and manage your own risk. Indicator

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
Indicator

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
Indicator

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
Indicator

Volatility Regime Compass [JOAT]Volatility Regime Compass
Introduction
Volatility Regime Compass is an open-source volatility state classifier that continuously measures where current ATR stands relative to its own historical distribution and maps it to one of four named regimes: Compressed, Normal, Elevated, and Extreme. The classification is not binary (high or low) — it uses a rolling percentile ranking against configurable lookback windows so the regime reflects where current volatility stands within its recent history, not against a fixed absolute threshold that becomes stale as market conditions evolve.
The practical value is in strategy switching: mean-reversion techniques tend to work in compressed regimes, breakout and momentum techniques in elevated ones. Knowing which regime is active before selecting a technique reduces category errors that produce losses.
Core Concepts
1. ATR Percentile Ranking
Rather than comparing ATR to a static multiplier, the indicator ranks the current ATR value within a rolling distribution of historical ATR values. This produces a percentile score from 0 to 100 that is self-normalizing across different instruments and timeframes:
float atrHi = ta.highest(atrVal, i_rankLen)
float atrLo = ta.lowest (atrVal, i_rankLen)
float atrPct = (atrHi - atrLo) > 0 ?
(atrVal - atrLo) / (atrHi - atrLo) * 100.0 : 50.0
A reading of 80 means current ATR is in the 80th percentile of its recent range — clearly elevated. A reading of 15 means ATR is near multi-period lows — compressed.
2. Four-State Regime Classification
The percentile score maps to four regimes with configurable boundary thresholds. Defaults are: Compressed (below 25th percentile), Normal (25th to 60th), Elevated (60th to 85th), Extreme (above 85th). Crossing a regime boundary triggers a transition event labeled on the chart.
3. Multi-Band Visualization
Five ATR bands project above and below close at configurable multiples (0.5×, 1×, 1.5×, 2×, 2.5× ATR). Each band is color-coded by regime — tighter bands in compressed regimes shade cooler, wider bands in extreme regimes shade hotter using a 5-stop gradient. This gives instant visual calibration of price's relationship to current volatility structure.
4. Volatility Trend
The rate of change of ATR is computed and smoothed. Positive volatility trend (ATR rising) is labeled differently from negative trend (ATR contracting). This distinguishes a currently-elevated but contracting regime from one that is expanding — the former is more likely to produce consolidation, the latter continuation.
Features
ATR percentile ranking: Self-normalizing volatility score relative to recent history
Four volatility regimes: Compressed, Normal, Elevated, Extreme with configurable boundaries
Regime transition labels: On-chart labels at every regime change event
Five ATR expansion bands: Projected above and below close, gradient-colored by regime
Volatility trend direction: Rising vs contracting ATR tracked independently of level
Candle coloring: Candles reflect current volatility regime in real time
Regime background shading: Chart background tint corresponds to current regime
Dashboard: Current ATR, percentile, regime, trend direction, and band levels
Input Parameters
ATR Settings:
ATR Period: ATR calculation length (default: 14)
Percentile Lookback: Rolling window for ATR percentile ranking (default: 100)
Regime Thresholds:
Compressed Below: Percentile below which regime is Compressed (default: 25)
Elevated Above: Percentile above which regime is Elevated (default: 60)
Extreme Above: Percentile above which regime is Extreme (default: 85)
How to Use This Indicator
Step 1: Check the Current Regime
Read the REGIME row in the dashboard. This tells you whether to expect range-bound or trending behavior in the near term.
Step 2: Watch for Regime Transitions
A transition from Compressed to Elevated is the setup for breakout strategies. A transition from Extreme back toward Normal may signal trend exhaustion.
Step 3: Use Bands as Structural Reference
The ATR bands define statistically reasonable price excursion limits for the current volatility state. Closes beyond the 2× or 2.5× band while in a Compressed regime are structurally significant events.
Step 4: Combine with Directional Indicators
This indicator classifies volatility magnitude, not direction. Pair it with a trend or momentum tool to apply regime context to directional decisions.
Indicator Limitations
Percentile ranking depends on lookback length; very short lookbacks can produce unstable regime classifications during sudden volatility spikes
The four-state classification is a simplification; volatility is continuous and regime boundaries are heuristic
Volatility expansion does not indicate direction — it only measures magnitude of movement
Originality Statement
The combination of a self-normalizing ATR percentile ranking, a four-state regime classifier with configurable percentile boundaries, gradient-coded multi-band projection, and a simultaneous volatility trend tracker in a single Pine Script v6 publication constitutes the original contribution. Standard ATR indicators display the raw value or a fixed-multiple band without regime classification or percentile normalization.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Volatility regime classifications are statistical summaries of historical data and do not predict future price movement. Trading involves substantial risk of loss.
-Made with passion by jackofalltrades
Indicator

Entropic Regime Field [JOAT]Entropic Regime Field is an open-source market state classifier that uses three quantitative measures — Fractal Efficiency Ratio, a synthetic Hurst Exponent approximation, and a Garman-Klass volatility estimator — to classify each bar into one of three entropy states: LOW (predictable, directional structure present), TRANSITION (regime shift underway), and HIGH (chaotic, low-predictability environment). Directional signals from an Adaptive Momentum Oscillator are filtered to fire only during LOW entropy states, where momentum signals have historically more reliable edge than during random or chaotic market behavior.
The foundational premise is that markets alternate between periods of organized directional behavior and periods of disorganized random movement. Trading momentum signals indiscriminately across both environments degrades overall performance because the same signal that has edge in a trending market produces random outcomes in a chaotic one. By measuring the structural organization of price movement directly — rather than relying on ADX alone, which is a lagging momentum derivative — Entropic Regime Field attempts to identify when the market's behavior is organized enough for directional signals to have context.
Core Concepts
1. Fractal Efficiency Ratio (FER)
The FER measures how efficiently price has moved over a lookback period — the ratio of the net directional distance to the total path length of individual bar-to-bar changes. A value near 1.0 indicates straight-line directional movement; a value near 0.0 indicates constant reversals:
float ferNet = math.abs(close - close )
float ferPath = math.sum(math.abs(ta.change(close)), ferLen)
float ferVal = ferPath > 0.0 ? ferNet / ferPath : 0.0
2. Synthetic Hurst Exponent
The Hurst Exponent characterizes the memory of a time series. Values above 0.5 indicate persistence (trending), values near 0.5 indicate randomness, and values below 0.5 indicate anti-persistence (mean-reversion). A simplified Hurst estimate is computed using the variance ratio method:
float var1 = ta.variance(ta.change(close, 1), hurstWindow)
float var5 = ta.variance(ta.change(close, 5) / 5, hurstWindow)
float hurstEst= 0.5 * math.log(var1 / var5) / math.log(5) + 0.5
3. Garman-Klass Volatility Estimator
Standard ATR uses only the prior close and current high/low. The Garman-Klass estimator uses all four OHLC prices, producing a more statistically efficient estimate of true volatility:
gkBar = 0.5 * math.pow(math.log(high / math.max(low, syminfo.mintick)), 2.0)
- (2.0 * math.log(2.0) - 1.0) * math.pow(math.log(close / math.max(open, syminfo.mintick)), 2.0)
The GK estimate is averaged over a configurable period and normalized to a 0-100 percentile rank over the trailing 100 bars.
4. Three-Factor Entropy Classification
LOW entropy requires FER above a threshold AND ADX above a minimum AND Hurst estimate above 0.52. HIGH entropy is triggered when FER falls below a lower threshold OR ADX falls below a minimum. TRANSITION is the state between the two.
5. Adaptive Momentum Oscillator (AMO)
The AMO blends three momentum inputs with fixed weights: RSI(14) centered at 50 (40%), Stochastic(14) centered at 50 (35%), and Williams Percent Range(14) centered at -50 (25%). Directional signals fire only in LOW entropy when AMO crosses zero and KAMA confirms via crossover/under.
Features
Fractal Efficiency Ratio: Net directional move divided by total path length, configurable lookback
Synthetic Hurst Exponent: Variance ratio approximation identifying persistent vs. anti-persistent price behavior
Garman-Klass volatility: OHLC-based volatility estimator normalized to percentile rank over 100 bars
Three entropy states: LOW, TRANSITION, HIGH — each with distinct visual treatment
10-line entropy ribbon: EMA lines colored by entropy state for visual history of regime transitions
Adaptive Momentum Oscillator: RSI + Stochastic + WPR composite with fixed optimal weights
Entropy-gated signals: AMO + KAMA confirmation signals fire only in LOW entropy state
Regime background tint: Background tinted by entropy state, cleared after 10 bars
Trade block on signal: ATR-based TP and stop rendered as boxes on signal bars
12-row institutional dashboard: FER, Hurst estimate, GK volatility percentile, ADX, AMO, entropy state, signal, win rate, bars in current state
Non-repainting: All signals gated by barstate.isconfirmed; no future data referenced
Four color themes: Phantom, Neon, Classic, Solar
Input Parameters
Fractal Efficiency:
FER Lookback (default: 14)
LOW Entropy FER Minimum (default: 0.60)
HIGH Entropy FER Maximum (default: 0.35)
Hurst Exponent:
Hurst Window (default: 20)
LOW Entropy Hurst Minimum (default: 0.52)
Garman-Klass Volatility:
GK Averaging Length (default: 14)
ADX Gate:
Min ADX for LOW Entropy (default: 22)
Signal:
AMO Cross Threshold, KAMA Period, Cooldown Bars
TP ATR Multiple, SL ATR Multiple
How to Use This Indicator
Step 1: Read the Entropy State
Check the dashboard. LOW entropy means the market is behaving in an organized, directional way — this is when momentum signals carry more weight. HIGH entropy means the market is chaotic — avoid directional signals.
Step 2: Watch FER and Hurst Together
FER and Hurst are independent measures of market organization. When both agree (high FER AND Hurst > 0.52 simultaneously), the LOW entropy classification is more reliable.
Step 3: Enter on AMO + KAMA Confirmation
Signals fire only when the AMO crosses zero in the signal direction AND price crosses the KAMA level simultaneously. Both conditions must occur on the same confirmed bar in a LOW entropy environment.
Indicator Limitations
The Hurst approximation via variance ratio is a simplified estimate. It should be treated as a directional indicator of persistence, not a precise statistical measure
The FER computation on every bar may affect chart loading performance for very long lookback periods on large datasets
LOW entropy classifications can persist during slow grinding trends that produce high FER but low volatility. These environments may produce signals with narrower ATR-based targets
The GK estimator can return unreliable values when open equals close (as occurs on some synthetic instruments or during gaps)
This indicator classifies entropy state. It does not predict how long the state will persist or when it will change
Originality Statement
The combination of Fractal Efficiency Ratio, synthetic Hurst Exponent via variance ratio, and Garman-Klass volatility estimator as a three-factor entropy classification system gating AMO momentum signals is not replicated in any existing open-source Pine Script v6 publication as of this writing
The Garman-Klass estimator as a volatility input provides a more statistically efficient OHLC-based volatility measure that captures intraday range information not available in ATR
Gating a composite three-input momentum oscillator by an entropy state derived from completely different mathematical principles (efficiency, persistence, and OHLC volatility) rather than using a single lagging derivative like ADX as the sole filter is an original analytical architecture
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Trading involves substantial risk of loss. Entropy classifications are approximations based on historical price data and do not guarantee future market behavior will repeat. The Hurst approximation used is a simplified estimate, not a statistically rigorous computation. Past win rates do not predict future performance. The author accepts no responsibility for trading losses resulting from use of this indicator.
Made with passion by jackofalltrades
Indicator

Explainable Quant Scorecard [TradeDots]Explainable Quant Scorecard
Summary
This indicator computes a composite 0 to 100 evidence score by combining seven independent normalized sub-scores: Trend, Momentum, Volatility Regime, Participation, Relative Strength, Exhaustion Risk, and Multi-Timeframe Alignment. The composite is regime-dependent: when ADX indicates a trending regime, the trend and momentum weights are boosted; when ADX indicates a range regime, the exhaustion-risk weight is boosted instead. All factor weights are exposed as inputs so the model is fully auditable and tunable. A flagship dashboard panel displays every sub-score, the composite, the active regime, and a one-line interpretation.
The intent is to give traders a transparent multi-factor reading on every bar rather than another single-indicator signal. The composite is an evidence score, not a probability or prediction.
What is original here
Composite indicators that mash several oscillators together exist in the public library. This script's contributions are:
Honest factor separation. Each sub-score measures a different dimension (trend, momentum, volatility, participation, relative strength, exhaustion, multi-timeframe). Many composites silently combine correlated readings (such as two momentum oscillators) and present the result as if it were multi-factor confirmation. This script's seven factors are deliberately chosen to be diverse.
Regime-dependent weighting. The composite is not a fixed weighted average. When the market is trending, trend and momentum factors carry more weight; when ranging, exhaustion-risk carries more. This addresses the well-known problem that trend-following inputs and mean-reversion inputs should not be weighted equally in all conditions.
Sub-score divergence detection. The script tracks the maximum deviation of any sub-score from the composite. A large deviation triggers a "sub-score divergence" alert, warning the trader that the factors disagree even when the composite looks clean.
Full transparency. All weights, all thresholds, and the regime trigger levels are user inputs. No black-box.
How it works
Each bar, seven sub-scores are computed.
1. Trend score. EMA slope over a configurable lookback, normalized to 0 to 100 via min-max over a percentile window.
2. Momentum score. Rate-of-change of close over a configurable length, min-max normalized.
3. Volatility regime score. Bollinger Bandwidth percentile mapped to a discrete numeric: compressed BBW (below the lower threshold) maps to 30, expanding BBW (above the upper threshold) maps to 70, normal BBW maps to 50. A label ("Compressed", "Normal", "Expanding") is generated alongside the numeric.
4. Participation score. Volume percentile multiplied by a close-location alignment factor. For a bullish-direction reading, a close near the bar's high earns full alignment; for a bearish-direction reading, a close near the bar's low. The result is a 0 to 100 score that rewards volume and direction-consistent closes.
5. Relative strength score. The asset's return over a configurable horizon, minus the benchmark's return over the same horizon, divided by the asset's own volatility. The result is percentile-ranked over a longer lookback (default 252 bars) to produce a 0 to 100 reading. The benchmark symbol is a user input.
6. Exhaustion risk score. Distance from the trend EMA in ATR units, mapped inversely to 0 to 100 (high exhaustion gives a low exhaustion-score, which is consistent with the convention that high scores are "good" for the composite). The dashboard inverts the label so users see "Exhaustion: High" rather than "Exhaustion: 20".
7. Multi-timeframe alignment score. The trend direction (EMA-fast vs EMA-slow) is fetched at three user-configurable higher timeframes. Each HTF's agreement with the chart-timeframe direction contributes 100, 50, or 0 to the alignment score. The final factor is the average across three timeframes.
The composite is the weighted average. When regime_weighting is enabled and ADX indicates a trending regime (above the user threshold), the trend and momentum weights are multiplied by 1.5 and the exhaustion-risk weight by 0.5. When ADX indicates a range regime (below the lower threshold), the trend and momentum weights are multiplied by 0.5 and the exhaustion-risk weight by 1.5. In a "Mixed" regime, weights are unchanged.
A four-line interpretation is assigned by composite range:
75 or higher : "Constructive, multi-factor agreement"
60 to 74 : "Mixed but constructive"
40 to 59 : "Mixed — wait for alignment"
below 40 : "Bearish or unclear"
Repainting and data integrity
All sub-scores are computed on confirmed bar values. Alerts are gated by barstate.isconfirmed. The benchmark and the three multi-timeframe trend references are fetched with request.security() using prior-bar sources together with barmerge.lookahead_on — the standard non-repainting idiom that returns the last confirmed value from the requested context. These calls do not access future data.
How to read the chart
The composite is plotted as a line in the indicator pane, color-shifted on a red-to-green gradient based on the score.
Horizontal reference lines at 25, 50, and 75 demarcate bearish, midpoint, and bullish zones.
Sub-score plots are available but off by default to keep the pane clean. They can be enabled via input toggle.
The dashboard panel shows the direction in the header, then a row for each of the seven sub-scores (numeric or labelled), then a divider, then the composite score, then the interpretation line and the active regime.
Inputs
Inputs are grouped into seven sections.
Core Settings : trend EMA lengths and norm lookback, momentum ROC length, generic norm lookback, BB length and multiplier, ATR length, ADX length.
Relative Strength : benchmark symbol, RS return horizon, RS volatility length, RS percentile lookback.
Multi-Timeframe : three HTF inputs (default 60-minute, 240-minute, daily).
Factor Weights : a 0 to N weight for each of the seven sub-scores.
Regime Modulation : regime-weighting enable toggle, trend ADX threshold, range ADX threshold.
Visual Settings : dashboard toggle, panel position, panel size, panel background color, composite-plot toggle, sub-score-plot toggle.
Any Alert() function call conditions : per-alert toggles.
Alerts
Four alert conditions are provided:
Score ≥ 75 Bullish (composite at or above 75 with trend direction up)
Score ≥ 75 Bearish (composite at or above 75 with trend direction down)
Score Regime Flipped (composite crossed the 50 midpoint in either direction)
Sub-Score Divergence (any sub-score moves more than 30 points from the composite — a warning that factors disagree)
Each is declared via alertcondition() and fired programmatically through alert() when the corresponding input toggle is enabled, with alert.freq_once_per_bar_close. Alert messages include {{ticker}}, {{interval}}, and {{close}} placeholders.
How to use this script
Read this indicator as your master "is the evidence stack constructive" check, not as an entry trigger.
A composite of 75 or higher with trend direction up is the suite's highest-conviction long setup; the inverse for shorts.
Read the regime cell. In a trending regime, weight your decision toward the trend and momentum sub-scores. In a range regime, weight toward exhaustion risk and relative strength.
If the dashboard shows a high composite but the "Sub-Score Divergence" alert is firing, the agreement is shallow — investigate which factor disagrees before sizing up.
Pair with a setup-specific indicator (sweep, breakout, zone) for entry timing. This script does not give entries.
Limitations and honest caveats
The composite is a weighted heuristic combination of normalized factors, not a calibrated probability. A composite of 80 does not imply an 80% probability of any outcome.
Regime detection uses ADX, which is lagging. The regime label will not reflect a fresh regime change on the first bar.
The Relative Strength benchmark is a single symbol chosen by the user. Choosing an inappropriate benchmark (for example, comparing a small-cap stock to a crypto-currency benchmark) will produce noisy RS readings.
The three MTF references add request.security() calls. On instruments without history at those timeframes, the MTF score may be incomplete on early bars.
Composite values pin to one tail when factor weights are mis-configured. The default weights are reasonable starting values; users are expected to tune for their instrument and timeframe.
The script makes no claim about which direction price will move; it scores the evidence stack currently visible.
Disclaimer
This script is published for informational and educational purposes. It is not investment advice and is not a recommendation to buy or sell any instrument. Composite evidence scores are descriptive, not predictive. Users are solely responsible for their own trading decisions and risk management.
Indicator

Hilbert Bandwidth [LB]🔬 Concept
The Hilbert Bandwidth Index, derived from John Ehlers' analytic signal approach, measures the instantaneous stability of the dominant market cycle by computing the bandwidth — the absolute deviation between the raw instantaneous period and its smoothed counterpart. A narrow bandwidth indicates a clean, well-defined cycle suitable for trading.
📐 Mathematical Foundation
The price median is transformed via a 7‑coefficient FIR Hilbert Transform to extract the analytic signal's real and imaginary components :
real = 0.0962·P + 0.5769·P - 0.5769·P - 0.0962·P
imag = 0.0962·P + 0.5769·P - 0.5769·P - 0.0962·P
The instantaneous phase φ is obtained via the two‑argument arctangent of imag and real . After exponential smoothing, the phase difference Δφ between consecutive bars yields the instantaneous period :
T = 2π / |Δφ|
Finally, the bandwidth is defined as :
B = |T - EMA(T, L) |
where L is the period smoothing length. The result is expressed in bars.
🎯 What Problem Does It Solve ?
Traditional cycle indicators assume a persistent dominant cycle, producing unreliable signals during chaotic or transitional markets — the Hilbert Bandwidth quantifies cycle cleanliness in real time, allowing traders to filter out low‑quality cyclic signals and act only when the market exhibits a stable, tradeable rhythm.
📊 How To Interpret
Bandwidth below threshold (background colored) → the dominant cycle is narrow, well‑defined, and stable ; trend‑following and cycle‑based strategies have higher probability of success.
Bandwidth above threshold → the cycle is broad and unstable ; the market is either noisy or in transition ; avoid cycle‑dependent entries.
Bandwidth rapidly contracting → the market is shifting from chaos to order ; anticipate a breakout or the emergence of a clean trend.
⚙️ Parameters
Phase Smoothing – exponential smoothing length applied to the instantaneous phase (default 50) ; higher values stabilize the phase estimate but introduce lag.
Period Smoothing – EMA length applied to the instantaneous period (default 10) ; controls the responsiveness of the bandwidth calculation.
Narrow Band Threshold – the bandwidth value in bars below which the cycle is considered "clean" (default 3.0) ; the background is highlighted when bandwidth falls below this level.
📚 Reference
Ehlers J.F., "Rocket Science for Traders : Digital Signal Processing Applications", Chapter 7 – The Hilbert Transform, John Wiley & Sons, 2001.
Ehlers J.F., "Cycle Analytics for Traders", Chapter 9 – Bandwidth Measurement, John Wiley & Sons, 2014. Indicator

Nyx Transition Corridor [JOAT]Nyx Transition Corridor
Introduction
Nyx Transition Corridor is an open-source probabilistic regime corridor. It estimates whether the current bullish, bearish, or neutral state has recently tended to persist, then draws adaptive volatility corridors around price. The indicator is built for context, probability, and controlled visualization rather than aggressive signal clutter.
Core Concepts
1. Regime State
The script classifies each bar as bullish, bearish, or neutral using EMA alignment, adaptive basis location, and return behavior.
2. Rolling Transition Model
Recent state transitions are counted to estimate continuation probability for the current state.
pBullBull = math.sum(fromBull * toBull, transitionLen) / math.sum(fromBull, transitionLen)
3. Adaptive Basis
The basis reacts faster when price movement is efficient and slower when the market is choppy.
4. Probability Corridor
ATR, volatility rank, and continuation probability determine the corridor width. Outer rails identify stretched conditions.
5. Compact Execution Rails
Optional small rails mark educational entry, stop, and targets when a probability reclaim or continuation event occurs.
Features
Three-state regime model: Bull, bear, and neutral states
Transition probability: Rolling persistence estimate for current state
Adaptive basis: Efficiency-weighted smoothing
Volatility-ranked corridor: Bands expand and contract with market stress
Confirmed HTF filter: Optional higher-timeframe EMA uses confirmed previous HTF data
Compact trade rails: Smaller educational rails to reduce chart obstruction
Dashboard: Shows probabilities, spread, efficiency, volatility rank, and HTF state
Input Parameters
Adaptive basis length controls centerline memory
Transition memory controls probability stability
Continuation threshold controls signal selectivity
Rail settings control optional educational projections
How to Use This Indicator
Step 1: Read the regime
The dashboard shows whether the model is bullish, bearish, or neutral.
Step 2: Compare probabilities
Large spreads between bull and bear odds indicate clearer directional context.
Step 3: Use the corridor
The corridor shows where price is trading relative to the adaptive probability field.
Indicator Limitations
Transition probabilities are historical estimates, not forecasts
Neutral markets can persist even when price briefly crosses the basis
The optional rails are visual projections and not trading advice
Originality Statement
Nyx Transition Corridor combines a state-transition model, efficiency-adjusted basis, volatility-ranked width, confirmed HTF filtering, and compact execution visuals. Its purpose is to map probabilistic state context, not to duplicate a standard moving-average band.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Probability estimates are based on historical state transitions and do not predict future behavior.
-Made with passion by jackofalltrades
Indicator

Caldera Meridian Strategy [JOAT]Caldera Meridian Strategy
Introduction
Caldera Meridian Strategy is an open-source Pine Script v6 strategy that combines trend regime, pressure, structure, auction location, and transition probability into a single rules-based execution model. The strategy is designed to be transparent: each decision component is calculated directly inside the script, and entries are processed on confirmed bars.
This strategy is not intended to prove future profitability. It is a research framework for studying how multiple market-context filters interact with ATR-based risk and staged exits.
Core Concepts
1. Regime Filter
The strategy uses fast, mid, and slow EMAs to classify bullish, bearish, or neutral trend conditions. A confirmed higher-timeframe EMA can also be used as a directional filter.
trendBull = fast > mid and mid > slow and close > mid
trendBear = fast < mid and mid < slow and close < mid
2. Transition Probability
A simple rolling transition model estimates whether the current regime has recently persisted. This is used as a filter rather than a prediction.
3. Pressure and Auction Location
The strategy estimates bid/ask pressure from candle body position, range, and volume. It also tracks VWAP-style weighted price and value deviation bands to avoid entries in poor auction locations.
4. Structure Confirmation
Confirmed pivots are used to detect delayed structure breaks, sweeps, and displacement events. Pivot confirmation is non-repainting but naturally delayed.
5. ATR-Based Risk Management
Entries use ATR or structure-based stops. Exits are staged across TP1, TP2, and TP3 using configurable R multiples.
Features
Rules-based long and short logic: Combines trend, pressure, structure, auction, and probability filters
Confirmed-bar execution: Entry and risk-off logic uses closed-bar conditions
ATR and structure stops: Stops use volatility and recent structure references
Three staged exits: TP1, TP2, and TP3 use configurable R multiples and quantity percentages
Realistic default costs: Commission is set to 0.05% and slippage to 1 tick in the strategy declaration
Dashboard: Shows position state, scores, regime, continuation, pressure, auction, and risk-off status
Default Strategy Properties
Initial capital: 100,000
Commission: 0.05 percent
Slippage: 1 tick
Pyramiding: 0
Orders processed on close
How to Use This Strategy
Step 1: Use a clean chart
For publication and testing, use a standard chart type and avoid adding unrelated scripts to the chart.
Step 2: Review the dashboard
The dashboard explains why the strategy is flat, long, short, or in a risk-off state.
Step 3: Evaluate across markets
Do not judge a strategy from a small sample. Test across multiple symbols, timeframes, and market regimes.
Strategy Limitations
Backtest results do not imply future results
Pivot-based structure is confirmed only after the pivot length has passed
Costs and slippage may differ from live trading conditions
The model can underperform in choppy markets where filters repeatedly conflict
The strategy is a research framework and not a complete trading plan
Originality Statement
Caldera Meridian Strategy integrates multiple independent modules rather than relying on a single crossover or oscillator. Its usefulness comes from studying how regime, structure, pressure, auction location, and transition persistence interact before a trade is allowed.
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice. Trading involves risk of loss. Backtests are historical simulations and do not predict future performance. Always use proper risk management.
-Made with passion by jackofalltrades
Strategy

Meridian Stochastic Regime Suite [JOAT]Meridian Stochastic Regime Suite
Introduction
Meridian Stochastic Regime Suite is an open-source adaptive oscillator built for traders who want more context than a standard stochastic line can provide. The script combines a centered stochastic engine, an adaptive response model, and a regime profile so the oscillator changes character as the market shifts between trend, compression, expansion, and balance.
The problem Meridian solves is signal quality. Standard oscillators often look clean, but they do not explain whether momentum is occurring inside a compressed market, an expanding breakout phase, or a stable trend. Meridian adds that context directly into the oscillator architecture so the same reading can be interpreted differently depending on the active regime profile.
Core Concepts
1. Centered stochastic architecture
Price is pre-smoothed first, then converted into a stochastic reading that is centered around 50 so directional pressure is easy to interpret:
smoothHigh = ta.ema(high, priceSmoothLen)
smoothLow = ta.ema(low, priceSmoothLen)
smoothClose = ta.ema(close, priceSmoothLen)
rawStoch = 100.0 * (smoothClose - ta.lowest(smoothLow, stochLen)) / stochRange
2. Adaptive response engine
The main oscillator does not use static smoothing alone. Its response speed and gain expand or contract based on the regime profile:
gainBias = gainBase + trendScore * 0.38 + expansionScore * 0.18 - compressionScore * 0.12
speedBias = responseBase + trendScore * 0.08 + expansionScore * 0.04
adaptiveOsc := adaptiveOsc + speedBias * (adaptiveSeed - adaptiveOsc )
This helps the oscillator respond differently in directional and compressed conditions.
3. Embedded regime scoring
Meridian computes four internal state scores:
Trend
Compression
Expansion
Balance
Those scores are derived from ATR behavior, path efficiency, and slope strength, then normalized into a regime profile shown in the dashboard.
4. Spread and signal layer
The script compares the adaptive oscillator to a slower signal line and visualizes the spread around the neutral axis. This gives a direct view of acceleration versus drag.
5. Institutional oscillator panel
The panel uses restrained zones, layered fills, and a top-right dashboard instead of loud markers. The result stays readable while still carrying multiple analytical dimensions.
Features
Centered stochastic core: Keeps the oscillator readable around a neutral midpoint
Adaptive response model: Gain and speed shift with the internal regime profile
Four-state regime map: Trend, Compression, Expansion, and Balance
Fast line and signal line: Shows momentum acceleration versus stabilization
Spread shading: Highlights when the adaptive oscillator is separating from the signal line
Regime dashboard: Displays state, confidence, adaptive reading, signal reading, and regime profile shares
Confirmed-bar flips: Internal state transitions are tracked on closed bars
Non-repainting design: Uses only current-timeframe data and no future references
Input Parameters
Stochastic Core:
Price Pre-Smoothing
Stochastic Length
Fast Smoothing
Adaptive Signal Smoothing
Regime Filter:
Regime Window
ATR Window
Base Oscillator Gain
Base Response Speed
Visual Output:
Show Adaptive Zones
Show Centered Fast Line
How to Use This Indicator
Step 1: Start with the regime
Read the dashboard first. Trend and Expansion regimes support directional interpretation. Compression and Balance call for more caution.
Step 2: Watch adaptive versus signal spread
When the adaptive line separates cleanly from the signal line, momentum is strengthening. When the spread compresses, the move is losing urgency.
Step 3: Use the centered fast line as timing context
The fast line helps show whether short-term momentum is leading or lagging the adaptive engine.
Step 4: Avoid isolated readings
Meridian is strongest when used alongside a structure or value-based tool rather than as a standalone trade trigger.
Indicator Limitations
Like all oscillators, Meridian can remain elevated or depressed during strong directional trends
Compression states may delay re-acceleration readings until volatility expands again
The regime profile is descriptive, not predictive
Originality Statement
Meridian Stochastic Regime Suite is original in how it embeds a four-state regime profile directly into the adaptive behavior of a centered stochastic engine. It is published because:
The oscillator response changes with internal market-state measurements instead of using only fixed smoothing
The script surfaces trend, compression, expansion, and balance as percentages inside the same panel
The panel and dashboard design turn regime context into an interpretable momentum framework rather than a generic stochastic clone
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to trade. Oscillator readings can remain extreme for extended periods, and regime classifications can shift as conditions evolve. Always use independent judgment and proper risk management.
Indicator

Parallax Covenant Strategy [JOAT]Parallax Covenant Strategy
Introduction
Parallax Covenant Strategy is an open-source, non-repainting PulseWire strategy that integrates multiple analytical engines into one realistic execution framework. It combines regime detection, pressure confirmation, mapped bias, structure context, wave release logic, and ATR-based risk management to produce entries and exits only when several independent conditions agree.
The problem this strategy solves is weak single-factor trading. A crossover alone is rarely enough. A structure break alone is often early. A momentum spike alone can be noisy. Parallax Covenant requires alignment between regime, internal pressure, mapped bias, structural context, and release behavior before taking a trade. This creates a more selective, context-aware model than a one-indicator strategy.
Core Concepts
1. Composite Regime Engine
The strategy builds a directional regime from a structural baseline, tolerance corridors, and expansion/compression state. This acts as the primary directional context.
2. Pressure Confirmation
An internal pressure model blends weighted candle force and channel position to avoid taking trades simply because price is above or below a baseline.
3. Mapping and Higher-Timeframe Bias
The strategy uses a mapped momentum framework and an optional confirmed higher-timeframe bias filter so lower-timeframe entries can align with broader conditions.
4. Structure and Release Filters
Demand and supply context, swing structure, and release-from-compression logic help prevent entries from firing in the middle of low-quality noise.
5. Realistic Risk Management
The strategy uses ATR-based stops, reward-to-risk targets, optional trailing logic after a minimum multiple of risk, and regime-failure exits. This makes the model more realistic than fixed-tick toy strategies.
Features
Multi-engine entry stack: Regime, pressure, mapping, structure, and release alignment
Confirmed-bar logic: Entry conditions are evaluated on confirmed bars
Optional higher-timeframe bias filter: Uses confirmed higher-timeframe values
Demand and supply context: Trade logic includes structural location awareness
ATR stop and target model: Risk adjusts to symbol volatility
Trailing stop activation: Trail can engage after a defined reward threshold
Regime-failure exit: Closes trades when core directional conditions break down
Maximum time-in-trade control: Avoids stale positions
Institutional dashboard: Top-right strategy state summary
Alertconditions: Regime shifts, releases, and setup confirmations
How to Use This Strategy
Step 1: Study the Dashboard
The dashboard shows whether the system currently sees bullish, bearish, or balanced conditions and how the internal engines align.
Step 2: Understand the Entry Stack
Trades only trigger when multiple conditions confirm together. If you see a setup fail to trigger, that is often intentional filtering rather than a bug.
Step 3: Respect the Risk Model
Stops and targets are volatility-based. Results will vary materially across symbols and timeframes because the strategy adapts to local ATR conditions.
Step 4: Evaluate by Regime, Not by Individual Trade
This strategy is meant to be judged over a broad sample. It is a context-and-confirmation model, not a scalping script trying to predict every turn.
Strategy Limitations
The strategy is intentionally selective and may skip many charts or periods
Higher-timeframe confirmation uses confirmed data and can therefore feel slower than live-developing bias models
ATR-based exits adapt to volatility, which means trade statistics can shift significantly across markets
No strategy can remove all adverse conditions, especially during sudden event-driven repricing
Originality Statement
Parallax Covenant Strategy is original in the way it integrates multiple distinct analytical engines into one non-repainting framework. It is not a basic moving average crossover, not a single-oscillator strategy, and not a toy example of ATR stops. Its value comes from requiring alignment between market regime, internal pressure, mapped bias, structure, and release conditions before entering risk.
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any instrument. Historical backtest results do not guarantee future performance. Always use realistic expectations, proper risk management, and independent judgment.
- Made with passion by jackofalltrades
Strategy

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

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

Meridian Regime Overlay [JOAT]JOAT Meridian Regime Overlay
Introduction
JOAT Meridian Regime Overlay is an open-source market context overlay built to classify whether price is operating in directional expansion, balanced auction, or compression.
It is designed as a chart-first regime engine rather than a standalone trigger study.
The script combines local baseline alignment, confirmed higher-timeframe bias, pivot structure, opening-range acceptance, realized volatility state, and session VWAP location into one integrated regime map.
The problem it solves is context.
Many indicators can say whether price is above or below an average.
Far fewer explain whether the move is supported by volatility expansion, structural acceptance, value migration, and higher-timeframe alignment.
Meridian Regime Overlay focuses on that exact problem.
It grades the live auction bar by bar.
It also shows what is supporting the grade.
That makes it useful as a decision filter before interpreting any lower-level signal source.
This script is not trying to predict the future.
Its job is to organize the present market condition.
It helps answer practical questions:
Is the market trending with real conviction?
Is price only drifting above a baseline without expansion?
Is the market compressing near a likely release point?
Is higher-timeframe structure aligned with the current move?
Is price accepting away from value or simply rotating around it?
Core Concepts
1. Baseline Stack Alignment
Fast, slow, and anchor baselines define the local directional stack.
Directional strength improves when those baselines align in sequence and their slopes support the move.
fastBase = ta.ema(close, fastLen)
slowBase = ta.ema(close, slowLen)
anchorBase = ta.ema(close, anchorLen)
2. Confirmed Higher-Timeframe Bias
Higher-timeframe context is pulled using confirmed values only.
This avoids depending on unfinished HTF candles.
htfFast = request.security(syminfo.tickerid, biasTf, ta.ema(close , fastLen), lookahead = barmerge.lookahead_on)
htfSlow = request.security(syminfo.tickerid, biasTf, ta.ema(close , slowLen), lookahead = barmerge.lookahead_on)
htfAnchor = request.security(syminfo.tickerid, biasTf, ta.ema(close , anchorLen), lookahead = barmerge.lookahead_on)
3. Compression and Expansion State
The script compares Bollinger width and Keltner position to identify squeeze behavior and release behavior.
ADX and realized variance refine the classification.
4. Pivot Structure State
Confirmed pivots define recent structural reference points.
Breaks through those pivots update the structural state.
5. Session VWAP Context
Distance from session VWAP is normalized in ATR units.
This helps reveal whether price is auctioning away from value with intent or just rotating around it.
6. Opening-Range Acceptance
The opening range is tracked and plotted.
Acceptance above or below that range adds useful early-session context.
7. Composite Regime Score
Multiple directional variables are folded into a single regime score.
The score is a context summary, not a standalone trade signal.
8. Confirmed Event Labels
The overlay prints confirmed auction-up, auction-down, and squeeze-release labels directly on the chart.
Features
Directional regime classification: bullish expansion, bearish expansion, balance, and compression states
Baseline cloud system: fast and slow cloud for local trend stack
Confirmed HTF alignment: higher-timeframe bias uses confirmed values only
Opening-range plotting: high, low, and midpoint are tracked
Session VWAP context: value migration is integrated into the read
Pivot structure state: recent structural breaks are tracked
Compression and release logic: squeeze and expansion state are visualized
Bar-state coloring: candles transition with regime intensity
Confirmed event labels: auction and expansion markers print on the chart
Dashboard: summarizes regime, score, HTF, structure, volatility, and VWAP context
Input Parameters
Trend Engine:
Fast Baseline
Slow Baseline
Anchor Baseline
Adaptive Mean Length
Bias Timeframe
Slope Lookback
Slope Threshold ATR
RVOL Impulse Threshold
Volatility Engine:
ATR Length
Compression Length
Band Deviation
Keltner Length
Keltner Multiplier
ADX Length
ADX Floor
Expansion Threshold
Realized Variance Length
How to Use This Indicator
Step 1: Read the regime color, cloud, and dashboard state.
Step 2: Check higher-timeframe alignment before trusting directional continuation.
Step 3: Compare structure and VWAP position to see whether price is accepting away from value.
Step 4: Watch squeeze-release transitions closely because those often precede cleaner directional movement.
Step 5: Use the script as a context filter for other tools rather than as a complete trading system.
Indicator Limitations
Pivot structure confirms after the pivot fully forms, which is intentional non-repainting behavior
Higher-timeframe values are confirmed and therefore intentionally delayed
Compression can persist longer than expected in slow auction environments
Directional classification does not guarantee continuation
Originality Statement
This publication is original in the way it integrates baseline structure, confirmed higher-timeframe bias, compression state, realized variance, session VWAP, opening-range acceptance, and pivot structure into one unified regime overlay.
The components are not combined arbitrarily.
They all answer the same core question:
what is the current quality of the auction?
Disclaimer
This indicator is provided for educational and informational purposes only.
It is not financial advice.
Market regimes can shift quickly.
All readings are based on historical and current bar data and do not guarantee future performance.
Always use independent analysis and risk management.
Best Use Cases
Directional trend filtering before using a separate trigger model
Session context analysis during London and New York activity
Volatility transition analysis when compression begins to release
Structure-aware regime filtering for discretionary execution
Interpretation Notes
The strongest readings usually occur when the local stack, confirmed higher-timeframe stack, VWAP position, and volatility expansion agree.
If only one or two of those are aligned, the chart can still move, but the regime read is weaker.
Compression should not be treated as a bearish or bullish state by itself.
It is a warning that the market is withholding directional commitment.
Opening-range acceptance adds value because many directional sessions reveal their intent early.
When price cannot hold outside the opening range, the regime should usually be treated more cautiously.
Publication Notes
This script is intended to be published with a clean chart where the cloud, baselines, opening range, and event labels are clearly visible.
The chart should not be cluttered with unrelated overlays.
If showing an example image, the regime state and at least one structural transition should be identifiable at a glance.
-Made with passion by jackofalltrades
Indicator

Concordia Regime Execution [JOAT]Concordia Regime Execution
Introduction
Concordia Regime Execution is an open-source PulseWire strategy that integrates regime detection, trend bias, structure, momentum breadth, pressure confirmation, and ATR-based risk management into one non-repainting execution model. The strategy is built as a realistic framework rather than a curve-fit showcase.
The problem Concordia solves is signal fragmentation. Regime, trend, structure, and momentum are often evaluated separately, which leads to entries taken in the wrong environment. Concordia requires multiple engines to align before a position is opened, then manages risk through predefined stop, target, trailing, and bias-failure exits.
Core Concepts
1. Regime Detection
ADX, choppiness, and compression work together to classify whether the market is suitable for directional participation.
2. Trend Bias Filter
Fast, intermediate, and structural EMAs plus anchored VWAP context define directional bias before any entry can pass.
3. Structure Confirmation
Confirmed bullish or bearish breaks of recent swing structure add structural alignment to the trade decision.
4. Momentum Breadth
A compact ribbon engine classifies whether fast momentum is actually expanding in the same direction as trend and structure.
5. Pressure and Risk Layer
Chart-derived pressure and crowding inputs help confirm continuation and suppress entries during elevated stress.
6. Risk Management
Each trade uses ATR-based initial stop placement, ATR-based profit target, optional trailing activation, and bias-failure closure if internal conditions deteriorate.
Features
Regime gate: Expansion, compression, and transitional filtering
Trend alignment: EMA stack plus anchored VWAP bias logic
Structure filter: Recent swing break confirmation
Momentum breadth: Ribbon spread confirmation instead of a single oscillator line
Pressure confirmation: Chart-derived directional pressure and crowding logic
Risk model: ATR stop, ATR target, trailing trigger, and bias-failure exit
Top-right dashboard: Regime, bias, structure, momentum, pressure, risk, setup scores, active position, and stop/target levels
Confirmed-bar entries: All setup logic is gated on confirmed bars
How to Use This Strategy
Step 1: Start with liquid markets
Concordia is better suited to instruments where anchored VWAP, ATR, and structure transitions behave consistently.
Step 2: Use realistic assumptions
Commission, slippage, and position sizing inputs should match your actual market and trading conditions before evaluating performance.
Step 3: Evaluate regime quality first
The strategy is intentionally selective. If the market is compressing or structurally unstable, fewer trades should occur.
Step 4: Review bias-failure exits
These exits are included to avoid overstaying trades when internal alignment breaks down before the stop or target is reached.
Strategy Limitations
Like any rules-based strategy, it can underperform in abrupt gap conditions or news-driven spikes
ATR-based exits adapt to volatility, but they are not guaranteed to be optimal for every instrument
The strategy is intentionally conservative and may miss some fast reversals
Historical performance does not guarantee future results
Originality Statement
Concordia Regime Execution is original in the way it integrates regime, trend, structure, momentum breadth, pressure confirmation, and ATR-based trade management into a single open-source strategy designed for realistic chart use rather than decorative backtest output.
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice and should not be treated as a recommendation to buy or sell any instrument. Strategy results are based on historical chart data and platform assumptions. Live trading results can differ materially. Always validate settings and use independent risk management.
Strategy

Volume Displacement Engine [JOAT]Volume Displacement Engine
Introduction
Volume Displacement Engine (VDE) is an open-source volume regime oscillator that measures the ratio of short-term volume activity to long-term volume baseline, smooths it into a clean oscillator, and classifies current market activity into four distinct regimes: Low, Normal, High, and Extreme. The histogram and background tint update in real time with regime-specific coloring, reference lines mark each threshold boundary, and breakout signals fire when price closes beyond a rolling high or low during elevated volume regimes. A consolidation detection layer identifies consecutive low-volume bars as ranging periods. Trade outcomes from breakout signals are tracked for statistical win rate context, displayed in a structured dashboard.
The core problem VDE solves is the absence of context in standard volume indicators. Raw volume bars communicate size but not relevance — a large bar on a trending instrument in a high-liquidity session is very different from the same bar during off-hours. By expressing volume as a ratio to a rolling baseline and classifying it into regimes, VDE communicates whether current activity is institutionally significant (High or Extreme) or routine (Normal/Low). Price breakouts during High or Extreme volume are fundamentally different propositions than the same price moves on thin volume — VDE makes that distinction explicit and actionable.
Core Concepts
1. Volume Ratio Oscillator
The core calculation divides a short-term volume simple moving average by a long-term volume simple moving average, then applies an EMA smoothing pass to reduce bar-to-bar noise:
float rawRatio = volShort / math.max(volLong, 1.0)
float volRatio = ta.ema(rawRatio, i_smoothLen)
A ratio above 1.0 means recent volume is above the long-term average — activity is elevated. A ratio below 1.0 means recent volume is below the baseline — activity is depressed. The smoothing EMA gives the oscillator a cleaner shape while maintaining responsiveness to regime changes.
2. Four-Tier Regime Classification
Four threshold boundaries define the regime tiers. All thresholds are fully configurable:
Low: Ratio below the low threshold (default: 0.70) — below-average activity, reduced institutional participation
Normal: Ratio between low and normal ceiling (default: 0.70–1.20) — baseline activity
High: Ratio between normal ceiling and high threshold (default: 1.20–1.80) — elevated activity, potential institutional flow
Extreme: Ratio above the high threshold (default: 1.80+) — exceptional volume surge, likely significant price event
3. Breakout Signal Detection
Breakout signals are generated when price closes beyond the rolling highest high or lowest low of the configurable lookback window during a High or Extreme volume regime. This combines price displacement with volume confirmation, filtering out low-conviction breakouts that occur on thin volume:
bool bullBreak = barstate.isconfirmed and close > hh and (isHigh or isExtreme)
bool bearBreak = barstate.isconfirmed and close < ll and (isHigh or isExtreme)
4. Consolidation Detection
When multiple consecutive bars fall below the consolidation volume threshold, VDE identifies the period as a consolidation zone. The minimum bar count ensures short dips below the threshold are not misclassified as ranges. A dotted reference line marks consolidation periods in the oscillator pane, providing context for identifying compression before expansion moves.
5. Gradient Fill and Regime Tint
The oscillator histogram is colored to match the current regime. A fill between the histogram and the 1.0 baseline uses the regime color with transparency, providing a visual area representation of volume expansion or contraction. During High and Extreme regimes, a background tint activates in the oscillator pane to immediately draw attention to elevated activity periods without requiring inspection of the histogram height.
Features
Volume Ratio Oscillator: Short/long MA ratio smoothed by EMA — measures relative volume displacement from baseline
Four-Tier Regime Classification: Low, Normal, High, and Extreme regimes with independent color coding and configurable thresholds
Histogram Coloring: Bar color matches current regime — immediate visual reading of activity level
Regime Background Tint: High and Extreme volume periods highlighted with a pane background color for immediate attention
Threshold Reference Lines: Horizontal dashed lines at each regime boundary and at the 1.0 baseline for quick ratio reading
Gradient Regime Fill: Fill between oscillator and baseline communicates expansion/contraction area visually
Price Breakout Signals: Bull and bear breakout signals fire when price closes beyond rolling extremes during elevated volume regimes only
Consolidation Detection: Consecutive below-threshold volume bars identified as consolidation periods
Breakout Win Rate Tracking: Outcomes from breakout signals tracked against ATR-based TP/SL levels for statistical context
Non-Repainting: All signals gated on barstate.isconfirmed
Dashboard (Top Right): Current regime label, vol ratio value, consolidation status, and win rate breakdown for High and Extreme regime breakouts
Vol Momentum Columns: 3-bar rate-of-change of the vol ratio displayed as green/red column bars in the oscillator pane — shows whether volume activity is accelerating or decelerating relative to 3 bars prior
Rolling 20-Bar Vol Ratio Peak Reference Line: A purple reference line tracks the rolling 20-bar peak vol ratio — provides a visual ceiling for recent activity levels and highlights when the current ratio is approaching or exceeding recent extremes
Vol Ratio Delta in Dashboard: Vol ratio delta shown in real time in the dashboard with a directional arrow (▲/▼) — communicates whether volume pressure is building or fading on the current bar
CONS Label on Consolidation Start: A "CONS" label fires at the bar when a consolidation zone begins — marks the exact start of identified compression periods directly on the oscillator
Breakout Strength Labels: "BRK +X.XX" and "BRK -X.XX" labels appear at each breakout signal showing the vol ratio value at the moment of the break — communicates the institutional conviction level behind each breakout directly on the chart
Input Parameters
Volume Engine:
Short Vol Window: Short-term volume MA period (default: 10)
Long Vol Window: Long-term volume MA period (default: 40)
Ratio Smooth: EMA smoothing length for ratio (default: 3)
Low Vol Threshold: Ratio below which regime is Low (default: 0.70)
Normal Vol Ceiling: Ratio above which regime is High (default: 1.20)
High Vol Threshold: Ratio above which regime is Extreme (default: 1.80)
Consolidation:
Consolidation Window: Lookback window for consolidation range (default: 8)
Consolidation Vol Max: Maximum ratio to qualify as a consolidation bar (default: 0.80)
Min Consolidation Bars: Minimum consecutive qualifying bars to declare consolidation (default: 4)
Breakout Signal:
Breakout Lookback: Rolling high/low lookback window (default: 20)
ATR Length: Period for ATR calculation (default: 14)
ATR SL Multiplier: Stop loss distance (default: 1.5)
Reward:Risk Ratio: TP multiple (default: 3.0)
Show TP/SL Labels: Toggle label display in the oscillator pane (default: enabled)
How to Use This Indicator
Step 1: Read the Regime
Glance at the dashboard regime label and histogram color. A grey histogram (Low) indicates the market is in a quiet, low-participation period — avoid breakout strategies during these windows. A teal histogram (Normal) is baseline. An amber histogram (High) or red (Extreme) signals institutional-grade activity.
Step 2: Identify Consolidation Periods
When the dotted consolidation line is active in the oscillator pane, the market is in a low-volume compression phase. These periods typically precede expansion moves — the direction of the subsequent breakout, confirmed on volume, is a key signal.
Step 3: React to Breakout Signals
Breakout signals (triangles at the top/bottom of the oscillator pane) only fire during High or Extreme regimes. When a bull breakout label appears, price has closed above the rolling high on elevated volume — a confirmed displacement. The ATR TP/SL levels from that bar define the immediate risk/reward.
Step 4: Monitor the Ratio Trend
The oscillator line trending upward while above 1.0 indicates sustained institutional accumulation of activity — these sustained elevated periods often coincide with trending phases. A declining ratio from Extreme back toward Normal often signals activity exhaustion.
Indicator Limitations
Volume data quality varies significantly by instrument and data provider. On synthetic instruments, indices, or assets where volume reflects contract count rather than notional size, the ratio will not accurately represent true monetary volume displacement
TP/SL outcome tracking in the oscillator pane uses price data for TP/SL hit detection but displays in the volume pane — the label positions are approximate visual markers, not precise price levels on the main chart
The consolidation detector uses a fixed volume threshold. In trending markets where baseline volume rises over time, the historical consolidation threshold may not match current market conditions without recalibrating the threshold input
Breakout signals require both a price breakout and an elevated volume regime simultaneously. In markets with persistently high volume baselines (e.g., during major economic event periods), the Extreme threshold may trigger more frequently than on typical days — the thresholds may need upward adjustment on those instruments
The short/long MA window ratio is a relative measure. It compares recent volume to a historical baseline — it does not measure absolute volume in shares, contracts, or dollars
Originality Statement
VDE combines a smoothed relative volume ratio oscillator with a four-tier classification framework, consolidation detection, and volume-gated breakout signals in a unified indicator. This is original for the following reasons:
Expressing volume as a ratio of short-term to long-term moving average — rather than showing raw volume bars — normalizes the oscillator across instruments and timeframes, making the same threshold values meaningful on a liquid equity, a commodity, and a cryptocurrency without manual recalibration
The four-tier classification system with independently configurable thresholds and a gradient color scheme provides a richer regime reading than simple volume-above-average/below-average binary indicators
Volume-gated breakout detection explicitly requires the price breakout and the volume regime elevation to occur simultaneously on the same confirmed bar — preventing breakout signals from firing on thin-volume price moves that carry low institutional conviction
The consolidation detection layer adds a compression-identification capability within the volume pane, providing context for identifying low-activity ranging periods before the volume regime shifts to support a directional move
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Volume regime classification and breakout signals are statistical constructs — elevated volume at a price breakout does not guarantee continuation in the breakout direction. Win rate statistics are derived from historical bar data and do not predict future performance. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Market Phase Detector [JOAT]Market Phase Detector
Introduction
Market Phase Detector is an open-source market structure classification engine that continuously identifies whether price is operating in a Bullish Trend, Bearish Trend, or Range state. The classification uses three independent inputs that must align simultaneously before a regime is confirmed, making the output robust against single-factor noise and false positives that plague simpler trend detectors.
The problem Market Phase Detector solves is context. Trend-following entries during range conditions produce whipsaws. Mean-reversion entries during strong trending moves produce losses against the dominant flow. Knowing the regime before interpreting any other signal improves the relevance of every decision made from it. Market Phase Detector makes that determination automatically, updates it bar by bar, and visualizes both the current regime and every structural event that contributed to it — including labeled BOS and CHoCH events with horizontal level lines, live swing extension lines at the right edge, and an institutional-grade dashboard.
Core Concepts
1. Swing Detection and Pivot Tracking
Price structure is derived from pivot highs and lows confirmed using ta.pivothigh() and ta.pivotlow() with a configurable symmetric lookback. The lookback controls sensitivity — a value of 5 requires 5 bars on each side of the pivot to confirm it, producing only the most structurally significant swings. Each confirmed pivot updates the tracked level and resets its broken flag to allow new break detection on the next cycle:
pivHi = ta.pivothigh(high, swingLen, swingLen)
pivLo = ta.pivotlow(low, swingLen, swingLen)
if not na(pivHi)
topLevel := pivHi
topBroken := false
2. Break of Structure vs Change of Character
Two structural event types are distinguished and tracked independently. A Break of Structure (BOS) occurs when price closes through the previous swing extreme in the same direction as the current structural bias — confirming continuation. A Change of Character (CHoCH) occurs when price closes through the previous swing extreme against the current structural bias — signaling a potential regime flip:
bosBull = bullBreak and structureBias == 1
chochBull = bullBreak and structureBias != 1
Every event is labeled directly on the chart with a horizontal line at the break level and a text label (BOS +, BOS -, CHoCH +, CHoCH -). Running counts of each type are tracked and displayed in the dashboard.
3. Three-Factor Regime Gate
The regime classification evaluates all three inputs simultaneously before assigning a state. Structure bias is set by BOS and CHoCH events. The volatility gate compares current ATR to a moving average of ATR multiplied by a contraction threshold — when ATR falls below this level the market is classified as compressed and the regime defaults to Range regardless of structure or momentum. Momentum uses a smoothed rate-of-change that must confirm the structural direction:
if isLowVol
regime := 0 // Range — volatility gate overrides everything
else if strBias == 1 and roc > 0
regime := 1 // Bullish
else if strBias == -1 and roc < 0
regime := -1 // Bearish
else
regime := 0 // Inconclusive — range
A confidence score (1-3) counts how many of the three factors currently agree and is displayed in the dashboard, allowing the trader to distinguish a fully confirmed 3/3 regime from a weaker 2/3 reading.
4. Swing Level Extension Lines
The current unbroken swing high and swing low are extended as dotted horizontal lines to the right edge of the chart with price labels. These serve as the nearest structural reference levels — the next points where a BOS or CHoCH could occur. They are deleted and redrawn each bar using barstate.islast so they remain current without consuming the indicator's line budget:
if barstate.islast and showSwingExt
line.delete(swingHiLine)
swingHiLine := line.new(topBar, topLevel, bar_index + 4, topLevel,
color=color.new(#E65100, 45), style=line.style_dotted, width=2)
5. Regime Background Shading
The chart background is tinted according to the current regime — faint teal for Bullish, faint orange for Bearish, neutral gray for Range. This gives immediate context at a glance without adding visual noise to the price action.
Features
Three-state regime output: Bullish, Bearish, and Range states derived from structure, volatility, and momentum alignment
BOS and CHoCH event labels: Every structural break labeled on-chart with event type, direction, and horizontal level line
Independent BOS and CHoCH counters: Running totals of each structural event type in the dashboard
Swing level extension lines: Dotted right-edge lines at the current unbroken swing high and low with price labels
ATR-based volatility gate: Low-volatility contraction forces a Range classification regardless of structure or momentum
Smoothed momentum confirmation: Rate-of-change must align with structure before a trending regime is confirmed
Confidence scoring (1/3 to 3/3): Quantifies how many of the three classification factors are currently aligned
Regime background shading: Chart background tint reflects the current regime in real time
Institutional dashboard (top right): 15-row table with regime state, confidence, last break direction and age, BOS and CHoCH counts, swing levels, and ATR
Fully configurable colors: Bullish, bearish, and ranging tints plus structure line colors are independently adjustable
All signals confirmed bar only: No repainting — all structural events fire on barstate.isconfirmed
Input Parameters
Structure Detection:
Swing Lookback: Left/right bars required for pivot confirmation (default: 5)
ATR Period: ATR calculation length (default: 14)
Regime Classification:
Volatility MA Length: MA length for ATR comparison (default: 20)
Range Contraction Multiplier: ATR fraction below which the market is classified as ranging (default: 0.7)
Momentum Lookback: Rate-of-change lookback and EMA smoothing period (default: 10)
Display:
Regime Background Shading toggle
Show Dashboard toggle
Show Structure Lines toggle
Show Swing Level Extensions toggle
How to Use This Indicator
Step 1: Read the Current Regime
Check the REGIME row in the dashboard. BULLISH, BEARISH, or RANGE appears in its corresponding color. This is the primary output. Use it to establish directional bias before consulting any other signal source.
Step 2: Check Confidence Score
The Confidence row shows how many of the three inputs align (e.g., 2/3). A 3/3 reading means structure, volatility, and momentum all agree. A 2/3 reading means one factor is diverging. Weight directional decisions higher during full 3/3 alignment.
Step 3: Monitor CHoCH Events
Each CHoCH label marks a structural break against the current bias — a warning that the regime may be shifting. When a CHoCH appears, watch whether subsequent bars confirm a new opposing BOS or whether the previous regime resumes.
Step 4: Use Swing Extension Lines as Forward Reference
The dotted right-edge lines mark the current unbroken swing levels — the nearest structural break zones. Knowing how close price is to these levels frames where the next BOS or CHoCH could occur.
Step 5: Apply Regime as a Filter
Market Phase Detector is designed as a context layer, not a standalone signal generator. Apply the regime output as a filter to your existing tools: only take long signals when the regime is Bullish, only take short signals when Bearish, and step aside or apply mean-reversion logic when Range is active.
Indicator Limitations
Pivot detection confirms swingLen bars after the pivot forms, creating a natural offset between the candle where the swing occurred and when it is labeled. This is intentional non-repainting behavior
The volatility gate may temporarily classify a new trend as Range immediately after a volatility expansion if ATR has not yet risen above the threshold. This resolves within a few bars as ATR normalizes
In slow, grinding markets, momentum may repeatedly lag structure, resulting in extended Range readings during mild trends
Market Phase Detector classifies current market state. It does not predict future price direction or generate entry/exit signals
Originality Statement
Market Phase Detector is original in its three-factor gate requiring independent alignment of structure, volatility, and momentum before any regime is confirmed. This indicator is published because:
The combination of CHoCH and BOS structural logic, an ATR contraction gate, and a smoothed momentum filter into a single lightweight classifier that produces a confidence score is uncommon in published open-source Pine Script v6
Distinguishing BOS from CHoCH within the same indicator — with independent event counts and labeled historical events — provides structural context that standalone trend indicators do not offer
The confidence scoring system (1-3) quantifies the strength of the current regime reading across three independent analytical dimensions, not just a single oscillator value
Swing level extension lines provide live structural reference at the right edge of the chart without requiring the user to manually draw levels or add a separate pivot indicator
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Regime classifications are based on historical price data and do not guarantee any future market behavior. All three factors can produce inaccurate readings in atypical market conditions. Always use proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Adaptive Spectral Bands [JOAT]Adaptive Spectral Bands
Introduction
The Adaptive Spectral Bands indicator is a six-layer Hann Window FIR filter ribbon combined with volatility-adaptive ATR envelopes, a three-state regime classifier, and automated support/resistance zone discovery. The Hann window is a well-known digital signal processing technique that applies a raised cosine weighting function to price data, producing a filter with near-zero overshoot and a steep frequency rolloff. The result is a smoothed trend line that turns earlier at genuine inflection points without the lag spikes characteristic of exponential moving averages.
The core problem this solves: standard moving average ribbons use EMAs or SMAs which introduce phase lag proportional to their length, creating late entries. The Hann FIR ribbon resolves at the mathematically optimal balance between lag reduction and frequency separation — no other common moving average achieves this simultaneously.
Core Concepts
1. Hann Window FIR Filter
The filter applies raised cosine weights across a lookback window. Each weight is computed as:
hannFilt(src, length) =>
float filt = 0.0
float coef = 0.0
for i = 1 to length
float w = 1.0 - math.cos(2 * math.pi * i / (length + 1))
filt += src * w
coef += w
filt / coef
This produces a symmetric bell-shaped kernel. The six ribbon layers use progressively wider copies of this filter (base length, base + spacing, base + 2×spacing, etc.), creating a ribbon that visually encodes trend momentum — wide separations signal strong trends, compression signals consolidation.
2. Volatility-Adaptive ATR Bands
The outer bands expand and contract based on the current volatility percentile rank relative to a lookback period. This is not a fixed-multiplier Bollinger Band — the multiplier itself adapts:
float vol_rank = ta.percentrank(atr_14, i_adapt_len) / 100.0
float dyn_mult = i_base_mult * (1.0 + i_adapt_str * (vol_rank - 0.5) * 2.0)
float upper_band = h0 + dyn_mult * atr_14
float lower_band = h0 - dyn_mult * atr_14
During compression (low ADX, low ATR rank), bands tighten around the central Hann line. During expansion, bands widen, automatically containing breakout candles within the volatility envelope. This eliminates the problem of static bands that produce false breakouts in trending markets.
3. Three-State Volatility Regime Classifier
ADX is used as the regime signal, with two configurable thresholds:
Low Volatility / Compression: ADX below lower threshold. Ribbon layers are tightly stacked. Market is in accumulation or range contraction. Fade-the-band strategies may apply.
Transitional: ADX between thresholds. Directional conviction is building. Ribbon is beginning to separate.
Expansion / Trending: ADX above upper threshold. Ribbon layers are fully separated. Breakout confirmation. Momentum strategies applicable.
The background and candle colors change with regime, providing at-a-glance context without requiring a separate ADX panel.
4. Automated S/R Zone Discovery
When the leading Hann layer crosses the second layer, the local price extreme at that bar is recorded as a support or resistance level. These crossovers mark inflection points where trend direction is shifting — the price level at that bar frequently becomes a structural reference in subsequent sessions:
bool cross_up = ta.crossover(h0, h1)
bool cross_down = ta.crossunder(h0, h1)
if cross_up and bar_index - last_sr_bar >= i_sr_gap
sr_price := low
// create support zone box
Zones are spaced by a minimum bar count to avoid clustering. Old zones are managed by a shift-and-delete array pattern so the chart stays clean.
Features
Six-Layer Hann Ribbon: Progressively wider FIR filters creating a gradient ribbon from fast to slow
Adaptive ATR Bands: Volatility-rank-adjusted envelopes that breathe with market conditions
Three-State Regime Classifier: Low / Transitional / Expansion states with color coding
Auto S/R Zones: Ribbon crossover points recorded as support/resistance boxes with configurable spacing
Candle Coloring: Optional bar tinting by volatility regime (compression blue / expansion amber)
10-Row Dashboard: Displays regime label, ADX value, volatility rank, ribbon direction, band width, active S/R zone count, and more
Alerts: Ribbon crossover bullish, ribbon crossover bearish, regime change to expansion, regime change to compression
Input Parameters
Hann Filter:
Source: Price input for the filter (default: close)
Base Length: Core period of the Hann FIR filter (default: 20, range: 4–500). The six ribbon layers are derived from this.
Ribbon Spacing: Gap between each successive ribbon layer (default: 3). Larger values create a wider, more visible ribbon.
Show Ribbon: Toggle ribbon visibility (default: on)
Adaptive Bands:
Enable Adaptive Bands: Toggle ATR envelope rendering (default: on)
Base Multiplier: Core ATR distance for the bands (default: 2.0)
Volatility Lookback: Period for ATR percentile rank calculation (default: 50)
Adaptation Strength: 0 = fixed multiplier, 1 = maximum volatility adaptation (default: 0.4)
Volatility Regime:
ADX Length: Period for ADX computation (default: 14)
Low Threshold: ADX below this = Compression regime (default: 20)
High Threshold: ADX above this = Expansion regime (default: 35)
S/R Zones:
Auto S/R Zones: Enable ribbon-crossover-based zone discovery (default: on)
Min Zone Spacing: Minimum bar distance between consecutive S/R zones (default: 30)
Visualization:
Bullish / Bearish / Compression / Expansion colors: Fully customizable
Color Candles by Regime: Optional regime-based candle tinting (default: off)
Dashboard:
Position: Top Right, Top Left, Bottom Right, Bottom Left (default: Top Right)
How to Use This Indicator
Step 1: Identify the Regime
The dashboard shows the current regime label (Compression / Transitional / Expansion) and the ADX value. In compression, wait. In expansion, trade. The volatility rank shows where current ATR sits in its historical distribution — above 70th percentile is high volatility.
Step 2: Read the Ribbon Direction
When h0 (fastest layer) is above h1 and h1 above h2, the ribbon is bullish and fully aligned. A crossover of h0 over h1 is the initial signal; a full stack alignment is the confirmation.
Step 3: Respect the Adaptive Bands
Price touching the upper band in expansion often marks a continuation point — the band is expanding to contain the trend. The same touch during compression is a fade signal. The regime state determines which interpretation applies.
Step 4: Trade S/R Zone Retests
When price retraces to a recently discovered S/R zone, look for ribbon alignment in the same direction as the original break. The zone marks where the Hann crossover occurred, which is the most statistically significant structural inflection point available from the ribbon.
Originality Statement
This indicator is original in its combination of Hann Window FIR filter ribbons with adaptive ATR bands and regime-conditioned S/R zone discovery. Its use on PulseWire is justified because:
The Hann FIR filter produces strictly lower phase lag at equivalent frequency cutoff than EMA or DEMA — a mathematically demonstrable property that common Pine implementations do not exploit
Volatility percentile rank as the band multiplier modulator creates self-regulating envelopes that require no manual retuning between high and low volatility periods
Combining ADX regime state with ribbon structure separates directional signals from noise — the same crossover signal carries different weight in compression versus expansion
Auto S/R zone discovery from FIR crossovers creates an objective level-finding method anchored to frequency-domain turning points, not arbitrary pivot lookbacks
Limitations
The Hann FIR filter is a causal, finite impulse response filter — it responds to all price history within its window equally weighted by the cosine kernel. It cannot predict future turning points; it identifies them as they occur.
ADX is a lagging indicator. Regime classification based on ADX will sometimes enter expansion state after the move has partially occurred.
Auto S/R zones are derived from ribbon crossovers, which means they lag the actual price turn by the filter's inherent smoothing delay. Zones mark inflection areas, not exact price pivots.
On very short timeframes (sub-5m), Hann filter smoothing may be excessive relative to the noise level, making regime signals less reliable.
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Past performance of structural patterns does not guarantee future results. Always use proper risk management.
-Made with passion by jackofalltrades
Indicator

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