ForexBestRobots.comCompare EAs →

MULTI-TIMEFRAME STRATEGY · 3

Multi-Timeframe Forex Strategy: D1 Trend, H1 Range and M15 Breakout Retest

A complete D1–H1–M15 breakout-retest method with a frozen H1 range, later closed-bar confirmation, fixed targets, expiry rules and a cost-aware EURUSD example.

17 min readReviewed by ForexBestRobots Editorial Team
Hypothetical EURUSD breakout and later retest: H1 range 1.0980–1.1000, Ask entry 1.1005, stop 1.0997 and target 1.1020.A frozen range and a later retestD1 direction → H1 range → M15 confirmation

Hypothetical prices; no verified performance claim.

A move beyond a range can continue, reverse or reach its target before an entry is available. This strategy studies one specific continuation sequence: a completed daily trend filter, a range fixed before the breakout, and a later M15 retest. It is an author-defined research baseline with hypothetical prices, not a tested trading edge or a promise of returns.

The problem: identifying the range after the breakout

A breakout looks convincing when the chart is already complete. The difficult part is deciding, beforehand, which range mattered, what counted as a break and how long a retest could remain valid. Moving the range to fit a later candle changes the trade you are studying.

Here D1 selects one direction, H1 defines a fixed reference and M15 supplies two separate events: a breakout close and a later retest close. A break alone is insufficient. A pullback alone is insufficient. The sequence must finish before its deadlines and leave enough potential reward after the quoted entry price is known.

Give the three timeframes different jobs

Use the same symbol and broker clock throughout. A closed candle means its scheduled interval has ended and a new quote has made that completion observable. The current candle may help detect cancellation, but it never supplies an unfinished confirmation.

The numerical choices below define this baseline. The EMA period, range length, buffers, deadlines and reward/risk threshold are research inputs, not universal optimal settings.

TimeframeJobFrozen baseline rule
D1Direction and background rangeCompleted close versus rising or falling EMA 50; previous normal D1 high/low.
H1Reference consolidationFirst qualifying six-bar range; width ≤ 60% of the D1 range; last close in its middle half.
M15Ordered confirmation and executionBreakout close, later retest close, current quote and explicit deadlines.

Freeze the direction from completed D1 data

At the start of the broker day, record the previous completed D1 close, its high and low, and the close-based EMA 50 for the two most recent completed D1 candles. Load at least 250 completed D1 candles for the indicator history and use a consistent history and initialization in comparisons.

Allow buys only if the previous D1 close is strictly above its EMA 50 and that EMA is strictly above its previous completed value. Allow sells only if both comparisons are strictly lower. Equality, mixed conditions or missing history means no setup that day.

  • Freeze the direction and previous D1 range for the current broker day; do not read the forming D1 close or EMA.
  • Use the immediately preceding normal broker session. Skip a shortened Sunday, a holiday session or unreliable data rather than silently substituting another day.
  • The previous D1 high minus low must be positive. End an unfilled setup, and close an open position at the first available quote, when a new D1 day begins.

Broker days need not match your local midnight. Check daylight-saving changes and the actual session calendar before testing. The daily filter describes a background condition; it cannot prevent an intraday reversal.

Choose the first qualifying H1 range and keep it fixed

At each H1 close, inspect the six immediately preceding completed H1 candles, all entirely inside the current D1 day and consecutive in the verified session data. Let U be their highest high, L their lowest low and W their width. The snapshot time T is the close of the last candle.

A range qualifies only when W is positive, no greater than 60% of the previous completed D1 range, and the last H1 close is within the middle half of the range, including its boundaries. This is a reproducible definition of consolidation, not proof that volatility must expand.

  1. Calculate U = max(H1.High[1..6]) and L = min(H1.Low[1..6]) from those six candles; then W = U − L.
  2. Require 0 < W ≤ 0.60 × R_D1 and L + 0.25 × W ≤ C_H1 ≤ L + 0.75 × W, where R_D1 is the previous D1 range and C_H1 the last completed H1 close.
  3. Select only the first qualifying snapshot for this strategy and symbol that broker day. Save its six timestamps, U, L, W, direction and T.
  4. Do not replace the range while waiting, after a rejected candidate or after expiry. The day’s range-selection slot is consumed even if no order is sent.

This restriction deliberately avoids trying successive overlapping ranges until one works. A different range-selection policy is a different strategy variant and needs its own results.

Separate the range, breakout and retest in time

If T is 10:00, the first eligible breakout close is 10:15. The M15 candle closing at 10:00 helped form the last H1 candle and cannot also count as a later breakout. Once a breakout closes, a retest must come from a strictly later M15 candle.

Count scheduled closes, not just bars that happen to appear in a sparse history. The breakout window contains four later M15 closes. The retest window contains four closes after the selected breakout. Missing or inconsistent intervals invalidate the setup; gaps do not extend its life.

Hypothetical EURUSD breakout and later retest: H1 range 1.0980–1.1000, Ask entry 1.1005, stop 1.0997 and target 1.1020.
Read the price panel and the timing panel separately. The H1 box is a frozen six-bar range; the M15 candles use the example’s stated prices. The Ask entry differs from the Bid candle close. This is a teaching diagram, not historical market evidence.

Step 1: require an M15 close beyond the frozen boundary

For a buy, take the first eligible M15 close strictly above U plus 1 pip. For a sell, take the first close strictly below L minus 1 pip. The example uses EURUSD, where 1 pip is 0.0001. Other symbols require an explicit pip definition and suitable contract units.

The breakout must be one of the four scheduled M15 closes strictly after T. A wick beyond the boundary with a close back inside is not a breakout confirmation. The candle’s high or low cannot replace its close.

  1. Before a buy breakout, any observed Bid at or below L cancels the range. Before a sell breakout, any observed Bid at or above U cancels it.
  2. If the fixed target has already been touched before entry, cancel: Bid at or above the buy target, or Ask at or below the sell target.
  3. When the first qualifying breakout closes, save its timestamp B and switch to waiting for a retest. Ignore later breakout candidates.
  4. If none qualifies by the fourth scheduled close after T, expire the range. No second range is selected that day.

Step 2: wait for a later retest and a fresh close

For a buy retest, the M15 low must be within the inclusive band from U minus 1 pip to U plus 1 pip. Its close must be strictly above its open and strictly above U plus 1 pip. These conditions test a return to the boundary followed by a bullish close, rather than a candle that stayed far above it.

Use the first candle satisfying all conditions among the four scheduled closes strictly after B. Do not use the breakout candle’s earlier low as a retest. After B, any observed Bid strictly below U minus 1 pip cancels the buy setup, even if a later close recovers.

  1. Confirm a later completed candle: U − 1 pip ≤ L_M15 ≤ U + 1 pip, C_M15 > O_M15 and C_M15 > U + 1 pip.
  2. At the first available quote after that retest close, require the current Bid still to be above U plus 1 pip and all cancellation rules still to hold.
  3. Evaluate the first candidate once. Submit only before the next scheduled M15 close; do not wait for a better quote after a spread, price or risk rejection.
  4. If no valid retest closes within its four-close window, or the candidate’s quote deadline passes, expire the setup. A candle at the retest window’s last close may qualify; its entry still expires at the next close.

Mirror the conditions for a sell

Use the frozen bearish D1 direction and the same first qualifying H1 range. The sell sequence breaks L, then retests L from below. The structural candle conditions use Bid data; a short position closes at Ask, so spread matters when its stop or target is reached.

  • The selected breakout closes strictly below L − 1 pip. In a strictly later candle, require L − 1 pip ≤ H_M15 ≤ L + 1 pip, C_M15 < O_M15 and C_M15 < L − 1 pip.
  • After the breakout, any observed Bid strictly above L + 1 pip cancels. At the entry quote, Bid must still be below L − 1 pip; use the current Bid as the prospective sell entry.
  • Fix SL = L + 3 pips and TP = L − W. Before entry, an Ask touch at or below TP cancels the setup. Do not treat a Bid low alone as proof that a short target would have filled.

Cancel a setup before sending an order

Cancellation takes priority over confirmation. Check the completed candles and the extremes already observed in the current M15 interval. A later recovery does not erase a boundary violation or a target touch. In a backtest, use only price information available at the decision time.

This baseline allows at most one actual market-order submission per broker day, strategy and symbol, with one position at most. A rejected or uncertain response also uses that submission slot. A timeout is a reason to reconcile orders, not to submit a duplicate.

  • Cancel on the wrong-side boundary touch before the breakout, a deeper-than-allowed retest after the breakout, or a target touch before entry.
  • Cancel on missing required bars, inconsistent timestamps, a new D1 day or an exceeded breakout, retest or entry deadline.
  • Reject the first candidate if the spread exceeds 2 pips in this EURUSD baseline, reward/risk is below 1.5, or the quote no longer satisfies the directional entry condition.
  • Reject invalid tick-grid prices, an insufficient legal volume, insufficient margin or broker stop constraints. Keep the fixed levels; do not move them to make an order pass.

A pre-submission rejection consumes the already selected setup but does not constitute an order submission. There is still no new range or replacement candidate that day. If execution is confirmed, check its actual entry price and planned money risk again with the same levels and chosen volume; if the conditions fail, close at the first available quote and record all costs.

Keep the stop, measured target and time limit fixed

For a buy, the stop is U minus 3 pips: 1 pip of retest tolerance and 2 further pips of buffer. The target is U plus W, one frozen range width above the breakout boundary. It is a measured reference, not a forecast that price must reach it. For a sell, use the mirrored levels defined above.

Do not set the target by multiplying the entry risk after the quote arrives. That would change the exit when you chase a worse entry. Calculate the remaining potential reward from the fixed target instead.

  • Exit on the fixed Stop Loss or Take Profit, with the actual execution price and costs recorded.
  • Otherwise close at the first available quote after the 12th scheduled M15 close strictly after the confirmed fill, or when the next D1 day begins, whichever occurs first.
  • There is no averaging down, second entry, trailing stop or automatic break-even in this baseline. Gaps can worsen execution and do not postpone deadlines.

A stop is an instruction, not a guaranteed loss ceiling. If the connection is interrupted, the time exit cannot execute without a working terminal; broker-held protective orders and actual broker conditions still matter.

Size the position from the entry quote and trading costs

Choose the money budget before the order. This example assumes a USD account, equity of 10 000 USD, risk of 0.5%, EURUSD pip value of 10 USD per standard lot and a 0.01-lot volume step. Check the actual contract, currency conversion and minimum volume for another account.

For a buy use the current Ask as the prospective entry and the fixed stop as the intended Bid exit. For a sell use Bid as the entry and the fixed stop as the intended Ask exit. The entry-to-stop price distance already includes the quoted spread; do not add it a second time.

Input or calculationHypothetical valueInterpretation
Equity × risk fraction10 000 USD × 0.5% = 50 USDPlanned loss budget.
Quoted Ask / stop / target1.1005 / 1.0997 / 1.10208 pips of price risk; 15 pips to the fixed target.
Estimated loss per standard lot8 × 10 + 7 + 1 × 10 = 97 USDPrice loss + round-trip commission + stop-slippage allowance.
Volume with a 0.01-lot stepfloor(50 / 97 / 0.01) × 0.01 = 0.51Round down; then check minimum volume and margin.
Estimated risk at 0.51 lots0.51 × 97 = 49.47 USD0.52 lots would risk 50.44 USD and exceed the budget.

The 7 USD round-trip commission and 1-pip adverse stop-fill allowance are assumptions for this worked example. Estimated risk is not a guaranteed maximum. The actual fill is unknown when volume is selected, and a broker’s volume or margin limit can force a smaller position or no trade.

A five-digit EURUSD quote normally expresses 1 pip as 10 points. MT4 slippage and stop-distance settings use points, while this article’s buffers use pips. Confusing those units can change the strategy by a factor of 10.

Follow a complete hypothetical EURUSD buy

Assume the required history is available. The previous completed D1 high is 1.1060, low 1.0960 and close 1.1039; EMA 50 is 1.0990 versus 1.0988 on the preceding completed candle. The frozen direction is bullish and the D1 range is 100 pips. A candle ending at 04:00 had a high of 1.1050, keeping each earlier eligible six-H1 window wider than 60 pips. It leaves the window at 10:00, so this is the day’s first qualifying snapshot. In the table, O/H/L/C mean the Bid candle’s open/high/low/close; the first six rows show only H/L/C.

Broker interval or eventData known at completionDecision
H1 04:00–05:00H 1.0995; L 1.0987; C 1.0991First of the six saved H1 candles.
H1 05:00–06:00H 1.0994; L 1.0984; C 1.0989Completed history only.
H1 06:00–07:00H 1.0996; L 1.0980; C 1.0986Provides L = 1.0980.
H1 07:00–08:00H 1.0993; L 1.0983; C 1.0990Still inside the reference range.
H1 08:00–09:00H 1.1000; L 1.0988; C 1.0992Provides U = 1.1000.
H1 09:00–10:00H 1.0996; L 1.0987; C 1.0990At T = 10:00, freeze U, L and W = 20 pips.
M15 10:00–10:15O 1.0990; H 1.1006; L 1.0989; C 1.1004First breakout; B = 10:15. No simultaneous retest.
M15 10:15–10:30O 1.1004; H 1.1005; L 1.1002; C 1.1002Low is above 1.1001: no retest.
M15 10:30–10:45O 1.1002; H 1.1004; L 1.1000; C 1.1003Low reaches the band; bullish close above 1.1001.
First quote after 10:45Bid 1.1003; Ask 1.1005Spread 2 pips; candidate may be submitted before 11:00 if all checks pass.

The frozen width is 20 pips, below the 60-pip limit; the last H1 close of 1.0990 lies between 1.0985 and 1.0995. The breakout at 10:15 closes above 1.1001. The 10:30 candle does not reach the retest band. The 10:45 candle does, then closes bullish above 1.1001.

With Ask 1.1005, SL 1.0997 and TP 1.1020, price risk is 8 pips and remaining reward is 15 pips: gross reward/risk is 1.875. At 0.51 lots, an exact stop fill would lose 40.80 USD plus 3.57 USD commission, or 44.37 USD. The assumed 1-pip adverse stop fill raises that to 49.47 USD. An exact target fill would yield 76.50 USD minus 3.57 USD, or 72.93 USD before other costs.

Those outcomes are alternatives, not results of an observed trade. The 10:15 breakout gives a retest deadline of 11:15. A candidate closing at 10:45 has its own entry deadline of 11:00. At a fill just after 10:45, the 12-close holding deadline is 13:45, subject to an earlier stop, target or new D1 day.

Reject a late price even after a valid retest

The same chart pattern can produce a different trade when the live quote changes. Keep the range, stop and target frozen. Recheck the available reward and the loss budget at the first candidate quote; do not use the old candle close as a fictitious fill.

First candidate quote or eventRemaining gross price ratioAction
Ask 1.100515 / 8 = 1.875Passes the 1.5 price filter; evaluate costs, volume and all other checks.
Ask 1.100713 / 10 = 1.3Reject. Do not widen the target or wait for another candidate.
Bid falls below 1.0999 after the breakoutNot applicableCancel, even if a later candle closes above the boundary.
Buy target 1.1020 is touched before entryNot applicableCancel. The intended move has already reached its reference target.
No submission before 11:00 after a 10:45 retestNot applicableExpire this candidate; no replacement range that day.

The baseline’s 1.5 filter uses gross price distances. It does not promise a net ratio of 1.5 after costs: in the example, 72.93 / 49.47 ≈ 1.47 against the loss estimate including stop slippage. If you choose a net reward/risk filter instead, declare that as a separate variant before testing.

Where a confirmed breakout can still fail

The daily trend may be late, the H1 range may be a pause before a reversal, and a bullish retest may be followed immediately by a sell-off. Several timeframes share the same underlying price; three confirmations are not three independent pieces of evidence.

Narrow stops make commission and spread a large fraction of risk. A news gap can cross the stop, and a target touched on a Bid chart does not establish how a sell position would have closed. Record these limitations rather than removing awkward trades from the sample.

  • Repeated returns through the boundary can reveal weak continuation even when the first retest satisfied the rules.
  • Different broker daily candles, missing H1 intervals and different spreads can create different eligible ranges and fills.
  • If you add a news filter, session filter or volatility filter, freeze its definition before testing and compare it as a separately named variant. Do not apply it only to losing examples.

Map MT4 bars to the information available at the time

MT4 bars are identified by opening time. For EMA 50 use D1, an unshifted indicator line, the exponential method and closing prices; the two completed values correspond to bar shifts 1 and 2 in a current-day live calculation. Historical decisions require the completed bars that existed then, not today’s shift numbers.

Use iTime to read bar-opening timestamps and iBarShift to locate the interval covering a decision time, then verify that interval’s completion. Request exact gap handling and check the returned index; a nearest-bar fallback must not disguise missing history. Empty history can return zero time, so reject incomplete data.

  • A new quote after an interval boundary makes the prior close observable. At 10:00, freeze H1 first; the M15 close at that same time is excluded from the later breakout window.
  • Use only completed H1 and D1 data for selection. For live cancellation, the current M15 high or low must contain only already observed ticks; its final historical extreme would leak future information.
  • Read the symbol’s Bid/Ask, tick size and tick value, lot limits, margin and stop restrictions from its actual contract. A zero MODE_STOPLEVEL can still coexist with dynamic server restrictions. Reconcile any uncertain OrderSend response before further action.

These are implementation requirements, not a supplied EA. A manual chart annotation that selects convenient later candles is not an equivalent test of the baseline.

Measure the frozen baseline before changing it

Record every eligible day, the first selected range, cancellations, unfilled candidates and actual submissions. Save decision timestamps and the prices used. That lets you distinguish selection effects from execution effects instead of counting only attractive completed patterns.

Use unseen periods and different market conditions after fixing the rules. Compare net expectancy, drawdown, losing streaks, time in position and the number of trades, with spread, commission, slippage and any swap included. Report sample size and uncertainty; no win rate or profitability is established here.

  1. Reconstruct the event sequence with sufficient lower-timeframe or tick detail. Closed-bar signals still require intrabar checks for cancellations, targets and stops.
  2. MT4 Every tick may interpolate prices from lower-timeframe bars; it is not automatically a record of real historical ticks. Check coverage and spread assumptions. Open prices only cannot validate this baseline’s intrabar behavior.
  3. If one bar spans conflicting events and their order is unknown, flag the case and use a declared conservative treatment. Do not choose the profitable order afterward. Make parameter or filter changes only in a new version and retest it on untouched data.

Eight checks before an order

If any required check fails, skip the candidate and record why. A skipped day is a valid output of the strategy.

  1. The completed D1 close and EMA 50 agree on one frozen direction; the broker session and history are valid.
  2. This is the first qualifying six-H1 snapshot of the day; U, L, W and T were saved before the breakout.
  3. The selected breakout is a closed M15 candle inside the four-close window and clears the 1-pip boundary buffer.
  4. The retest is strictly later, reaches the allowed band, closes in the intended direction and meets its own four-close window.
  5. No cancellation level or fixed target has been touched; the current quote still meets the directional entry condition.
  6. The spread is at most 2 pips, gross reward/risk is at least 1.5 and the entry deadline has not passed.
  7. Fixed price levels, volume step, margin and estimated money risk are valid; volume was rounded down.
  8. The daily submission slot is unused, no position exists and uncertain order state has been reconciled.

Common questions about the breakout-retest method

Can the breakout candle also be the retest?

No. Its intrabar path occurred before the breakout close was known. This baseline requires a completed M15 retest candle strictly after the selected breakout.

Does an H1 close above the range replace the M15 breakout?

No. H1 defines the frozen reference. Only the specified later M15 close selects the breakout; substituting an H1 signal changes the method.

Can I trade another range after the first one expires?

Not in this baseline. The first qualifying snapshot consumes the day’s range-selection slot, even without an order. Reusing later ranges is a separately testable variant.

Does the example show a profitable strategy?

No. It demonstrates event order, price levels and cost arithmetic with invented inputs. A positive target scenario says nothing about the frequency of wins, losses or unfilled setups.

Official references and the scope of this method

These MetaQuotes references support the platform mechanics, indicator inputs, timing, contract checks and testing limitations. The range definition, buffers, deadlines and exit policy are the author’s research choices; the documentation does not validate a profitable breakout-retest strategy.