The Luxalgo Order Block Indicator hunts the last opposing candle before an impulse move and boxes it. An average true range filter decides what counts as an impulse, so small wiggles never open a zone. Rectangles extend to the right, and two marker buffers pin the anchor candle. Smart-money traders get a tidy map of recent blocks.
This build ships as luxalgo-order-block-indicator-indicator-forexmt4systems.ex4 for MT4 and luxalgo-order-block-indicator-indicator-forexmt4systems.ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 2: Bullish OB Mark, Bearish OB Mark |
| Alerts | popup, push notification, email, sound |
| Inputs | 16 |
What the Luxalgo Order Block Indicator draws on the chart
Every detected block gets an outline rectangle. The box spans the anchor candle’s body and wick range. It then runs BoxForwardBars ahead of the break, 30 bars by default. A small text label beside it reads Bullish OB or Bearish OB. FillRectangles stays false, so the box shows as an outline in the original style.
Two arrow buffers mark the anchor bar itself. Bullish OB Mark drops a dodger-blue up arrow under the low of the down candle that started the rally. Bearish OB Mark puts an orange-red down arrow above the up candle that preceded the sell-off. Both sit two points off the bar.
MaxBoxesShown defaults to 8 per side, so the tool deletes older rectangles as new ones form. Sorting happens on the timestamp inside each object name. Old zones therefore disappear on their own rather than stacking up.
- Bullish OB Mark: arrow, dodger blue, width 2, arrow code 233
- Bearish OB Mark: arrow, orange red, width 2, arrow code 234

How the Luxalgo Order Block Indicator calculates its values
The average true range filter
Impulse size sets the bar. The average true range over AtrPeriod bars, which defaults to 14, ends at the candidate candle and gives the yardstick. Multiplying it by AtrMultiplier gives the threshold, and 1.5 ships as standard. Only a close-to-close move larger than that threshold opens a zone.
Picking the anchor candle
Direction decides which candle counts. For a bullish block the tool looks one bar back from the break and checks that it closed down. The rectangle then runs from the higher of open and high to the lower of close and low. A bearish block mirrors the whole test on an up candle.
Scan window and housekeeping
Scanning walks backwards from the newest bar. LookbackBars caps the reach at 1500 bars, which keeps a fresh chart load quick. Each pass redraws the rectangles it still needs and refreshes their right edge. ObjectPrefix tags every object the tool creates, so cleanup never touches your own drawings.
How to read the signals
A blue rectangle marks demand. Price returning into the box after a strong rally gives trend traders a reference for entries. The dodger-blue Bullish OB Mark under the anchor bar shows exactly which candle built the zone.
Red boxes read the other way. They sit above price after a sharp drop and act as supply while the market stays below them. A close back through the box removes most of its meaning.
Watch how many boxes stack. Several fresh zones in the same direction point to a market that keeps impulsing one way. Overlapping boxes from both sides usually mean chop, so stand aside.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
EnableAlerts switches the block on, and popup, push notification, email and sound each have their own toggle. A zone forming on the last closed bar sends one message, then nothing more for that bar.
Every Luxalgo Order Block Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
AtrPeriod |
Sets the true-range averaging window, which defaults to 14 bars; lengthen it on noisy instruments. | 14 |
AtrMultiplier |
break-impulse must exceed this * ATR. Decides how big the break must be against that average, with 1.5 as the shipped value; raise it for fewer zones. | 1.5 |
BoxForwardBars |
rectangle extends N bars to the right. Projects each rectangle 30 bars past the break so you can watch the zone ahead of price. | 30 |
MaxBoxesShown |
keep newest N bullish + N bearish. Keeps the newest eight zones per side and deletes the rest, which stops the chart filling up. | 8 |
LookbackBars |
bars to scan. Limits the history scan to 1500 bars; shorten it when a fresh chart load feels slow. | 1500 |
FillRectangles |
false = outline (LuxAlgo default). Leaves the boxes as outlines when false, which matches the original look; set it true for shaded zones. | off |
ObjectPrefix |
Names every object the tool creates so its cleanup never removes your manual drawings. | LuxOB_ |
Display settings
| Setting | What it does | Default |
|---|---|---|
RectangleWidth |
Controls the outline thickness of each zone box. | 2 |
BullishColor |
(see inputs panel) | dodger blue |
BearishColor |
(see inputs panel) | orange red |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
(see inputs panel) | on |
EnablePopup |
(see inputs panel) | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
(see inputs panel) | alert.wav |

Settings that fit your chart
Order block work needs impulsive markets. EURUSD H1, the chart in the screenshots, gives enough range per bar for the filter to separate real breaks from noise. Gold and index CFDs produce wider zones because their true range runs larger. On M1 the filter fires often and boxes pile up fast. H4 and D1 leave fewer zones, and those tend to hold better.
When the Luxalgo Order Block Indicator fails
Zones do not expire on their own. The tool never checks whether price already traded back through a box, so an old rectangle can look valid long after the market ate it. Read the price action inside the box before you trust it.
A range average is a blunt filter. One violent news candle lifts it for the next AtrPeriod bars, which then suppresses real breaks that follow. The opposite happens in dead sessions, where tiny moves clear the threshold.
The anchor rule is mechanical. It takes the single bar before the break rather than the whole consolidation, so a two candle base only ever gets its second bar boxed.
Repeat scans redraw history. After a fresh chart load or a data patch, the visible set of boxes can differ from what you saw yesterday.
Copy luxalgo-order-block-indicator-indicator-forexmt4systems.ex4 into MQL4/Indicators and luxalgo-order-block-indicator-indicator-forexmt4systems.ex5 into MQL5/Indicators, then restart the terminal and drag the Luxalgo Order Block Indicator onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Download the Luxalgo Order Block Indicator for MT4 and MT5
The zip luxalgo-order-block-indicator-indicator-forexmt4systems.zip holds luxalgo-order-block-indicator-indicator-forexmt4systems.ex4, luxalgo-order-block-indicator-indicator-forexmt4systems.ex5 and a short README, compiled files only. 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
Does a Bullish OB Mark ever move after the bar closes?
The anchor sits one bar behind the break, so the mark lands on a candle that has already closed. It stays put through the rest of that session. A full recalculation after a chart reload can drop marks whose history no longer clears the range filter. That is a redraw on old data rather than a live shift on the newest candle.
What does FillRectangles change about the order block boxes?
It controls the fill of every rectangle. Left at false the boxes draw as outlines, which keeps the candles behind them readable. Set it true and each zone gets a solid wash of colour. Traders who screenshot a lot of charts usually keep the outline look.
How far right does BoxForwardBars project each zone?
The right edge lands 30 bars past the breaking candle by default. That gives you room to watch price come back into the zone without redrawing anything yourself. Shorten it on a busy chart, or stretch it when you follow a slow instrument. The rectangle refreshes its edge on every pass.
Which timeframe suits this order block reading on EURUSD?
The screenshots use EURUSD H1, which balances zone count against noise. Lower charts such as M5 hand you many small boxes that rarely hold. H4 and D1 give a handful of wide zones per month, and those attract more attention from other traders. Match the choice to the holding time you actually trade.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Luxalgo Order Block Indicator as one input. Always backtest before trading live.
Category: this is part of our Smart Money collection. Also, browse more Smart Money for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- For background on this concept, see Order (exchange) on Wikipedia.
- For broader market context, see Advance Decline Indicators at StockCharts ChartSchool.
