WhitmanTrading

CCI vs Awesome Oscillator

The commodity channel index measures distance from a moving average divided by typical deviation, so its reading adapts to the instrument. The awesome oscillator subtracts a longer average of bar midpoints from a shorter one, with no normalisation applied at all.

Two open-scale panels that resemble each other on screen. One divides by typical deviation and the other does not, which decides whether either reading survives a change in market conditions.

What each one is

The commodity channel index measures distance from a moving average, divided by how much price typically deviates. That division is what lets it adapt. The commodity channel index covers it.

The awesome oscillator subtracts a longer average of bar midpoints from a shorter one, plotted as a histogram with no normalisation. The awesome oscillator covers it.

Neither has a ceiling. Both can print any value, so both need calibrating against the instrument’s own history before a threshold means anything.

Where they differ

A price series with a normalised deviation reading beneath.
Divided by typical deviation, so it adapts. Illustrative chart - not real market data.

Whether the scale adapts. Dividing by typical deviation means a busier market does not automatically produce larger readings. The histogram has no such adjustment and inflates directly with bar size.

The second half of a price series with a raw difference histogram beneath.
Raw price difference, unnormalised. Illustrative chart - not real market data.

What is being measured. Distance from a mean against the gap between two averages. Those are related but not the same — you can be far out while the gap narrows.

A slice of price data where distance and acceleration disagree.
Far from the mean, and decelerating. Illustrative chart - not real market data.

What the input is. Closes for one; midpoints of each bar’s high and low for the other, so long wicks and gaps register differently.

How signals are read. Thresholds and turns on one; colour changes, zero crossings and expanding bars on the other — and the colour change fires on very small differences.

Where they agree

A window of price data feeding both readings.
Both unbounded, both from the same bars. Illustrative chart - not real market data.

Both are computed from the same price series. Neither adds information from outside it, so agreement between them is arithmetic rather than confirmation.

Both need calibration. With no ceiling on either, a level is meaningful only against what that instrument has printed before, and that reference expires as conditions change.

Both fail in a range. On this site’s shared series direction runs average 2.01 bars with a longest of 11, and short runs produce constant crossings on both.

And neither supplies a stop. The ninetieth percentile bar range here is 1.101, and the invalidation belongs at structure rather than at a panel reading.

Which one to use

A range-bound stretch of price producing signals in both panels.
A range fires both, constantly. Illustrative chart - not real market data.

Run the commodity channel index when you want the reading to adapt. Normalising by typical deviation keeps the tool comparable to itself when a market becomes more or less active.

A slow-moving stretch of price with an expanding histogram.
Expanding bars are a statement about acceleration. Illustrative chart - not real market data.

Run the awesome oscillator when acceleration is genuinely your question and you have established what its bars normally look like on your instrument.

Run MACD instead if acceleration is the answer. It implements the same difference-of-averages idea with a far larger community, so the rules you read elsewhere translate directly.

And run one, not both. Two unbounded panels reading the same bars produce a chart that looks comprehensively analysed and holds a single observation.

Why normalisation matters

A candlestick chart annotated with the round-trip cost of a switch.
Every signal acted on costs a round trip. Illustrative chart - not real market data.

Because an unnormalised reading changes meaning silently. When bars get larger, the histogram gets larger, and a threshold set last month is now crossed far more often without any decision being made.

A section of a price series drawn without volume context.
And a thin market distorts both readings. Illustrative chart - not real market data.

And because the normalised version notices. Dividing by typical deviation is exactly the adjustment that keeps a reading honest when a market changes character.

What to fix before running either

Record a year of readings first. With no ceiling, the range your instrument actually prints is the only reference either tool has.

Pick one signal definition per tool. Thresholds, turns, colour changes and zero crossings are separate rules with separate trade counts, and running several at once means one record for several methods.

Recalibrate when the market changes character. On this site’s shared series the average true range has a median of 0.5994 and a ninetieth percentile of 0.7954 — a move through that spread inflates an unnormalised reading on its own.

And never quote a level from one instrument on another. Neither scale transfers, and the normalised one only transfers in the sense that it is scaled to each market separately.

The original data

Of the 24,971 unique videos in research/search-study-corpus.jsonl, no title compares these two directly — this pair is constructed from two subjects the corpus covers separately. Separately, the commodity channel index appears in 448 titles at a median of 9,318 across 344 channels, and the awesome oscillator in 53 at a median of 10,321 across 43. The counts come from site/corpus_count.py.

A candlestick series with several gaps, the largest of them marked.
A gap inflates the unnormalised reading hardest. Illustrative chart - not real market data.

448 videos on one at 9,318 and 53 on the other at 10,321. Eight times the coverage and a very slightly smaller audience per video — the smaller subject holds its interest per upload, which across this section has consistently been the profile of a tool people search for deliberately.

A stretch of price bars cut short at a decision point.
Bars got larger. Same thresholds? Illustrative chart - not real market data.

The answer to the question on that chart is that only one of these has adjusted. The normalised reading is still comparable to itself; the histogram’s bars are simply taller — and a threshold set before the change now means something different.

When it fails

The failure is carrying an unnormalised threshold through a change in conditions, and it happens without a decision being made. A histogram threshold chosen when bars were a certain size is crossed far more often once the market becomes more active. The rule was never changed, the trade count doubles, and every individual signal looks like the method working. The reading inflated because the bars did, which is exactly the failure normalising by typical deviation exists to prevent.

The second failure is running both for confirmation. They share their input.

A third is trading every colour change. They arrive constantly.

A fourth is quoting either level across instruments. Neither transfers.

A fifth is running the histogram beside MACD. They are one idea twice.

And a sixth is expecting either to lead price. Both are computed after the bar.

The commodity channel index covers the normalised distance reading. The awesome oscillator covers the raw midpoint histogram. And MACD covers the better-supported version of that same idea.

What I actually do

Normalisation is the part worth noticing. One of these divides by how much the instrument typically deviates, so its readings stay comparable to themselves. The other does not, so its bar heights change meaning whenever the market changes character.

— Michael Whitman

This page is educational, not financial advice. Test every idea on your own charts before risking money.