The awesome oscillator indicator draws Bill Williams’ reading as coloured columns. Green means the value rose against the bar before it. Red means it fell. The terminal supplies the number through iAO, so what you get here is the colour split and four alert routes.
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: AO up, AO down |
| Alerts | popup, push notification, email, sound |
| Inputs | 6 |
What the Awesome Oscillator Indicator draws on the chart
Two histogram plots, and a zero line.
`AO up` paints medium sea green at width 3.
`AO down` paints tomato at the same width.
Only one of the two holds a value on any bar.
A level sits at zero across the pane.
Nothing gets drawn on the price chart.
- AO up: histogram, medium sea green, width 3
- AO down: histogram, tomato, width 3

How the Awesome Oscillator Indicator calculates its values
The terminal does the sum
One call, no inputs. iAO returns the reading for each bar. Bill Williams built it from a five-bar and a thirty-four-bar median average. Those periods are fixed inside the terminal.
Colour by direction
This is the whole added logic. The code reads the current value and the one before it. Rising fills the green buffer. Falling fills the red one. Nothing else decides the colour.
The warm-up
Thirty-six bars go unpainted. The averages inside need that much history. So the first columns appear well right of the chart edge on a short history.
How to read the signals
Colour reports direction, never level.
A green column below zero still means the reading rose.
Two greens in a row say the rise held.
A cross of zero says the two averages inside swapped places.
A run of shrinking columns is a fading move.
Column height only matters against nearby columns.
Alert channels in this build: popup, push notification, email and sound.
`EnableAlerts` sits over the colour-flip alerts and ships true with `EnablePopup`. Turn on `EnablePushNotify` for a phone, `EnableEmail` for mail, or `EnableSound` to play `SoundFile`. Those three start off.
Every Awesome Oscillator Indicator input
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Master switch, `true`. | on |
EnablePopup |
Box in the terminal, `true`. | on |
EnablePushNotify |
Buzz on a phone, `false`. | off |
EnableEmail |
Mail on a colour flip, `false`. | off |
EnableSound |
Cue on a colour flip, `false`. | off |
SoundFile |
Which clip plays, `”alert.wav”`. | alert.wav |

Settings that fit your chart
There is nothing to tune, so the chart decides everything. EURUSD H1 is the reference chart. Colour flips come a few times a day there. On M5 they come constantly. On daily bars each flip covers a week of trade.
When the Awesome Oscillator Indicator fails
Colour flips on the smallest rise, so noise flips it too.
The periods are fixed and cannot be changed here.
Height means nothing across different pairs.
A quiet session gives columns too small to read.
Copy the compiled Awesome 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.
Download the Awesome Oscillator Indicator for MT4 and MT5
The zip holds the compiled Awesome 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
Which periods does the AO up plot use?
Five and thirty-four, and neither is exposed here. The terminal iAO call holds them internally. Bill Williams fixed those numbers when he defined the reading, and this build follows him rather than adding a period input.
What makes the AO down plot appear?
A value lower than the bar before it. That is the only test. The reading can sit far above zero and still paint red, because the colour describes direction rather than level.
Why does the AO up plot have a zero line?
Because zero is where the five-bar and thirty-four-bar averages inside the reading are equal. Crossing it says the shorter average has moved to the other side of the longer one, which is a change in the balance of the last few bars.
Does EnableSound fire on every bar?
No. It fires on a colour flip, and only once for that bar. A stretch of same-colour columns stays silent however long the run lasts, so a trending session gives far fewer sounds than the column count suggests.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Awesome Oscillator Indicator as one input. Always backtest before trading live.
Category: this is part of our Oscillators collection. Thus, browse more Oscillators for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- For background on this concept, see Decisionpoint Intermediate Term Breadth Momentum Oscillator Itbm at StockCharts ChartSchool.
- For broader market context, see Ultimate oscillator on Wikipedia.
