Skip to content
All library documents

John Ehlers’ Universal Oscillator and Zero-Cross Signals

Article ProRealCode

Summary

The document describes John Ehlers’ Universal Oscillator, a price-momentum indicator based on the SuperSmoother filter. It first forms a differenced price input, smooths it with a recursive filter controlled by a bandedge period, and scales the result by a decaying peak estimate. The resulting series is intended to stay around -1 to 1, with zero crossings proposed as directional signals: a cross above zero suggests going long, while a cross below zero suggests going short.

The notes identify the indicator’s relationship to Ehlers’ earlier filter and describe the bandedge trade-off: a shorter setting reduces lag. The example uses a period of 20, but it supplies no market, timeframe, backtest, or performance evidence. The signal rules are presented as basic guidance rather than a validated trading system. The document also does not discuss transaction costs, position sizing, exits, or how to handle whipsaws, so users would need to test those choices before relying on the indicator.

Key ideas

  • The oscillator begins with a two-period price difference and applies a recursive SuperSmoother filter.
  • A rolling peak estimate scales the filtered value to produce a bounded oscillator-like output.
  • The example uses a bandedge period of 20, and shorter values are described as reducing lag.
  • The proposed trading rule goes long above zero and short below zero.
  • No empirical performance evidence or risk-management rules are provided.

Tags

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.