Fair Value Gap (FVG)

A fair value gap (FVG) — also called an imbalance or an inefficiency — is a three-candle formation that marks a price range the market passed through without two-way trade. In a bullish FVG, the low of the third candle sits above the high of the first, leaving part of the middle candle's range untouched by either neighbour. A bearish FVG is the mirror image: the high of the third candle sits below the low of the first. The untouched band between those two levels is the gap, and it is treated as a zone on the chart rather than a single price. The pattern only exists once the third candle closes, which matters both for discretionary reading and for coding it.

The premise behind trading it is that a fast, one-sided move leaves unfilled interest behind, and that price often returns to that area before continuing. Traders talk about the gap being *mitigated* (revisited) or *rebalanced* (fully filled). Whether that return is a genuine edge or simply a description of how pullbacks look in trending markets is an empirical question, and it is the main thing worth testing when you compare versions of this idea.

## How traders use it

The most common structure is a continuation trade: price displaces in one direction, leaves a gap, retraces into it, and the trader enters in the direction of the displacement with a stop beyond the far edge of the gap or beyond the swing that created it. Targets are usually the next pool of liquidity — a prior high or low, a session extreme, a previous day's level — or a fixed multiple of risk. Most rule sets treat a gap as spent once it has been filled, and many limit how long an unmitigated gap stays valid.

An FVG is rarely traded on its own. In practice it acts as the *entry* component of a larger model, while other elements supply the *context*: a liquidity sweep that precedes the move, a break of structure or change of character that defines direction, a premium/discount reading that says where in the range the entry sits, or a session window that says when the setup is allowed at all.

## Main variants

Several families recur across implementations. The plain retracement entry waits for price to trade back into an unmitigated gap. The **inverse or inversion FVG (iFVG)** does the opposite: it waits for a gap to be traded fully through, then treats the failed gap as a zone of opposite polarity — a bullish gap that breaks becomes resistance. **Sweep-then-gap** models require liquidity to be taken above a high or below a low first, and only accept the gap that forms on the resulting reversal. **Structure-gated** models require a break of structure or change of character before any gap is considered. **Session-scoped** models restrict the whole setup to a fixed clock window, such as a kill zone, a defined one-hour block, or the first candles after an open. Finally, gaps appear as one leg inside larger frameworks — accumulation/manipulation/distribution schemes, market-maker models, or multi-factor confluence checklists — where the gap defines the entry price and the framework defines the day's direction.

## What separates one implementation from another

Almost all the practical difference lives in details that sound minor:

- **Detection**: wicks or bodies; minimum gap size in points, ticks, or ATR; whether overlapping and nested gaps are merged. - **Timeframe pairing**: gap detected on a higher timeframe, entry executed on a lower one — or both on the same chart. - **Trigger**: a resting limit order at the near edge, at the midpoint, or at full fill, versus waiting for a confirmation candle or a lower-timeframe structure shift inside the zone. - **Preconditions**: how displacement quality is measured, whether a sweep or structure break is mandatory, and how recent it must be. - **Time filters**: session windows, news exclusions, day-of-week rules. - **Risk and exits**: stop beyond the gap versus beyond the swing, fixed R targets versus liquidity targets, partials, breakeven rules. - **Housekeeping**: how many unmitigated gaps stay on the chart, when they expire, and whether a zone can be used more than once.

Two strategies described with the same words can behave very differently once these are pinned down.

## Common mistakes

The most frequent one is treating every gap as tradeable. Gaps are abundant on lower timeframes, and without a size or context filter the concept degenerates into "buy any pullback". A second is hindsight selection: on a finished chart it is easy to point at the gap that held and ignore the ones price ran straight through. A third is confusing context with signal — stacking so many confluences that valid setups become too rare to evaluate, while each added condition is never tested for what it actually contributes.

On the implementation side, look-ahead bias is the classic coding error: the gap is only known at the close of the third candle, and entries must respect that. Small gaps on fast timeframes are also where spread and slippage do the most damage, so execution assumptions matter as much as the pattern. And a rule set with no staleness or invalidation logic quietly accumulates zones that will "work" someday, which flatters a visual review but not a systematic one.

## Evaluating and backtesting an FVG strategy

Start by writing the rules mechanically — detection, validity, entry, invalidation, exit, time filter — until a second person could produce the same trade list. Then test the base rule alone before adding confluences, and measure the marginal effect of each filter rather than judging the finished stack. It is worth comparing the result against a naive baseline, such as entering in the same direction at a simple pullback or at a fixed retracement of the displacement leg: the useful question is whether the gap itself adds anything beyond "trade with the recent move".

Session-restricted variants produce few trades per year, so a credible test usually needs several years, multiple instruments, and out-of-sample or walk-forward segmentation. Track the distribution of outcomes — excursion favourable and adverse, time in trade, sensitivity to gap-size and stop parameters — not just headline averages, and apply realistic costs. Robustness across nearby parameter values tells you more than a single well-tuned configuration.

The decoded versions linked from this page are useful precisely because they differ in these details. Reading several side by side makes the design space visible: which ones require a sweep, which gate on structure, which restrict the clock, and which simply take the gap.

Strategies in this concept (94)

Frequently asked questions

What exactly counts as a fair value gap?

The standard definition uses three consecutive candles: a bullish gap exists when the third candle's low is above the first candle's high, and a bearish gap when the third candle's high is below the first candle's low. The untouched band between those levels is the zone. Variations use bodies instead of wicks, or require a minimum gap size relative to volatility, so the same chart can show different gaps under different definitions.

Do fair value gaps always get filled?

No. Many are revisited, some only partially, and others are never touched again within any relevant horizon. That is why implementations differ on what counts as mitigation — first touch, the midpoint, or a complete fill — and why most include an expiry or invalidation rule. Assuming every gap must fill is an assumption to test on your own data and instrument, not a property of the market.

What is the difference between an FVG and an inverse or inversion FVG?

A standard FVG is traded on the expectation that price returns to it and continues in the original direction. An inverse FVG (iFVG) is a gap that price has traded fully through, invalidating the original reading; the zone is then treated with reversed polarity, so a broken bullish gap becomes a potential resistance area. They are opposite readings of the same structure and are usually not combined in one rule set without an explicit precedence rule.

Is a fair value gap the same as an order block or a volume imbalance?

They are related but distinct. An FVG is defined by non-overlapping ranges across three candles. An order block refers to a specific candle preceding a strong move. A volume imbalance describes a gap between one candle's close and the next candle's open, with wicks still overlapping. Many strategies use two or three of these together, which makes it important to define each one separately before combining them.

Which timeframe works best for FVG setups?

There is no single answer, and treating this as a fixed parameter is usually a mistake. Higher-timeframe gaps are fewer and wider, giving larger stops and less noise; lower-timeframe gaps are abundant and more affected by spread and slippage. Many implementations pair the two — locating the zone on a higher timeframe and refining entry on a lower one — which should be tested as a deliberate design choice.

Can an FVG strategy be fully automated and backtested?

Yes, provided every discretionary step is specified: gap detection, minimum size, which preceding conditions are required, the entry trigger inside the zone, stop and target placement, and when a zone expires. The gap must only become known at the close of its third candle to avoid look-ahead bias. Setups restricted to short session windows generate few trades, so meaningful evaluation needs long histories and out-of-sample testing.

All strategy concepts · Explore all strategies