Ultimate Oscillator
Momentum
Larry Williams combined three timeframes into one oscillator, precisely to solve the classic problem of divergence indicators: depending on the chosen period you see a different signal.
In its original form this indicator uses volume and/or the daily range (High/Low). The scanner only has closing prices and approximates those inputs (see the note at the bottom). So treat the absolute values as indicative; the direction and the crossings remain usable.
Construction & calculation
- Compute per day the Buying Pressure (closing price minus the day's low) and the True Range.
- Add both up over 7, 14 and 28 periods and form the BP/TR ratio per window.
- Weight those three ratios by 4, 2 and 1 — the shortest window weighs the most — and normalize to 0-100.
UO = 100 x (4 x avg7 + 2 x avg14 + 1 x avg28) / (4 + 2 + 1)
with avg(n) = sum(BP,n) / sum(TR,n)
Interpretation
- The oscillator moves between 0 and 100, with 30 and 70 as the classic extremes.
- Williams never used the UO for levels, but solely for a full, multi-step divergence pattern.
- That makes the UO rare but relatively high quality: when it fires, there is a complete pattern underneath.
How the signal works in this scanner
Buy signal (green)Williams' full pattern: (1) two price lows in the 60-bar window, where the second is lower than the first; (2) at that second low the UO makes a higher low (the divergence); (3) between the two lows the UO has dipped below 30 at least once; (4) the UO then breaks out above its highest value between the two lows. The signal only counts if that breakout occurred in the last 5 bars.
Sell signal (red)Exactly mirrored: a higher price high, a lower UO high, the UO above 70 between the two highs, and a breakdown below the intervening trough within the last 5 bars.
Watch-outs & pitfalls
- This is not a crossing signal but a pattern recognition. It therefore appears far less often than the other indicators — that is by design.
- The 'freshness' limit of 5 bars prevents a divergence pattern from weeks ago from remaining an active signal forever.
- Requires at least 70 trading days.