Systemicalpha

Awesome Oscilator

systemic:core-aoIndicatorsfunction1 cr

Inputs

NameTypeDescription
Short Windowinteger- **Short Window**; The short period for the SMA calculation. Typically set to 5 periods.
Long Windowinteger- **Long Window**; The long period for the SMA calculation. Typically set to 34 periods.
Price Highfloatarray- **Price High**; The highest price of the asset for a given period. This is used in conjunction with the Price Low to calculate the Median Price.
Price Lowfloatarray- **Price Low**; The lowest price of the asset for a given period. This is used in conjunction with the Price High to calculate the Median Price.

Outputs

NameTypeDescription
AOfloatarrayThe AO output is a momentum indicator series that oscillates around zero, representing the difference between short-term and long-term momentum.

A comprehensive guide to using the Awesome Oscillator (AO) to measure momentum, confirm trends, and spot reversals in equities and cryptocurrencies.


Overview

The Awesome Oscillator (AO), developed by Bill Williams, is a momentum indicator that captures the market's wave structure by comparing short-term and long-term price movements. AO is designed to:

  • Identify trend direction and strength
  • Spot momentum shifts and potential reversals
  • Confirm or filter trade signals in both traditional securities and cryptocurrencies

Why it matters:

  • In equities, AO helps confirm the underlying trend and detect early signs of exhaustion or reversal (Investopedia AO).
  • In crypto, AO can filter out noise and highlight genuine momentum shifts in volatile markets (Binance Academy AO).

AO is especially useful for:

  • Detecting trend changes before they are visible in price alone
  • Filtering out false signals in choppy or manipulated markets
  • Complementing other momentum and trend indicators (see MACD, CCI, Stochastic Oscillator)

Mathematical Formulation

The AO is calculated in two main steps:

  1. Median Price:
Median Pricet=Hight+Lowt2\text{Median Price}_t = \frac{\text{High}_t + \text{Low}_t}{2}
  1. Awesome Oscillator:
AOt=SMA5(Median Price)−SMA34(Median Price)\text{AO}_t = \text{SMA}_{5}(\text{Median Price}) - \text{SMA}_{34}(\text{Median Price})

Where:

  • SMA5\text{SMA}_{5} is the 5-period Simple Moving Average
  • SMA34\text{SMA}_{34} is the 34-period Simple Moving Average

Missing Data

A closed-market bar (weekend, holiday) or any bar with a null High or Low is not computed — it is a genuine gap, output as None, never a sentinel or a carried-forward value. Both SMAs (5-period and 34-period, or your configured windows) run over the observed-bar subsequence: "N-bar SMA" means N observed bars, with market-closed gaps bridged (Friday adjacent to the following Monday). The first window_long - 1 observed bars are warm-up and are also None. Output length always equals input length; only the values at gap and warm-up slots differ.


Calculation Flow

flowchart TD
    A[High, Low] --> B[Compute Median Price]
    B --> C[5-period SMA]
    B --> D[34-period SMA]
    C --> E[Short SMA]
    D --> F[Long SMA]
    E --> G[Subtract: Short SMA - Long SMA]
    F --> G
    G --> H[AO Output]
    H --> I[Plot AO and Price]

How to Use AO in Practice

  • Zero Line Cross:
    • AO crosses above zero: Bullish momentum, potential buy signal
    • AO crosses below zero: Bearish momentum, potential sell signal
  • Twin Peaks:
    • Bullish: Two troughs below zero, second higher than the first, and AO rising
    • Bearish: Two peaks above zero, second lower than the first, and AO falling
  • Saucer:
    • Bullish: Three consecutive bars, with the middle bar lower than its neighbors, all above zero
    • Bearish: Three consecutive bars, with the middle bar higher than its neighbors, all below zero
  • Divergence:
    • Price makes new high, AO does not: Bearish divergence, possible reversal
    • Price makes new low, AO does not: Bullish divergence, possible reversal

Signal Interpretation Flow

flowchart TD
    S[Scan AO and Price] --> A{AO > 0?}
    A -- Yes --> B{AO Rising?}
    B -- Yes --> C[Consider Long]
    B -- No --> D[Wait or Watch for Divergence]
    A -- No --> E{AO < 0 and Falling?}
    E -- Yes --> F[Consider Short]
    E -- No --> G[Wait or Watch for Bullish Divergence]

Regime State Diagram

stateDiagram-v2
    [*] --> Neutral
    Neutral: AO near zero
    Neutral --> Bullish: AO crosses above zero
    Bullish --> StrongBull: AO rising above zero
    Bullish --> WeakBull: AO above zero but falling
    Neutral --> Bearish: AO crosses below zero
    Bearish --> StrongBear: AO falling below zero
    Bearish --> WeakBear: AO below zero but rising
    StrongBull --> Neutral: AO falls to zero
    StrongBear --> Neutral: AO rises to zero

Comparison to Similar Modules

  • MACD (Moving Average Convergence Divergence):
    • Both AO and MACD are momentum oscillators based on moving averages, but MACD uses EMAs (exponential) and includes a signal line (Investopedia MACD).
    • AO is simpler, using only SMAs of median price, and is more focused on wave structure.
  • CCI (Commodity Channel Index):
    • CCI measures deviation from a moving average and is used for identifying overbought/oversold conditions (StockCharts CCI).
    • AO is more focused on momentum and trend confirmation.
  • Stochastic Oscillator:
    • Stochastic compares closing price to a range over a period, useful for spotting reversals (Investopedia Stochastic).
    • AO is less sensitive to short-term price swings and more to overall momentum.

Comparative Diagram

flowchart LR
    AO[Awesome Oscillator]
    MACD[MACD]
    CCI[CCI]
    Stoch[Stochastic Oscillator]
    AO -- Momentum, Wave Structure --> MACD
    AO -- Simpler, Median Price --> CCI
    AO -- Less Noise, Trend Focus --> Stoch

Use in Securities and Cryptocurrencies

  • Equities:
    • Confirm trend direction: AO above zero supports bullish setups, below zero supports bearish setups (StockCharts AO).
    • Spot exhaustion: Divergences and twin peaks can warn of trend exhaustion.
  • Cryptocurrencies:
    • Filter noise: AO helps identify genuine momentum in volatile markets.
    • Combine with volume or volatility filters for robust signals (Binance Academy AO).

Example (Bitcoin)

Suppose Bitcoin rallies, but AO forms a bearish twin peaks pattern above zero. This may warn of weakening momentum and a possible correction.


Stylized Regimes and Trading Implications

flowchart TD
    AO1[AO > 0 and Rising] --> Bull[Strong Bullish Momentum]
    AO2[AO < 0 and Falling] --> Bear[Strong Bearish Momentum]
    AO3[AO Crosses Zero] --> Shift[Momentum Shift]
    AO4[AO Divergence with Price] --> Rev[Potential Reversal]

Heuristics:

  • AO rising above zero: Confirm uptrend, consider long trades
  • AO falling below zero: Confirm downtrend, consider short trades
  • Divergence: Reduce risk, watch for reversal

Practical Implementation Notes

  • Data hygiene: Use consistent high/low data, especially in crypto where exchange feeds may differ.
  • Backtesting: Test AO signals with price action and other indicators (e.g., RSI, MACD) for confirmation.
  • Risk controls: AO is best used as a filter, not a standalone signal. Combine with stop-losses and position sizing.

References and Further Reading


Appendix: Quick Glossary

  • AO: Awesome Oscillator, a momentum indicator
  • Median Price: Average of high and low for a period
  • SMA: Simple Moving Average
  • Twin Peaks: Two consecutive peaks or troughs used for reversal signals
  • Divergence: Disagreement between price and indicator direction
  • MACD: Moving Average Convergence Divergence, a momentum oscillator
  • CCI: Commodity Channel Index, an overbought/oversold indicator
  • Stochastic Oscillator: A momentum indicator comparing close to range

Indicator Assessment

---
config:
  xyChart:
    width: 600
    height: 400
  themeVariables:
    xyChart:
      plotColorPalette: "#9b59b6, #e67e22"
---
xychart-beta horizontal
    title "AO Indicator Assessment (Scale: 1-10)"
    x-axis ["Popularity", "Reliability", "Complexity", "Versatility", "Recent Interest"]
    y-axis "Score" 0 --> 10
    bar [7, 6, 4, 7, 5]
    bar [6, 5, 4, 6, 6]

Legend: First bar (purple) = Equities/Forex | Second bar (orange) = Cryptocurrency

Dimension Explanations

DimensionEquities/ForexCryptoRationale
Popularity76Part of Bill Williams' indicator suite; widely available on charting platforms. Moderate adoption in crypto communities.
Reliability65Effective for momentum confirmation; twin peaks and divergence patterns are reliable. In crypto, more false signals due to volatility.
Complexity44Simple concept (SMA difference) but pattern recognition (twin peaks, saucer) requires practice.
Versatility76Works across timeframes; pairs well with other Bill Williams indicators (AC, Alligator). Less effective in low-volume crypto assets.
Recent Interest56Steady interest in traditional markets. Growing crypto adoption as traders seek momentum confirmation tools.
Rendering diagrams...
© 2026 WanoLabs. All rights reservedAlpha build v0.1.5