P
PipsGrowth

Key Takeaways

Difficulty:Intermediate
Reliability:Moderate
Category:momentum
Timeframes:1H, 4H, Daily

Awesome Oscillator (AO)

momentumšŸ“Š 1H, 4H, Daily

Bill Williams indicator measuring market momentum using the difference between 5 and 34-period SMAs of the midpoint.

Formula

Code
AO = SMA(Midpoint, 5) - SMA(Midpoint, 34)
Midpoint = (High + Low) / 2

Detailed Explanation

The Awesome Oscillator was created by Bill Williams as part of his trading system.

Key Patterns:
1. Zero Line Cross: Basic trend signal
2. Twin Peaks: Momentum divergence pattern
3. Saucer: Brief momentum reversal signal

Trading Setup Example

Entry, stop loss, and take profit levels.

šŸ“ˆ Buy Setup
Awesome Oscillator (AO)703050Oversold!EntryTake ProfitStop LossCandlesIndicatorOversoldBUY
šŸ“‰ Sell Setup
Awesome Oscillator (AO)703050Overbought!EntryTake ProfitStop LossCandlesIndicatorOverboughtSELL

Always wait for signal confirmation before entering a trade.

Where This Indicator Works Best

Trend context and market position.

šŸ“ˆ Bullish Context
OBOSOversold!Ranging MarketBest Fit āœ“Buy Signal
šŸ“‰ Bearish Context
OBOSOverbought!Ranging MarketBest Fit āœ“Sell Signal

Detects overbought/oversold in trending and ranging markets.

Live Chart — Awesome Oscillator (AO)

See Awesome Oscillator (AO) in action on a live chart. Try changing the settings and timeframe.

Parameters

Fast Period
Default: 5
Fast SMA period
Slow Period
Default: 34
Slow SMA period

šŸ“ˆ Bullish Signals

AO crosses above zero, bullish twin peaks, saucer buy signal

šŸ“‰ Bearish Signals

AO crosses below zero, bearish twin peaks, saucer sell signal

Python Implementation

Awesome Oscillator calculation

Python
import pandas_ta as ta
df['AO'] = ta.ao(df['high'], df['low'], fast=5, slow=34)

TradingView Pine Script

JavaScript
//@version=5
indicator("Awesome Oscillator")
ao = ta.sma(hl2, 5) - ta.sma(hl2, 34)
plot(ao, "AO", style=plot.style_histogram, color=ao > ao[1] ? color.green : color.red)
šŸ“Š Use TradingView for Advanced Charting
Professional analysis tools with 100+ technical indicators
Get TradingView Pro

MT5 MQL5 Code

C++
int ao_handle = iAO(_Symbol, _Period);
double ao[];
CopyBuffer(ao_handle, 0, 0, 100, ao);

Common Mistakes

āœ—Trading every zero cross without confirmation
āœ—Ignoring the overall trend

Confirmation Signals

Alligator indicator
Price action
Volume

Best For

Trend confirmationMomentum analysisBill Williams strategies

šŸ’” Pro Tips

  • •Part of Bill Williams trading system
  • •Histogram colors show momentum direction
  • •Twin peaks patterns are powerful signals
Last updated: February 8, 2026

Educational Disclaimer

This content is for educational purposes only and does not constitute financial or investment advice. Trading involves significant risk and you may lose your capital. Always consult a licensed financial advisor before making investment decisions.

Frequently Asked Questions

Awesome Oscillator (AO) - Complete Guide with Python & TradingView Code