Fair Value Gaps Tested: 93% Were Filled Within a Day on EURUSD M5, and a Random Level the Same Distance Away Was Filled 92%

Key takeaways
- A fair value gap (FVG) is a three-candle imbalance: the wick of candle 1 and the wick of candle 3 do not overlap. I marked every one on EURUSD and gold, M5 and M15: 16,926 EURUSD bars and 13,736 gold bars.
- 93.3% of EURUSD M5 gaps were filled within 288 bars, one trading day. That is the “gaps always fill” claim, and it is true.
- A random level the same distance from the close was filled 91.7% of the time, with no gap there at all. On gold the random level was filled more often than the gap, 92.1% against 91.8% on M5.
- FVGs are not rare. 21% to 28% of all bars printed one, about 79 a day on EURUSD M5, and 67% of them were touched again by the very next bar.
- 0 of 16 trading runs passed. Retest, momentum and fill trades lost after cost on 13 of 16. Gold M15 retests made money in both halves but stayed inside the range of random entries.
The fair value gap is the centre of the “smart money” style of trading. Three candles, a gap between the first wick and the third, and the story that price “left orders behind” and has to come back to fill them. Mark the gap, wait for the retest, enter with the original move.
Every part of that can be measured from open, high, low and close, so I measured it. The test that matters is not “does the gap fill” but “does the gap fill more often than any other price level would”.
What is a fair value gap?

| Type | Rule on three candles | The gap (zone) |
|---|---|---|
| Bullish FVG | Low of candle 3 is above the high of candle 1 | From the high of candle 1 up to the low of candle 3 |
| Bearish FVG | High of candle 3 is below the low of candle 1 | From the high of candle 3 up to the low of candle 1 |
| Touched | Price trades back to the near edge of the zone | Low reaches the top of a bullish gap, high reaches the bottom of a bearish one |
| Filled | Price trades through the far edge | The whole zone has been traded again |
Candle 2 is the big one in the middle. It moved so fast that candles 1 and 3 never overlapped, and that empty space is the “imbalance”. It is also called an imbalance, an inefficiency or a liquidity void.
How was it tested?

- Data: EURUSD M5 from June 3 to August 26, 2026, 16,926 bars; gold M5 from June 16 to August 26, 13,736 bars. M15 built from the same bars.
- Gaps: every bullish and bearish FVG, with a minimum size filter of 0, 0.25, 0.5 and 1 ATR(14).
- Fill: was the zone touched, and was it filled, within 12, 48 and 288 bars?
- Control: for every gap, a random bar, the same direction and the same distance from the close in ATR. If the random level fills just as often, the gap adds nothing.
- Trades: retest (first touch of the zone, bar does not close through it, trade with the gap), momentum (enter on the gap bar, with the gap) and fill (enter on the gap bar, against it). Stop 1.5 ATR, target 3 ATR, 48 bars at most, one trade at a time.
- Cost and pass: 1 pip on EURUSD and $0.30 an ounce on gold, from spread and swap costs in MT4. A run passes if it makes money after cost, in both halves (split July 15), and beats the 95th percentile of 200 random-entry runs, the method from algorithmic rule vs random entry.
How often does a fair value gap appear?
| Any size | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| Gaps in the test | 4,637 | 1,226 | 2,890 | 881 |
| Share of all bars | 27.7% | 22.6% | 21.4% | 20.2% |
| Gaps a trading day | 79 | 22 | 58 | 18 |
| Median size | 1.3 pips | 2.6 pips | $1.30 | $2.20 |
| Gaps of 1 ATR or more a day | 28 | 3.6 | 3.2 | 1.1 |
If you have an FVG indicator on an M5 chart, the screen is covered in boxes. More than one bar in five creates a new gap. On EURUSD M5 the median gap was 1.3 pips, about the size of the spread. Only the 1 ATR filter turns this into something you could watch by eye, and on gold that leaves about three a day.
Do fair value gaps always get filled?
| Filled within 288 bars | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| Fair value gap | 93.3% | 93.2% | 91.8% | 91.1% |
| Random level, same distance | 91.7% | 91.8% | 92.1% | 92.1% |
| Difference, points | +1.6 | +1.4 | -0.3 | -1.0 |
| Never even touched | 2.4% | 2.9% | 4.6% | 4.3% |
Yes, they almost always fill. And so does almost any level that close to the price. A gap on M5 sits a fraction of an ATR from the close, and price wanders across that distance many times a day. The “magnet” that fills 93% of gaps fills 92% of random lines drawn at the same distance.
On gold both timeframes filled the random level more often than the real gap. On EURUSD the gap won by 1.4 to 1.6 points. Small, but it is there, and it shows up more clearly over a short horizon.
Does the gap fill faster than a random level?
| Filled within 12 bars | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| Fair value gap | 68.9% | 67.7% | 66.5% | 65.8% |
| Random level, same distance | 57.9% | 60.3% | 66.5% | 67.2% |
| Difference, points | +11.0 | +7.4 | 0.0 | -1.4 |
| Touched by the next bar | 66.8% | 58.0% | 45.8% | 42.7% |
This is the one real effect in the test. On EURUSD a gap was filled within the first hour 11 points more often than a random level on M5 and 7 points more often on M15. After a fast candle, EURUSD tends to give some of it back. On gold there was no such pull: gold fills the gap at exactly the random rate.
The catch is that the effect lives in the next one to three bars, and two thirds of EURUSD M5 gaps were touched by the very next candle. A “wait for the retest” trader is almost always in on the first touch, which is the same pullback that makes the gap fill.
Can you trade it?
| Profit per trade after cost | EURUSD M5 | EURUSD M15 | Gold M5 | Gold M15 |
|---|---|---|---|---|
| Retest, with the gap | -1.14 (1,332) | -0.93 (349) | -0.72 (727) | +1.12 (217) |
| Retest, gap 0.5 ATR+, EMA 200 side | -1.19 (1,030) | -1.09 (233) | -0.18 (309) | +3.05 (96) |
| Momentum, on the gap bar | -1.26 (1,378) | -1.65 (375) | -0.86 (852) | +2.09 (241) |
| Fill, against the gap | -0.40 (1,318) | -0.84 (381) | -0.11 (820) | -1.76 (247) |
| Random entries, median | -1.02 | -1.27 | -0.58 | -0.36 |
| Random entries, 95th percentile | -0.76 | -0.41 | +0.04 | +2.37 |
Pips on EURUSD, dollars an ounce on gold, trades in brackets.
None of the 16 runs passed. On EURUSD every way of trading the gap lost, and on M5 the textbook retest lost more than random entries. The fill trade, the one that bets on the effect above, lost least: 0.40 pips a trade on EURUSD M5. It made 0.60 pips before cost and was the only EURUSD run above the random 95th percentile. The edge is real and smaller than a 1 pip spread.
Gold M15 is the exception worth a sentence. The retest made $1.12 an ounce a trade, $3.05 with a 0.5 ATR size filter and the EMA 200 side, and made money in both halves. But random entries with the same exit reached +$2.37 and +$3.87 at the 95th percentile on that chart: gold M15 had few trades and big swings, so luck alone covers that result. The full settings grid is in fair value gap settings for MT5.
What would I do with fair value gaps?
- Do not treat “it filled” as proof. 93% sounds strong until you see that a random line fills 92%. Ask any level tool the same question.
- Filter by size or turn it off on M5. At 79 gaps a day the boxes describe ordinary noise. A 1 ATR minimum is the least you need to see anything.
- On EURUSD, a fast candle gives some back. That is a reason not to chase it, not a trade: fading it lost after the spread on all four charts.
- Compare with other levels. Swing highs and lows got the same random control in support and resistance indicators tested, and structure breaks in market structure tested.
The retest and the fill trade side by side are in fair value gap retest vs fill. Another pattern that looks clean on a chart and needs a control is in chart patterns vs a plain range breakout.
Frequently asked questions
What is a fair value gap in forex?
A three-candle pattern where the wicks of the first and third candle do not overlap, leaving a price zone that was traded only once, by the middle candle.
Do fair value gaps always get filled?
Almost: 91% to 93% within one trading day on EURUSD and gold. But a random level the same distance away filled 92% of the time.
How many fair value gaps are there on a 5-minute chart?
About 79 a trading day on EURUSD M5 and 58 on gold M5, roughly one bar in four or five.
Is trading the FVG retest profitable?
Not in this test. It lost after cost on EURUSD M5 and M15 and on gold M5. It made money on gold M15, but not more than random entries could.
Are fair value gaps better on gold or EURUSD?
EURUSD gaps filled faster than random levels, 11 points more often within an hour on M5. Gold gaps filled at the random rate.
Want a level that is drawn by a rule, not by eye?
It is my own enhanced DeMARK Trend Line indicator for MetaTrader 4 and 5. Non repaint, clean, and free.

