Bill Williams noticed a useful thing. Speed turns before price does. The rate that speed changes turns sooner still. The accelerator decelerator oscillator indicator lives at that second step. It takes a five-bar mean of the speed figure away from the figure itself.
This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Separate window (levels 0) |
| Plots | 2: AC rising, AC falling |
| Alerts | popup, push notification, email, sound |
| Inputs | 13 |
What the file declares
Two histogram plots, in a pane below price.
`AC rising` fills lime green at width 3.
`AC falling` fills red at the same width.
Only one of the two holds a value per bar.
A reference sits at zero across the pane.
No line and no arrow appear anywhere.
- AC rising: histogram, width 3
- AC falling: histogram, width 3

Working through the maths
Speed first
`AoFastPeriod` `5` less `AoSlowPeriod` `34`. Both are plain means of the midpoint between high and low. That gap is the speed figure the rest of the tool rests on.
Then its rate of change
`AcSignalPeriod` `5` takes a mean of that gap. Subtract the mean from the current value and what is left shows how far speed has moved against its own recent pace.
Colour and scale
Each column is compared with the previous one. Growing fills lime green, shrinking fills red, and `DisplayScale` `1000.0` lifts the result into a readable range.
What each colour means
Above zero the push is building, below it fading.
Colour is direction; position is state.
Red above zero says the build is easing.
Lime green below zero says the fall is slowing.
The zero crossing is the reported event.
`MaxBars` `1500` bounds how far back it draws.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
Crossing the zero line is the one event here. `EnableAlerts` decides whether it speaks. `EnablePopup` surfaces it already. Mobile, mail and the desktop clip behind `SoundFile` all begin closed, once per closed bar.
Every Accelerator Decelerator Oscillator Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
AoFastPeriod |
Fast median SMA period (Awesome Oscillator fast leg). Quick leg of the momentum figure, `5`. | 5 |
AoSlowPeriod |
Slow median SMA period (Awesome Oscillator slow leg). Slow leg, `34`. | 34 |
AcSignalPeriod |
SMA period applied to AO to build AC. Average taken over that figure, `5`. | 5 |
Display settings
| Setting | What it does | Default |
|---|---|---|
DisplayScale |
Same scale factor on every plotted series. Multiplier lifting the pane values, `1000.0`. | 1000.0 |
AcRisingColor |
Histogram color when AC rises. | lime green |
AcFallingColor |
Histogram color when AC falls. | red |
Alert settings
| Setting | What it does | Default |
|---|---|---|
MaxBars |
History bars to scan (0 = all). History drawn, `1500`. | 1500 |
EnableAlerts |
Master alert switch. Whether the zero crossing speaks, `true`. | on |
EnablePopup |
Popup alert. It surfaces as a popup, `true`. | on |
EnablePushNotify |
Push notification to phone. It reaches mobile as well, `false`. | off |
EnableEmail |
Email alert. It arrives as mail, `false`. | off |
EnableSound |
Sound alert. | off |
SoundFile |
Sound file. That clip, `”alert.wav”`. | alert.wav |

Picking the right chart
A second-derivative reading is jumpy wherever you put it, which is why the pane suits slower charts. EURUSD H1 is the reference chart. M5 turns the columns into a picket fence. H4 gives a handful of zero crossings a month.
The downsides
Measuring a rate of change amplifies noise.
Zero crossings arrive often on any fast chart.
Nothing here confirms against price itself.
Values scaled by a thousand mean nothing between symbols.
Copy the compiled Accelerator Decelerator Oscillator Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Background reading on the method behind the Accelerator Decelerator Oscillator Indicator: Bill Williams (trader) on Wikipedia, Momentum at Investopedia.
Download the Accelerator Decelerator Oscillator Indicator for MT4 and MT5
The zip holds the compiled Accelerator Decelerator Oscillator Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. Enter your email below and the download link arrives in your inbox.
Download this indicator free
Enter your email and the file is yours. You also get the full MT4 and MT5 library.
FAQ
What does AcSignalPeriod 5 subtract from what?
A five-bar mean of the speed figure, taken away from the current speed figure. What is left shows how far speed has pulled ahead of or behind its own recent pace, which is what this pane reports.
What price do AoFastPeriod and AoSlowPeriod read?
The midpoint between each bar’s high and low, not the close. Bill Williams built this family that way so the whole bar counts, which means a long wick still feeds the speed figure.
Does AC rising mean the column sits above zero?
No, and the difference matters. Colour says whether this column beats the last one. Position against zero says whether the push is building or fading. The two often disagree.
Why does EnableAlerts fire on the zero crossing?
Because it marks the turn from a building push to a fading one. Colour changes happen far too often to be worth a message, while crossing the reference is a genuine change of state.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Accelerator Decelerator Oscillator Indicator as one input. Always backtest before trading live.
Authoritative references
- Learn more about technical indicators.
