Language: English. Choose a language
Get started

← All indicators

Indicators · Moving averages

McGinley Dynamic

A moving average that self-adjusts to market speed to hug price more closely.

Origin: John R. McGinley, 1990s

Best suited to
Trending markets
Responsiveness
Lagging
Family
Moving averages
McGinley Dynamic applied to a chart in Analess, on synthetic demonstration data.
McGinley Dynamic in Analess, on illustrative data. View full-size capture.

What it is

The McGinley Dynamic is a self-adjusting trend line invented to fix the two classic moving-average problems: lagging behind in fast markets and getting chopped up in slow ones. It speeds up in downmoves and hugs advances more smoothly, tracking price with fewer whipsaws than an equivalent EMA.

How it is calculated

The line updates recursively: each bar it moves toward price by an amount inversely scaled by the fourth power of the ratio of price to the line — MD = MD_prev + (price - MD_prev) / (k x N x (price / MD_prev)^4). When price runs far above the line the divisor grows and the line slows down; when price falls below, the divisor shrinks and the line accelerates, following sell-offs faster than rallies by design. In this app the constant k is the adaptationFactor parameter and the line is computed from the closing price.

How to read it

The indicator draws one line, mcginley_dynamic, on the price chart. Read it as a smarter baseline: price above a rising line means a healthy uptrend, price below a falling line a downtrend. Because the mechanism resists whipsaws, price hovering near the line for many bars is a genuine sign of equilibrium rather than indicator noise. The line tracks declines more tightly, so it tends to flag deteriorating markets sooner than an SMA or EMA of the same length.

What to look for

  • Price crossUpside

    Price closes above the mcginley_dynamic line after trading below it — with fewer false versions of this signal than an EMA cross of similar speed.

  • Price crossDownside

    Price closes below the line — meaningful because the line accelerates downward with price, making sustained closes below it harder to produce by noise.

  • Trend filterContext

    The slope and side of the line serve as a trend filter, the role McGinley himself intended — he described it as a market tracking tool rather than a signal generator.

  • ConfirmationContext

    Pullbacks that hold at the line during a trend confirm the move; use it as dynamic support or resistance.

When to use it

The McGinley Dynamic suits stocks, indices, forex and crypto on swing timeframes (1-hour to weekly), and is a drop-in replacement anywhere an EMA is used as a baseline. Its asymmetric speed — faster in declines — makes it popular for risk management. It is less suited to symmetric mean-reversion systems that need the average to behave identically in both directions.

Works well with

Settings explained

period
Default 14. Sets the baseline speed, comparable to an EMA length. Raising it slows the line for position trading; lowering it tightens it to price. McGinley noted the dynamic tracks roughly like a conventional average of a somewhat shorter length.
adaptationFactor
Default 1.0. The k constant in the divisor. Lowering it (McGinley suggested about 0.6) makes the line faster and more reactive; raising it slows the line further. It multiplies with period, so tune one at a time.

Limitations and common mistakes

  • It is deliberately asymmetric — faster in falling markets — which complicates strategies that assume symmetric behavior.
  • It remains a smoothing filter with lag; it will not catch V-shaped reversals at the turn.
  • It is less common than SMA/EMA, so fewer market participants watch the same line, weakening any self-fulfilling support/resistance effect.

References

  • Origin: John R. McGinley, 1990s.

This page explains how an indicator is calculated and read. It describes past data, not what price will do next, and it is not a recommendation to trade. Read the disclaimers.

Try it in Analess

Add McGinley Dynamic to any chart, adjust its settings, and open this explainer from the indicator itself.