The awesome signal oscillator indicator plots the classic histogram and then acts on it. Its reading is a 5-bar average of the bar midpoint minus a 34-bar one. That pane sits below price. So the buy and sell markers go on the chart itself as objects, each with a text label.
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 Dn |
| Alerts | popup, push notification, email, sound |
| Inputs | 12 |
What the Awesome Signal Oscillator Indicator draws on the chart
AO Up is the lime green histogram for a bar that rose above the one before it.
AO Dn is the red histogram for a bar that fell.
A level line at zero separates the two halves of the pane.
OBJ_ARROW and OBJ_TEXT objects carry the buy and sell markers onto the price chart.
- AO Up: histogram, lime green, width 3
- AO Dn: histogram, red, width 3

How the Awesome Signal Oscillator Indicator calculates its values
Building the histogram
med takes high plus low over two. ao then takes a 5-bar average of med and subtracts a 34-bar one. `InpFast` sets the short window and `InpSlow` sets the long one. A short view of the midpoint against a long one is the whole sum.
Colouring bar by bar
UpHist takes the value when the reading sits at or above the previous bar. Otherwise the red buffer takes it. Colour describes the change from bar to bar, not the sign. A red bar above zero is normal.
The two signal rules
`InpUseZeroCross` fires when the histogram crosses zero. `InpUseSaucer` fires on a three-bar turn. That turn must stay on one side of zero. Both rules run on closed bars. Leave one on alone if it suits you better.
How to read the signals
Above zero the short view leads the long one.
Colour tells you whether the reading grew or shrank against the previous bar.
A saucer is a pause and a restart. It shows up inside a move, not at its start.
A zero cross is the slower rule of the two.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
`EnableAlerts` ships on with `EnablePopup` carrying the message. `EnablePushNotify`, `EnableEmail` and `EnableSound` are off by default. `SoundFile` names the clip. Both rules run on closed bars, and the guard allows one message per bar.
Every Awesome Signal Oscillator Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
InpFast |
AO fast SMA (median). Short average of the bar midpoint, default `5`. | 5 |
InpSlow |
AO slow SMA (median). Long average of the bar midpoint, default `34`. | 34 |
InpUseZeroCross |
Signal on AO zero-cross. Marks a crossing of the zero line, default `true`. | on |
InpUseSaucer |
Signal on AO saucer. Marks a three-bar turn on one side of zero, default `true`. | on |
Display settings
| Setting | What it does | Default |
|---|---|---|
InpArrowOffset |
Arrow offset (points). Marker clearance from the bar in points, default `50`. | 50 |
InpArrowLookback |
Draw arrows over the last N bars. How many recent bars carry markers, default `1000`. | 1000 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Master alert switch, default `true`. | on |
EnablePopup |
Terminal popup, default `true`. | on |
EnablePushNotify |
Mobile push, default `false`. | off |
EnableEmail |
Mail delivery, default `false`. | off |
EnableSound |
Sound playback, default `false`. | off |
SoundFile |
Clip played when sound is on, default `alert.wav`. | alert.wav |

Settings that fit your chart
EURUSD H1 is the reference chart. There `InpSlow` at `34` covers about a day and a half. The 5 and 34 pairing is the original. It travels well. On M5 the histogram flips colour constantly. On H4 both rules turn scarce.
When the Awesome Signal Oscillator Indicator fails
Two averages of the bar midpoint lag price. Every rule here arrives after the fact.
Leaving both rules on doubles the marker count. The two often disagree.
A saucer inside a range is just noise in the shape of a turn.
Copy the compiled Awesome Signal 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 Awesome Signal Oscillator Indicator: Implementation shortfall on Wikipedia, ienvelopes (ENVELOPES) at the MQL5 Documentation.
Download the Awesome Signal Oscillator Indicator for MT4 and MT5
The zip holds the compiled Awesome Signal 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 separates InpUseZeroCross from InpUseSaucer?
Timing and strictness. A zero cross needs the histogram to change sign. That happens well into a move. A saucer needs only a three-bar turn on one side of zero. It fires earlier and more often than the cross does.
Where do the InpArrowOffset markers appear?
On the main price chart, not in the pane. An arrow buffer there would draw beside the histogram, not the candles. So the code writes OBJ_ARROW and OBJ_TEXT objects onto price. `InpArrowOffset` sets the gap in points.
What do InpFast and InpSlow average?
The bar midpoint, which is high plus low over two. `InpFast` `5` and `InpSlow` `34` are the original numbers for this tool. Using the midpoint rather than the close makes the reading a little less jumpy.
Why is an AO Up bar sometimes below zero?
Because colour and sign measure different things. AO Up covers any bar that read higher than the one before it. Where the histogram sits does not matter at all. So a rising run below zero still prints lime green.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Awesome Signal Oscillator Indicator as one input. Always backtest before trading live.
External references
- For background on this concept, see Implementation shortfall on Wikipedia.
- For broader market context, see ienvelopes (ENVELOPES) at the MQL5 Documentation.
