MarketInOut Stock Screener Log In | Sign Up

Ultimate Oscillator

By MarketInOut · Updated November 9, 2026

The Ultimate Oscillator is a momentum oscillator that combines three timeframes into one line, moving between 0 and 100. Larry Williams designed it to fix a weakness of single-period oscillators: a short period reacts to every wiggle and produces false divergences, while a long period reacts too late. By blending a short, a medium and a long period, with the most weight on the shortest, it aims to stay responsive without being as jumpy.

How it is calculated

Each bar is split into buying pressure and its true range, both measured from the lower of today’s low and yesterday’s close:

BP (buying pressure) = close − min(low, previous close)
TR (true range)      = max(high, previous close) − min(low, previous close)

Average7  = sum of BP over 7 bars  / sum of TR over 7 bars
Average14 = sum of BP over 14 bars / sum of TR over 14 bars
Average28 = sum of BP over 28 bars / sum of TR over 28 bars

UO = 100 × (4 × Average7 + 2 × Average14 + Average28) / 7

Buying pressure is how far the close finished above the bar’s true low. A close at the top of the range gives a ratio near 1 for that bar, a close at the bottom near 0. The three averages are weighted 4:2:1, so the 7-bar ratio counts for more than half of the result.

How to read it

  • Williams’ buy signal. Williams built the indicator around divergence, with three conditions: a bullish divergence (price makes a lower low, the oscillator a higher low), the oscillator’s low in that divergence below 30, and then the oscillator rising above the high it made between the two lows. The last step is the trigger.
  • Williams’ sell signal. The mirror image: a bearish divergence with the oscillator above 70 at its first high, triggered when it falls below the low it made between the two highs.
  • Exits. Williams suggested closing longs when the oscillator reaches about 70 and closing shorts when it falls to about 30, or when the opposite signal appears.
  • Overbought and oversold. Many traders also use 70 and 30 as plain extreme levels. Because three periods are averaged, the oscillator reaches them less often than a fast stochastic does, so readings there carry more weight.

Settings and common mistakes

  • Periods. 7, 14 and 28 are the standard settings, each double the previous one. Shorter sets (for example 5, 10, 20) suit short-term trading; keep the doubling and the 4:2:1 weights so the design still works.
  • Trading every 30 and 70. On its own a move into an extreme zone is not Williams’ signal. The divergence and the break of the intermediate high or low are what make it one.
  • Seeing divergence everywhere. Divergences are common in strong trends and often fail. Check the trend on a longer timeframe and wait for the trigger.
  • Ignoring gaps. Using the previous close in both buying pressure and true range means gaps are counted, which is part of the design. Do not swap in a plain high-low range.

SPY (S&P 500 ETF), daily, with the Ultimate Oscillator (7, 14, 28).

Live chart: SPY (S&P 500 ETF), daily, with the Ultimate Oscillator (7, 14, 28). The chart updates every trading day.

Screen for it on MarketInOut

The Ultimate Oscillator is uo(short, mid, long) in our formula language. Stocks with a bullish divergence on the oscillator where it dipped below 30 within the last 20 bars, close to Williams’ setup:

exch(nyse,nasdaq) and type(stock) and price > 1 and advol(21) > 1
and uo(7,14,28) div_bull and min(uo(7,14,28), 20) < 30

Stocks in a long-term uptrend whose Ultimate Oscillator just crossed back above 30:

exch(nyse,nasdaq) and type(stock) and price > 1 and advol(21) > 1
and price > sma(200) and uo(7,14,28) ca 30

Related: Williams %R, Stochastic oscillator, Average True Range.




Disclaimer - Privacy Policy - Terms of Service - Cookies - FAQ - Affiliates - Blog