Short answer: no. Across 192 versions on every chart from 1-minute to weekly, none passed our test. Two results are worth more than that verdict: trading the gap fill immediately lost almost exactly the spread on every single chart, the gap edge produced no reaction at all, and the bigger the gap, the worse it did, which is the opposite of what the idea predicts.
Read this first: what this test can and cannot tell you
- Gold only (XAUUSD), Deriv's feed, candles on the UTC clock, January 2017 to September 2026 (9 years 8 months).
- One precise, written definition, set out below. Fair value gap, imbalance, inefficiency, the names differ and so do the rules. We tested this one.
- Every trade pays the spread (at least 15 points, from Deriv's own per-candle record, once per round trip).
- Entries are market orders at the next candle's open. A resting limit order at the gap edge would flatter the result by 0.2 to 0.8 bp for mechanical reasons that have nothing to do with gaps, measured, and on record. The gap decides when; the fill is at the market.
- A record of what one rule did on past data. Not advice, not a signal, not a forecast.
How to read the numbers (skip if you already know)
| Term | What it means here |
|---|---|
| bp (basis point) | 0.01% of price. At $4,300 gold, 1 bp ≈ $0.43 per ounce. |
| The spread you pay | Charged once per round trip, at least 15 points, from the broker's own record. Measured across this sample it averages 0.89 bp per trade, and it has been shrinking as gold has risen: 1.19 bp in 2017, 0.79 in 2023, 0.37 so far in 2026, because 15 points is a smaller share of $4,300 than of $1,250. |
| ATR20 | Average true range of the previous 20 candles, the ordinary size of a candle just before the signal. Gaps are measured in these units so that a "big gap" means the same thing on every chart. |
| t | Distance from zero measured in the result's own noise. Under 2 is ordinary randomness. |
| The bar (3.65) | We tried 192 versions, so the threshold rises to match (Bonferroni, two-sided 5%). |
| Alpha | What is left after subtracting gold's own move over the same holding time in the same year. |
| The random-series check | The same 192 versions run on Volatility 75, a synthetic with no market behind it. If versions "pass" there, the test is void. |
What we tested
The idea, in plain words. When price moves so fast that a candle's high never overlaps the high of the candle two places back, it leaves a window of prices that barely traded, an imbalance. The claim is that the market comes back to fill it, so you wait for the return and trade in the direction of the original move.
The rules, exactly.
- Bullish gap at candle i:
high[i−2] < low[i], and the distance between them is at least g × ATR20, with g tested at 0.25, 0.5 and 1.0 ATR. - The trigger: the first later candle, within 50, whose low reaches back to
high[i−2], the near edge of the gap. - The trade: BUY at the next candle's open. Exit at the close 1, 4, 12 or 24 candles later. Bearish mirrored.
- Charts: M1, M5, M15, M30, H1, H4, D1, W1. One position at a time per version.
- Grid: 8 charts × 3 gap sizes × 4 holding times × 2 directions = 192 versions.
Results by chart: the standard version (gap ≥ 0.25 ATR, exit after 12 candles)
| Chart | Direction | Trades | Win rate | Net per trade (bp) | t | Passed the bar? |
|---|---|---|---|---|---|---|
| M1 | buy | 122,643 | 43.4% | −0.78 | −28.71 | no, loses |
| M1 | sell | 122,138 | 42.8% | −0.81 | −30.49 | no, loses |
| M5 | buy | 20,911 | 48.4% | −0.61 | −4.13 | no, loses |
| M5 | sell | 20,413 | 47.0% | −1.03 | −6.96 | no, loses |
| M15 | buy | 6,519 | 50.5% | +0.04 | +0.09 | no |
| M15 | sell | 6,235 | 48.0% | −0.76 | −1.51 | no |
| M30 | buy | 3,126 | 50.9% | +0.43 | +0.47 | no |
| M30 | sell | 2,970 | 47.3% | −2.42 | −2.34 | no |
| H1 | buy | 1,573 | 51.6% | +0.96 | +0.52 | no |
| H1 | sell | 1,497 | 48.6% | −2.75 | −1.48 | no |
| H4 | buy | 497 | 56.3% | +8.96 | +1.38 | no |
| H4 | sell | 471 | 44.8% | −11.36 | −1.81 | no |
| D1 | buy | 108 | 63.9% | +57.51 | +1.97 | too few trades |
| D1 | sell | 96 | 46.9% | −36.41 | −1.14 | too few trades |
| W1 | buy | 18 | 72.2% | +367.06 | +2.10 | too few trades |
| W1 | sell | 8 | 25.0% | −208.33 | −1.08 | too few trades |
Zero of 192 versions passed. The best-looking cells in the whole grid are daily and weekly buys on 12 to 80 trades, which is exactly where a handful of good years can produce any number you like. On the random control series: also zero, maximum |t| 2.83.
The gap edge produces no reaction at all
The cleanest test of "price reacts at the imbalance" is the shortest one: enter at the fill and get out one candle later. If there is a bounce, it is there.
| Chart | Buy, 1-candle hold (bp) | Sell, 1-candle hold (bp) |
|---|---|---|
| M1 | −0.84 | −0.86 |
| M5 | −0.74 | −0.84 |
| M15 | −0.83 | −0.80 |
| M30 | −0.36 | −0.78 |
| H1 | −0.80 | −0.79 |
| H4 | −0.58 | −2.53 |
Every cell is negative and almost every one lands within a whisker of the spread itself, which averages 0.89 bp per trade over this sample. Strip the cost out and the reaction is approximately zero on every chart. Price arrives at the gap edge and does nothing in particular.
Bigger gaps did worse, not better
The idea says a larger imbalance is a stronger imbalance. The data says the opposite.
| Chart | Direction | Gap ≥ 0.25 ATR | Gap ≥ 1.0 ATR |
|---|---|---|---|
| M15 | buy | +0.04 bp | −1.69 bp |
| M15 | sell | −0.76 bp | −2.70 bp |
| M30 | buy | +0.43 bp | −3.25 bp |
| H1 | buy | +0.96 bp | −5.73 bp |
| H1 | sell | −2.75 bp | −6.58 bp |
| H4 | buy | +8.96 bp | −12.89 bp |
On the hourly chart the strict version's alpha is −7.34 bp, t −1.97, the wrong sign, and the largest single deviation from gold's drift anywhere in this concept. Whatever is behind it, "large gaps get filled harder" is not supported: the versions built on the most dramatic imbalances are the ones that did worst.
A fair caveat: big gaps are rarer, so those cells carry 300 to 1,200 trades rather than thousands, and none of them clears the bar either. The point is the direction of the pattern, not a claim that strict gaps lose reliably.
Does the gap itself add anything?
For every gap we also took an ordinary up candle with no gap at all, and the same touch rule. If the imbalance is what matters, gaps should beat these.
| Chart | Direction | Gaps (bp) | No gap, same touch (bp) | Difference | t |
|---|---|---|---|---|---|
| M15 | buy | +0.04 | −0.30 | +0.34 | +0.64 |
| M15 | sell | −0.76 | −1.50 | +0.71 | +1.24 |
| H1 | buy | +0.96 | +1.41 | −0.47 | −0.22 |
| H1 | sell | −2.75 | −3.10 | +0.33 | +0.15 |
| H4 | buy | +8.96 | +7.28 | +1.54 | +0.20 |
| H4 | sell | −11.36 | −11.00 | −0.67 | −0.09 |
Every difference is inside chance, and on the hourly buy side the gap version is the worse of the two. The control is a big sample, 17,000 trades on the 15-minute chart against 6,500, so this comparison is one of the better-powered things on the page, and it finds nothing.
Year by year: buying gaps on the hourly chart, exit after 12 candles
Every result gets a per-year line, because effects in gold have been growing and a pooled average hides where a number came from.
| Year | Trades | Win rate | Net per trade (bp) |
|---|---|---|---|
| 2017 | 150 | 48.7% | −0.36 |
| 2018 | 163 | 49.7% | −0.25 |
| 2019 | 178 | 52.2% | +1.28 |
| 2020 | 142 | 61.3% | +8.97 |
| 2021 | 160 | 48.8% | −4.02 |
| 2022 | 166 | 46.4% | +0.16 |
| 2023 | 153 | 48.4% | −2.77 |
| 2024 | 172 | 57.0% | +4.78 |
| 2025 | 167 | 55.1% | +7.83 |
| 2026 | 122 | 47.5% | −8.04 |
Two good years (2020 and 2025) against a negative 2026, with the sign changing five times in ten years. The pooled +0.96 bp is an average of years that disagree with each other, which is the definition of a number you cannot trade on.
With a stop and a target
The textbook plan: stop beyond the far side of the gap, target twice the risk, up to 200 candles. A market with no pattern reaches a 2:1 target before its stop about one time in three.
(Descriptive: added after the main test, not pre-registered.)
| Chart | Direction | Trades | Target before stop | Chance gives | Mean result |
|---|---|---|---|---|---|
| M15 | buy | 6,709 | 30.1% | 33.3% | −0.10 R |
| M15 | sell | 6,639 | 27.7% | 33.3% | −0.18 R |
| H1 | buy | 1,609 | 31.3% | 33.3% | −0.06 R |
| H1 | sell | 1,482 | 29.3% | 33.3% | −0.12 R |
| H4 | buy | 536 | 33.8% | 33.3% | +0.02 R |
| H4 | sell | 454 | 25.6% | 33.3% | −0.23 R |
Same story as every other concept we have run through this plan: at or below the coin-flip line, and the shortfall tracks the cost.
What this page does not say
- It does not say gaps aren't real. They are a plain fact of the candles, you can see them. The question tested here is whether trading the return to one produced anything, and it did not.
- It does not test "the gap as context", only entering on the fill. Using unfilled gaps to decide where a move might run out is a different claim needing its own test.
- It does not test gaps on other instruments, or gaps that form at a session open, or gaps confirmed by something else. Each of those is a new concept, not a variation to be checked quietly after the fact.
How we tested
- The rules were written and dated before the scanner existed. Nothing was tuned afterwards.
- Closed candles only; market entry at the next open; one position at a time per version.
- 192 versions, so the bar is raised to match (Bonferroni). A version must also hold in ≥70% of years, in both halves, and beat gold's own drift.
- The identical grid on a random price series: clean, 0 survivors, maximum |t| 2.83. Honest limit: that control is strongest on the fast charts, where it has tens of thousands of trades; on the hourly chart it carries about 2,600, enough to reveal a 10 bp effect but not a 5 bp one.
Reproduce it: every rule is written out in full above, so anyone with gold price data can rebuild this test and check our numbers. The candles are the broker's and are not ours to redistribute.