All posts
PublishedUpdatedByFair Value GapFVGprice actionindicatorbacktestUSDJPY

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.

96%97%98%99%100%M15 2025M15 2024H1 2025H1 2024H4 2025H4 2024share the level was revisited
bars that opened a gapevery other barUSD/JPY — share whose low (bullish) or high (bearish) price came back to
The gap bar is revisited slightly less often than an ordinary bar, in all six cells.

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:

TimeframeYearBarsGapsShare of barsBand width (median)
15-minute202524,9035,61022.53%2.95 pips
15-minute202424,9995,45521.82%2.70 pips
Hourly20256,2261,31221.07%6.85 pips
Hourly20246,2501,27120.34%5.80 pips
4-hour20251,61036822.86%15.75 pips
4-hour20241,61636922.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.

TimeframeYearBars that opened a gapEvery other bar
15-minute202599.36%99.37%
15-minute202499.19%99.39%
Hourly202598.55%98.71%
Hourly202498.27%98.82%
4-hour202597.01%97.18%
4-hour202496.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.

TimeframeYearMedianOn the next barWithin 3 bars90th percentile wait
15-minute20252 bars44.03%63.31%44 bars
15-minute20242 bars46.07%64.02%41 bars
Hourly20252 bars45.32%62.57%43 bars
Hourly20242 bars43.55%62.37%40 bars
4-hour20252 bars45.10%63.59%29 bars
4-hour20242 bars41.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:

TimeframeTouchesDepth reached (median)Reached halfwayClosed it fullyOvershot by half a band
15-minute5,5741.1270.58%53.07%42.07%
Hourly1,2931.0666.82%51.35%40.84%
4-hour3570.9766.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:

TimeframeQ1 (smallest)Q2Q3Q4 (largest)
15-minute49.68%47.02%51.76%49.32%
Hourly53.11%53.73%47.52%41.93%
4-hour44.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:

40%45%50%55%gap starts here≤−1.0−1.0…−0.5−0.5…−0.2−0.2…00…0.20.2…0.50.5…1.0>1.0overlap between bar 1 and bar 3, in ATR (negative = they overlap)
M15H1H4USD/JPY 2025 — share that moved the gap's way 10 bars after price returned to the level
The vertical line is where the indicator says a gap begins. The curves do not notice it.

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.

ItemValue
PairUSD/JPY
Timeframes15-minute / hourly / 4-hour
Windows2025 (main), 2024 (out of sample), first and second half of 2025
Spread0.3 pips
Lot0.1
ExitOpposite signal (stops and targets measured separately)
ReadingsReturn to the gap / gap opens
Minimum gap size0, 0.25, 0.5, 1, 1.5, 2 x ATR
Valid for5, 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:

ReadingTimeframeYearProfitable settingsPositive in both years2025 median
Return to the gap15-minute202513/306/30−361.7 pips
Return to the gap15-minute202420/306/30
Return to the gapHourly20256/300/30−1,817.6 pips
Return to the gapHourly202420/300/30
Return to the gap4-hour20255/305/30−1,842.8 pips
Return to the gap4-hour202422/305/30
Gap opens15-minute20252/61/6−513.5 pips
Gap opens15-minute20243/61/6
Gap opensHourly20253/63/6−79.7 pips
Gap opensHourly20246/63/6
Gap opens4-hour20251/61/6−1,584.7 pips
Gap opens4-hour20246/61/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:

ReadingTimeframeYearTradesWin ratePFNet
Return to the gap15-minute20251,33447.08%1.078+1,251.5 pips
Return to the gap15-minute20241,27848.51%1.075+1,235.2 pips
Return to the gapHourly202532141.43%0.689−3,023.1 pips
Return to the gap4-hour20259643.75%0.636−2,107.5 pips
Gap opens15-minute20251,21137.90%1.052+840.7 pips
Gap opens4-hour20247341.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 sizeMean netMean tradesProfitable
0 (off)+381.5 pips2,3143/5
0.25x ATR+1,382.9 pips1,2295/5
0.5x ATR+2,228.5 pips6055/5
1x ATR−606.9 pips1330/5
1.5x ATR−1,302.1 pips490/5
2x ATR−949.1 pips290/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.

ReadingTimeframeMinimum sizeValidity2024 net2025 net
Return to the gap15-minute1x ATR100 bars+3,713.3 pips−1,172.2 pips
Return to the gapHourly1x ATR100 bars+3,968.4 pips−2,744.2 pips
Return to the gap4-hour1.5x ATR20 bars+2,946.3 pips−1,765.1 pips
Gap opens15-minute1x ATR+2,445.9 pips−136.7 pips
Gap opensHourly1x ATR+4,186.1 pips−1,017.3 pips
Gap opens4-hour0.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%.

ReadingTimeframeCellsMean win rateMean winMean loss
Return to the gap15-minute3043.56%76.93 pips−72.33 pips
Return to the gapHourly2040.00%79.40 pips−83.68 pips
Return to the gap4-hour2037.43%101.46 pips−132.37 pips
Gap opens15-minute638.78%77.89 pips−72.53 pips
Gap opensHourly438.52%92.30 pips−67.71 pips
Gap opens4-hour434.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:

ConditionTradesWin rateNet
Bare1,33447.08%+1,251.5 pips
ADX(14) ≥ 2094546.24%+537.2 pips
ADX(14) ≥ 2566246.53%+288.0 pips
07-16 UTC only64046.09%−1,013.2 pips
12-21 UTC only57449.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:

ReadingTimeframeTradesSpread 00.3 pips1.0 pipsBreak-even
Return to the gap15-minute1,334+1,651.6 pips+1,251.5 pips+317.7 pips1.238 pips
Gap opens15-minute1,211+1,204.0 pips+840.7 pips−7.0 pips0.994 pips
Return to the gapHourly321−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.