2.69 Reactivity: Momentum Times Aspect Ratio

Reactivity weights momentum by an aspect ratio, range per unit of volume, so a big move on thin volume scores high. Powerful for trading cycles, but it multiplies two noisy parts, so normalize both halves or it lies.

2.69 Reactivity: Momentum Times Aspect Ratio

A price move on heavy volume and the same move on thin volume are not the same event, and most momentum indicators treat them as identical. Reactivity, Al Gietzen's construction, refuses to. It multiplies a plain momentum reading by an aspect ratio that asks how much range the market produced per unit of volume, so a big move that took little volume to produce scores high, the market reacting hard to a light push. It is a sharp idea wrapped around an unstable core, and it demands the same disciplined normalization the old article "CMMA: A Better Momentum Primitive Than Price-minus-MA Alone" used to make a noisy primitive usable.

Two pieces: momentum and aspect ratio

The first piece is momentum in its crudest form, the price change from a lookback ago to now.

$$ \text{PM}_t = P_t - P_{t-\text{LB}} $$

The terms are the current price and the price LB bars ago, so this is raw directional movement over the window, nothing clever. The cleverness is the second piece, the aspect ratio, which Gietzen defines as price range over a period divided by total volume over that period. The intuition is a measure of how reactive the market is: a lot of range produced on little volume means price moves easily, the book is thin and the market is twitchy; a little range on heavy volume means price is sticky, absorbing trade without moving. In its raw form that ratio is far too unstable to use, because both range and volume swing wildly bar to bar and their quotient explodes.

Normalize both halves before you divide

The fix is to normalize the range and the volume separately against their own smoothed baselines before forming the ratio, so each half becomes a dimensionless "relative to recent normal" reading instead of a raw quantity in pips or contracts.

$$ \text{SR}_t = \alpha\,(\text{HH}_t - \text{LL}_t) + (1-\alpha)\,\text{SR}_{t-1} \qquad \text{SV}_t = \alpha\,V_t + (1-\alpha)\,\text{SV}_{t-1} $$ $$ \text{AR}_t = \frac{(\text{HH}_t - \text{LL}_t)\,/\,\text{SR}_t}{V_t\,/\,\text{SV}_t} $$

The SR and SV terms are the exponentially smoothed price range (highest high minus lowest low) and smoothed volume, each an EMA with weight alpha. The aspect ratio is then current range over its own smoothed baseline, divided by current volume over its own smoothed baseline. Normalizing both halves this way is what tames the explosion: a range of "1.4 times its recent normal" against a volume of "0.7 times its recent normal" is a stable, dimensionless reading no matter the instrument or the era, where the raw range-over-volume was not. The smoothing length for these baselines runs a multiple of the momentum lookback, long enough that the baselines are steady references rather than chasing the same moves the numerators carry.

Scale, compress, and accumulate

Multiply momentum by the aspect ratio and you have raw reactivity, big when a strong move coincided with a high range-per-volume reading, the market lurching on light trade. That product still carries the price units of the momentum term and the volatility regime, so divide it by the smoothed price range to get scaled reactivity, which is dimensionless and normalized against market and volatility regimes, the same divide-by-a-range-baseline move that ATR normalization performs in the old ATR article. Then compress and accumulate into the final oscillator.

$$ \text{Scaled Reactivity}_t = \frac{\text{PM}_t \cdot \text{AR}_t}{\text{SR}_t} \qquad \text{Reactivity}_t = 100 \cdot \Phi\!\Big(\textstyle\sum 0.6 \cdot \text{Scaled Reactivity}\Big) - 50 $$

The capital phi is the normal CDF doing the tail compression, the running sum with its decay weight accumulates the scaled reactivity into a smoother series, and the final scaling bounds and recenters it at zero. The whole chain echoes the CMMA build pattern the old article laid out: take a crude momentum primitive, divide by a volatility-scaled range to kill regime and units, then squash the tails into a bounded model-ready feature. Reactivity just inserts the aspect ratio in the middle, so the momentum is weighted by how easily the market was moving when it moved.

Handle with care

Gietzen flagged reactivity as an indicator that needs caution and sophistication, and that warning is the honest part to keep. It is a product of two separately noisy quantities, momentum and an aspect ratio, and multiplying noisy things compounds their instability, which is the entire reason every half gets normalized against a smoothed baseline before they meet. Get the smoothing lengths wrong and the aspect ratio still misbehaves, throwing reactivity readings that track artifacts of the normalization rather than the market. It was built for trading price cycles, reading the moments a market moves easily on light volume as the reactive phases of a cycle, so it is a specialist tool, not a general trend or momentum replacement. It depends on volume, which means it inherits volume's problems, the year-over-year drift and the bar-to-bar erraticness that force the heavy smoothing in the first place, and on instruments with unreliable volume the aspect ratio is built on sand. Every smoothing length and the momentum lookback are parameters that interact, the normalization must be causal, and a reactivity reading should be confirmed against a cleaner indicator before it sizes anything.

KEY POINTS

  • Reactivity multiplies plain momentum (price now minus price a lookback ago) by an aspect ratio, range over volume, so a big move produced on light volume scores high: the market reacting hard to a small push.
  • The raw aspect ratio is too unstable to use; normalize range and volume each against their own smoothed EMA baselines first, turning both into dimensionless "relative to recent normal" readings before dividing.
  • Multiply momentum by the normalized aspect ratio for raw reactivity, divide by the smoothed range to kill units and volatility regime (the ATR-normalization move from the old ATR article), then compress with the normal CDF and accumulate into a bounded oscillator.
  • The build mirrors the old CMMA pattern: crude momentum primitive, divide by a volatility-scaled range, squash the tails, with the aspect ratio weighting momentum by how easily the market was moving.
  • It is powerful but touchy: a product of two noisy parts, dependent on volume, built specifically for trading cycles. The smoothing lengths interact, the normalization must be causal, and it should confirm against a cleaner indicator before sizing a trade.

References