Free research · Fair value gaps (FVG)

Do Fair Value Gaps Work on Gold? 192 Versions Tested on 9 Years of XAUUSD

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.

Tested onGold (XAUUSD)
DataJanuary 2017 to September 2026 (9 years 8 months)
Rule versions tested192
Win rate we measured (after costs)43.4% over 122,643 trades (M1 buy, the biggest sample)Across every chart in the main table: lowest 25.0% on W1 sell (8 trades), highest 72.2% on W1 buy (18 trades). Winning more often is not the same as making money; the tables below show both.

What is a fair value gap (FVG)?

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.

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

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.


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


How we tested

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.


Request a backtest

Want a concept, a variation or another market tested the same way? Tell us what to test and where to send the result. It is free.

We only use your contact to send you this result.

Disagree? Bring results.

We publish numbers, not opinions, and we answer with numbers. If you believe a concept works and our test missed it, send us your exact rules, the market and timeframe, your data source and dates, the costs you charged, and your result with its sample size. We will run your version and reply with the actual statistics: every trade, the win rate, the result after costs, year by year. If your test holds up, we correct this page, dated, with credit to you if you want it.

Claims without results will not change a page. A screenshot of a winning trade is one trade; the tables here are thousands.

Send it to support@fxsynapseai.com with the subject “Research correction”, or use the request form above.