The Awesome Oscillator measures momentum by comparing a fast 5-period moving average of bar midpoints to a slow 34-period moving average of the same midpoints. The result plots as a color-coded histogram — green bars when momentum is increasing, red bars when decreasing — making momentum direction immediately visible without reading a number.
Section 1: Core Mechanics
The AO was developed by Bill Williams as a simplified momentum measure that avoids close price sensitivity. By using the bar midpoint , AO captures the full bar's range rather than just where price closed.
Formula
When the 5-period midpoint average is above the 34-period midpoint average, AO is positive — short-term momentum is stronger than long-term momentum. When below, AO is negative.
Bar Color Logic
The histogram bar color signals momentum direction, not AO level:
- Green bar: Current AO value is higher than the previous bar's AO value (momentum accelerating)
- Red bar: Current AO value is lower than the previous bar's AO value (momentum decelerating)
This means a positive AO can show red bars (AO above zero but declining), and a negative AO can show green bars (AO below zero but recovering). The color tells you the direction of change, not whether momentum is bullish or bearish overall.
Inputs
- High and Low for each bar (no close price used)
- Fast period: 5 (not adjustable in standard AO — Bill Williams' fixed setting)
- Slow period: 34 (not adjustable in standard AO)
Parameters
| Parameter | Default | Range | Impact |
|---|---|---|---|
| Fast SMA | 5 | Fixed (Bill Williams' design) | Shorter = more reactive to recent bars |
| Slow SMA | 34 | Fixed (Bill Williams' design) | Longer = smooths long-term baseline |
| Price source | Midpoint (H+L)/2 | Fixed — AO always uses midpoint | Using close would change the indicator's character |
Output
AO outputs a single value per bar, displayed as a colored histogram. Positive = fast MA above slow MA. Negative = fast MA below slow MA. The transition through zero is the most significant signal.
Section 2: Interpretation & Signals
Three Core Patterns
Pattern 1 — Zero-Line Cross (Trend Shift): AO crosses from negative to positive (or vice versa). This is the strongest AO signal — the short-term momentum baseline has crossed the long-term baseline. Bullish cross = go long. Bearish cross = go short or exit longs.
Pattern 2 — Twin Peaks (Divergence Reversal): Two consecutive peaks or valleys on the same side of the zero line, where the second is less extreme than the first. AO does not need to cross zero between the peaks.
- Bearish twin peaks: Two peaks above zero, second peak lower than first. This signals fading upside momentum = potential reversal.
- Bullish twin peaks: Two troughs below zero, second trough higher than first (less negative). This signals recovering downside momentum = potential reversal upward.
Pattern 3 — Saucer (Continuation): Three consecutive bars on the same side of zero. The first two bars go in one direction; the third reverses it. Specifically:
- Bullish saucer: Three bars above zero — bar 2 is red (lower than bar 1), bar 3 is green (higher than bar 2). This is a dip within the uptrend = buy the dip signal.
- Bearish saucer: Three bars below zero — bar 2 is green (higher than bar 1), bar 3 is red (lower than bar 2). This is a rally within the downtrend = sell the rally signal.
AO Zero-Line Cross Bullish — Momentum Shifts Positive
Signal Strength Ranking
Zero-line cross is the strongest signal — both moving averages confirm direction change. Twin peaks offer moderate reliability — they signal momentum exhaustion within a trend. Saucer is the weakest — it is a continuation signal, meaning the underlying trend is already established and you are buying a small pullback within it.
Best Market Conditions
AO performs best in trending markets where momentum builds over multiple bars. In tight ranges, AO oscillates near zero and generates frequent, low-quality zero-line crosses. The saucer pattern is most reliable in clear trending conditions. Twin peaks signals are most useful at trend turning points.
Section 3: Pass vs. Live — Real-Time Reliability
Because AO uses two SMAs of midpoints, both lines are always defined and neither reprints on historical bars. The live bar's AO value updates as the high and low of the current bar evolve. A spike to an intraday high can shift AO significantly during the bar. At close, the final midpoint is fixed and the AO value is permanent.
Section 4: Practical Use Cases
Setup: AO on 15m chart; use saucer pattern for entries in trend direction Signal: Three 15m bars above zero — bar 2 red, bar 3 green (bullish saucer) Entry: Close of the third bar (the first green bar of the saucer) Exit: First red AO bar after entry hits profit target, or AO crosses below zero Key Rule: Only take saucer signals when the 1H AO is also positive (trend aligned)
Setup: AO on daily chart; zero-line cross for trend entry Signal: AO crosses from negative to positive on daily close (first green bar above zero) Entry: Next daily open after the cross bar closes Stop: Below the swing low that preceded the AO zero cross Target: Prior swing high or until AO generates twin peaks bearish signal
Setup: AO on weekly chart; twin peaks signals for major turning points Signal: Two consecutive weekly AO peaks above zero, second peak lower than first (bearish twin peaks) Entry: Short after third consecutive red bar confirms the twin peaks pattern Stop: Above the second peak's corresponding price high Target: AO zero-line cross to downside completes
Real example — Tesla (TSLA) 2021–2022 top: TSLA weekly chart showed classic bearish AO twin peaks in November–December 2021. First AO peak reached 60.2 (above zero) in late October 2021 as TSLA hit $1,229. Second AO peak reached 42.8 in November — lower, while TSLA printed $1,243 (a marginally higher price high). The twin peaks on AO preceded the decline from $1,243 to $620 over the following six months.
Section 5: Pseudo Code
INPUT: high[], low[]
PROCESS:
Step 1: Calculate midpoint for each bar:
mid[i] = (high[i] + low[i]) / 2
Step 2: Calculate 5-period SMA of midpoint:
sma5[i] = mean(mid[i-4 : i+1]) # bars i-4 through i
Step 3: Calculate 34-period SMA of midpoint:
sma34[i] = mean(mid[i-33 : i+1]) # bars i-33 through i
Step 4: Awesome Oscillator:
ao[i] = sma5[i] - sma34[i]
Step 5: Bar color:
if ao[i] > ao[i-1]: color[i] = "green"
else: color[i] = "red"
OUTPUT: ao[] — unbounded values; color[] — "green" or "red" per bar
EDGE CASES:
- Fewer than 34 bars: return NaN (cannot calculate SMA34)
- First valid bar: ao[33] is the first calculable value
- NaN in high or low: propagate NaN
- ao[i] == ao[i-1]: neutral — no color change needed; treat as previous color
Section 6: Parameters & Optimization
Why AO Uses Fixed Parameters
Bill Williams designed AO with 5 and 34 periods specifically — derived from Fibonacci relationships (5 and 34 are Fibonacci numbers). The ratio captures a short-term and medium-term momentum balance. Adjusting these parameters creates a different indicator that loses the Fibonacci basis and the pattern reliability Williams calibrated.
Standard Conventions
| Setting | Values | Use Case |
|---|---|---|
| Standard AO | SMA(5) vs SMA(34) of midpoint | All Bill Williams system applications |
| Modified AO (MACD-style) | Adjust periods via MACD settings | If you need faster/slower, use MACD instead |
Combining Signals for Confirmation
| AO Signal | Minimum Confirmation | Enhanced Confirmation |
|---|---|---|
| Zero-line cross | Price closes in same direction | Alligator indicator open in same direction |
| Twin peaks | Second peak visible (3 bars min) | Volume declining on second peak bar |
| Saucer | Third bar completes the pattern | Price making higher lows (bullish) during saucer |
What is the Alligator + AO combination?
Bill Williams' full trading system uses the Alligator (three displaced SMAs) to define trend direction, and AO to time entries. The Alligator "opens" when the three lines diverge — indicating trend formation. An AO zero-line cross in the Alligator's opening direction is the primary entry signal. If the Alligator is closed (lines overlapping), AO signals are filtered out. This combination reduces false signals significantly compared to AO alone.
How do I identify a valid twin peaks pattern?
Requirements for a valid bearish twin peaks: (1) Both peaks must be above the zero line. (2) Between the two peaks, AO must not cross below zero. (3) The second peak must be lower than the first (lower AO value). (4) At least one red bar must appear between the two peaks. For bullish twin peaks, reverse: both troughs below zero, second trough higher (less negative), at least one green bar between them.
Section 7: Synergies & Conflicts
| Works Well With | Avoid Combining With | |
|---|---|---|
| Alligator Indicator | Bill Williams' native combination — Alligator defines direction, AO times the entry within that direction | — |
| Fractals | Bill Williams' fractal breakouts confirm the trend direction AO signals momentum within | — |
| MACD | Both compare fast vs slow MA — use MACD for customizable periods when standard AO is too slow | — |
| Volume | Rising volume on AO zero-line cross confirms institutional participation in the momentum shift | — |
| RSI | — | Different frameworks — RSI measures up/down comparison over N periods; AO measures midpoint MA spread. Interpretations can conflict at the same time without being wrong. Choose one as primary. |
| Stochastic | — | Stochastic is range-relative and bounded; AO is midpoint-based and unbounded. Their signals are not directly comparable. |
| MACD on same chart as AO | — | Both are MA-spread oscillators — visual redundancy, not independent confirmation. |
Section 8: Common Mistakes
| Mistake | Root Cause | Solution |
|---|---|---|
| Trading every zero-line cross | Zero-line crosses in choppy markets generate frequent false signals | Require Alligator to be open (three lines diverged) before acting on a zero-line cross |
| Adjusting AO periods to improve backtest | Overfitting — loses the Fibonacci basis and pattern validity | Keep 5/34 fixed. If the signals do not fit, use MACD with custom periods instead |
| Treating red bars as bearish signal | Red bars only mean AO decreased from previous bar — not that momentum is negative | Color signals direction of change, not absolute direction. Positive AO with red bars is still bullish. |
| Not waiting for saucer completion | Entering on the second bar of the saucer | Enter only when the third bar (the reversal bar) closes — the pattern requires all three bars |
| Ignoring the zero-line context of twin peaks | Twin peaks validity requires both peaks on the same side of zero | A peak above zero followed by a peak below zero is not a twin peaks — it is a crossover |
Section 9: Cheat Sheet
USE WHEN: Trending market with Alligator open, looking for zero-line cross or saucer continuation entry
AVOID WHEN: Alligator closed (three lines overlapping), market in tight range, news-driven volatility spike
ENTRY SIGNAL: Zero-line cross (strongest) / Saucer pattern completion (continuation) / Twin peaks after second peak forms
EXIT SIGNAL: AO crosses back to zero / Bearish twin peaks forms after long entry / AO turns sharply against position
PARAMETERS: Fixed — SMA(5) vs SMA(34) of midpoint. Do not adjust.
CONFLUENCE: Alligator direction filter + Volume rising on zero-line cross + Fractal breakout alignment
RISK: Saucer patterns fail frequently in ranging markets — confirm trend first with Alligator
BEST TIMEFRAME: Daily for trend entries / 4H for swing saucer setups / Weekly for twin peaks reversals