Fair Value Gap & Order Block Research Data

The data behind the AlgoTraderPro Fair Value Gap Study: 15 crypto markets, four timeframes, every figure with its sample size and standard error. Free to download and reuse under CC BY 4.0.

Download the full R&D report — free

The study as a designed 12-page report: the findings, every chart and table, the five rules for building a trade as a one-page checklist, and the full methodology. It costs nothing: enter your email, download it straight away, and a copy of the link arrives in your inbox.

Get the free PDF report

What the study found

We tested fair value gaps and order blocks on 15 crypto markets over two years, and re-checked every result on ten coins we never used to form an idea. The zones are real: price usually reacts at them, and the strongest are rejected about three times in four, often on the very first candle. A reaction is where a trade begins. Buying the first touch reached a 3:1 target only about as often as breaking even requires, on every timeframe and filter we tested, which shows where the real work is. What decides the outcome is how the trade is built: the entry, the stop, the target and the costs.

  • Price rejected grade A fair value gaps 74–79% of the time and grade C gaps 57–59%, on every timeframe from 15 minutes to daily.
  • Counted in candles, zones behave alike on every timeframe: price usually reached a fair value gap within two candles, and 62–66% of grade A rejections happened on the first candle that touched the zone.
  • Buying the first touch reached a 3:1 target 20–29% of the time for grade A zones across timeframes, against a 25% breakeven before costs.
  • The same 0.11% round trip cost a median 0.14R on a grade A 15-minute zone and 0.01R on a daily one; on grade C 15-minute zones it was 0.75R.
  • A fair value gap with an order block right behind it was rejected at the same rate as one without (within about two percentage points).

Read the analysis in How to Turn Fair Value Gaps Into High-Quality Trades and the zone tables in How to Spot the Fair Value Gaps Price Rejects Most.

Download the data

FileWhat it containsRows
Zone behaviour How often zones were touched, rejected, invalidated or never reached within 200 candles, with standard errors, by coin set, timeframe, zone type and grade. 180 CSV
Time to touch and rejection How many candles price took to reach a zone and to reject it, in candles and in hours, and the share of rejections that happened on the first candle touching the zone. 180 CSV
Fee in R What a 0.11% round-trip fee costs as a share of the risk, with the stop just beyond the zone (far edge + 0.1 × ATR), by coin set, timeframe, zone type and grade. 180 CSV
First-touch win rates at 3:1 Buying the first touch of a zone, stop beyond the far edge, target 3R: how often the target came first. Breakeven at 3:1 is 25% before costs. 72 CSV

Column dictionary

Zone behaviour · atp-fvg-study_zone-behaviour_2026-09.csv
  • coin_set: all_15 (every coin), held_out_10 (ADA, AVAX, LINK, DOGE, DOT, LTC, ATOM, NEAR, APT, ARB: used only to confirm) or study_5 (BTC, ETH, SOL, BNB, XRP: used to form every idea)
  • timeframe: 15m, 1h, 4h, 1D (full history) or 1D_24mo (daily zones detected from 20 Sep 2024)
  • zone: FVG (every fair value gap), OB (every order block, outcomes on its body), FVG+OB (gaps whose order block candle sits within 3 candles) or FVG only (the rest)
  • grade: A (height ≥ 1.0 × ATR(14)), B (≥ 0.5) or C (< 0.5)
  • n_zones: Zones measured (zones whose 200-candle window runs past the data are excluded)
  • touched_pct / touched_se: Share of zones a wick reached, and its standard error
  • rejected_pct / rejected_se: Touched, then a close back out on the near side before any close through (ZoneHunter Pro calls this "mitigated")
  • invalidated_pct / invalidated_se: A close through the far edge came first
  • still_open_pct: Touched, neither yet after 200 candles
  • never_reached_pct: No touch within 200 candles
  • rejected_given_touched_pct / rejected_given_touched_se: Rejected, as a share of touched zones only
Time to touch and rejection · atp-fvg-study_time-to-touch_2026-09.csv
  • coin_set: all_15 (every coin), held_out_10 (ADA, AVAX, LINK, DOGE, DOT, LTC, ATOM, NEAR, APT, ARB: used only to confirm) or study_5 (BTC, ETH, SOL, BNB, XRP: used to form every idea)
  • timeframe: 15m, 1h, 4h, 1D (full history) or 1D_24mo (daily zones detected from 20 Sep 2024)
  • zone: FVG (every fair value gap), OB (every order block, outcomes on its body), FVG+OB (gaps whose order block candle sits within 3 candles) or FVG only (the rest)
  • grade: A (height ≥ 1.0 × ATR(14)), B (≥ 0.5) or C (< 0.5)
  • n_touched: Zones touched within 200 candles
  • touch_candles_p25 / _median / _p75: Candles from detection to the first touch
  • touch_hours_median: The same median in clock hours
  • n_rejected: Zones rejected
  • rejection_candles_median / _p75: Candles from detection to the rejection close
  • rejection_hours_median: The same median in clock hours
  • rejected_on_first_candle_pct: Rejections that closed back out on the same candle that first touched
Fee in R · atp-fvg-study_fee-in-r_2026-09.csv
  • coin_set: all_15 (every coin), held_out_10 (ADA, AVAX, LINK, DOGE, DOT, LTC, ATOM, NEAR, APT, ARB: used only to confirm) or study_5 (BTC, ETH, SOL, BNB, XRP: used to form every idea)
  • timeframe: 15m, 1h, 4h, 1D (full history) or 1D_24mo (daily zones detected from 20 Sep 2024)
  • zone: FVG (every fair value gap), OB (every order block, outcomes on its body), FVG+OB (gaps whose order block candle sits within 3 candles) or FVG only (the rest)
  • grade: A (height ≥ 1.0 × ATR(14)), B (≥ 0.5) or C (< 0.5)
  • n_trades: First-touch trades measured
  • stop_distance_pct_median / _mean: Distance from entry to stop, % of price
  • fee_in_r_median / _mean: 0.11% ÷ stop distance: the fee as a fraction of one R
  • trades_fee_over_quarter_r_pct: Share of trades whose fee exceeds 0.25R
First-touch win rates at 3:1 · atp-fvg-study_first-touch-win-rates_2026-09.csv
  • coin_set: held_out_10 or study_5 (see above)
  • zone: FVG, OB or FVG+OB
  • grade: A, B or C
  • timeframe: 15m, 1h, 4h or 1D
  • n_trades: Trades that reached the stop or the 3R target within 200 candles
  • win_rate_3r_pct / win_rate_3r_se: Share that reached 3R first, and its standard error
  • stop_distance_pct_mean: Mean entry-to-stop distance, % of price
  • fee_in_r_mean: Mean 0.11% round-trip fee as a fraction of one R

How to cite and reuse

Licensed CC BY 4.0: copy, adapt and publish, commercially included, with credit and a link to this page.

AlgoTraderPro Fair Value Gap Study (2026), CC BY 4.0. https://algotraderpro.io/research/fvg/

How it was measured

Bybit USDT perpetual futures on 15 coins: BTC, ETH, SOL, BNB and XRP to form every idea; ADA, AVAX, LINK, DOGE, DOT, LTC, ATOM, NEAR, APT and ARB held out to confirm. 15-minute, 1-hour and 4-hour candles from 20 September 2024 to 12 September 2026, daily candles over each coin's full history. Zones are detected exactly as ZoneHunter Pro's Pine script draws them, graded by height ÷ ATR(14), and followed for 200 candles. Trades enter at the first touch of the near edge with the stop 0.1 × ATR beyond the far edge and a 0.11% round-trip fee. Slippage, funding, queue position and partial fills are not modelled. The full methodology, including the detection rules and how results were confirmed, is in the study. Last updated 15 September 2026.

Get the free PDF report

Educational research, not financial advice. Historical statistics measured before slippage; they do not predict future results. Crypto derivatives carry a high risk of loss.

Using the research data

Can I use this data in my own article, video or model?
Yes. The files are licensed CC BY 4.0: you can copy, adapt and publish them, commercially included, as long as you credit "AlgoTraderPro Fair Value Gap Study (2026), CC BY 4.0" and link to this page.
What does "rejected" mean in these files?
Price touched the zone and then closed back out on the side it came from, before any candle closed through it. ZoneHunter Pro calls this "mitigated". A rejection is an event at the zone, not a trade result.
Why are there two coin sets?
Every idea was formed on BTC, ETH, SOL, BNB and XRP. Ten more coins were held out and used only to confirm results. A finding counts only when both sets agree, which is what separates a real pattern from a lucky cell.
Is slippage included?
No. Fees are a 0.11% round trip; slippage, funding, queue position and partial fills are not modelled. Every figure is measured before slippage.
Can I get the raw candles or a per-zone file?
Not from this page. The candles are Bybit market data, and the per-zone records carry trade outcomes beyond what the study publishes. Every figure here can be re-derived from Bybit USDT perpetual candles for the listed coins and window using the methodology in the study.