Two ICT ideas share one chart here. The order block indicator + void indicator boxes the last opposite candle before a strong impulse body, and it separately outlines voids, the three-bar gaps where price moved so fast that the first and third candles never overlapped.
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 | Main price chart |
| Plots | 4: OB Buy, OB Sell, Demand Top, Supply Bottom |
| Alerts | popup, push notification, email, sound |
| Inputs | 14 |
What appears on the chart
Block boxes, void boxes, two lines and marks.
`Demand Top` traces the latest demand block in dodger blue.
`Supply Bottom` traces the latest supply block in tomato.
`OB Buy` prints lime with arrow 233 on the impulse bar.
`OB Sell` prints red with arrow 234.
`ShowFVG` adds dotted void boxes.
- OB Buy: arrow, lime, width 2, arrow code 233
- OB Sell: arrow, red, width 2, arrow code 234
- Demand Top: line, dodger blue, width 1
- Supply Bottom: line, tomato, width 1

What happens on each bar
Impulse and block
A bullish body of `InpImpulseATRmult` `1.2` ranges or more is an impulse. If the candle before it closed down, that candle becomes demand, from its open to its low.
Voids
When the low of a bar sits above the high of the bar two before, the gap between them is a bullish void. `InpFVGmin` `3` points is the smallest gap drawn.
Marks
A mark prints on the impulse bar itself. A fixed cooldown of three bars spaces them out.
Reading it correctly
Blue marks the top of the newest demand block.
Tomato marks the bottom of the newest supply block.
Void boxes show where price skipped.
Marks sit on impulse bars, not retests.
`MaxBoxes` `30` caps the boxes on the chart.
`ArrowOffsetPts` `18` spaces the marks.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
A new block after an impulse reports through `EnableAlerts`. The popup, mobile route and sound playing `SoundFile` start on; email starts off.
Every Order Block Indicator + Void Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
InpLookback |
Structure lookback (bars). Bars searched on a full redraw, `50`. | 50 |
InpImpulseATRmult |
Impulse size (x ATR). Impulse body in ranges, `1.2`. | 1.2 |
InpATRperiod |
ATR period. Range window, `14`. | 14 |
InpFVGmin |
FVG minimum (points). Smallest void in points, `3`. | 3 |
MaxBoxes |
Max OB+FVG boxes. Boxes kept at most, `30`. | 30 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ShowOrderBlocks |
Draw OB rectangles. Draw block boxes, `true`. | on |
ShowFVG |
Draw Void/FVG rectangles. Draw void boxes, `true`. | on |
ArrowOffsetPts |
Arrow offset (points). Mark gap in points, `18`. | 18 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Master alert switch. | on |
EnablePopup |
Popup alert. | on |
EnablePushNotify |
Mobile push. Mobile route, ships on, `true`. | on |
EnableEmail |
Email alert. | off |
EnableSound |
Sound alert. Sound, ships on, `true`. | on |
SoundFile |
(see inputs panel) | alert.wav |

Home chart
Strong bodies and small voids are common on hourly charts. EURUSD H1 is the reference chart, with a few blocks and several voids a day. On M15 voids appear constantly. On H4 each block marks a real push.
Where the logic runs out
Marks show impulses, not entries.
Three points is a tiny void on most pairs.
Most blocks are never revisited.
Mobile and sound routes ship on.
Copy the compiled Order Block Indicator + Void 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 Order Block Indicator + Void Indicator for MT4 and MT5
The zip holds the compiled Order Block Indicator + Void 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 turns a candle into a Demand Top block?
A down candle directly before a bullish body of at least 1.2 average ranges. The box runs from that candle’s open to its low, and the blue line tracks its top.
What counts as a void with InpFVGmin 3?
A bar whose low sits above the high of the bar two before it, with at least three points of daylight. That gap is the void, or fair value gap.
Why does OB Buy print on the impulse bar?
It marks the moment the block is confirmed, which is the strong body itself. It is not a retest signal; watch the block for a return yourself.
Does ShowFVG change where OB Buy marks appear?
No. Voids are drawn as boxes only. The marks come from order block impulses, so switching the voids off leaves every mark exactly where it was and simply clears the dotted boxes.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Order Block Indicator + Void Indicator as one input. Always backtest before trading live.
Category: this is part of our Smart Money collection. Browse more Smart Money for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- Learn more about the underlying method in Order matching system on Wikipedia.
- For wider market background, see Trailingstop at Investopedia.
