Do Fair Value Gaps Really Fill? 2 Years of USD/JPY Tested
Fair value gaps open on a fifth of USD/JPY bars and 96-99% get filled. Bars that opened no gap were revisited just as often, and the median wait was two bars. Measured.
A fair value gap (FVG) is a three-candle pattern. If the first candle's high and the third candle's low do not overlap, the price range between them is read as territory the middle candle crossed without trading back against it: an imbalance price is said to return to.
It does return. On USD/JPY, 96.2-99.4% of gaps were revisited.
The problem is that this number says nothing about fair value gaps. A bullish gap's ceiling is the third candle's low, so "the gap was filled" is word-for-word the same event as "price came back to that candle's low." And every candle has a low.
What a fair value gap actually tests
One comparison between two candles, done once:
- Bullish: third candle's low > first candle's high. The band sits between those two prices
- Bearish: third candle's high < first candle's low. Same, inverted
The middle candle does not appear. It is not in the expression, so a wide-range bar and a doji produce the same verdict.
How often the condition fires on USD/JPY:
| Timeframe | Year | Bars | Gaps | Share of bars | Band width (median) |
|---|---|---|---|---|---|
| 15-minute | 2025 | 24,903 | 5,610 | 22.53% | 2.95 pips |
| 15-minute | 2024 | 24,999 | 5,455 | 21.82% | 2.70 pips |
| Hourly | 2025 | 6,226 | 1,312 | 21.07% | 6.85 pips |
| Hourly | 2024 | 6,250 | 1,271 | 20.34% | 5.80 pips |
| 4-hour | 2025 | 1,610 | 368 | 22.86% | 15.75 pips |
| 4-hour | 2024 | 1,616 | 369 | 22.83% | 13.50 pips |
One bar in five opens a gap. This is not a rare configuration. On the 15-minute chart, 82-89 gaps a year were under a tenth of a pip wide, which draws as a dashed line rather than a band.
Do fair value gaps really fill?
99% do, and so does every other bar. The fill rate is compared with the rate at which price came back to the low or high of bars that opened no gap: bars where the first and third candles overlapped.
| Timeframe | Year | Bars that opened a gap | Every other bar |
|---|---|---|---|
| 15-minute | 2025 | 99.36% | 99.37% |
| 15-minute | 2024 | 99.19% | 99.39% |
| Hourly | 2025 | 98.55% | 98.71% |
| Hourly | 2024 | 98.27% | 98.82% |
| 4-hour | 2025 | 97.01% | 97.18% |
| 4-hour | 2024 | 96.21% | 97.79% |
That table is the figure at the top. In all six cells the gap bar is the lower of the two. The median wait before the level was reached was two bars for both groups.
"Fair value gaps get filled" is a correct observation, but not because they are gaps. In a market that ranges, the high and low of any bar is eventually traded through. The indicator has put a name on that general property.
How long does a gap take to fill?
The median wait is two bars. Timing the fill makes it harder to use, not easier.
| Timeframe | Year | Median | On the next bar | Within 3 bars | 90th percentile wait |
|---|---|---|---|---|---|
| 15-minute | 2025 | 2 bars | 44.03% | 63.31% | 44 bars |
| 15-minute | 2024 | 2 bars | 46.07% | 64.02% | 41 bars |
| Hourly | 2025 | 2 bars | 45.32% | 62.57% | 43 bars |
| Hourly | 2024 | 2 bars | 43.55% | 62.37% | 40 bars |
| 4-hour | 2025 | 2 bars | 45.10% | 63.59% | 29 bars |
| 4-hour | 2024 | 2 bars | 41.97% | 63.10% | 54 bars |
More than four in ten are filled on the bar immediately after the gap forms. The band appears on the chart the moment the third candle closes and is gone on the next one: that is the single most common outcome.
"Wait for price to return to an unfilled gap, then enter" does not survive this distribution. Close to half of the gaps are finished between the band appearing and an order reaching the market.
Some do stay open. Across all of 2025, the gaps still unfilled at the end of the year numbered 36 on the 15-minute chart (of 5,610), 19 hourly (of 1,312) and 11 on the 4-hour (of 368).
Does price stop inside the band?
It does not: the band has no inside. A band has width, so "touched the edge" and "filled to the far side" should be different events. Measuring how far the first bar that arrives reaches into the band: 0 is the near edge, 1 the far one:
| Timeframe | Touches | Depth reached (median) | Reached halfway | Closed it fully | Overshot by half a band |
|---|---|---|---|---|---|
| 15-minute | 5,574 | 1.12 | 70.58% | 53.07% | 42.07% |
| Hourly | 1,293 | 1.06 | 66.82% | 51.35% | 40.84% |
| 4-hour | 357 | 0.97 | 66.11% | 49.30% | 39.78% |
The median is about 1.0. The typical behaviour is that the arriving bar goes straight through, and about half close the band completely in that single bar. Four in ten carry half a band's width past it.
Price entering the band and stalling there did not show up in the data.
How to show fair value gaps on a chart
None of the platforms ship one, so every route takes a step:
- MT4 / MT5: no fair value gap in the bundled indicator list. You put a custom indicator (.mq4 / .mq5) into the indicators folder and add it from the Navigator
- TradingView: not in the built-in indicator list either; you search the public scripts and add one
- Formiq: in the chart's indicator settings under the pattern group, with a toggle for showing only unfilled gaps and a minimum width in pips
Those two settings are the ones that matter. Gaps open on a fifth of all bars and 99% of them fill, so drawing every gap fills the chart with history rather than levels.
Does a bigger middle candle help?
The test never reads it. The published reading calls the middle candle displacement and wants it large. The test does not look at it. Whether that costs anything is measurable.
Splitting the middle candle's body into ATR quartiles, then measuring how often price moved the gap's way over the ten bars after it returned to the level:
| Timeframe | Q1 (smallest) | Q2 | Q3 | Q4 (largest) |
|---|---|---|---|---|
| 15-minute | 49.68% | 47.02% | 51.76% | 49.32% |
| Hourly | 53.11% | 53.73% | 47.52% | 41.93% |
| 4-hour | 44.32% | 47.19% | 49.44% | 52.81% |
Bigger is not better. The best quartile is Q3 on the 15-minute chart, Q2 on the hourly (where it falls as the body grows) and Q4 on the 4-hour. The direction changes with the timeframe.
The boundary itself is worth one more step. Measuring the overlap between the first and third candles as a signed multiple of ATR, and keeping the negative side: the near misses, where the two candles do overlap and there is no gap:
Nothing happens on either side of zero. The per-bin figures scatter between 41.46% and 55.87% across the 24 cells (three timeframes by eight bins), but the step across zero is −1.81 points on the 15-minute chart, +2.81 hourly and −4.35 on the 4-hour. The signs do not agree.
The line the indicator draws sits partway along a continuum.
How this was measured
The strategy test below uses the price measurements above.
| Item | Value |
|---|---|
| Pair | USD/JPY |
| Timeframes | 15-minute / hourly / 4-hour |
| Windows | 2025 (main), 2024 (out of sample), first and second half of 2025 |
| Spread | 0.3 pips |
| Lot | 0.1 |
| Exit | Opposite signal (stops and targets measured separately) |
| Readings | Return to the gap / gap opens |
| Minimum gap size | 0, 0.25, 0.5, 1, 1.5, 2 x ATR |
| Valid for | 5, 10, 20, 50, 100 bars (return-to-the-gap only) |
Two readings of one pattern:
- Return to the gap: when price comes back to a band that is still unfilled, enter the way the band points (bullish gap = buy). This is the textbook reading
- Gap opens: enter on the bar that creates the gap, in its direction. The same object read as displacement
The size floor is in ATR rather than pips because the median band runs from 2.95 pips on the 15-minute chart to 15.75 on the 4-hour. No single pip figure straddles all three.
Which timeframe worked?
Not one of the 30 hourly retracement settings was profitable in both years. Settings that finished 2025 in profit:
| Reading | Timeframe | Year | Profitable settings | Positive in both years | 2025 median |
|---|---|---|---|---|---|
| Return to the gap | 15-minute | 2025 | 13/30 | 6/30 | −361.7 pips |
| Return to the gap | 15-minute | 2024 | 20/30 | 6/30 | — |
| Return to the gap | Hourly | 2025 | 6/30 | 0/30 | −1,817.6 pips |
| Return to the gap | Hourly | 2024 | 20/30 | 0/30 | — |
| Return to the gap | 4-hour | 2025 | 5/30 | 5/30 | −1,842.8 pips |
| Return to the gap | 4-hour | 2024 | 22/30 | 5/30 | — |
| Gap opens | 15-minute | 2025 | 2/6 | 1/6 | −513.5 pips |
| Gap opens | 15-minute | 2024 | 3/6 | 1/6 | — |
| Gap opens | Hourly | 2025 | 3/6 | 3/6 | −79.7 pips |
| Gap opens | Hourly | 2024 | 6/6 | 3/6 | — |
| Gap opens | 4-hour | 2025 | 1/6 | 1/6 | −1,584.7 pips |
| Gap opens | 4-hour | 2024 | 6/6 | 1/6 | — |
On the hourly chart, not one of the 30 return-to-the-gap settings was profitable in both years.
The two years disagree sharply. In 2024 at least half the settings were profitable in every group; in 2025 the largest count was 13/30. Two years are not enough to determine which state is more likely to persist.
The condition editor opens with a 0.25x ATR floor that remains valid for 50 bars:
| Reading | Timeframe | Year | Trades | Win rate | PF | Net |
|---|---|---|---|---|---|---|
| Return to the gap | 15-minute | 2025 | 1,334 | 47.08% | 1.078 | +1,251.5 pips |
| Return to the gap | 15-minute | 2024 | 1,278 | 48.51% | 1.075 | +1,235.2 pips |
| Return to the gap | Hourly | 2025 | 321 | 41.43% | 0.689 | −3,023.1 pips |
| Return to the gap | 4-hour | 2025 | 96 | 43.75% | 0.636 | −2,107.5 pips |
| Gap opens | 15-minute | 2025 | 1,211 | 37.90% | 1.052 | +840.7 pips |
| Gap opens | 4-hour | 2024 | 73 | 41.10% | 1.751 | +2,852.4 pips |
Only the 15-minute chart is positive in both years, and it does so on more than 1,200 trades rather than on a handful.
The size floor is clearest there:
| Minimum size | Mean net | Mean trades | Profitable |
|---|---|---|---|
| 0 (off) | +381.5 pips | 2,314 | 3/5 |
| 0.25x ATR | +1,382.9 pips | 1,229 | 5/5 |
| 0.5x ATR | +2,228.5 pips | 605 | 5/5 |
| 1x ATR | −606.9 pips | 133 | 0/5 |
| 1.5x ATR | −1,302.1 pips | 49 | 0/5 |
| 2x ATR | −949.1 pips | 29 | 0/5 |
15-minute chart, 2025, return-to-the-gap. Discarding the thin gaps works; discarding too many leaves nothing.
Did last year's best still work?
All six lost money the next year. The test this series runs every time: take the best setting from one year and apply it, unchanged, to the other.
| Reading | Timeframe | Minimum size | Validity | 2024 net | 2025 net |
|---|---|---|---|---|---|
| Return to the gap | 15-minute | 1x ATR | 100 bars | +3,713.3 pips | −1,172.2 pips |
| Return to the gap | Hourly | 1x ATR | 100 bars | +3,968.4 pips | −2,744.2 pips |
| Return to the gap | 4-hour | 1.5x ATR | 20 bars | +2,946.3 pips | −1,765.1 pips |
| Gap opens | 15-minute | 1x ATR | — | +2,445.9 pips | −136.7 pips |
| Gap opens | Hourly | 1x ATR | — | +4,186.1 pips | −1,017.3 pips |
| Gap opens | 4-hour | 0.25x ATR | — | +2,852.4 pips | −1,694.4 pips |
All six lost money. The hourly return-to-the-gap setting changed from +3,968.4 pips in 2024 to −2,744.2 in 2025; the hourly gap-open setting changed from +4,186.1 to −1,017.3.
Did any setting win half its trades?
Restricted to settings that took at least 20 trades, zero settings in any of the six groups had a win rate above 50%.
| Reading | Timeframe | Cells | Mean win rate | Mean win | Mean loss |
|---|---|---|---|---|---|
| Return to the gap | 15-minute | 30 | 43.56% | 76.93 pips | −72.33 pips |
| Return to the gap | Hourly | 20 | 40.00% | 79.40 pips | −83.68 pips |
| Return to the gap | 4-hour | 20 | 37.43% | 101.46 pips | −132.37 pips |
| Gap opens | 15-minute | 6 | 38.78% | 77.89 pips | −72.53 pips |
| Gap opens | Hourly | 4 | 38.52% | 92.30 pips | −67.71 pips |
| Gap opens | 4-hour | 4 | 34.38% | 137.85 pips | −120.82 pips |
Despite the mean-reversion wording of "return to the gap," its mean win rate was only 37.43% to 43.56%. On hourly and four-hour bars, the average loss was also larger than the average win. The hit rate does not establish a mean-reversion edge here.
Filters, stops and the spread
Added to the editor's opening setting, 2025 throughout.
An ADX filter only trimmed the one group that was profitable:
| Condition | Trades | Win rate | Net |
|---|---|---|---|
| Bare | 1,334 | 47.08% | +1,251.5 pips |
| ADX(14) ≥ 20 | 945 | 46.24% | +537.2 pips |
| ADX(14) ≥ 25 | 662 | 46.53% | +288.0 pips |
| 07-16 UTC only | 640 | 46.09% | −1,013.2 pips |
| 12-21 UTC only | 574 | 49.13% | +888.9 pips |
One session window survives and the other does not. 12-21 UTC keeps +888.9 pips on 57% of the trades, while 07-16 UTC flips the sign to −1,013.2 pips. A filter that works one way and breaks the other is a partition of the sample, not a reason to use it.
Stops and targets add a little on the 15-minute chart (+1,354.1 pips at 30/60, +1,312.0 at 50/100, against +1,251.5 bare) and shrink the losses on the 4-hour (−2,107.5 bare, −132.0 at 30/60). They make the losing groups lose less; they do not make them win.
The spread behaves the way it has in every article in this series:
| Reading | Timeframe | Trades | Spread 0 | 0.3 pips | 1.0 pips | Break-even |
|---|---|---|---|---|---|---|
| Return to the gap | 15-minute | 1,334 | +1,651.6 pips | +1,251.5 pips | +317.7 pips | 1.238 pips |
| Gap opens | 15-minute | 1,211 | +1,204.0 pips | +840.7 pips | −7.0 pips | 0.994 pips |
| Return to the gap | Hourly | 321 | −2,926.8 pips | −3,023.1 pips | −3,247.8 pips | — |
What the spread takes is the trade count times the spread. Predicted and observed agreed within 0.1 pips in all six cases. The two profitable 15-minute settings disappear above 1.238 and 0.994 pips of spread: real USD/JPY leaves room, but not much for something trading more than 1,200 times a year.
For related shapes, SMC structure breaks and liquidity sweeps separate the broader framework into fixed price rules. Promoting a drawing tool to a testable condition is the same move as Fibonacci retracement; counting a base rate before evaluating a filter comes from GMMA; and an indicator turning out to be something already known is CCI.
Notes
- USD/JPY only. Another pair may differ, and band width in particular scales with how much a pair moves
- Two years, 2024 and 2025, are included
- Exits use the opposite signal. People who trade this pattern often place a stop beyond the far edge of the band, or hold to a prior swing. Those alternative exit rules are not measured
- "Returned" means touched the near edge. Some definitions require a close inside the band, which would change the figures
- The session filter uses one of the two available windows. Other hours than the two tested here exist
- Higher-timeframe gaps traded on a lower chart are not covered. Each timeframe is measured within itself
Questions people ask
- Do fair value gaps really get filled?
- They do. On USD/JPY, 96.2-99.4% were revisited across six cells (15-minute, hourly and 4-hour charts over 2024 and 2025). But that number says nothing about gaps. A bullish gap's ceiling is the third bar's low, so 'the gap was filled' and 'price came back to that bar's low' are the same sentence. Counting the same thing on bars that opened no gap gives 97.2-99.4%, and in all six cells the gap bars were revisited slightly less often than the ordinary ones.
- How long does a fair value gap take to fill?
- The median wait was two bars, in all six cells. Between 41.9% and 46.1% were filled on the very next bar, and 62.3-64.1% within three. The step where you wait for price to return to the gap mostly involves no waiting at all. Gaps that were still open when the year ended numbered 36-44 on the 15-minute chart and 11-14 on the 4-hour.
- What is the most important fair value gap setting?
- The minimum gap size. On the 15-minute chart, reading the gap as a level to return to, a floor of 0.25x ATR and 0.5x ATR were both profitable in 5 of 5 cells, no floor at all in 3 of 5, and 1x ATR or more in 0 of 5. That only held on the 15-minute chart: hourly and 4-hour lost across the board except at settings that took three or four trades a year. How long a gap stays valid mattered much less.
- Does a bigger middle candle make a better fair value gap?
- It made no consistent difference. Splitting the middle candle's body into ATR quartiles and measuring how often price moved the gap's way over the ten bars after it returned gives 47.0-51.8% on the 15-minute chart, 41.9-53.7% hourly and 44.3-52.8% on the 4-hour. The best quartile was Q3, Q2 and Q4 respectively: no direction survives across timeframes. The three-bar test never reads the middle candle in the first place.
- Can I show fair value gaps in MT4 or TradingView?
- Neither ships one. MT4 and MT5 have no bundled fair value gap indicator, so you install a custom one into the indicators folder and add it from the Navigator. TradingView has none in its built-in list either; you add a community script. Formiq's chart has it under the pattern group, with two settings that matter here: show only gaps that are still unfilled, and drop gaps below a minimum width. It is also available as a backtest condition.
Formiq is a free browser-based FX terminal with replay practice and no-code backtesting. Open the chart or see what the free plan includes.