ForexBestRobots.comCompare EAs →
EN

Forex swing trading · Strategy 2

1-2-3 Reversal Forex Swing Strategy: Confirmed H4 Pivots and First Break

A testable 1-2-3 swing model: confirm H4 pivots without future data, freeze point 3, trade one later close-based break and include costs, expiry and time exits.

Two bars of confirmation separate a drawn pivot from information actually available to the model. Fictional 1-2-3 research example, not measured returns.
Two bars of confirmation separate a drawn pivot from information actually available to the model. Fictional 1-2-3 research example, not measured returns.

A pivot drawn on an old candle was not necessarily known on that candle. This research model makes the confirmation delay explicit, freezes the first qualifying three-point structure and permits one later breakout opportunity. The worked example follows complete H4 bars through quotation, sizing and a multi-session exit.

1. Define the research question before identifying the shape

A BUY candidate consists of a low P1, a later high P2 and a higher low P3. SELL mirrors these points. Here the label describes a local reversal hypothesis, not proof that a larger trend has reversed. The market-structure guide explains the wider context. Every rule and number below is a fixed teaching assumption, not an optimised live recommendation.

The entry depends on confirmed turning points and a later break, rather than a visual resemblance alone. Compare the double-top and double-bottom strategy for its separate model. This specification does not require similar extremes, RSI divergence or a pre-existing price zone. No historical profitability has been established.

2. Freeze the contract, calendar and opportunity budget

Assume EUR/USD, an EUR 100000 standard contract, a USD account, point and tick size 0.00001, and 1 pip = 0.0001: USD 10 per pip per lot. H4 intervals start at 21:00, 01:00, 05:00, 09:00, 13:00 and 17:00 UTC; D1 ends at 21:00 UTC. These are declared summer-dataset conventions, not universal MT4 settings. Map historical server offsets with the daily-candle protocol.

Reset the unarmed search at the calendar week opening, here 2026-08-09 21:00 UTC, with all pivot centres and their left-hand bars inside that week. One qualifying candidate consumes that week's budget, even if it never enters. Allow at most one model position and one entry request; open or uncertain exposure blocks new entry. Known session/holiday schedules are required in advance, not future prices. Missing required history disables the week.

Parameter groupFrozen assumptionInterpretation
Instrument and accountEUR/USD · USDOne configured symbol and account currency
Contract and units100000 EUR · 0.00001 · 0.0001 · USD 10Contract, point/tick, pip, pip value per lot
Clock conventionH4: 21/01/05/09/13/17 UTC · D1: 21:00 UTCDeclared calendar, with historical offsets verified
Pivot and spacing2 + 2 · 3–12 H4Strict left/right test and adjacent centre spacing
Pattern geometry40–200 pip · 25–75% · 10 pipLeg width, retracement, minimum P1/P3 difference
Signal window3 H4 · 2.0 pip · 20.0 pipLater closes, strict buffer, maximum extension
Decision timing60 s · 0–2 sBoundary-based expiry and permitted quote age
Quote and distance gates1.5 pip · 3.0 pip · 20–120 pipMaximum spread/drift and allowed price risk
Protection and reward2.0 pip · 2.0R · 1.5Stop buffer, price target, minimum planned net ratio
Risk and lot step0.5% · 0.01 lotEquity budget; round volume down
Planned costs0.6 + 1.0 + 3.0 pipCommission, combined adverse fills, holding reserve
Holding limits3 D1 · 20:45 UTCSubsequent boundaries or Friday cutoff, whichever is first
Opportunity limits1 · 1 · 1Candidate per week, model position, entry request

3. Confirm each pivot with two completed bars on each side

For centre k, a low must be strictly below the lows of k−2, k−1, k+1 and k+2; a high must be strictly above their highs. Equality fails. Exclude a centre that qualifies as both a high and low. A pivot becomes usable only after bar k+2 has closed and its required history is valid. MT4 index 0 is forming; a visually marked centre is not its availability time.

Two right-hand H4 bars mean eight hours after the centre bar closes only when the example's intervals are contiguous. Breaks can make wall-clock delay longer. Process centres in chronological confirmation order. Append an opposite-type pivot. For consecutive pivots of one type, keep the more extreme one; retain the earlier on equal price. Replacement is allowed only before a pattern is armed, never retrospectively after a decision.

Figure 1. A strict H4 pivot at k uses k−2, k−1, k+1 and k+2. Both right-hand bars must be complete and valid. Equality and a centre qualifying as both types are excluded; index 0 is still forming.
Figure 1. A strict H4 pivot at k uses k−2, k−1, k+1 and k+2. Both right-hand bars must be complete and valid. Equality and a centre qualifying as both types are excluded; index 0 is still forming. On small screens, scroll the diagram horizontally.

4. Select and freeze the first qualifying three-point structure

Use the latest three points in that alternating stream. For BUY they must be low–high–low with P3 at least 10 pips above P1; SELL is high–low–high with P3 at least 10 pips below P1. Require a P1–P2 price leg of 40–200 pips, a P2-to-P3 retracement of 25–75% of that leg and 3–12 H4 centre spacings between each adjacent pair, all bounds included.

For the local lead-in, BUY P1 also needs declining lows over its two left bars into the centre; SELL needs rising highs. When the first geometry-qualified P3 becomes known, mark the week's candidate budget consumed before other rejection checks. Freeze all three point identities and prices. Further pivots cannot improve or replace that candidate. The swing-trading guide supplies the holding-risk context.

Figure 2. BUY centres b2, b5 and b8 give P1 1.10000, P2 1.10800 and P3 1.10400: leg 80 pips, retracement 40 pips or 50%, with 3 H4 centre spacings per leg. Freeze the original P3.
Figure 2. BUY centres b2, b5 and b8 give P1 1.10000, P2 1.10800 and P3 1.10400: leg 80 pips, retracement 40 pips or 50%, with 3 H4 centre spacings per leg. Freeze the original P3. On small screens, scroll the diagram horizontally.

5. Walk a complete fictional H4 sequence

The table supplies the invented Bid OHLC inputs, not downloaded historical evidence. Its centres are P1 at b2, P2 at b5 and P3 at b8. The five-bar tests make them available after b4, b7 and b10, respectively. P1 = 1.10000, P2 = 1.10800 and P3 = 1.10400 give an 80-pip leg, a 40-pip pullback and 50% retracement. Each centre spacing is 3 bars.

P1 is known at 2026-08-10 17:00 UTC, P2 at 2026-08-11 05:00, and P3 at 2026-08-11 17:00, subject to actual observation delay. The first two bars warm up the search; they cannot be pivot centres here. Labels b0–b12 run forward in time, not as MT4 shift indexes. Preserve all input bars, including those that never become pivots. A later annotation must not move any confirmation backward.

BarInterval UTC [start, end)OpenHighLowCloseMeaning
b02026-08-09 21:00 → 2026-08-10 01:001.105001.106001.103001.10400Warm-up
b12026-08-10 01:00 → 2026-08-10 05:001.104001.104501.101501.10200Warm-up
b22026-08-10 05:00 → 2026-08-10 09:001.102001.103001.100001.10150P1 centre
b32026-08-10 09:00 → 2026-08-10 13:001.101501.104001.100801.10300Right-hand bar
b42026-08-10 13:00 → 2026-08-10 17:001.103001.106001.102001.10550P1 confirmation ends
b52026-08-10 17:00 → 2026-08-10 21:001.105501.108001.105001.10700P2 centre
b62026-08-10 21:00 → 2026-08-11 01:001.107001.107501.105501.10600Right-hand bar
b72026-08-11 01:00 → 2026-08-11 05:001.106001.106501.104801.10500P2 confirmation ends
b82026-08-11 05:00 → 2026-08-11 09:001.105001.106001.104001.10450P3 centre
b92026-08-11 09:00 → 2026-08-11 13:001.104501.106501.104401.10600Right-hand bar
b102026-08-11 13:00 → 2026-08-11 17:001.106001.107801.105501.10750P3 confirmation ends
b112026-08-11 17:00 → 2026-08-11 21:001.107501.108301.106801.10820Window close: equality, no trigger
b122026-08-11 21:00 → 2026-08-12 01:001.108201.108701.107501.10840Window close: first strict break

6. Arm only after point 3 is actually available

Suppose b10's completed data become valid at 2026-08-11 17:00:04 UTC. Only then can P3 arm the candidate. Its three future signal closes are 2026-08-11 21:00, 2026-08-12 01:00 and 2026-08-12 05:00 UTC. The scheduled intervals are fixed then; a restart does not extend them. No entry is made merely because the third pivot has appeared.

Check all completed closes after the P2 centre through the P3 confirmation bar. If any already broke the buffered P2 threshold, reject this candidate: that first break occurred before P3 was known. This includes a break on the confirmation bar itself. If the history or ordering cannot be verified, disable the week rather than reconstruct an earlier opportunity from later downloads.

Figure 3. P3 centre 2026-08-11 05:00 is confirmed after b10 at 17:00, observed at 17:00:04. Signal closes are 2026-08-11 21:00, 2026-08-12 01:00 and 2026-08-12 05:00 UTC; centre time is not availability time.
Figure 3. P3 centre 2026-08-11 05:00 is confirmed after b10 at 17:00, observed at 17:00:04. Signal closes are 2026-08-11 21:00, 2026-08-12 01:00 and 2026-08-12 05:00 UTC; centre time is not availability time. On small screens, scroll the diagram horizontally.

7. Keep the original point 3 as the invalidation reference

Before entry, a completed post-P3 bar with Bid low ≤ P3 invalidates BUY; Bid high ≥ P3 invalidates SELL. Check all such bars through the signal bar, and also reject if the first entry quote has already invalidated that Bid reference. Equality invalidates. If a signal bar both touches P3 and closes beyond P2, invalidation wins and no entry is sent. Do not infer a favourable intrabar ordering from OHLC.

This is cancellation of an unfilled candidate. Once a position is filled, its fixed stop and exit lifecycle apply; the original P3 is not replaced by a later, more convenient pivot. An invalidated, expired or otherwise rejected candidate still consumes the week's budget. Record the reason rather than searching for a replacement pattern that week.

Figure 4. Reject a strict P2 break before arming, or a post-P3 BUY low ≤ P3. A bar that invalidates P3 and closes beyond P2 is rejected. The candidate budget is consumed; no replacement that week.
Figure 4. Reject a strict P2 break before arming, or a post-P3 BUY low ≤ P3. A bar that invalidates P3 and closes beyond P2 is rejected. The candidate budget is consumed; no replacement that week. On small screens, scroll the diagram horizontally.

8. Use the first strict break inside the fixed signal window

Let C be a completed Bid H4 close after arming. BUY needs C > P2 + 2.0 pips; SELL needs C < P2 − 2.0 pips. Intrabar wicks alone do not qualify. In the example the threshold is 1.10820. The first window close equals 1.10820, so it does not trigger. The second, at 2026-08-12 01:00 UTC, is 1.10840 and is the first strict break, extending 4 pips beyond P2.

Reject a first strict break more than 20.0 pips beyond P2; do not replace it with a later close. Entry signals are allowed only Monday through Thursday by the UTC close timestamp. A first break outside those days consumes the candidate. If none occurs at the three specified closes, expire it. Each qualifying signal has its own fixed 60-second quote deadline measured from its scheduled close, including a signal at the third close.

9. Evaluate one subsequent quote and verify execution eligibility

Suppose the signal history is valid at 01:00:04 and the first later quote arrives at 01:00:05: Bid 1.10850 / Ask 1.10860. BUY uses Ask, giving spread 1.0 pip and absolute drift from C of 2.0 pips. Require spread ≤ 1.5 pips, drift ≤ 3.0 pips, quote age from 0 to 2 seconds against a verified clock, and quote time strictly before 01:01:00. Equality at the deadline is late.

Apply these gates to that one quote; rejection permits neither quote shopping nor another entry request. Check tick rounding, minimum and step, margin, permissions, server stop distances and available account risk. MODE_STOPLEVEL equal to zero does not guarantee acceptance. Persist the candidate and order state across restarts. An uncertain response requires account reconciliation before further action, never a blind resend.

Figure 5. Signal C 1.10840; first quote at 01:00:05 is Bid 1.10850 / Ask 1.10860. Spread 1.0 pip ≤ 1.5 and drift 2.0 pips ≤ 3.0. Expiry is 01:01:00, excluded; one quote and one entry request.
Figure 5. Signal C 1.10840; first quote at 01:00:05 is Bid 1.10850 / Ask 1.10860. Spread 1.0 pip ≤ 1.5 and drift 2.0 pips ≤ 3.0. Expiry is 01:01:00, excluded; one quote and one entry request. On small screens, scroll the diagram horizontally.

10. Freeze the original stop and size from all planned costs

For BUY freeze E = 1.10860 and S = P3 − 2.0 pips = 1.10380, giving 48 pips of price risk. Require that distance to fall within 20–120 pips. Add round-trip commission 0.6 pip, a combined adverse entry/exit allowance 1.0 pip (0.5 for entry and 0.5 for exit) and a holding-cost allowance 3.0 pips: 48 + 0.6 + 1.0 + 3.0 = 52.6 pips, or USD 526 per lot. Do not add the already included spread again.

With USD 10000 equity and a 0.5% budget, planned risk is USD 50. Raw volume is 50 / 526 ≈ 0.095057 lot. A 0.01 minimum and step give 0.09 lot after rounding down, planning USD 47.34 loss. Skip if minimum size or margin prevents the plan. The position-sizing guide explains the units. Gaps, changed financing and failed exits can exceed this allowance; it is not a loss cap.

Figure 6. BUY E 1.10860 and S 1.10380 give 48 pips risk; 48 + 0.6 + 1.0 + 3.0 = 52.6 pips, USD 526 per lot. USD 10000 × 0.5% = USD 50; 0.095057 rounds down at 0.01 to 0.09 lot, planning USD 47.34.
Figure 6. BUY E 1.10860 and S 1.10380 give 48 pips risk; 48 + 0.6 + 1.0 + 3.0 = 52.6 pips, USD 526 per lot. USD 10000 × 0.5% = USD 50; 0.095057 rounds down at 0.01 to 0.09 lot, planning USD 47.34. On small screens, scroll the diagram horizontally.

11. Fix the target before the request and verify the actual fill

Set T = E + 2 × 48 pips = 1.11820 before requesting entry. S and T stay fixed: no trailing, break-even move, partial close, averaging or opposite hedge. The gross target distance is 96 pips. After the same 0.6 + 1.0 + 3.0-pip planning deductions, net planned reward is 91.4 pips; 91.4 / 52.6 ≈ 1.738, above the fixed minimum 1.5.

The price target is 2.0R, not a promise of net 2.0R. After a fill, adverse entry slippage beyond 0.5 pip fails the model. Use the actual entry price and only the remaining 0.5-pip exit allowance, with commission and funding, to recheck distance, budget and the net-ratio minimum without moving S or T. A violating fill or unverified protection enters a real emergency-close state; do not erase it from results. No second entry is earned. The weekly-range strategy provides a separate reference model, not an additional entry filter here.

12. Reconcile a fictional closed BUY once

Assume an actual fill at Ask 1.10860 for 0.09 lot and an exit at Bid 1.11820 on 2026-08-13 at 10:00 UTC. The 96-pip price gain is USD 86.40. With actual round-trip commission −USD 0.54 and total booked swap −USD 1.08, net is 86.40 − 0.54 − 1.08 = USD 84.78. These fictional fills and fees do not demonstrate performance.

Spread is already in the Ask-to-Bid fills. Unused adverse-fill and funding allowances are not additional charges. In MT4, OrderProfit excludes swap and commission, so reconcile signed booked components once. The swap and rollover guide explains why actual contract calendars and rates, rather than a universal daily multiplier, determine financing.

Booked itemUSDTreatment
Actual fill-to-fill price gain+86.4096 pips at 0.09 lot
Round-trip commission−0.54Actual signed charge
Booked swap−1.08Actual cumulative financing, counted once
Realised net result+84.7886.40 − 0.54 − 1.08
Unused planning reserves0.00No additional booked charge

13. Use the first applicable price or time exit

If still open, exit on stop, target, the third subsequent D1 boundary after the actual entry, or the Friday cutoff, whichever occurs first. For entry Wednesday 2026-08-12 01:00:05, the D1 boundaries are 2026-08-12 21:00, 2026-08-13 21:00 and 2026-08-14 21:00 UTC. Friday 2026-08-14 20:45 UTC comes before that third boundary. An earlier announced weekly close moves the cutoff to 15 minutes before it.

A time condition requests closure at the first tradable quote at or after its deadline; it does not guarantee a fill at that timestamp. If no quote or confirmed exit is available, retain the close-due state and continue controlled, reconciled exit handling until flat is verified. Block new entry while exposure is unresolved. A restart or new week cannot erase an old position, its holding age or a failed weekend exit.

Figure 7. After entry 2026-08-12 01:00:05, the three D1 boundaries are 2026-08-12 21:00, 2026-08-13 21:00 and 2026-08-14 21:00 UTC. Friday 2026-08-14 20:45 is earlier than the third; actual closure still requires a tradable quote.
Figure 7. After entry 2026-08-12 01:00:05, the three D1 boundaries are 2026-08-12 21:00, 2026-08-13 21:00 and 2026-08-14 21:00 UTC. Friday 2026-08-14 20:45 is earlier than the third; actual closure still requires a tradable quote. On small screens, scroll the diagram horizontally.

14. Mirror SELL with the correct price sides

In a separate alternative scenario, P1 = 1.11000, P2 = 1.10200 and P3 = 1.10600 give the same 80-pip leg and 50% retracement. A later Bid close C = 1.10160 is below the strict threshold 1.10180. The first later quote Bid 1.10140 / Ask 1.10150 gives spread 1.0 pip and absolute drift 2.0 pips. SELL enters at Bid 1.10140.

Freeze S = P3 + 2.0 pips = 1.10620 and T = 1.10140 − 2 × 48 pips = 1.09180. Price risk is 48 pips and target distance 96; the same costs, volume and lifecycle gates apply. Pattern pivots and pre-entry invalidation use Bid, but SELL exits and stop/target execution use Ask. Keep their account record separate. This alternative does not permit simultaneous BUY and SELL positions.

Figure 8. Separate SELL: P1 1.11000, P2 1.10200, P3 1.10600; C 1.10160 < 1.10180. Bid entry 1.10140 / Ask 1.10150, S 1.10620, T 1.09180, price risk 48 pips and target 96. SELL exits use Ask.
Figure 8. Separate SELL: P1 1.11000, P2 1.10200, P3 1.10600; C 1.10160 < 1.10180. Bid entry 1.10140 / Ask 1.10150, S 1.10620, T 1.09180, price risk 48 pips and target 96. SELL exits use Ask. On small screens, scroll the diagram horizontally.

15. Test causal availability and rejected paths

Rebuild the fixed H4 calendar, strict five-bar pivots, same-type replacement and first-candidate selection in chronological order. Keep missing bars, rejected shapes, pre-arm breaks, P3 invalidations, equal closes, late quotes, failed requests and close-due exposure in the record. A completed-bar simulator must not fill at the historical close that triggered the decision.

When a held bar touches both stop and target, OHLC cannot establish the sequence. Use sufficient quote data or explicitly label a conservative unresolved-path rule. Include commissions, actual or declared financing, adverse fills, restarts and time-zone changes. Keep development, untouched later testing and forward observation separate. Neither a small sample nor a positive gross result establishes a viable model.

16. Keep a reproducible pattern and lifecycle checklist

Verify the week/calendar, complete pivot windows, confirmation times, alternating stream, geometry, original P3, pre-arm history, three-close window and first strict break. Then verify the first subsequent quote, fixed expiry, cost/account gates, volume, S/T and any actual fill. During the hold, track booked costs and the earliest applicable exit separately from the pattern drawing.

Afterward reconcile every real and rejected event. Changing a pivot rule, threshold or clock creates a new version requiring fresh validation. The objective is a testable lifecycle, not an assertion that a recognisable shape is safe or profitable. No statistics are invented, and these examples do not show that any commercial EA on this site implements the model or would obtain its illustrated result.

Frequently asked questions

When is a point actually confirmed?

Only after the two H4 bars to its right have closed and their required history is valid. In the example, the P3 centre starts at 2026-08-11 05:00, but confirmation ends at 17:00 and becomes observable at 17:00:04. Drawing the point back on its centre does not make it available earlier.

Can a break during point 3 confirmation be traded later?

No. A strict buffered P2 break through the confirmation bar occurred before P3 was known. This candidate is rejected and its weekly budget remains consumed; a later, better-looking break is not a replacement.

Does a close exactly at the entry threshold count?

No. BUY needs C > 1.10820 in the example. The equal first close does not trigger; 1.10840 is the first strict break. A genuine first break beyond the 20.0-pip extension cap consumes the opportunity instead of allowing another close.

Can point 3 be moved after a better pivot appears?

No. The candidate keeps its original point 3. Before entry, a BUY Bid low at or below P3 cancels it; SELL is mirrored. After a fill, use the fixed S/T and actual exit rules, not a redrawn pattern.

Why does the example use 0.09 lot?

USD 50 divided by USD 526 planned loss per lot is about 0.095057 lot. Rounding down to the 0.01 step gives 0.09 lot and USD 47.34 planned loss. This is a budget allowance, not protection against every gap or failed exit.

Does the Friday cutoff guarantee no weekend exposure?

No. It triggers an early close attempt. If quotes or execution fail, preserve the real position and close-due state, reconcile the account and keep new entry blocked until resolved. Do not book a fictional Friday fill.

Sources and educational notes

MetaQuotes documents completed versus forming bars, asynchronous history access and market-order price/stop requirements. FXOpen material was consulted for general three-point pattern background only. The pivot selection, thresholds, weekly opportunity limit and lifecycle below are an original educational research specification. They are not broker execution guarantees or evidence of profitability. All dates, bars, quotes, costs and results are fictional. No backtest or commercial-EA implementation is claimed.

Educational research model. Bars, prices, calendars, settings and results are fictional. Forex trading involves risk. No backtest, guaranteed execution, maximum loss or future performance is established.