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 →
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 ID | Higher TF | Optimization |
|---|---|---|
| 0 | M30 | Start 0 / Step 1 / Stop 3 |
| 1 | H1 | |
| 2 | H4 | |
| 3 | D1 |
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.



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.
| Input | Default / GOLD SET | Purpose / OPT range |
|---|---|---|
| InpSignalTF | M15 / M15 | Explicit entry TF; changing chart/tester period alone does not override it. Keep fixed during a comparison. |
| InpSwingWing | 3 / 6 | Confirmed entry-TF swings. OPT 2 / 1 / 6. |
| InpRequireSweep | true / false | Enable reclaimed sweep before the later structure break. Compare ON/OFF intentionally. |
| InpSweepLife | 12 / 16 | Expiry in signal bars; ignored when sweep OFF. OPT 4 / 4 / 20. |
| InpMinSweepATR | 0.05 / 0.05 | Minimum sweep excursion in ATR units; sweep mode only. OPT 0.00 / 0.05 / 0.20. |
| InpDisplacementATR | 0.50 / 0.50 | Minimum directional break body in ATR units. OPT 0.25 / 0.25 / 1.25. |
| InpZoneMode | 0 OB / 0 OB | 0 = Order Block; 1 = FVG. Compare models separately. |
| InpZoneLookback | 12 / 20 | Search depth for the valid zone. OPT 4 / 4 / 20. |
| InpRetestLife | 12 / 20 | Later retest expiry in signal bars. OPT 4 / 4 / 24. |
| InpMinFVGATR | 0.10 / 0.10 | Minimum FVG width; ignored in OB mode. OPT 0.00 / 0.10 / 0.40. |
| InpUseHTFStructure | false / true | Enable persistent higher-TF structure direction. |
| InpStructureTF | 2 H4 / 0 M30 | Optimizable TF IDs 0–3. OPT 0 / 1 / 3. |
| InpStructureWing | 3 / 3 | Independent HTF swing strength. OPT 2 / 1 / 6. |
| InpUseHTFEMA | false / false | Optional higher-TF closed-price vs EMA filter. |
| InpHigherTF | 1 H1 / 1 H1 | EMA timeframe selector. OPT 0 / 1 / 3. |
| InpHigherEMA | 100 / 100 | EMA length when enabled. OPT 50 / 50 / 200. |
| InpUseHours | false / false | Optional broker-server hour window; default 08:00–20:00 when enabled. |
| InpExitMode | 0 RR / 0 RR | 0 = fixed RR; 1 = ATR trail. Compare separately. |
| InpSLBufferATR | 0.20 / 0.20 | Buffer beyond structural stop anchor. OPT 0.10 / 0.10 / 0.50. |
| InpTakeProfitR | 2.00 / 3.00 | RR target in fixed-RR mode. OPT 1.00 / 0.50 / 4.00. |
| InpTrailATR | 2.50 / 2.50 | Trailing distance; ignored in fixed-RR mode. OPT 1.50 / 0.50 / 4.00. |
| InpRiskPercent | 0.50% / 3.00% | Current-equity sizing. Keep fixed when comparing the strategy. |
| InpMaxSpreadRisk | 0.10 / 0.10 | Maximum spread / initial stop distance; 0 disables. |
| InpMaxEntryDelaySeconds | 60 / 60 | Reject 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
- 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.
- Entry structure: compare swing strength, displacement, zone lookback and retest life with fixed risk and exits.
- Stop and target: compare SL buffer and RR in fixed-RR mode. Keep the position-risk percentage fixed.
- Entry model: compare OB and FVG separately. Search FVG size only when FVG mode is selected.
- 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.
- HTF EMA: test independently first. Four TF values produce four comparisons with EMA length fixed. Combine filters only after understanding each one’s effect.
- ATR trail: treat it as a separate exit family; RR has no effect in this mode.
- 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.

| Report metric | Reported value |
|---|---|
| Net profit / final balance | $10,646.60 / $15,646.60 |
| Profit factor / expected payoff | 1.27 / $47.96 |
| Total trades / deals | 222 / 444 |
| Winning / losing trades | 70 (31.53%) / 152 (68.47%) |
| Equity relative drawdown | 36.25% ($2,402.01) |
| Equity maximal money drawdown | $3,565.32 (19.09%) |
| Balance relative drawdown | 34.32% ($2,209.98) |
| Balance maximal money drawdown | $2,779.46 (19.77%) |
| Maximum consecutive losses | 9 trades (−$2,138.81) |
| History quality / ticks | 99% / 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 payoff | 1.55 / $87.68 |
| Trades / deals | 91 / 182 |
| Wins / losses | 32 (35.16%) / 59 (64.84%) |
| Equity relative drawdown | 25.09% ($1,769.86) |
| Equity maximal drawdown amount | $1,819.74 (15.63%) |
| Balance relative drawdown | 21.94% ($1,529.02) |
| Maximum consecutive losses | 7 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.