Ultimate oscillator
Combines buying pressure across short, medium and long ranges.
Purpose and construction
Combines buying pressure across short, medium and long ranges.
Ultimate oscillator is applied to the chart series using the local definition below. Each period counts one bar on the active chart. The same period therefore covers a different amount of time on daily and intraday charts.
How to read it
Compare multi-period momentum; inspect the component weights below.
Confirm the inputs and settings before comparing the indicator with price. On an open bar, close, extremes and volume can still change, so the reading can update before the bar closes.
Parameters
| Parameter | Default |
|---|---|
N1 | 7 |
N2 | 14 |
N3 | 28 |
M | 6 |
Parameter names match the variables in the calculation. After changing a lookback or smoothing period, recalculate on the same data to compare response speed. Defaults from another platform may not match this definition.
Original illustrated case
This original daily-bar case moves through an advance, a pullback and a wider-range recovery. It does not represent a real security. Where available, outputs are calculated by the project’s formula engine using the defaults above.

From bar 91 to bar 180, the close rose from 103.9764 to 115.09. Compare each output below, then use the reading rules above to distinguish direction, momentum, participation or a pattern condition.
| Point | Bar | Close | Volume | Calculated outputs |
|---|---|---|---|---|
| A | 91 | 103.9764 | 14187 | UOS: 41.5191MAUOS: 42.7463 |
| B | 131 | 102.9084 | 19368 | UOS: 42.2506MAUOS: 43.0981 |
| C | 180 | 115.09 | 15024 | UOS: 61.4473MAUOS: 56.786 |
To reproduce: retain the same OHLCV series and default settings, then compare outputs bar by bar. Warm-up bars can have no value. The case-generation script and local definition are stored with the project, so plotted curves are calculated rather than hand-drawn.
Local calculation
The local definition is shown below. Display labels can be translated; the case calculation uses original source identifiers. A shared indicator name does not guarantee identical calculations across platforms.
TH:=MAX(HIGH,REF(CLOSE,1));
TL:=MIN(LOW,REF(CLOSE,1));
ACC1:=SUM(CLOSE-TL,N1)/SUM(TH-TL,N1);
ACC2:=SUM(CLOSE-TL,N2)/SUM(TH-TL,N2);
ACC3:=SUM(CLOSE-TL,N3)/SUM(TH-TL,N3);
UOS:(ACC1*N2*N3+ACC2*N1*N3+ACC3*N1*N2)*100/(N1*N2+N1*N3+N2*N3);
MAUOS:EXPMEMA(UOS,M);Limitations
- Compare multi-period momentum; inspect the component weights below.
- Timeframe, adjustments, warm-up length and data units affect results. Align these before comparing charts.
Questions
Why can Ultimate oscillator differ across platforms?
Compare inputs, default periods, smoothing, offsets and data units before comparing the final value. This guide uses the local source definition rather than assuming that an external example has the same settings.
Does the example show a real trade?
No. The figure and table use simulated data to explain calculations and chart reading. They contain no real orders and make no return or win-rate claim.
References
The calculation comes from the project’s indicator registry. Primary references below provide related conceptual reading. Figures and numerical cases are independently produced for this project.