A flag continuation setup asks whether a brief countertrend pause can follow a measurable directional impulse. The pattern name alone supplies neither an entry nor an edge. This strategy defines the impulse, the pause, one later confirmation candle and the conditions under which an order may be attempted.
The baseline uses one H1 Bid-price chart and a frozen volatility reference. It does not wait for a breakout retest or a moving-average rejection. Our guide to combining trend observations explains the broader separation between evidence, rules and execution.
1. What this flag strategy measures
Conventional flags describe a sharp move followed by a short consolidation against it. Here that idea becomes a deliberately narrow H1 specification: three directional impulse candles, three countertrend flag candles and one possible breakout candle. It is not a universal detector of every classical flag.
The worked instrument is EURUSD with five-decimal quotes. One pip is 0.00010; the assumed price increment is 0.00001. Other pairs, feeds and timeframes need separate specifications and testing. No volume condition is imposed: a broker's Forex tick activity is not consolidated market volume.
2. Fix the clock and the volatility reference
Use completed H1 candles from one broker feed. Label the impulse I1, I2, I3, the next flag candles F1, F2, F3, and the following confirmation candle C. These are consecutive bars with no missing hourly intervals. Reject incomplete or misaligned data rather than treating missing bars as a quiet market.
Before I1 opens, freeze A, the arithmetic mean of the preceding 14 completed true ranges. Define TR = max(H − L, |H − previous close|, |L − previous close|). This specifies the ATR averaging method explicitly. Check platform smoothing before comparing readings; no later impulse or flag candle enters this frozen reference. Require A > 0.
At each H1 close, examine the latest six completed candles as a possible impulse–flag sequence. If several candidates compete, keep the earliest detected eligible sequence until its confirmation is resolved. Identify it by symbol, timeframe and I3 closing time. Never reuse that identifier for another entry attempt, and allow no new candidate while this method has an open position on the pair.
3. Measure the impulse and countertrend pause
Buy-side impulse. Each impulse candle must close above its own open. Highs, lows and closes must each rise strictly across the three candles. Set P = I3.high − I1.low and require P ≥ 2 × A. This measures a directional expansion without assigning it a probability of continuation.
Buy-side flag. Require F1.close < I3.close. Highs, lows and closes must each fall strictly across the three flag candles. Set FH = max(F1.high, F2.high, F3.high) and FL = min(F1.low, F2.low, F3.low). Require FH < I3.high and I3.high − FL ≤ 0.5 × P. Thus the pause remains below the impulse high and retraces no more than half the measured pole.
Sell-side mirror. Impulse candles close below their opens, with strictly falling highs, lows and closes. Use P = I1.high − I3.low and the same volatility requirement. The first flag close exceeds the last impulse close; flag highs, lows and closes rise strictly. Require FL > I3.low and FH − I3.low ≤ 0.5 × P. A failed buy pattern does not automatically qualify as a sell.
4. Freeze breakout, stop and measured target
After F3 closes, set a fixed buffer b = 0.00010 in this EURUSD baseline. For a buy use B = FH + b, S = FL − b and T = B + P. For a sell use B = FL − b, S = FH + b and T = B − P. Here B is the confirmation reference, S the protective stop and T the target.
The target projects the measured pole from the buffered boundary; it is a declared price objective, not a forecast. Keep all levels fixed through the confirmation and trade. Do not redraw the flag around later candles or relocate the stop to make a late entry appear acceptable.
5. Allow only the next candle to confirm
For a buy, require C.close > B and C.low > S. For a sell, require C.close < B and C.high < S. The first condition needs a completed close beyond the reference, not just a wick; equality fails. The second rejects a confirmation candle that already crossed or touched the setup's invalidation level.
If that candle fails, discard the candidate. Do not wait for a later breakout using the same impulse identifier. The confirming close is an eligibility event, not an execution price. On MT4, a new bar and available data establish that the previous bar has completed; a timer reaching an expected boundary is insufficient by itself.
6. Buy procedure at a fresh quote
- After the qualifying close, inspect the first newly received, tradable Bid/Ask quote. Its arrival must be within
15seconds of the scheduled close, and its verified age must not exceed2seconds. Evaluate that quote once; a failed gate means a skip. - Require
Bid > B,Ask − B ≤ 0.00050andAsk − Bid ≤ 0.00020. These are the retained-breakout, maximum-chase and maximum-spread gates. The buy entry price used for planning is Ask, not the historical Bid close. - Check the frozen stop and target against the broker's price increments and current minimum distances. Calculate volume and the net reward-to-risk gate below. Require trading permission, adequate margin and no conflicting position or unresolved order.
- Allow one market-order request with the fixed stop and target. If the broker cannot accept that protection workflow, skip this baseline. A two-step unprotected-entry workflow requires its own implementation testing.
7. Sell procedure and the correct price side
Apply the same timing and spread limits. Require Bid < B and B − Bid ≤ 0.00050. Plan the sell entry at Bid. Sell stops and targets are triggered against Ask; a Bid-only candle touching the target does not establish that a sell could close there.
For a buy, validate stop distances using current Bid; for a sell, use current Ask. A reported zero minimum stop distance does not guarantee unrestricted placement: dynamic restrictions may still reject an order. Prices, volume steps and remaining margin must be valid for the actual symbol and account.
8. Treat freshness, news and rejected requests as rules
Verify quote age against an independently advancing clock aligned with broker time. Comparing a cached tick timestamp with the same cached server timestamp cannot prove freshness. Record the quote, its timestamp, receipt time and the decision time. If trustworthy timing or required market data is unavailable, skip.
Before the trading day, freeze the restricted calendar events for either currency and the broker's rollover time. Do not enter within 15 minutes before or after a listed event, or when the planned time exit would reach rollover. If those inputs are missing, skip. This scheduled filter cannot remove unexpected news or execution risk.
An order request is not a confirmed position. After a timeout or uncertain response, reconcile broker orders and positions before further action; never assume failure and send a duplicate. After a confirmed fill, recalculate the gates using the actual price. If the entry cap, risk budget or net ratio is breached, request closure at the next tradable quote and log the breach. That recovery may itself lose money.
9. Keep exits fixed and time-limited
Retain the initial stop and measured target without trailing, breakeven moves or scaling in. Exit through the first executed protective stop or target. If still open after 8 H1 bars following entry have closed, request closure at the next tradable quote. Count from the entry bar's subsequent close; do not count the earlier confirmation candle.
A gap, unavailable quote, broker freeze condition or execution failure can delay closure and enlarge loss. The planned cash risk is not a guaranteed loss ceiling. Before requesting a time exit, check that the position still exists; a stop or target may already have closed it.
10. Reproduce a complete synthetic buy setup
The following EURUSD H1 Bid candles are invented solely for arithmetic and timing checks. Times are one assumed server clock, and intervals are consecutive. No post-entry path or realized result is supplied. Before the impulse, the previous close is 1.10050 and the preceding 14 candles all have O = 1.10050, H = 1.10100, L = 1.10000, C = 1.10050. Every true range is 0.00100, so frozen A = 0.00100. For the first of those prior candles, the preceding close is also 1.10050.
| Candle | Server interval | O | H | L | C |
|---|---|---|---|---|---|
| I1 | 04:00–05:00 | 1.10050 | 1.10170 | 1.10020 | 1.10150 |
| I2 | 05:00–06:00 | 1.10150 | 1.10280 | 1.10130 | 1.10250 |
| I3 | 06:00–07:00 | 1.10250 | 1.10420 | 1.10230 | 1.10400 |
| F1 | 07:00–08:00 | 1.10400 | 1.10410 | 1.10320 | 1.10350 |
| F2 | 08:00–09:00 | 1.10350 | 1.10380 | 1.10290 | 1.10320 |
| F3 | 09:00–10:00 | 1.10320 | 1.10350 | 1.10260 | 1.10290 |
| C | 10:00–11:00 | 1.10290 | 1.10460 | 1.10270 | 1.10430 |
Scroll wide tables horizontally on a narrow screen. O, H, L and C denote open, high, low and close.
At 10:00, the impulse gives P = 1.10420 − 1.10020 = 0.00400, exceeding the required 2 × A = 0.00200. Flag highs, lows and closes fall; FH = 1.10410 and FL = 1.10260. The retracement is 0.00160 / 0.00400 = 40%, within the allowed 50%.
Freeze B = 1.10420, S = 1.10250 and T = 1.10820. At 11:00, the close 1.10430 exceeds the breakout reference and the low 1.10270 stays above the stop. Confirmation passes. Nothing in these observations establishes what happens after entry.
11. Size from the quote and count costs once
Assume the first quote arrives at 11:00:01 with Bid = 1.10428, Ask = 1.10440 and verified age below 2 seconds. Spread is 1.2 pips and the Ask is 2 pips beyond B, within the stated limits. Assume valid protection distances, margin, calendar and rollover checks; these are inputs, not a real broker execution record.
For the illustration only, account equity is USD 10000, contract size 100000 EUR per lot and pip value USD 10 per lot. Allow round-trip commission USD 7 per lot and a total round-trip slippage reserve of 2 pips, or USD 20 per lot. Planned swap is zero because the example exits before assumed rollover; actual swaps must be recorded if incurred.
| Planning measure | Calculation |
|---|---|
| Entry-to-stop distance | 1.10440 − 1.10250 = 0.00190 = 19 pips |
| Entry-to-target distance | 1.10820 − 1.10440 = 0.00380 = 38 pips |
| Planned loss per lot, with costs | 19 × 10 + 7 + 20 = USD 217 |
| Planned net reward per lot | 38 × 10 − 7 − 20 = USD 353 |
The net reward-to-risk ratio is 353 / 217 ≈ 1.6267, above this baseline's illustrative floor of 1.5. Spread is already reflected in the Ask entry versus Bid-side buy exits; adding it again would double-count it. For other contracts or deposit currencies, verify the cash conversion rather than copying this pip value. See the trading-cost guide.
Limit new planned risk to 0.5% of current equity, and combined planned stop risk across open FX positions to 1%. The available budget is the smaller of the per-trade allowance and remaining total allowance. Here existing exposure is zero, so the budget is USD 50. With lot minimum and step both 0.01, 50 / 217 ≈ 0.2304 rounds down to 0.23 lots, planning USD 49.91 risk and USD 81.19 net target reward. These are conditional estimates, not realized P&L or a guaranteed loss limit.
If existing exposure cannot be established, skip. If the smallest valid lot exceeds the budget, skip; do not round up or tighten the structural stop to force a position. The percentages, cost allowances and ratio floor are test inputs, not universal safety levels. The risk-management guide covers portfolio exposure and sizing in more detail.
12. Reject specific failures before opening an order
- Deep pause: changing only the last flag low to
1.10210makes retracement52.5%. It fails before confirmation, regardless of a later rally. - Wick without a close: a confirmation close of
1.10410, or exactly1.10420, fails the strict buy breakout even if its high crossed the reference. - Late price: Ask
1.10480exceeds the permitted maximumB + 0.00050 = 1.10470. Reject it; do not move the target farther away. - Expired opportunity: a first quote at
11:00:16is outside the window. A favorable chart does not renew the same candidate.
13. Understand where a valid flag can fail
A qualifying impulse may be the final burst of an exhausted move. A neat pause can become a reversal, and a breakout can fail immediately. Old support or resistance may obstruct the measured projection. The mechanical pattern and volatility requirement do not remove these risks or prove that the target is reachable.
Keep separately defined approaches separate. The Donchian strategy studies prior channel extremes, while the Inside Bar strategy fixes a mother-candle range. This flag baseline requires its own preceding impulse and a multi-candle countertrend pause. Do not substitute another method's trigger after this one fails.
14. Test the whole timed specification
Record every eligible sequence, rejected quote, skipped trade and failed request. Reconstruct the frozen reference and levels using only information then available. A Bid-only H1 chart cannot establish intrabar Ask execution, spread, slippage or the order in which exits occurred. Use sufficiently detailed quote data and appropriate modeling.
If available bars contain both stop and target without a known sequence, use a declared stop-first assumption for a conservative bar-based test and label the case ambiguous. Verify with finer data before treating the result as executable evidence. Include actual commissions, swaps and time exits; the synthetic example here supplies no backtest statistics.
Keep development and later evaluation periods separate. Changing settings after inspecting the later period makes it part of development. Compare nearby parameters and ranging or transitional markets, retain every tried variant and then observe new data on demo. Follow the backtesting process and overfitting guide; a good historical result does not guarantee live performance.
15. Keep an EA journal that can reconstruct the decision
Log the candidate identifier, source-bar times and prices, frozen volatility value, pattern checks, boundaries, confirmation, first quote and its age, costs, volume calculation, rejection reason and order response. Track the broker-confirmed position independently. This article is a trading specification to implement and test, not a supplied or validated EA.
16. Checklist before the single entry attempt
- Are the impulse, flag and confirmation consecutive completed candles from the intended feed?
- Was the positive volatility reference frozen before the impulse, with the correct averaging method?
- Did every direction, retracement and strict closing comparison pass without redrawing levels?
- Is the first quote fresh, inside the time window and within spread and chase limits?
- Do fixed protection, calendar, rollover, margin, net ratio, lot size and total exposure all pass?
- Is the identifier unused, with no conflicting position or uncertain prior request?
- Are the fixed exits, time exit and breach-recovery procedure ready before sending the request?
17. Flag continuation questions
Must a flag always contain three candles?
No. That duration belongs to this narrow teaching baseline. Conventional flags have broader forms and durations. Changing the count or geometry creates a different variant that must be specified and evaluated.
Why require a close beyond a horizontal flag boundary?
It gives this version a fixed, auditable reference without redrawing a sloping line later. A trendline breakout or intrabar stop-entry version would have different timing and execution rules.
Can I enter at the confirmation candle's close?
The close becomes known after that candle completes. The next executable quote can differ, and a buy uses Ask. Apply the quote window, costs and price limits rather than assuming a historical closing fill.
Is the measured target a prediction?
No. It is a predefined objective used to evaluate available room and plan exits. It can remain unfilled, while a stop or time exit closes the position first.
Can I widen the stop if the required lot is too small?
No. This baseline freezes the structural stop and rounds the affordable volume down. If no valid volume fits, it skips the trade. Widening a stop after entry changes both the method and exposure.
Does a failed buy flag justify selling?
No. A sell needs the complete mirrored impulse, flag, confirmation and execution checks. Failure or missing data on one side is not an opposite signal.
18. Scope, sources and interpretation
Flag terminology is conventional; the precise candle counts, thresholds, timing, protection and sizing rules are authored here for reproducible evaluation. Platform execution requirements are grounded in the official MQL4 order documentation. No win rate, return, optimized setting or profitable edge is claimed.
Forex and leveraged trading involve substantial risk. Educational examples are not investment advice. Simulated or past results do not guarantee future performance.