2026-06-02 06:42:33 +03:00

NANDR ORB + Order Block EA

A MetaTrader 5 Expert Advisor for scalping XAUUSD (Gold/USD) on M15 (also supports M5 and M1), combining two strategies:

  • Opening Range Breakout (ORB) — tracks the high/low of the first 15 real minutes of each trading session and trades confirmed breakouts + retests
  • Order Block Detection — identifies institutional order blocks using volume pivot analysis (LuxAlgo methodology) and uses them as trade confirmation and SL anchors

Strategy Logic

Opening Range Breakout

  1. At the start of each enabled session, accumulate the ORB High and ORB Low over the first 15 real-time minutes
  2. Detect a confirmed breakout (candle closing beyond the range; optional strict N-bar filter to avoid false breaks)
  3. Wait for price to retest the broken ORB level
  4. Enter on the retest, sized and stopped by the selected ORB Risk Method

ORB Risk Methods (coupled SL + Reward:Risk)

The InpOrbRiskMethod input selects a risk profile that fixes both the stop-loss placement and the reward:risk target together, per the ORB strategy specification:

Method Stop Loss Reward:Risk
Boundary 1:2 (default) Broken range boundary (long=ORH, short=ORL) 1:2
Mid 1:1.5 Range midpoint (50%) 1:1.5
Opposite 1:1 Opposite range boundary (long=ORL, short=ORH) 1:1
Legacy Uses InpSLMode / InpTPMode / InpRRRatio manually

If the chosen method produces an invalid stop (wrong side of entry), the EA falls back to the legacy InpSLMode / InpTPMode settings.

Daily Bias

The InpDailyBiasMode input controls which trade directions are permitted each day:

Mode Behaviour
Auto (default) The first confirmed ORB breakout of the day sets the tradeable direction; later trades must align with it
Off No trades taken today (use on news / high-uncertainty days)
Long only Only long entries processed
Short only Only short entries processed

Breakout detection is never suppressed — only trade execution is gated, so levels and structure keep updating regardless of bias.

Order Block Confirmation

  • A volume pivot is identified where the bar at index [length] has the highest volume in a symmetric window
  • Market structure determines direction: bullish OB if the pivot was a swing low, bearish OB if a swing high
  • Bullish OB zone: [low, hl2] of the pivot bar
  • Bearish OB zone: [hl2, high] of the pivot bar
  • OBs are removed (mitigated) when price penetrates the zone

Entry is taken when the ORB retest aligns with a nearby Order Block (optional add-on, disabled by default via InpUseOBRetestEntry).

Active exposure is session-scoped: one open trade is allowed per session, and different sessions may each hold one trade on the same day.

Session Level Ladder (optional, disabled by default)

  • After a confirmed session breakout direction, the EA can trade between that session's ORB levels:
  • Bullish ladder: Low -> Mid, then Mid -> High
  • Bearish ladder: High -> Mid, then Mid -> Low
  • Confirmation for ladder entries uses wick retest plus bar-close context.
  • Priority is ORB retest first, with ladder as fallback.
  • Ladder TP is always the next session level. SL is user-selectable (fixed pips or source-level buffer).

Timeframe Scaling

The ORB window is always 15 real minutes regardless of chart timeframe:

Timeframe ORB Bars Breakout Confirm OB Pivot Length
M15 (default) 1 2 bars 5
M5 3 3 bars 5
M1 15 5 bars 10

All values auto-configured by timeframe and individually overrideable via inputs.


Sessions

All sessions are disabled by default — enable the ones you want to trade:

Session UTC Start Best for XAUUSD
Daily Open 22:00 Asian range setup
Tokyo 00:00 Low volume, range-bound
London 08:00 High volatility ✓ (8AM GMT)
NY 12:00 High volatility ✓
NY ORB (Stock open) 13:30 Strong momentum ✓ (9:30 EDT)

All session start times are UTC-based and individually configurable via the Inp<Session>Hour / Inp<Session>Min inputs. The EA converts them to broker server time internally.


Input Parameters

Symbol Settings

Parameter Default Description
InpSymbolName XAUUSD Symbol base name — auto-detected from broker (supports XAUUSD, XAUUSD.s, XAUUSD_, etc.)

Timeframe Settings

Parameter Default Description
InpOrbTimeframe M15 Chart timeframe for ORB (M1 / M5 / M15)
InpBreakoutConfBars 0 Breakout confirmation bars — 0 = auto by TF

Session Settings

Parameter Default Description
InpUseDailyOpen false Enable Daily Open session
InpUseTokyoSession false Enable Tokyo session
InpUseLondonSession false Enable London session
InpUseNYSession false Enable NY session
InpUseNYOrbSession false Enable NY ORB session (13:30 UTC)
InpDailyOpenHour / InpDailyOpenMin 22 / 0 Daily Open start (UTC)
InpTokyoHour / InpTokyoMin 0 / 0 Tokyo start (UTC)
InpLondonHour / InpLondonMin 8 / 0 London start (UTC = 8AM GMT)
InpNYHour / InpNYMin 12 / 0 NY start (UTC)
InpNYOrbHour / InpNYOrbMin 13 / 30 NY ORB start (UTC = 9:30 EDT)

Order Block Settings

Parameter Default Description
InpOBPivotLength 0 Pivot window length — 0 = auto by TF
InpOBMaxCount 5 Max active OBs stored per direction
InpOBMitig Wick Mitigation method: Wick or Close
InpOBRequireConf false Require OB near entry to take trade
InpOBProximityPips 50 Distance in pips to consider OB "nearby"

Entry Settings

Parameter Default Description
InpEntryMode Market Market order on retest close, or Limit at ORB level
InpUseStrictFilter false Strict N-bar breakout filter (false = simple close-cross)
InpWaitForRetest true Wait for an ORB retest before entering
InpBreakoutExpireBars 20 Bars before an armed breakout expires (0 = never)
InpUseOBRetestEntry false Order Block retest entry add-on (optional, default OFF)
InpMaxRetestsPerSession 3 Max retest entries per session (per breakout)
InpDailyBiasMode Auto Daily bias: Auto / Off (no trades) / Long-only / Short-only
InpUseBreakoutVolFilter false Require a volume spike on the breakout bar (fakeout filter)
InpBreakoutVolMult 1.5 Breakout bar volume must be ≥ this × average volume
InpBreakoutVolAvgBars 20 Number of bars used for the volume average

Session Level Ladder Settings

Parameter Default Description
InpUseSessionLevelLadder false Enable level-to-level ladder entries after breakout direction confirmation (optional, default OFF)
InpLadderOnDailyOpen true Enable ladder entries on Daily Open session
InpLadderOnTokyo true Enable ladder entries on Tokyo session
InpLadderOnLondon true Enable ladder entries on London session
InpLadderOnNY true Enable ladder entries on NY session
InpLadderOnNYORB true Enable ladder entries on NY ORB session
InpUseLadderATRVolCeiling false Enable ATR volatility ceiling filter for ladder entries
InpLadderATRMaxPips 200.0 Skip ladder entries when ATR exceeds this pips threshold
InpUseLadderSessionCaps false Enable per-session ladder trade caps
InpLadderCapDailyOpen 2 Daily Open ladder cap (0 = unlimited)
InpLadderCapTokyo 2 Tokyo ladder cap (0 = unlimited)
InpLadderCapLondon 2 London ladder cap (0 = unlimited)
InpLadderCapNY 2 NY ladder cap (0 = unlimited)
InpLadderCapNYORB 2 NY ORB ladder cap (0 = unlimited)
InpLadderSLMode Fixed Pips Ladder SL mode: fixed pips or buffer beyond source level
InpLadderSLBufferPips 5.0 Buffer size when ladder SL mode is level-buffer
InpLadderMaxTradesPerSession 2 Global ladder cap per session (0 = unlimited); combined with per-session cap using the stricter limit

Lot Size & Risk

Parameter Default Description
InpLotMode Risk % Fixed lot or auto-calculated from risk %
InpFixedLotSize 0.05 Fixed lot (used when LotMode = Fixed)
InpRiskPercent 0.05 % of balance to risk per trade

Stop Loss

Parameter Default Description
InpOrbRiskMethod Boundary 1:2 Coupled risk method (sets SL + RR together); Legacy uses the manual settings below
InpSLMode OB Boundary SL placement (Legacy only): OB Boundary / Fixed Pips / ATR-based / ORB Opposite Boundary / ORB Range Midpoint
InpSLPips 100.0 SL in pips (Fixed mode)
InpATRMultiplier 1.5 ATR multiplier for SL (ATR mode)
InpATRPeriod 14 ATR period

Take Profit

Parameter Default Description
InpTPMode RR Ratio TP by fixed pips or Risk:Reward ratio (Legacy only)
InpTPPips 100.0 TP in pips (Fixed mode)
InpRRRatio 2.0 Risk:Reward ratio (Legacy RR mode) — 2.0 = 1:2

Trade Management

Parameter Default Description
InpBreakevenTrigPips 15.0 Move SL to breakeven when profit reaches this
InpBreakevenOffPips 2.0 Breakeven SL offset above/below entry
InpTrailingStopPips 0.0 Trailing stop distance — 0 = disabled
InpMaxTradesPerDay 8 Max trades opened per calendar day
InpMaxPosPerSession 1 Max simultaneous positions per session

Risk Management

Parameter Default Description
InpMaxDailyLossUSD 0.0 Halt trading if daily loss exceeds this USD amount — 0 = off
InpMaxDailyLossPct 0.0 Halt trading if daily loss exceeds this % of equity — 0 = off

Display Settings

Parameter Default Description
InpShowDashboard true Corner stats panel
InpShowORBLines true ORB High/Low/Mid lines on chart
InpShowOBZones true Order block rectangles on chart
InpShowTradeLabels true Entry arrows and SL/TP lines on chart

Dashboard

A real-time HUD is drawn in the top-left corner showing:

▌ NANDR ORB+OB EA
─────────────────────────
Symbol : XAUUSD  TF: M15
OrbTF  : M15  BarsNeeded: 1
─────────────────────────
London    H:2685.50 L:2672.30 [BULL↑]
NY        H:2690.10 L:2681.00 [ARMED]
─────────────────────────
BullOBs: 2   BearOBs: 1
─────────────────────────
Trades : 1 / 3
W/L    : 1 / 0  WR: 100%
Today PnL: +48.20 USD
Equity : 10048.20

Chart Visuals

Object Color Description
ORB High/Low lines Session color Solid horizontal lines at ORB levels
ORB Mid line Session color (dotted) Midpoint of ORB range
Bullish OB zone Green rectangle Active bull order block
Bearish OB zone Red rectangle Active bear order block
Entry arrow Green (buy) / Red (sell) Trade entry marker
SL line Red dashed Stop loss level
TP line Green dashed Take profit level

Session line colors: Tokyo = Blue · London = Red · NY / NY ORB = Gold · Daily = Silver


Installation

  1. Copy NANDR_ORB_OB_EA.mq5 to your MetaTrader 5 MQL5/Experts/ folder
  2. Open MetaEditor (F4 in MT5) and compile the file (F7) — should produce zero errors
  3. In MT5, open a XAUUSD M15 chart
  4. Drag the EA onto the chart, enable "Allow Algo Trading"
  5. In the inputs dialog, enable at least one session (e.g. InpUseLondonSession = true)
  6. Click OK — the EA will auto-detect the broker's XAUUSD symbol variant

Requirements

  • MetaTrader 5 (build 2755+)
  • XAUUSD (or broker equivalent: XAUUSD.s, XAUUSD_, GOLD, etc.)
  • Recommended chart timeframe: M15
  • Account type: any (ECN recommended for tighter spreads on Gold)

Files

File Description
NANDR_ORB_OB_EA.mq5 Expert Advisor source code
orb.pine Reference Pine Script — ORB indicator (TradingView)
order_block_detector.pine Reference Pine Script — LuxAlgo Order Block Detector

Disclaimer

This EA is provided for educational purposes. Past performance does not guarantee future results. Always test thoroughly on a demo account before using on live funds. Trading Gold (XAUUSD) carries significant risk.

S
Description
ORB + Order Block Scalping EA for XAUUSD. Supports M1 / M5 / M15 (default M15). ORB = 15 real minutes.
Readme 84 KiB
Languages
MQL5 100%