McGinley Regime Ribbon [AxeAlgo]McGinley Regime Ribbon
----------------------------------------------------------------------
WHAT THIS SCRIPT DOES
----------------------------------------------------------------------
McGinley Regime Ribbon classifies the current market into one of four regimes, Trend Up, Trend Down, Ranging, or Volatile, on any chart, in real time, and colours a woven ribbon to match.
It is a context filter. It does not predict future price direction and it does not generate buy or sell signals. Its job is to tell you which kind of tool fits current conditions, so you can stop applying trend logic to a range or fade logic to a trend.
- Trend Up or Trend Down: trend and breakout tools are in context, and mean reversion tends to fight the move.
- Ranging: fades, support and resistance, and VWAP reversion tend to fit, while breakout tools tend to produce false starts.
- Volatile: wide, structureless movement with no dependable edge for either style. The label is a suggestion to stand aside.
----------------------------------------------------------------------
BACKGROUND, WHY A McGINLEY RIBBON AND NOT AN EMA RIBBON
----------------------------------------------------------------------
A standard EMA moves at one fixed speed set only by its length. That same speed applies in a dead calm range and in a fast trend. That fixed speed is the main reason an EMA ribbon whipsaws: in chop, price crosses back and forth through a band that cannot get out of the way, and the stacked or not stacked alignment reading that any ribbon based classifier depends on flickers along with it.
The McGinley Dynamic (John R. McGinley, CMT) handles this inside the formula rather than by adding more smoothing. Each line updates every bar with a term that measures how far price has pulled away from the line, raised to the fourth power. When price pulls away, the line speeds up to close the gap on its own. When price is riding the line, it settles back to roughly the pace of an EMA of the same length. The line is fast when it needs to be and calm when it needs to be, with no separate trend or chop switch attached on top.
The Ribbon Smoothness input is the published tuning constant that scales the baseline speed so it lines up with an EMA of the chosen length. Lower reacts faster, higher is steadier, and the adaptive behaviour happens on top of that either way.
----------------------------------------------------------------------
THE SHARED SPEED FACTOR
----------------------------------------------------------------------
The textbook McGinley formula lets each line compute its own deviation from price. In a five line ribbon that breaks the one property a ribbon needs, a stable relative order between the lines, because a slower line always lags price more than a faster one, so it sees a larger deviation and speeds up by a different amount on an ordinary bar.
In this script only the middle line computes its own deviation. The other four reuse that same speed factor. Relative responsiveness between any two lines is then a fixed ratio of their lengths, exactly like an EMA ribbon, while the ribbon as a whole still accelerates in trends and calms in chop as a group. The speed factor is bounded so one extreme bar cannot collapse every line at once. The five lengths keep Fibonacci spacing, 8, 13, 21, 34 and 55 by default, scaled from a single Ribbon Length input.
----------------------------------------------------------------------
HOW THE REGIME IS CLASSIFIED
----------------------------------------------------------------------
Three independent readings are combined on each bar.
1. Ribbon alignment. How many of the five lines are stacked in order, fast above slow for up or the reverse for down. A full stack is directional structure, a partial stack is not.
2. ADX, taken from the Directional Movement Index. Above the trending threshold points to a real directional push, below the chop threshold points to none. ADX on its own cannot separate trend from chop, which is why it is only one of three inputs.
3. Normalised ATR percentile. ATR divided by price, ranked against its own recent history on a 0 to 100 scale. A high percentile means volatility is unusually elevated for this symbol specifically. Ranking against its own history is what lets the thresholds work across different symbols and timeframes without re-tuning.
From those three:
- Volatile requires an elevated ATR percentile together with a ribbon that has come apart. A fully stacked ribbon is treated as a trend no matter how fast it is moving, so elevated volatility on its own never forces the Volatile state.
- Trending requires not Volatile, ADX at or above the trending threshold, a fully stacked ribbon, and a ribbon spread, meaning its width measured in ATR, at or above a minimum.
- Ranging is the calm, structureless default that applies when neither of the above holds.
----------------------------------------------------------------------
STABILITY AND CONFIRMATION
----------------------------------------------------------------------
Four layers keep the regime from flickering on a boundary.
- Hysteresis. The reading needed to leave a regime is looser than the one needed to enter it, so a value parked on a threshold does not flip every bar.
- Minimum hold. A changed raw regime becomes official only after it has held for a set number of bars. Entering Volatile is exempt by default, because standing aside should not wait.
- Flip rate chop filter. If the official regime has already changed several times inside a recent window, the market is whipsawing by definition, and a fresh trend call is held back until it settles. An already established trend is exempt, so this never fights a real trend through a pullback.
- Higher timeframe confirmation. The same classifier is run on a higher timeframe using confirmed bars only, then folded into an agreement flag and into the published gates. It can require the higher timeframe to merely not conflict, or to match the trend direction exactly.
----------------------------------------------------------------------
SCORES
----------------------------------------------------------------------
- Regime Confidence, 0 to 100. How far past its defining threshold the current regime sits. A reading right on the line scores near zero.
- Regime Maturity, 0 to 100. How long the current run has lasted compared with past runs of the same type on this symbol. A high value means the current phase is already longer than most earlier ones, which can flag a stretched range or an extended trend.
- Trend Quality, 0 to 100. A weighted blend of ADX, ribbon alignment, ribbon spread and mid line slope, reduced when volatility is elevated.
----------------------------------------------------------------------
WHAT YOU SEE ON THE CHART
----------------------------------------------------------------------
- A woven ribbon of 21 thin strands interpolated across the five McGinley lines, with no solid fill. Each strand is a shade of the current regime colour, darker on the slow edge and lighter on the fast edge, over a soft wide glow. Gold for Trend Up, ruby for Trend Down, royal blue for Ranging, indigo blue for Volatile.
- Shade is driven by Regime Confidence. A confident reading gets the full saturated colour. A borderline reading is pulled toward a greyed version of the same colour, never a different colour and never invisible, so the ribbon colour itself tells you how much to trust the call.
- On a regime change every strand cross fades from the old colour to the new one over a few bars, so the ribbon melts between colours instead of snapping.
- A diamond when the regime officially flips into a directional call. A gold diamond below the bar for Trend Up and a ruby diamond above the bar for Trend Down, following the usual arrow convention. Flips into Ranging or Volatile are reported on the dashboard rather than the chart.
----------------------------------------------------------------------
DASHBOARD
----------------------------------------------------------------------
A compact on chart panel showing the current regime, the tool family it favours, Trend Quality, Regime Confidence, ADX, ATR percentile, the recent flip count, how long the regime has run against its own median, any pending flip and its confirmation countdown, and the higher timeframe regime with its agreement state. If the optional signal section is enabled it also shows average result by regime.
Position is selectable. The whole panel can be turned off.
----------------------------------------------------------------------
OPTIONAL, GRADE A SIGNAL BY REGIME
----------------------------------------------------------------------
An optional section lets you wire in an external signal series from another indicator, positive for long, negative for short, zero for flat. The script measures each entry forward return over a chosen number of bars in ATR units and reports the average result grouped by the regime the signal fired in, so you can see which regimes your own signal actually performs in. It is off by default and stays blank until pointed at a real signal.
----------------------------------------------------------------------
INPUTS
----------------------------------------------------------------------
- Ribbon. Price source, overall length, smoothness, and drawn width. Drawn width changes appearance only, not detection.
- Trend Criteria. A single dial, Strict, Normal or Lenient, that moves the trend strength bar, the minimum ribbon width, the volatility cut off, the confirmation delay and the quality floor together.
- Higher Timeframe Check. On or off, and which timeframe to use.
- Display. Element toggles, panel position, and the four regime colours.
- Grade A Signal By Regime. The optional external signal section above.
- Advanced. Higher timeframe agreement rules, ADX and ATR lengths, volatility lookback, colour fade length, and whether markers and alerts wait for the bar close.
----------------------------------------------------------------------
CALCULATION AND REPAINT BEHAVIOR
----------------------------------------------------------------------
Chart timeframe logic uses only the current bar own data. Higher timeframe reads take the last closed higher timeframe bar with lookahead off, so they do not repaint. The regime change diamonds and the alert calls are gated to confirmed, closed bars by default.
The ribbon colour on the open, still forming bar can update until that bar closes, because the live bar regime is not final until then. This is expected for a context tool. The confirmed markers and alerts are the parts that wait for the close.
There is a warm up period. The ribbon, ADX and the percentile window all need history first, and until that fills the panel reads Calibrating and no regime is published.
----------------------------------------------------------------------
LIMITATIONS
----------------------------------------------------------------------
- This is a classifier, not a strategy. It describes current conditions, it does not tell you where to enter or exit.
- Regime calls lag by design. Hysteresis, the minimum hold and the chop filter all trade a few bars of delay for fewer false flips.
- On very short histories, or the first bars of a new symbol, there is not enough data to rank volatility or measure regime maturity, and those readings stay blank until enough runs have completed.
- Thresholds are preset driven. The three criteria presets cover most cases, but unusual instruments may still need the Advanced dials.
----------------------------------------------------------------------
DISCLAIMER
----------------------------------------------------------------------
Trading involves substantial risk of loss and is not suitable for every investor. Nothing in this script or its description constitutes financial, investment, or trading advice. The regimes detected by this script label current and past conditions only and are not indicative of future results. Test any tool on your own markets, timeframes and settings before relying on it.
Indicatore






















