Northmark
Forex
9 min read

Do Order Blocks, Fair Value Gaps and Liquidity Sweeps Actually Work? 995,550 Trades Tested

We ran the six setups usually presented with a "70–80% win rate" over 995,550 trades with measured spreads, targets fixed at 2–3× the stop. Here is the outcome — and the specific reason these backtests look good.

Fact-checked · Last verified August 4, 2026

About the accuracy of information: The figures and regulatory information on this page were verified by the editorial team against each company's official website and the regulator's registry as of September 2026 update. Since bonus amounts, spreads, and regulatory status may change, our editorial team rechecks primary sources with each update. Read detailed disclaimer

Do Order Blocks, Fair Value Gaps and Liquidity Sweeps Actually Work? 995,550 Trades Tested

"Buy when price returns to the order block." "Enter as it fills the fair value gap." "Take the reversal after the prior-day low gets swept." These are the most widely shared setups right now, usually with numbers attached: a 70–80% win rate at 1:2 reward-to-risk or better. This is a record of testing that claim as logic, not as a person.

What we tested

Anything that cannot be written as a rule cannot be tested, so we limited the scope to six machine-readable setups, defined in writing before the run. Targets were set at 2× and 3× the stop only. If the target is narrower than the stop, the win rate comes out high regardless of entry (random entries produced 66.3% in a separate test here), so that geometry cannot test the claim. With a target at twice the stop, breakeven is a 33.3% win rate; at the claimed 70–80% the profit factor would be 4–6. This design is as favourable to the claim as it reasonably gets.

Results

LogicConfigsTradesNet (pips)Per tradeWin rate
Retracement into a 3-bar price gap (imbalance)56161,978-395,711-2.4425.9%
Retest of the last opposing candle before an impulse56267,058-652,594-2.4428.7%
Reversal after a temporary break of the prior-day / session extreme80490,314-884,169-1.8030.6%
A setup restricted to one specific hour of the day485,310-12,244-2.3135.9%
Structure shift: pullback after a close through the last swing5644,110-111,153-2.5232.2%
Fading the first move of a session as a false break3226,780-63,540-2.3728.2%
Trades328995,550-2,119,412-2.13

That is -2,119,412 pips in total, or -2.13 pips per trade. Configurations meeting every pre-registered criterion (sample size, profit factor, share of profitable years, multiple-testing correction, out-of-sample split, 2× cost stress): 0 of 328.

What happened to the "70–80% win rate"

Of the 310 configurations with at least 80 trades, 0 had a win rate above 50%. The highest was 47.5% (143 trades) with a 95% interval of 39.5%–55.7%. 0 configurations have an upper bound reaching 70%. The gap cannot be explained by small samples.

Compared with random entries using the same exits

If the entry logic carries information, it should beat entering at random. We matched the stop-distance distribution and the reward multiple and randomised only the direction. Refining the entry barely moves the result. Two of the six come in below random.

LogicTradesWin rateRandom entry, same exitsDiff
Retracement into a 3-bar price gap (imbalance)80,98928.8%31.9%-3.1pt
Retest of the last opposing candle before an impulse133,52931.8%31.9%-0.2pt
Reversal after a temporary break of the prior-day / session extreme245,15733.6%32.2%+1.4pt
A setup restricted to one specific hour of the day2,65538.2%31.6%+6.6pt
Structure shift: pullback after a close through the last swing22,05534.6%31.9%+2.7pt
Fading the first move of a session as a false break13,39031.4%31.5%-0.1pt

The main finding: why these backtests look good

On the first run, all six instruments were profitable on hourly bars. One line of code explained it. The high of the bar on which the limit order filled was being used to check the target. Every setup here enters with a limit order below the current price (for longs), which means that bar's high may have printed before the fill. Counting it as a target hit means taking profit at a price that occurred before entry.

The fix: on the fill bar, evaluate the stop only — it sits below the limit, so it can only be reached after the fill — and start checking the target from the next bar. Every instrument flipped from profit to loss.

InstrumentTradesFill-bar TP allowed: Net (pips)Win rateCorrect handling: Net (pips)Win rate
USDJPY5,976+5,06942.7%-12,21629.1%
EURUSD5,721+4,50042.4%-10,57228.9%
EURJPY6,573+7,69842.8%-14,51429.2%
GBPUSD6,190+6,11842.2%-12,51129.0%
XAUUSD2,621+5,38442.9%-2,10030.3%
US301,783+1,08740.1%-2,27128.4%

Checking that the fix is not too harsh

Refusing every target on the fill bar could be too conservative. So we used 1-minute data to find the exact minute of the fill and re-resolved every exit from there. Every disagreement ran the same way — hourly said "stopped out" where the minute data showed the target came first — with zero cases the other way. The corrected version is conservative by roughly one pip per trade, nowhere near enough to close the deficit.

InstrumentComparedSame verdictOverturned by 1-minOpposite directionMean diff
USDJPY2,26893.3%1200+0.97
EURUSD1,80293.6%900+0.74
EURJPY2,26694.1%1010+1.07
GBPUSD2,14493.4%1140+0.89

Why this happens so widely

A single bar does not record whether the fill or the high came first. Charting-platform strategy testers, bar-level modes in trading terminals, and manual bar-by-bar replay all share that limitation. This is not about bad faith; it is a property of the tools. Results for any limit-entry setup are unreadable until you know how the fill bar was handled.

The cost structure

On 15-minute bars, costs eat 30–60% of the stop distance. Widening the stop on hourly bars and assuming the tightest possible spread brings that to 6% — and it is still negative. This is not "spreads are too high"; the expectancy before costs is already about zero.

ConditionMean stop distanceRound-trip costCost / riskPer trade
EURUSD M155.11.5730.8%-1.79
EURJPY M156.03.6060.4%-4.19
EURUSD H17.61.0013.2%-1.85
XAUUSD H18.20.506.1%-0.80

On averaging down with lot doubling (separate category)

Adding to a losing position and doubling the size must not be judged by win rate or profit factor — by construction it wins almost every time until it does not. The right measure is time to failure. Starting balance $10,000, liquidation below a 100% margin level, every possible start month. Doubling the lot size is what changes everything. Among start dates that were not liquidated the median ending balance is well above the starting capital, so a sample that looks like an excellent tool always exists. With a median time to failure of three to nine months, a few months of statements sits inside the survival window. Raising leverage barely changed the rate: the driver is the lot doubling.

Lot multiplierInstrumentWiped outMedian timeFastest 10%Median ending balance
×1.0USDJPY0.0%$11,447
×1.0EURUSD0.0%$12,092
×1.0GBPUSD0.0%$11,001
×1.5USDJPY80.6%15130$4,940
×1.5EURUSD68.3%31745$5,270
×1.5GBPUSD90.5%17824$4,777
×2.0USDJPY80.6%10520$4,248
×2.0EURUSD84.1%22542$6,159
×2.0GBPUSD90.5%12220$4,887

What we could not test

Most publicly reported large gains are not described in a testable form. "Read the flow." "Enter when the order book tilts." None state which number has to reach what value before entering. You cannot claim to have tested what you cannot check, so those were excluded — and that exclusion is itself informative.

Summary

  • No configuration met the pre-registered criteria.
  • The 70–80% win rate could not be confirmed under these definitions, even allowing the widest statistical margin.
  • Refining the entry produced results close to random entries with the same exits.
  • The single largest reason these backtests look good is counting the fill bar's high as a target hit.
  • Lot-doubling tools should be judged on time to liquidation, not win rate.

This article does not teach a winning method. It shares one way of checking. When you see results for a limit-entry setup, ask first how the fill bar was handled.


About the raw data

The tables above aggregate 328 configurations. The pre-aggregation data (CSV) and the harness design notes are also available. The conclusions, every configuration's result, the pass criteria and the reasons for failure are all published on this page. Nothing inconvenient sits behind the gate. It goes to readers who opened an account through this site (account-number match only; no email needed).

How to receive it


This is a record of testing we ran ourselves. It is not an assessment of any individual, organisation or service. All figures are simulations on historical data and do not indicate future results. Trading can produce losses exceeding your deposit. This is not investment advice. Make your own decisions.

Tags
#forex#order-block#fair-value-gap#liquidity#backtest#verification

Related articles