[r]MT5 ROBOT LABCONFIGURABLE STRATEGIES

SMC Trading Strategy: Structure, OB/FVG & EA006 MT5

EA LAB / SMART MONEY CONCEPTS / EA006 v1.05

Confirmed market structure. A qualified Order Block or Fair Value Gap. A later candle retest. Explore the precise SMC rules implemented by EA #006, with actual GOLD M15 executions and configurable higher-timeframe direction.

Smart Money Concepts is a family of price-action methods built around swings, liquidity and displacement. EA006 turns a selected interpretation into explicit rules on ordinary broker OHLC candles. Chart patterns are observable conditions; they do not prove who traded or reveal institutional intentions.

Explore EA #006 SMC — MT5 robot →
EA006 GOLD.pro M15 actual BUY at 2655.94 and TP exit at 2689.00
Actual MT5 visual-test screenshot supplied by the owner. BUY 2655.94 on 8 January 2025; TP exit 2689.00 on 10 January. The candle path and execution markers are preserved. This is a historical test example, not live account performance.

The SMC entry sequence

BUY and SELL use mirrored conditions. The forming candle is excluded from signal confirmation. Each setup progresses through a bounded sequence; a historical-looking pattern alone is insufficient.

01 / CONFIRM

Wait for a confirmed swing

A swing high must exceed the highs of InpSwingWing closed candles on each side; a swing low must be below their lows. Equal extremes do not qualify. The pivot becomes usable only after the right-side candles close, so there is a confirmation delay.

02 / OPTIONAL SWEEP

Reclaim liquidity

For BUY, a closed candle wicks below the latest unbroken swing low by at least InpMinSweepATR × ATR, then closes back above that low. The opposite swing high is frozen as the later break reference. SELL raids a swing high and reclaims below it. A both-side sweep is ambiguous and rejected. The sweep expires by age or a new violating extreme.

03 / DISPLACE

Break with a directional close

A later bullish close crosses above the frozen high, with its preceding close at or below the level. Its body must meet InpDisplacementATR × closed ATR. SELL mirrors the break below a low. Sweep and break cannot qualify on the same candle. With sweep OFF, the break uses the current confirmed structural level.

04 / SELECT

Define one valid zone

Select either a valid full-range Order Block or a completed three-candle Fair Value Gap through InpZoneMode. These are separate entry models sharing the same structure, retest, execution and risk engine. The EA does not require their overlap.

05 / RETEST

Require a later confirmation candle

A BUY retest candle overlaps the zone, has a bullish body and closes above the zone top. SELL overlaps the zone, has a bearish body and closes below its bottom. The retest must arrive within InpRetestLife. A far-side invalidating close, a wick beyond the structural anchor or opposite structure cancels the zone.

06 / EXECUTE

One market-entry attempt

At the first available tick after confirmation, check direction switches, license, existing exposure, HTF filters, hours, spread, stops, sizing and margin. BUY uses current Ask; SELL uses Bid. It is a market order, not a resting limit at the OB/FVG boundary. A filter-blocked or failed retest is consumed rather than retried at an unrelated later price.

Two zone models, clearly defined

Order Block: full candle range

For BUY, search backward for the most recent valid bearish candle inside InpZoneLookback. Use its complete high–low range. The break close must exceed its high, and intervening closes must not have invalidated its low. For SELL, use a valid bullish candle and the mirror conditions. This implementation uses the full candle, not only its body.

Fair Value Gap: three closed candles

A bullish FVG requires the newest candle low to exceed the oldest candle high, with a bullish middle candle. The zone lies between those two prices. For a bearish FVG, the newest high lies below the oldest low and the middle candle is bearish. Width must meet InpMinFVGATR × ATR. Older gaps touched before the qualifying break are rejected.

Setup zones are temporary. They disappear when consumed, invalidated or expired. Actual trade arrows, price labels and red dashed entry-to-exit lines belong to executed deals and persist on the chart; available account history can restore them. ATR is hidden visually while remaining active in calculations.

Higher-timeframe structure: trade with a persistent bias

The optional structure filter uses confirmed swings and closed higher-TF candles. A close crossing above the latest unbroken swing high initializes BUY direction; a close crossing below the latest unbroken swing low initializes SELL direction. A wick or a close equal to the level does not count.

  • BOS: a qualifying break in the current direction preserves the bias.
  • CHoCH: a qualifying contrary break changes the bias.
  • No confirmed direction or missing history: the enabled filter blocks new entries.
  • Existing position: a bias change does not force it to close; its selected exit mode continues.
Selector IDHigher TFOptimization
0M30Start 0 / Step 1 / Stop 3
1H1
2H4
3D1

InpStructureTF and InpHigherTF are optimizable selectors in v1.05. Each enabled filter TF must be higher than the entry TF. The structure filter updates when the next higher-TF candle closes, with a bounded history replay of up to 600 bars and a minimum of 64 bars. Use a separate InpStructureWing for HTF pivots.

EMA, sessions and execution filters

The optional EMA filter allows BUY when the last closed higher-TF close is above its EMA and SELL when below. If both HTF filters are enabled, both must agree. The optional hours filter uses broker server time, with an inclusive start and exclusive end; overnight windows are supported. It does not impose ICT kill zones, automatic London/New York conversion or an end-of-session liquidation.

Spread can be limited in broker points or relative to the initial stop distance. InpMaxSpreadRisk = 0.10 means spread may be at most 10% of that distance. Points are symbol-specific, not universal pips. The entry-delay limit rejects a signal if the first available tick arrives too late after its confirmation close.

Stop loss, targets and position sizing

The initial stop sits beyond the more distant of the zone boundary and swept extreme, plus InpSLBufferATR × closed ATR. With sweep OFF, the zone boundary is the structural anchor. Stop prices round outward to the broker tick size. An illegal broker stop is rejected rather than silently relocated.

Exit 0: fixed risk–reward

Set a broker TP at InpTakeProfitR × initial quote-to-SL distance. The source default is 2R; the supplied GOLD preset uses 3R. Execution differences, spread, commission and swap mean realized net R can differ from the configured target.

Exit 1: ATR trailing

No fixed TP is assigned. At each new signal bar, calculate a candidate SL from the favorable Bid/Ask and InpTrailATR × last closed ATR. Only a legal tightening is applied. It may tighten before the trade is profitable; this is not a break-even trigger. The EA does not use partial closing or a reversal exit.

Equity-risk sizing estimates the initial SL loss in account currency using broker profit calculations and rounds lots down to the volume step. Below-minimum volume is skipped. Fixed lots are an alternative. Volume caps, broker limits and margin checks remain active. Gaps and adverse execution can exceed nominal risk.

EA006 requires a retail hedging account. One own position/order is permitted per symbol and magic identity; it does not manage unrelated positions. Terminal-based trailing cannot update offline, although broker-held SL/TP remain in place.

Actual MT5 examples: profitable and losing executions

These crops retain the owner’s original candles and execution prices. Cyan BUY and red SELL arrows mark actual fills. Green TP, red SL and neutral EXIT reflect deal exit reasons. The red dashed segment connects actual entry and exit; it is not a projected path.

EA006 actual GOLD M15 SELL 3041.44 to TP fill 3022.58
SELL on 20 March 2025 at 3041.44; TP close on 21 March at 3022.58. The requested TP was 3022.66, illustrating the difference between requested and actual fill. 0.241 lots; price profit $454.53 plus $1.77 swap = $456.30 net. Source screen03 and report deals 46/47.
EA006 actual BUY 2689.75 ending at SL fill 2681.34
Loss example: BUY 2689.75 on 15 January 2025; SL fill 2681.34, compared with the requested 2681.36. 0.171 lots; net −$143.81. Source screen02 and deals 12/13.
EA006 actual BUY 2701.85 ending at TP 2721.47
Profit example: BUY 2701.85 on 16 January 2025; TP 2721.47 later that day. 0.215 lots; net +$421.83. Source screen02 and deals 14/15.

Parameters that change the strategy

The table shows source defaults and the supplied GOLD M15 example. Suggested ranges are small research dimensions, not recommended profitable settings. OPT notation is Start / Step / Stop; these descriptions do not automatically fill the tester columns.

InputDefault / GOLD SETPurpose / OPT range
InpSignalTFM15 / M15Explicit entry TF; changing chart/tester period alone does not override it. Keep fixed during a comparison.
InpSwingWing3 / 6Confirmed entry-TF swings. OPT 2 / 1 / 6.
InpRequireSweeptrue / falseEnable reclaimed sweep before the later structure break. Compare ON/OFF intentionally.
InpSweepLife12 / 16Expiry in signal bars; ignored when sweep OFF. OPT 4 / 4 / 20.
InpMinSweepATR0.05 / 0.05Minimum sweep excursion in ATR units; sweep mode only. OPT 0.00 / 0.05 / 0.20.
InpDisplacementATR0.50 / 0.50Minimum directional break body in ATR units. OPT 0.25 / 0.25 / 1.25.
InpZoneMode0 OB / 0 OB0 = Order Block; 1 = FVG. Compare models separately.
InpZoneLookback12 / 20Search depth for the valid zone. OPT 4 / 4 / 20.
InpRetestLife12 / 20Later retest expiry in signal bars. OPT 4 / 4 / 24.
InpMinFVGATR0.10 / 0.10Minimum FVG width; ignored in OB mode. OPT 0.00 / 0.10 / 0.40.
InpUseHTFStructurefalse / trueEnable persistent higher-TF structure direction.
InpStructureTF2 H4 / 0 M30Optimizable TF IDs 0–3. OPT 0 / 1 / 3.
InpStructureWing3 / 3Independent HTF swing strength. OPT 2 / 1 / 6.
InpUseHTFEMAfalse / falseOptional higher-TF closed-price vs EMA filter.
InpHigherTF1 H1 / 1 H1EMA timeframe selector. OPT 0 / 1 / 3.
InpHigherEMA100 / 100EMA length when enabled. OPT 50 / 50 / 200.
InpUseHoursfalse / falseOptional broker-server hour window; default 08:00–20:00 when enabled.
InpExitMode0 RR / 0 RR0 = fixed RR; 1 = ATR trail. Compare separately.
InpSLBufferATR0.20 / 0.20Buffer beyond structural stop anchor. OPT 0.10 / 0.10 / 0.50.
InpTakeProfitR2.00 / 3.00RR target in fixed-RR mode. OPT 1.00 / 0.50 / 4.00.
InpTrailATR2.50 / 2.50Trailing distance; ignored in fixed-RR mode. OPT 1.50 / 0.50 / 4.00.
InpRiskPercent0.50% / 3.00%Current-equity sizing. Keep fixed when comparing the strategy.
InpMaxSpreadRisk0.10 / 0.10Maximum spread / initial stop distance; 0 disables.
InpMaxEntryDelaySeconds60 / 60Reject late first-tick entry after confirmation; keep fixed.

The English manual (Drive access required) explains all 50 inputs, including license, execution and display fields. InpDealHistory is retained for compatibility and ignored; actual deal drawings have no ring limit. InpShowStructure controls diagnostic drawings and does not disable the HTF filter.

Optimize in stages, then validate unseen data

  1. Reproduce the baseline: choose the exact symbol, explicit signal TF, dates, account mode and costs. Load the SET with optimization OFF and inspect one visual run.
  2. Entry structure: compare swing strength, displacement, zone lookback and retest life with fixed risk and exits.
  3. Stop and target: compare SL buffer and RR in fixed-RR mode. Keep the position-risk percentage fixed.
  4. Entry model: compare OB and FVG separately. Search FVG size only when FVG mode is selected.
  5. HTF structure: enable structure, disable EMA and search TF 0 / 1 / 3 × Wing 2 / 1 / 6. With M15 entries this is 4 × 5 = 20 combinations.
  6. HTF EMA: test independently first. Four TF values produce four comparisons with EMA length fixed. Combine filters only after understanding each one’s effect.
  7. ATR trail: treat it as a separate exit family; RR has no effect in this mode.
  8. Validation: inspect drawdown, trade count, costs and neighboring parameters. Validate unchanged settings on an untouched period and demo account.

No optimum or universal instrument is established by one report. The supplied historical examples cover GOLD.pro M15 and US100.pro M5. Other symbols and timeframes require their own data and validation.

Example historical backtest — original report evidence

The supplied UTF-16 HTML report is for EA_006_SMC_v1_05 on OANDA TMS Brokers S.A., GOLD.pro M15, configured from 1 January 2025 to 1 October 2026. It uses a $5,000 USD deposit, 1:100 leverage, OB mode, sweep OFF, M30 structure ON, EMA/hours OFF, 3% current-equity risk and 3R targets. These settings differ from the source defaults.

EA006 GOLD M15 balance reconstructed from 222 actual closed trades in the original MT5 HTML report
ORIGINAL MT5 DATA / MODERN VIEW. Starting balance $5,000 plus actual closing-deal balances; final $15,646.60. The curve is unsmoothed and contains 222 closed-trade updates. It shows realized balance, not full intratrade equity. Source: EA_006_SMC_GOLD_M15.html.
Report metricReported value
Net profit / final balance$10,646.60 / $15,646.60
Profit factor / expected payoff1.27 / $47.96
Total trades / deals222 / 444
Winning / losing trades70 (31.53%) / 152 (68.47%)
Equity relative drawdown36.25% ($2,402.01)
Equity maximal money drawdown$3,565.32 (19.09%)
Balance relative drawdown34.32% ($2,209.98)
Balance maximal money drawdown$2,779.46 (19.77%)
Maximum consecutive losses9 trades (−$2,138.81)
History quality / ticks99% / 145,069,618

Ledger costs reconcile: $11,113.17 summed deal profit + $0 reported commission − $466.57 swap = $10,646.60 net. Zero commission here does not establish zero costs at other brokers. The last report exit is labelled end of test; it is not presented as a TP/SL trade.

Additional historical backtest — US100 M5

EA006 v1.05, US100.pro, M5, 1 January 2025 to 1 October 2026, last close 30 September 2026. OANDA TMS Brokers S.A., MT5 build 6230, USD account, initial deposit $5,000, leverage 1:100. OB, sweep OFF, H1 structure ON (wing 3), EMA/hours OFF, 3% equity risk and 3R target.

Net profit / final balance$7,978.69 / $12,978.69
Profit factor / expected payoff1.55 / $87.68
Trades / deals91 / 182
Wins / losses32 (35.16%) / 59 (64.84%)
Equity relative drawdown25.09% ($1,769.86)
Equity maximal drawdown amount$1,819.74 (15.63%)
Balance relative drawdown21.94% ($1,529.02)
Maximum consecutive losses7 trades (-$1,291.42)

All 182 trade-deal balances reconcile exactly; 91 original closing balances are verified. Commission and swap are $0.00 in this report. History quality 100%, 122,942 bars and 323,352,053 ticks. The HTML does not explicitly identify the selected tester model or a separate spread assumption. This is a historical example, not a forecast. The supplied SET uses 3% risk; review it before use. Reproduce with optimization OFF.

Download original GOLD M15 and US100 M5 reports with images →

Frequently asked questions

Does EA006 repaint its entry signals?

Entry confirmation uses completed candles and strictly confirmed swings. A pivot is known only after its right-side candles close; a historical pivot marker should not be mistaken for knowledge available at the pivot time. This is a code-defined rule, not a claim that every historical visualization was independently replay-tested here.

Why are there no trades?

Check the retail hedging account, EA006 license, Algo Trading, symbol history, direction switches, explicit signal TF and hours. With structure enabled, a neutral bias blocks entries. Both HTF filters must agree when enabled. Inspect Experts/Journal for spread, delay, invalid stop, volume or margin rejection.

Do sessions close an open position?

No. Hours restrict new entries. Positions continue under their selected fixed-RR or ATR-trailing exit mode.

Can I optimize the higher timeframe?

Yes. In v1.05 use IDs 0=M30, 1=H1, 2=H4, 3=D1 with Start 0 / Step 1 / Stop 3. Enable the corresponding filter and choose a signal TF below it.

Is the supplied GOLD preset a recommended live setup?

No. It documents one historical configuration with 3% equity risk and substantial drawdown. It requires independent out-of-sample and demo validation. Source default risk is 0.5%; neither value guarantees a result.

How does activation work?

EA006 uses a customer license key on demo/live charts. Add https://ea-lab.dev to MT5’s allowed WebRequest URLs and verify LICENSE ACTIVE. The EA LAB standard permits two account + server combinations; the server enforces the limit. Tester/optimizer mode bypasses online activation. License refusal blocks new entries while management of own existing positions continues.

Sources, scope and further reading

This guide is checked against EA_006_SMC_v1_05.mq5, the matching GOLD M15 SET, the original UTF-16 HTML report, screen01–screen03 and the EA006 v1.05 English manual. The report and examples were supplied by the owner; no trades or outcomes were invented. The guide documents this implementation, not every discretionary SMC approach. Independent EX5 build equivalence and live license acceptance were not established by preparing this article.

Withdraw from contract here · Paid adaptation purchase terms