📦 SMC OrderBlock Entry Engine — User Guide
SMC ORDER BLOCKS NON-REPAINTING METATRADER 5 RULE-BASED BOS CONFIRMATION
Welcome to the official user guide for SMC OrderBlock Entry Engine — a professional Smart Money Concepts (SMC) indicator for MetaTrader 5 that automatically identifies valid institutional order blocks , confirms them with a Break of Structure (BOS), checks for liquidity sweep confluence, and only fires an entry signal after a strict confirmation candle. Every arrow you see has earned its place through a verified 4-step logic chain.
📋 Table of Contents
- Installation
- What Is an Order Block? (SMC Primer)
- How the 4-Step Logic Chain Works
- All Input Parameters Explained
- What You See on the Chart
- Step-by-Step Trading Scenarios
- Recommended Settings by Trading Style
- Common Mistakes
1️⃣ Installation
| 1 | Log in to your MQL5 account inside MetaTrader 5 (bottom toolbar → MQL5.community). |
| 2 | Go to Tools → MetaQuotes Language Editor — or press F4 . |
| 3 | In MetaEditor, open the Navigator panel on the left. Find Indicators . |
| 4 | The purchased indicator appears automatically under Market → Purchased . Right-click → Install . |
| 5 | Return to MT5. Open any chart. Right-click → Insert → Indicators → Custom → SMC OrderBlock Entry Engine . |
| 6 | The inputs dialogue opens. Configure your settings (see Section 4) and click OK . |
| 7 | ✅ The indicator loads. Order block rectangles and signals appear on the chart immediately. |
2️⃣ What Is an Order Block? (SMC Primer)
In Smart Money Concepts, an Order Block (OB) is the last opposing candle before a strong impulsive move that breaks market structure. It represents the price level where institutional traders — banks, hedge funds, and liquidity providers — placed their original orders. When price returns to that zone, smart money is likely to defend it again.
| Type | What It Looks Like | What It Means |
|---|---|---|
| 🟩 Bullish OB | Last bearish candle before a strong bullish impulse that breaks a swing high | Institutional buy orders placed here. Price returning = potential long entry zone |
| 🟥 Bearish OB | Last bullish candle before a strong bearish impulse that breaks a swing low | Institutional sell orders placed here. Price returning = potential short entry zone |
3️⃣ How the 4-Step Logic Chain Works
Every bullish or bearish entry arrow you see on the chart has passed through all four of these steps in sequence. If any step fails, no signal is shown.
| Step | Rule | Why It Matters |
|---|---|---|
| 1️⃣ Detect OB | Find the last opposing candle before an impulse where: candle body > N × ATR AND impulse breaks a swing high/low | Ensures only impulse-driven OBs are marked — not random candles |
| 2️⃣ Confirm BOS | Bullish: impulse must close above prior swing high. Bearish: close below prior swing low | Confirms the market has changed direction, not just pushed temporarily |
| 3️⃣ Liquidity Sweep | Check if a nearby equal high/low was swept (wick beyond level, close back inside) before the OB formed | Institutional entries are almost always preceded by a stop-hunt sweep |
| 4️⃣ Entry Confirmation | Price returns to OB zone + one of: Rejection wick, Engulfing candle, or Structure shift (configurable) | Prevents entering OBs that price slices straight through without reacting |
4️⃣ All Input Parameters Explained
🔷 Order Block Detection
| Input | Default | What It Does | Effect If You Change It |
|---|---|---|---|
| InpSwingLookback | 10 | How many bars back the indicator scans to find a swing high/low for BOS detection. | ⬆️ Raise to 15–20 for swing trading (major swings only). ⬇️ Lower to 5–7 for scalping (more OBs). |
| InpImpulseATRMult | 1.5 | The impulse candle's body must be at least this multiple of the ATR to qualify. Filters out weak moves. | ⬆️ Raise to 2.0 for only the strongest impulse OBs. ⬇️ Lower to 1.0 for more OBs (lower quality). |
| InpATRPeriod | 14 | Period for Average True Range calculation used in impulse detection and SL sizing. | Keep at 14 (industry standard). Lower = faster ATR response. Higher = smoother. |
| InpOBMaxAge | 200 | An OB is automatically invalidated and removed after this many bars without price returning. | ⬆️ Keep longer if swing trading. ⬇️ Lower to 50–80 for intraday to auto-clean stale zones. |
| InpShowInvalidOBs | false | When true, expired or mitigated OBs stay visible as grey zones for historical reference. | Set true for backtesting/review. Keep false for live trading — cleaner chart. |
🔷 Entry Settings
| Input | Default | What It Does | Effect If You Change It |
|---|---|---|---|
| InpEntryMode | CONSERVATIVE | CONSERVATIVE waits for a confirmation candle to fully close before signalling. AGGRESSIVE places a limit order at the OB midpoint. | Conservative = safer, may get a slightly worse price. Aggressive = better price, higher chance of no fill if OB is not touched. |
| InpConfirmType | ANY | Which candle confirmation is required when price returns to the OB: WICK (rejection), ENGULF (engulfing), LTF_BOS (3-bar structure shift), or ANY (first one that qualifies). | WICK = good for wicky markets. ENGULF = stronger candle confirmation. LTF_BOS = structure-based. ANY = highest signal count. |
| InpMinRR | 2.0 | Minimum Risk:Reward ratio. If the SL/TP geometry of a setup doesn't meet this, the signal is suppressed entirely — no arrow shown. | ⬆️ Raise to 2.5–3.0 for only the most favourable setups. ⬇️ Lower to 1.5 for more signals. |
🔷 Liquidity Confluence
| Input | Default | What It Does | Effect If You Change It |
|---|---|---|---|
| InpRequireLiqSweep | true | When enabled, an OB is only valid if a nearby equal high/low was swept before the OB formed. This is the institutional confluence filter. | Set true for highest-quality institutional setups. Set false to show all OBs regardless — more signals, lower win probability. |
| InpEqualLevelPips | 5 | Tolerance in pips for detecting equal highs/lows. Two highs within 5 pips of each other count as "equal". | ⬆️ Higher = looser matching, more levels qualify as equal. ⬇️ Lower to 2–3 for strict exact-level matching. |
🔷 Filters
| Input | Default | What It Does | Effect If You Change It |
|---|---|---|---|
| InpLondonFilter | true | Only show signals during London session: 07:00–16:00 UTC. | Turn off if trading AUD/JPY, NZD/JPY or other Asia-session dominant pairs. |
| InpNYFilter | true | Only show signals during New York session: 13:00–22:00 UTC. | Turn off if you only trade the London open. The London/NY overlap (13–16 UTC) is the highest-probability window. |
| InpMinATR | 0.0 | Minimum ATR value a bar must have for a signal to fire. 0 = disabled. | Set to e.g. 0.0005 on EURUSD to block signals during dead/flat markets ahead of news releases. |
| InpHTF | PERIOD_H4 | Higher timeframe used to determine directional bias via the 200 EMA. | Change to H1 for day trading, D1 for swing/position trading. Must be higher than your chart TF. |
| InpUseTrendFilter | true | When enabled: bull signals only fire when price is above the HTF 200 EMA. Bear signals only when below it. | Strongly recommended ON. Prevents counter-trend trading. Turn off only if you trade reversals specifically. |
🔷 Visuals
| Input | Default | What It Does |
|---|---|---|
| InpShowZones | true | Draw OB rectangles on the chart. Set false for arrows-only view. |
| InpShowSignals | true | Show entry arrows. Turn off to use only the zone drawing feature. |
| InpShowSLTP | true | Show SL and TP dot markers on the chart at signal bars. |
| InpBullOBColor | Green | Fill colour of bullish OB rectangles. Customise to your chart theme. |
| InpBearOBColor | Red | Fill colour of bearish OB rectangles. |
| InpDebugMode | false | Prints OB detection and entry events to the Experts log. Use when troubleshooting. |
5️⃣ What You See on the Chart
| Visual Element | What It Means | Action |
|---|---|---|
| 🟩 Green filled rectangle | Active bullish order block — price is expected to bounce upward from this zone | Watch for a long entry signal when price enters the zone |
| 🟥 Red filled rectangle | Active bearish order block — price is expected to drop from this zone | Watch for a short entry signal when price enters the zone |
| ⬜ Grey rectangle | Expired or mitigated OB (only visible if InpShowInvalidOBs = true) | Informational only — do not trade these |
| ⬆️ Green arrow (below bar) | Confirmed bullish entry signal fired at this candle | Consider going long at the next bar's open |
| ⬇️ Red arrow (above bar) | Confirmed bearish entry signal fired at this candle | Consider going short at the next bar's open |
| 🟠 Orange dot | Suggested Stop Loss level (beyond OB boundary + ATR buffer) | Place SL here or tighter based on your risk tolerance |
| 🔵 Cyan dot | Suggested Take Profit level (next liquidity pool / swing high-low) | Use as TP target or scale out at this level |
6️⃣ Step-by-Step Trading Scenarios
Setup: 09:15 UTC, EURUSD in an uptrend on H4. HTF EMA filter = bullish.
| 1 | A strong bullish impulse candle breaks the prior swing high. Body = 2.1 × ATR. ✅ BOS confirmed. |
| 2 | The indicator finds the last bearish candle before that impulse at 1.08340–1.08390. This is the bullish OB . A 🟩 green rectangle draws over this zone. |
| 3 | Price swept an equal low at 1.08200 two bars before the OB formed. ✅ Liquidity sweep confluence confirmed. |
| 4 | Price rallies, then pulls back into the OB zone 12 bars later. A bullish candle prints with a long lower wick (wick = 1.8× body). ✅ Rejection wick confirmation. |
| 5 | ⬆️ Green arrow fires below that candle. 🟠 SL dot marks below OB low. 🔵 TP dot marks swing high. |
| 6 | R:R = 2.6:1 — above InpMinRR of 2.0. ✅ Signal displayed. |
| 7 | Trade: Long at next bar open. SL below OB low (+ ATR buffer). TP at cyan dot. |
Setup: 14:30 UTC, GBPUSD in a downtrend. HTF H4 EMA = bearish.
| 1 | A strong bearish impulse (body = 1.8 × ATR) breaks the prior swing low. ✅ BOS confirmed. |
| 2 | Last bullish candle before the impulse at 1.27100–1.27170 becomes the bearish OB . 🟥 Red rectangle drawn. |
| 3 | An equal high at 1.27200 was swept (wick above, close below) 3 bars before the OB. ✅ Sweep confluence. |
| 4 | Price retraces up into the OB. A bearish engulfing candle closes inside the zone with its body below the midpoint. ✅ Engulf confirmation. |
| 5 | ⬇️ Red arrow fires. R:R = 2.3:1. ✅ Signal shown. |
| 6 | Trade: Short at next bar open. SL above OB high. TP at next swing low. |
7️⃣ Recommended Settings by Trading Style
| Style | Chart TF | Key Settings |
|---|---|---|
| 🎯 Scalper | M5 / M15 | SwingLookback=6, ImpulseATRMult=1.2, OBMaxAge=50, EntryMode=AGGRESSIVE, HTF=H1 |
| 📈 Day Trader | M15 / M30 | SwingLookback=10, ImpulseATRMult=1.5, OBMaxAge=120, EntryMode=CONSERVATIVE, HTF=H4 |
| 📊 Swing Trader | H1 / H4 | SwingLookback=15, ImpulseATRMult=2.0, OBMaxAge=300, EntryMode=CONSERVATIVE, HTF=D1 |
8️⃣ Common Mistakes
| ❌ Mistake | ✅ Fix |
|---|---|
| Lowering ImpulseATRMult below 1.0 and getting dozens of weak OBs on screen | Keep it at 1.3 minimum. Below 1.0 means any small candle can form an OB — the zones become unreliable. |
| Turning off the HTF trend filter and taking signals against the trend | Keep InpUseTrendFilter = true at all times until you have 2–3 months of experience with the indicator. |
| Entering the moment an OB rectangle appears without waiting for confirmation | The rectangle alone is not an entry signal. Wait for the confirmation arrow — it means price reacted to the zone. |
| Ignoring the grey SL dot and using a mental stop instead | The SL dot is calculated from OB structure. Always place a hard stop at or beyond that level. |
⭐⭐⭐⭐⭐
GET EA FOR FREE HERE: https://www.mql5.com/en/market/product/174870
I would greatly appreciate a positive review if you are happy with your purchase.
Please contact me to find a solution if you are not.
Your feedback supports ongoing development and helps other traders in the MQL5 community. 🙏
SMC OrderBlock Entry Engine · MetaTrader 5 · Smart Money Concepts · Order Blocks · BOS · Non-Repainting · MQL5 Indicator


