ICT / LIQUIDITY / MARKET STRUCTURE / EA005 v1.05
From liquidity raids to market execution: understand the six models implemented in EA #005 ICT, their candle confirmations, session rules and configurable risk engine.
Explore EA #005 ICT — MT5 robot →
Six models, one execution engine
Select one model through InpModel. BUY and SELL use mirrored directional conditions; each model has distinct qualification stages. The robot does not mix all six entry models simultaneously.
Sweep → MSS → FVG
Select an unswept confirmed swing, previous-day extreme, completed Asia range, or ANY of these pools. A BUY candle raids at least one tick below lower liquidity and closes back above it. A later bullish displaced close must break the stored opposite swing high. Accept a three-candle bullish FVG whose middle candle is no earlier than MSS. Default entry waits for a later directional retest. Immediate mode can enter when the FVG is recognized. SELL reverses every direction.
Sweep → MSS → OTE + FVG
Follow model 0, then freeze the impulse low and high when the FVG is accepted. For BUY, the OTE band spans impulse high minus 79% to 61.8% of its range; SELL measures 61.8–79% upward from the low. The FVG and OTE must intersect by at least one tick. A later candle must overlap this shared area and close in direction beyond its midpoint. Retest is mandatory; InpEntryMode is ignored.
MSS/BOS → FVG
Require a fresh displaced close beyond a confirmed swing. The preceding close must not already be beyond that level. BUY breaks a high; SELL breaks a low. No sweep is mandatory and InpLiquidity is ignored. The setup extreme uses the latest opposite confirmed swing when available, otherwise the break candle extreme. A qualifying FVG then follows the selected immediate or retest mode.
Judas → CISD
During 03:00–05:00 New York time, raid the completed Asia range; during 07:00–10:00, raid the completed London range. Asia spans previous-day 18:00 to current-day 03:00; London spans 03:00–07:00. The CISD reference is the open of the first candle in the opposite-color run leading into the sweep. Require a later directional displaced close beyond this reference. This implementation also needs an available structural swing. Immediate mode may enter at CISD confirmation; retest mode waits for FVG and a later retest. InpSession and InpLiquidity do not change this model’s windows or pools.
Silver Bullet
The eligible New York windows are 03:00–04:00, 10:00–11:00 and 14:00–15:00. Sweep, later displaced MSS, qualifying FVG and a later directional retest must qualify inside the same window. InpLiquidity selects the pool. Retest is mandatory; InpSession and InpEntryMode cannot override these fixed rules. This is one explicitly coded interpretation of Silver Bullet.
Inverse FVG
Find an older opposite FVG in a bounded history search, with its original displacement and minimum width satisfied. BUY requires a displaced first close above an old bearish FVG’s upper edge; SELL requires the mirror below a bullish FVG. The preceding close cannot already be beyond the edge, and no earlier post-gap close may have broken it. Always wait for a later overlap and directional close beyond the inverted zone midpoint. No separate sweep or MSS is required; InpLiquidity and InpEntryMode are ignored. A wick beyond the far zone edge invalidates the setup even if the candle recovers.
What qualifies a setup?
EA005 evaluates completed signal candles. A pivot is confirmed only after InpSwingStrength closed candles on each side; the active candle is excluded. Swing liquidity must not already have been taken between its pivot and the candidate raid. A candle that sweeps both sides is skipped because OHLC does not reveal the order of events.
Displacement
The directional candle body must be at least InpDisplacementATR times the mean True Range of 14 earlier candles. Body divided by full candle range must also be at least 60%. This local calculation is distinct from the MT5 iATR(14) used for protective buffers and spread checks.
Fair value gap
Use three closed candles. For a bullish FVG, candle 1’s high is below candle 3’s low. For a bearish FVG, candle 1’s low is above candle 3’s high. Minimum width is two symbol ticks and the middle candle must show displacement. The code checks equal spacing between those candles.
Retest and market execution
A later candle must overlap the eligible entry zone, have a body in the proposed trade direction and close beyond the zone midpoint in that direction. BUY orders are submitted at the current Ask; SELL orders at the current Bid. A signal detected after a candle close does not guarantee a fill at the FVG boundary or at the candle’s closing price.
Expiry and invalidation
The setup expires after its configured lifetime or an applicable window change. A later wick beyond the setup extreme invalidates it; after the gap stage, a close through the wrong FVG boundary also invalidates it. A ready signal is consumed after the order attempt, including a rejected attempt. One setup does not generate repeated entries.
Actual MT5 examples: model 0 only
These are author-supplied GOLD.pro M15 Strategy Tester screenshots of EA005 v1.05. They are historical simulations, not live-account evidence. Original candle colors and price paths are retained. The screen panel shows 3.00% risk; source default risk is 0.50%. Screenshots cannot recover every input or establish all model qualifications bar by bar without matching price data.


Read the conditions in order
Locate the liquidity pool, then the sweep/reclaim, later displaced structural close, eligible FVG and chosen entry confirmation. Do not assign every nearby sweep marker to this position. The underlying EA checks these stages separately.
A retest requires actual zone overlap on a later candle and a directional close beyond its midpoint. A visually convincing reversal alone is insufficient.



Sessions, direction and context filters
| Control | Implemented behavior |
|---|---|
| Ordinary windows | London 02:00–05:00 and New York 07:00–10:00, in New York local time. BOTH permits both. Custom start is inclusive and end exclusive; overnight windows are supported. |
| Session OFF | Removes the ordinary window, while NY weekends remain excluded. Judas and Silver Bullet retain their model-specific windows. |
| AUTO broker time | Infers offsets from historical Forex H1 weekly boundaries. A non-Forex symbol can require an EURUSD reference. Missing valid history blocks new signals. This inference is an assumption about the reference instrument, not universal broker timezone metadata. |
| Manual broker time | With AUTO OFF, set the broker’s actual winter UTC offset and EU, US or fixed DST rule. Check both US and EU transition weeks; do not substitute Polish clock time for New York local time. |
| D1 midpoint bias | The last closed broker D1 close above its range midpoint permits BUY; below permits SELL; equality is neutral. These are broker daily bars, not a reconstructed NY-close feed. |
| H4 / combined bias | H4 structure uses the latest detected displaced confirmed-swing break. D1/H4 agreement requires both directions to agree. Missing or conflicting direction blocks qualification. Bias is frozen when the selected window begins. |
| H4 context | Optional contact with an earlier available unfilled H4 FVG; the alternative mode also accepts a setup extreme beyond the preceding D1 extreme. Context OFF imposes neither check. |
| Execution filters | BUY/SELL permissions, spread divided by iATR(14), broker direction permissions, stop distances, volume steps/caps and margin. Default spread threshold is 0.15; zero disables it. |
No complete Order Block, SMT or discretionary top-down analysis is implemented. These filters are explicit approximations and can reject a pattern that looks plausible on a chart.
Stop loss, targets and position management
Five stop modes
Choose setup extreme, signal/retest candle extreme, a confirmed swing on the selected SL timeframe, the nearest previous-day floor-pivot level on the risk side, or no broker stop. The protective buffer is the greater of one tick and iATR(14) × InpSLBufferATR. Tick rounding and broker minimum distances are applied before position sizing and R calculations.
Eight target modes
- R multiple: initial risk distance × InpRR; source default 2R.
- ATR: iATR(14) × InpTPATRMult.
- Liquidity: eligible opposing pool; Judas uses the opposite session-range extreme.
- Next D1 pivot: the nearest eligible previous-day floor pivot in the trade direction.
- Nearest SR or pivot: the closer eligible structural/liquidity target or D1 pivot.
- Active MSS: market closure on an opposite closed displaced structural break on the signal timeframe.
- HTF MSS: the corresponding structural exit on H4.
- None: no take-profit order.
Liquidity and pivot modes require a valid target and minimum target R. Invalid levels reject the entry; they are not silently replaced with a fictional target. Market exits and optional session-end closure require the terminal, EA and connection to keep running.
Optional management
Break-even moves SL after the trigger R and locks the selected amount of R. Confirmed-swing trailing can use M5, M15, M30, H1, H2 or H4 and only tightens the stop. Broker stops/freeze rules can delay modification. Partial close attempts 50% once at its R trigger when both portions satisfy broker volume rules. These features are OFF by default.
Risk, ownership and pyramiding
Source default risk is 0.50% of current equity, estimated using one-lot loss to the adjusted reference stop through OrderCalcProfit. Fixed lots do not preserve percentage risk. ARS is a total-volume cap tied to balance, not a loss-recovery system. Volume caps and margin can reduce size or prevent entry.
Pyramiding is OFF by default and requires hedging. Additional positions require new independent setups and the configured position/volume caps. ONLY_IF_ALL_PROFIT requires earlier same-direction positions to be profitable. On netting, a foreign position on the symbol is refused. Management is scoped by symbol and magic; use a distinct magic for each independent instance.
Optional NY-day entry, profit and loss caps block new entries. P/L combines owned closed net results with current owned floating profit/swap relative to reconstructed day-start balance. Caps are not an automatic close-all command. Gaps, costs and slippage can exceed nominal stop risk.
The parameters that matter first
| Input | Source default | Effect / dependency |
|---|---|---|
| InpModel | 0 | Select one of six models; compare separately. |
| InpSignalTF | M5 | Signal bars; changing chart timeframe alone does not change this static input. |
| InpSwingStrength | 2 | Pivot wings; stronger confirmation delays availability. |
| InpDisplacementATR | 0.8 | Minimum directional body relative to preceding mean TR; 60% body/range also applies. |
| InpSetupLifeBars | 12 | Setup lifetime measured in signal bars. |
| InpEntryMode | Retest close | Immediate or retest; models 1, 4 and 5 always retest. |
| InpLiquidity | Swing | Swing, previous day, Asia or ANY; inactive for models 2, 3 and 5. |
| InpBias / InpHTFContext | D1 midpoint / OFF | Mechanical direction / optional H4 context. |
| InpSession | BOTH | Ordinary NY windows; inactive for fixed Judas/Silver Bullet windows. |
| InpRiskPercent | 0.50% | Equity risk budget; static, not a signal optimizer variable. |
| InpSLMode / InpSLBufferATR | Setup extreme / 0.10 | Stop source and iATR buffer. InpSLSwingTF matters only with swing SL. |
| InpTPMode / InpRR | R multiple / 2.0 | RR affects only the R-multiple target. |
| BE / trailing / partial / pyramid | OFF | Independent management options; dependent inputs matter only when enabled. |
| InpMagic | 500501 | Ownership and persistent state identity. |
Supplied GOLD M15 SET is a separate configuration
The supplied SET selects model 0, M15, swing strength 2, displacement 1.0, lifetime 8, immediate entry, previous-day liquidity, bias OFF, H4 FVG OR day-sweep context, ordinary session OFF, 3% risk, H2 swing SL with 0.10 ATR buffer, 2.5R target and ONLY_IF_ALL_PROFIT pyramiding. BE, trailing and partial closure are OFF. It is a historical research preset, not the source defaults or a live recommendation. These values match the decoded report configuration.
A controlled research workflow
- Save the exact EX5 release and SET. Set the signal timeframe explicitly and verify broker clock conversion.
- Test one model at a time. The source suggests swing 2/3/4, displacement 0.6/0.8/1.0/1.2, lifetime 8/12/16 and RR 1.5/2/2.5/3 when R targets are selected: 144 full-grid passes when all four dimensions apply.
- Remove inactive combinations. EntryMode is irrelevant for OTE, Silver Bullet and iFVG; ordinary session is irrelevant for Judas/Silver Bullet; Liquidity is irrelevant for models 2/3/5. In the isolated iFVG + D1 midpoint + context OFF + setup SL + R TP case without swing management, swing strength does not affect entry: 48 passes.
- Compare bias/context next, then management one option at a time. Keep risk, broker clock, magic, licensing and visuals static.
- Use real ticks with realistic costs, an untouched final out-of-sample period, nearby parameter checks and several market regimes. Follow with forward/demo tests.
- Reconcile balance from the original Deals ledger, including commission, swap and fees. A trade connector on a chart is not a balance curve, and closed-trade balance is not continuous floating equity.
The custom optimizer criterion uses known-R sample size, mean R and a log-equity fit/drawdown/ulcer score. Unknown initial R is excluded. A high optimizer rank is not a guarantee of forward performance.
Questions before testing
Is this the complete discretionary ICT method?
No. EA005 is a mechanical implementation of six selected models with explicit numerical thresholds and execution rules. It is not an official endorsement or a replacement for discretionary context.
Does changing the chart to M15 change signals?
No. Set InpSignalTF. Its source default is M5; the supplied preset and screenshots use M15.
Why can a plausible setup produce no order?
Check window, frozen bias, context, setup age, invalidation, spread, license, volume, margin, broker stops and foreign netting positions. Experts/Journal diagnostics can explain the rejection.
Can I see the manual before buying?
Read the public English manual (PDF). Customer installation uses the supplied EX5; the manual’s compile step is a development instruction and does not imply MQ5 is delivered.
Are backtest results available?
The original model-0 GOLD.pro M15 report is decoded and reconciled below. Its results describe one historical configuration; screenshots are not substitutes for its Deals ledger.
Historical backtest — original MT5 report
One historical model-0 configuration; not a forecast or validation of all six models. GOLD.pro, M15, 1 January 2025 to 1 October 2026 (last recorded deal 30 September). OANDA TMS Brokers S.A., MT5 Build 6230, USD account, $5,000 initial deposit, 1:100 leverage. The report states 99% real ticks, 41,074 bars and 290,170,157 ticks.
| Net profit | $5,528.34 | Final balance | $10,528.34 |
|---|---|---|---|
| Profit factor | 1.92 | Closed trades | 48 |
| Winning trades | 22 / 48 (45.83%) | Expected payoff | $115.17 |
| Maximum equity drawdown | $2,559.77 (22.90%) | Maximum balance drawdown | $1,631.76 (16.48%) |
| Gross profit / gross loss | $11,532.66 / -$6,004.32 | Recovery factor / Sharpe ratio | 2.16 / 2.12 |
Report configuration: model 0, M15, swing 2, displacement 1.0, setup life 8, immediate FVG entry, previous-day liquidity, bias OFF, H4 FVG OR day-sweep context, ordinary session OFF, 3% risk, H2 swing SL, 2.5R and ONLY_IF_ALL_PROFIT pyramiding, maximum three positions. This differs from the source defaults. The last remaining position is closed at the end of the test.
The original UTF-16LE HTML was decoded and every Deals-row balance reconciled exactly. There are 96 trade deals plus the initial deposit. Deal profit totals $5,693.82; swap totals -$165.48; commission is $0.00; net result is $5,528.34. The report does not specify a separate fixed spread assumption. Execution prices embed historical bid/ask effects; zero commission is an assumption of this example and may not match your broker.
The original balance image is available in the prepared materials. Any imported curve must use the exact Deals-table balance values without smoothing. A balance curve does not represent floating equity; the larger equity drawdown above matters.
Actual screenshot outcomes, verified in the report: SELL entry 3640.14 on 9 September 2025 closed at 3660.65 on 15 September at SL: -$225.61 price profit plus $5.80 swap = -$219.81 net. BUY ticket 27 entry 3297.39 on 29 May closed at 3428.29 on 13 June at TP: $471.24 price profit minus $34.48 swap = $436.76 net. Times are report/server times. These two outcomes are historical examples, not promised results.

Download the original MT5 report and report images (ZIP)
Source and risk notes
Executable rules: supplied EA_005_ICT_v1_05.mq5; documentation: EA_005_ICT_v1_05_User_Manual_EN.pdf, revision 3; historical examples: original author-supplied GOLD.pro M15 MT5 screenshots; preset: EA_005_ICT_v1_05_Gold_m15.set. MQ5 remains private and is excluded from the customer package.