Two similar peaks can be a double top, part of a range or a pause in a continuing rise. Two similar troughs create the same uncertainty in reverse. This strategy turns one narrow interpretation into a testable sequence rather than treating the outline as an instruction. Begin with the chart-pattern guide for the distinction between a candidate, a completed break and a later outcome. Here, every threshold is a declared research choice, not an established optimal setting or a current trading recommendation.
1. Define the hypothesis and the data
The hypothesis is that a break of the intervening swing may identify a reversal after a prior move and two nearby extremes. The double bottom provides the BUY case; the double top provides the SELL case. The strategy deliberately sacrifices early entries to make recognition time observable. Waiting can also produce a worse price or no trade, and it does not establish positive expectancy.
Use ordinary EURUSD H1 Bid bars from one declared feed, together with the corresponding Bid/Ask quote history for execution checks. Set pip size to 0.0001 for this specification. Bar indices increase forward in time; O, H, L and C mean open, high, low and close. All recognition uses completed bars. In MT4, shift 0 is unfinished and shift 1 is the latest completed bar; do not confuse those shifts with our forward indices.
Require consecutive hourly timestamps for every observation used by a candidate, including its preceding context and confirmation bars. Any timestamp gap resets the pivot window and armed candidate, including a weekend gap. Missing quotes are unavailable data, not a price that can be invented. Record the provider, server timezone, symbol specification and data exclusions so that another researcher can reproduce the same sample.
2. Confirm pivots before using them
A low pivot at bar j has a low strictly below the lows at j−2, j−1, j+1 and j+2. A high pivot is strictly above the corresponding four highs. Equality on either side rejects that pivot type. The event becomes known only at the close of j+2. A mark drawn back on bar j does not make it usable at that earlier time. This strict definition is our detector; it is not a claim that every platform fractal indicator handles ties identically.
Process newly confirmed events in chronological order without replacing earlier same-type pivots with more attractive ones. At each event, inspect only the latest three events. They must alternate low–high–low for BUY or high–low–high for SELL; label their original bar indices a, m and b. A bar that satisfies both pivot definitions is ambiguous: clear the event window and cancel any armed candidate. Do not select a different triplet after seeing a favourable breakout.
While a position is open, record events but do not arm new candidates or queue them for later. When flat, every new pivot first cancels an existing armed candidate, then permits evaluation of the new latest triplet. Each triplet has a unique identity and may receive only one entry attempt. The confirmed-pivot divergence strategy uses a different hypothesis; sharing a pivot definition does not make its momentum conditions part of this strategy.
3. Require similarity, separation and prior movement
Measure spacing by index differences: b−a must be from 8 to 32, inclusive, while m−a and b−m must each be at least 3. For BUY, the absolute difference between L[a] and L[b] must be at most 3 pips. Set N = H[m] and define conservative pattern height as N minus the higher of the two lows; require at least 12 pips. For SELL, compare H[a] and H[b] with the same tolerance, set N = L[m], and require the lower high minus N to be at least 12 pips.
The preceding move is another explicit filter. For BUY, C[a−8] minus C[a−1] must be at least the defined pattern height; for SELL, C[a−1] minus C[a−8] must be at least that height. These closes precede the first extreme. This is a simple endpoint measure, not proof of a smooth trend or any participant’s intent. Keep rejected cases and test sensitivity to these choices instead of presenting the most attractive shapes as evidence.
4. Freeze the neckline and start a finite clock
At c = b+2, a qualifying triplet fixes horizontal neckline N and stop reference S. For BUY, S is the lower of L[a] and L[b] minus 2 pips. For SELL, S is the higher of H[a] and H[b] plus 2 pips. Do not move these references when later bars arrive. Reject an already completed break: from m+1 through c, no BUY Bid close may exceed N plus 2 pips, and no SELL Bid close may fall below N minus 2 pips.
Also reject the candidate if, from b+1 through c, a BUY Bid low has touched or crossed S, or a SELL Ask high has touched or crossed S. A qualifying candidate becomes armed after c closes; its breakout window is c+1 through c+6, inclusive. No entry is allowed on c itself. If nothing qualifies by the close of c+6, expire the candidate. A fresh confirmed pivot, ambiguous event or data gap cancels it sooner.
5. BUY: a completed close above the fixed gate
During the armed window, first check whether the completed bar’s Bid low is at or below S. If so, cancel even if its close is above the neckline. If the candidate survives and no new pivot has cancelled it, the first completed Bid close strictly above N plus 2 pips is the BUY signal. A wick above the gate is insufficient; equality does not qualify. The stop and cancellation checks have priority over the closing break.
Consume the candidate at that first qualifying break and inspect only the first subsequent Bid/Ask quote. It must arrive within 60 seconds of the signal-bar close. The live Bid must still be strictly above N plus 2 pips. The spread must be no more than 1.5 pips, and Ask may be no more than 5 pips above the signal close. A lower Ask is permitted if every other check passes. A failure means skip, without waiting for a later improved quote or another close from the same triplet.
6. SELL: mirror the structure, keep the price sides
For an armed double top, cancel if the completed bar’s Ask high is at or above S. Otherwise the first completed Bid close strictly below N minus 2 pips supplies the SELL signal. The first subsequent quote must arrive within 60 seconds; its Bid must still be strictly below the gate. Spread must be no more than 1.5 pips, and the signal close minus current Bid must be no more than 5 pips. A higher Bid can be acceptable while it remains below the gate.
SELL opens on Bid and closes on Ask; BUY opens on Ask and closes on Bid. Therefore a Bid-only history cannot verify the SELL Ask-stop condition or recreate all exits. Do not mirror a BUY chart by silently using Bid for every SELL operation. This strategy has no retest requirement and no entry at the second extreme. The second-test confirmation strategy has its own sequence and should be tested separately.
7. Check the quote, broker constraints and actual fill
Before sending an order, use the available entry quote to require a positive stop distance between 8 and 60 pips, inclusive. Verify tick alignment, permitted volume, margin, commissions and broker stop-distance restrictions. An invalid or unknown requirement means skip; do not widen S just to make an order acceptable. The first quote can pass the pattern gate yet still fail these checks. A market order request is not evidence of an actual fill.
Size from that quote and the declared cost allowance, then retain the actual fill E and recheck its risk. Keep S fixed and calculate the target from E. If a fill makes the budget or stop-distance limit invalid, or protective orders cannot be established, request an immediate close at the available quote and log the real trade and costs. Do not relabel it as a skipped trade. Rejections, emergency closes, latency and slippage belong in the results.
8. Fix the exits and round position size down
For BUY, price risk is E minus S and target T is E plus twice that distance. For SELL, price risk is S minus E and T is E minus twice that distance. BUY stop and target use Bid; SELL stop and target use Ask. Keep both fixed, with no trailing stop or break-even move. If neither is reached, request an exit after 12 completed H1 bars, counting the bar containing entry as the first. Use the first quote after that close. Actual execution can be worse than the reference.
Use an illustrative risk budget of 0.5% of current equity, with one open position for this rule set. Divide the cash budget by estimated loss per lot, including the quote-to-stop distance, round-trip commission and adverse-slippage allowance; round down to the allowed lot step. If the result is below minimum volume, skip. A loss allowance is a planning assumption, not a guaranteed maximum. Check combined exposure to other systems separately using the risk-management guide.
Pips, platform points and minimum price ticks are different units. Derive money values from the actual symbol contract and account currency rather than assuming USD 10 per pip everywhere. When converting a distance with tick value, express the distance and tick size in matching price units. Spread is already reflected when entry and exit use the correct Ask/Bid sides; adding the same spread again would double count it. Add swaps or other charges when applicable. See the pip guide and position-sizing guide.
9. Worked BUY: geometry, execution and cash risk
The fictional candidate has a = 20, m = 26 and b = 32, so both legs have 6 bars and the total separation is 12. The lows are 1.09800 and 1.09820, only 2 pips apart; N = 1.10100 gives conservative height 28 pips. C[a−8] = 1.10500 and C[a−1] = 1.10100 supply a 40-pip preceding decline. Assume the strict pivot, no-earlier-break, data and stop checks pass. The second low becomes available only at c = 34.
At bar t = 35, suppose the Bid low is 1.09920 and the completed Bid close is 1.10130. The fixed BUY gate is 1.10120, so the close qualifies and the low remains above S = 1.09780. The first subsequent quote arrives 2 seconds later at Bid 1.10140 and Ask 1.10150. Spread is 1 pip and adverse chase from the signal close is 2 pips. Assume an actual fill at that Ask, E = 1.10150, with the stated protection and broker constraints accepted.
The stop distance is 37 pips and the fixed target is 1.10890, 74 pips above entry. In a USD 10000 account, a 0.5% budget is USD 50. Assume USD 10 per pip per 1 lot, USD 7 round-trip commission per lot and an additional total adverse-slippage allowance of 2 pips for each outcome. Estimated loss per lot is USD 397. Rounding down to a 0.01 lot step gives 0.12 lot and modelled loss USD 47.64.
| Calculation | Declared value | Meaning |
|---|---|---|
| Closing gate | 1.10120 | Bid close must be strictly above |
| Fixed stop | 1.09780 | Lower low minus buffer |
| Price target | 1.10890 | Twice the actual entry-to-stop distance |
| Cash budget | USD 50 | Equity multiplied by the risk fraction |
| Modelled loss per lot | USD 397 | Price distance plus commission and allowance |
| Rounded volume | 0.12 lot | Rounded down; never round risk up |
| Modelled loss | USD 47.64 | Conditional allowance, not a loss cap |
| Modelled net target outcome | USD 85.56 | Conditional result, not a forecast |
At the target reference, gross price gain is USD 88.80 for that volume. Deducting USD 0.84 commission and USD 2.40 slippage allowance gives USD 85.56. The price-distance reward/risk is 2, but the net cash ratio is lower. The same allowance is used once in each alternative outcome, not twice within a trade. This example assumes no swap; include it if relevant. Neither stop nor target is a guaranteed fill, and the figures are not expected returns.
10. Test the sequence, including the failures
Replay events in time order and store both pivot-bar time and confirmation time. Keep the triplet identity, frozen levels, every cancellation reason, signal close, first subsequent quote, spread, requested order, actual fill, volume, costs and exit cause. A final chart alone cannot prove that those inputs were available. The formulas below summarise the declared rules; they are not a complete EA implementation.
Use historical Bid/Ask quotes to resolve stop/target order and SELL invalidation. If both exits appear inside one OHLC bar and their order is unknown, mark the case ambiguous and report a separate conservative stop-first sensitivity result. Do not choose the favourable ordering. A time exit delayed by missing quotes must use the next real quote and retain the delay. The backtesting guide and execution-cost guide explain the related data issues.
Freeze this specification before evaluating untouched periods. Report all attempted parameter variants, eligible candidates, cancellations, quote failures, emergency closes and completed trades, alongside net expectancy, drawdown, turnover and sample uncertainty. Examine nearby tolerances and different providers without selecting only the winners. There is no performance study here. A recognisable shape, a high win rate or a target twice the stop does not establish profitability after costs.
Common implementation errors are using b before b+2 closes, replacing the middle pivot after arming, counting equality as a strict break, entering at a historical signal close, retrying after a failed first quote and treating minimum-volume rounding as permission to exceed the budget. A double top can continue higher and a double bottom can continue lower. News, gaps, widening spreads and execution failures can overwhelm a small nominal risk budget.
Optional: exact indexing, gates and sizing equations
low_pivot(j) = L[j] < min(L[j-2], L[j-1], L[j+1], L[j+2])
high_pivot(j) = H[j] > max(H[j-2], H[j-1], H[j+1], H[j+2])
pivot_known_at(j) = close_time[j+2]
c = b + 2; eligible_break_bars = [c+1, c+6]
buy_break(t) = C_Bid[t] > N + 2*pip
sell_break(t) = C_Bid[t] < N - 2*pip
buy_stop = min(L[a], L[b]) - 2*pip
sell_stop = max(H[a], H[b]) + 2*pip
buy_target = E + 2*(E-S); sell_target = E - 2*(S-E)
cash_budget = equity * 0.005
loss_per_lot = stop_pips * pip_value_per_lot + commission_per_lot + slippage_pips * pip_value_per_lot
lots = floor((cash_budget / loss_per_lot) / lot_step) * lot_step
11. Questions about the double-pattern strategy
Can I enter as soon as the second top or bottom appears?
That would be a different rule. This detector needs the second extreme’s right-side bars to close, then waits for a later closing break. Its delay is part of the hypothesis and must remain in the backtest. An earlier entry cannot borrow confirmation that was unavailable at that time.
What if the neckline breaks before the pivot is confirmed?
This specification rejects that triplet as already completed. It does not enter late on the confirmation bar or pretend that the second pivot was known earlier. A different policy could be researched separately, with its own results and complete execution rules.
Does a failed first quote allow another attempt?
No. The first qualifying close consumes the candidate. A late, expensive, invalid or unavailable first quote means skip and log the reason. A later better price or another breakout does not revive the same triplet. A new candidate needs a newly confirmed eligible triplet while flat.
Does a target twice the stop imply a profitable strategy?
No. The price-distance ratio omits win frequency, costs, time exits, gaps and execution failures. The cash ratio after costs is lower in the worked example. Profitability requires evidence from the complete sequence on suitable data, including unsuccessful and ambiguous cases.
12. Sources and declared scope
Primary references: IG Academy on double tops, double bottoms and necklines; MetaQuotes on timeseries indexing, symbol, tick and volume properties, and market-order prices and stop restrictions. Checked 2026-10-19. The strict pivot definition, thresholds, clocks, entry policy, exits and examples are our declared educational construction. The sources do not validate its profitability or prescribe these parameter values.
Forex and leveraged trading involve substantial risk. This article is educational and is not investment advice. Stops, confirmation rules and cost allowances do not guarantee execution, limited losses or profit. All prices, diagrams and outcomes shown here are fictional conditional examples.