Markets › Crypto · BTCUSDT spot (Binance), 1-minute
Bitcoin CME Gap Fill: Do CME Gaps Always Fill? 458 Weekends Tested
Every weekend Bitcoin CME gap from December 2017 to September 2026: how often and how fast they fill, and whether trading the fill from the Sunday reopen makes money after costs, compared with the same trade on random days.
Buried · No proven edgeThe gap filled. The stop came first.
Variants tried: 3 · Passed every gate: 0 · Gaps filled by the end of the data: 96.9% · Holdout opened: yes (already used)
Short answer: they almost always fill, eventually, but trading the fill did not pay. Of 458 Bitcoin weekend CME gaps from December 2017 to September 2026, 96.9% were filled by the end of the data and 80.3% within a week; but fading gaps of 1% or more from the Sunday reopen lost -0.213 R a trade with a stop one gap away and -0.183 R with no stop.How much costs took here, compared across all 54 of our tests →
00The short answer
- Do CME gaps always fill? Almost: 96.9% of 458 Bitcoin weekend gaps were filled by September 2026, 56.3% within 24 hours and 80.3% within a week of the Sunday reopen. Gaps of 1% or more: 96.0% eventually, but only 38.4% within a day.
- Can you trade it? Not with these rules. Fading the gap at the reopen (target: Friday's close) lost -0.213 R a trade with a stop one gap away, -0.125 R with two gaps and -0.183 R with no stop, over 250 trades of gaps of 1% or more.
- Why: the price often moved further from Friday's close before it came back; with a stop, the trade did worse than the same trade on random days. Buried.
01What is a CME gap?
CME Group lists Bitcoin futures in Chicago. They trade nearly around the clock from Sunday evening to Friday afternoon, with a short daily break, and stop for the weekend: the last trade is on Friday at 17:00 New York time and trading resumes on Sunday at 18:00. Bitcoin itself trades all weekend, so if it moves, the CME chart shows a jump between Friday's close and Sunday's open: the CME gap. The meaning traders give it: price tends to come back and “fill” the gap, returning to Friday's close.
We measure the gap on Binance spot Bitcoin (BTCUSDT) at exactly those times, the way most traders chart it: Friday's close is the last spot minute before 17:00 New York, Sunday's open the first minute at 18:00. The median gap was 1.14%, and 54.6% of weekends had a gap of 1% or more.
02Do CME gaps always fill?
A gap is filled when the spot price trades back to Friday's close after the Sunday reopen.
| Gaps | Weekends | Filled within 24 hours | Within 7 days | Within 30 days | By Sep 2026 | Median hours to fill |
|---|---|---|---|---|---|---|
| All gaps | 458 | 56.3% | 80.3% | 89.1% | 96.9% | 16 |
| 1% or more | 250 | 38.4% | 70.0% | 83.6% | 96.0% | 43 |
| 1% or more, gap up | 148 | 35.1% | 68.9% | 81.1% | 93.2% | 43 |
| 1% or more, gap down | 102 | 43.1% | 71.6% | 87.3% | 100.0% | 46 |
Share of gaps filled within a given time after the Sunday reopen.
So the claim is close to true, and it would be close to true for almost any price level: Bitcoin moves a lot, and a level a percent or two away is usually revisited within weeks. Every gap down of 1% or more was filled by the end of the data; 6.8% of the gaps up of that size never were (Bitcoin rose and did not come back). The trading question is different: does the fill come before the price moves far enough against you to stop you out?
03The CME gap trading strategy we tested
- Signal: at the Sunday 18:00 reopen, a gap of 1% or more. Trade toward the gap: sell if Bitcoin opened above Friday's close, buy if below, at the reopen price.
- Target: Friday's close, the gap filled. Stop: CG-S1 one gap beyond the entry (target and stop equally far), CG-S2 two gaps, CG-NS none.
- Time exit: next Friday at 17:00 New York, the next CME close. Results in R (the stop distance; one gap for CG-NS).
- Costs: 0.05% of the price on every fill (the Binance perpetual taker fee, so shorts are possible), as in our other Bitcoin tests. Periods: to mid-2021, mid-2021 to 2023, and a holdout from 2024 already used by our earlier Bitcoin tests. Control: the same trades, same direction and distances, on random other days at the same time, 500 times.
- Engine check: hand-worked weekends (including a clock-change weekend) and an independent re-implementation, using the operating system's time-zone database, that matched every gap and every trade; in its first run one expectation written in the test itself was off by a minute (the time to fill runs to the close of the filling minute) and was corrected before any result was printed (cg_selftest_result.txt).
04Results: trading the Bitcoin CME gap fill
| Variant | Stop | Trades | Win rate (95% range) | Gross per trade | Net per trade | Net total | Profit factor | Verdict |
|---|---|---|---|---|---|---|---|---|
| CG-S1 | Stop 1x the gap beyond the entry | 250 | 41.2% (35% to 47%) | -0.167 R | -0.213 R | -53 R | 0.64 | Buried |
| CG-S2 | Stop 2x the gap | 250 | 57.2% (51% to 63%) | -0.102 R | -0.125 R | -31 R | 0.68 | Buried |
| CG-NS | No stop | 250 | 72.4% (67% to 78%) | -0.137 R | -0.183 R | -46 R | 0.78 | Buried |
Cumulative net R by month.
How the trades ended
| Variant | Gap filled (target) | Stopped | Closed at Friday 17:00 | Median hours held |
|---|---|---|---|---|
| CG-S1 | 40.0% | 56.8% | 3.2% | 11 |
| CG-S2 | 54.4% | 35.2% | 10.4% | 19 |
| CG-NS | 69.2% | – | 30.8% | 47 |
By period
| Variant | 2017 to mid-2021 (trades) | Mid-2021 to 2023 (trades) | Holdout* 2024 to 2026 (trades) | t, first period | PF, second period |
|---|---|---|---|---|---|
| CG-S1 | -14.2 R (122) | -18.6 R (65) | -20.5 R (63) | -1.31 | 0.55 |
| CG-S2 | -10.9 R (122) | -13.4 R (65) | -6.9 R (63) | -1.44 | 0.55 |
| CG-NS | -49.3 R (122) | +4.0 R (65) | -0.5 R (63) | -1.47 | 1.10 |
* Already used before this test.
05Fading the gap or a random entry?
| Variant | Trades | Real net per trade | Random days, median | Random, 5th to 95th | Percentile (95 needed) |
|---|---|---|---|---|---|
| CG-S1 | 250 | -0.213 R | -0.048 R | -0.144 R to +0.060 R | 0.2 |
| CG-S2 | 250 | -0.125 R | -0.028 R | -0.098 R to +0.031 R | 0.6 |
| CG-NS | 250 | -0.183 R | -0.174 R | -0.450 R to +0.059 R | 47.6 |
The same trades placed on random days lost less than the real ones in almost every run when a stop was used: after the Sunday reopen the price tended to move further away from Friday's close before coming back, more than at random times. Without a stop the gap trade looked like a random one.
06Year by year, gap up and gap down
| Year | Trades | CG-S1 net | CG-S2 net | CG-NS net |
|---|---|---|---|---|
| 2017 (from 22 Dec) | 2 | -0.1 R | -0.5 R | +1.9 R |
| 2018 | 38 | -2.3 R | -4.1 R | -18.9 R |
| 2019 | 33 | -8.4 R | -0.1 R | +6.3 R |
| 2020 | 29 | -2.8 R | -2.8 R | -28.5 R |
| 2021 | 36 | +1.4 R | -3.8 R | -4.9 R |
| 2022 | 26 | -8.4 R | -9.2 R | +6.5 R |
| 2023 | 23 | -12.3 R | -3.8 R | -7.7 R |
| 2024 | 26 | -9.4 R | -5.4 R | -8.7 R |
| 2025 | 22 | -7.2 R | -1.0 R | +7.5 R |
| 2026 (to Sep) | 15 | -3.9 R | -0.5 R | +0.7 R |
| Variant | Gap down, bought: trades / net R | Gap up, sold: trades / net R |
|---|---|---|
| CG-S1 | 102 / -31.1 R | 148 / -22.2 R |
| CG-S2 | 102 / -15.1 R | 148 / -16.1 R |
| CG-NS | 102 / +22.4 R | 148 / -68.2 R |
With a stop one gap away, only 2021 ended positive. Without a stop, buying gaps down made money and selling gaps up lost it, which partly reflects Bitcoin's rise over these years.
07The gates
| Variant | Trades | 1. PF ≥ 1.2 in validation | 2. ≥ 50 trades in each period | 3. t ≥ 2.0 on development | 4. Above the 95th percentile of the moved-entry control | 5. Positive without the 10 best trades | 6. Holdout net positive (already used) |
|---|---|---|---|---|---|---|---|
| CG-S1 | 250 | fail | pass | fail | fail | fail | fail |
| CG-S2 | 250 | fail | pass | fail | fail | fail | fail |
| CG-NS | 250 | fail | pass | fail | fail | fail | fail |
The data-gap check
| Variant | Trades | Touching a data gap of 10+ minutes | Net per trade | Verdict |
|---|---|---|---|---|
| CG-S1 | 250 | 4 | -0.213 R → -0.202 R | Buried → Buried |
| CG-S2 | 250 | 7 | -0.125 R → -0.121 R | Buried → Buried |
| CG-NS | 250 | 11 | -0.183 R → -0.132 R | Buried → Buried |
08Verdict by variant
| Variant | Cause | Gates failed | Verdict |
|---|---|---|---|
| CG-S1 | No proven edge | 1, 3, 4, 5, 6 | Buried |
| CG-S2 | No proven edge | 1, 3, 4, 5, 6 | Buried |
| CG-NS | No proven edge | 1, 3, 4, 5, 6 | Buried |
No proven edge for all three: negative before and after costs. The high fill rate is real; a profitable way to trade it from the reopen was not demonstrated.
TWhat this shows, and what to take into your own tests
What the results show
- Bitcoin CME gaps do fill, eventually: 96.9% of the 458 weekend gaps from December 2017 to September 2026 were revisited by the end of the data, 80.3% within a week. Gaps of 1% or more took longer: 38.4% within 24 hours, a median 43 hours.
- Trading the fill from the Sunday reopen lost money with every stop rule: -0.213 R a trade with the stop one gap away, -0.125 R with two gaps, -0.183 R with no stop, over 250 trades.
- With a stop, fading the gap did worse than the same trade on random days (percentile 0.2 and 0.6): after the reopen the price often moved further away first, and 56.8% of the one-gap stops were hit before the fill.
What remains unknown
- The real CME futures gap. We measured it on Binance spot at the CME times; the futures chart also moves with the futures premium.
- Holiday weeks, when CME closes earlier or reopens later. We used the regular Friday and Sunday times.
- Entries later in the week, or only on gaps of a certain size or direction, chosen in advance. We fixed one rule, a 1% gap and three stops.
Why it was buried
"It always fills" is nearly true and not tradable. Almost any price is revisited if you wait long enough, so a high fill rate costs nothing to observe and says little about when. What a trade needs is the fill before the stop, and from the Sunday reopen the move usually ran further first: with a stop at one gap, 56.8% of trades were stopped and only 40.0% reached the fill within the week. Without a stop 72.4% of trades won, but the gaps that did not fill that week lost more than all the small fills earned.
What you can apply to your own tests
- Ask "before what?" whenever you hear that something always happens. Fill before the stop, before the week ends, before costs.
- Look at the losers of a high win-rate rule. Here 72% winners still lost money.
- Compare with the same trade at random times; a pattern that does worse than random is telling you to stand aside.
A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.
FAQCommon questions
Do CME gaps always fill?
Almost: 96.9% of 458 Bitcoin weekend gaps since December 2017 were filled by September 2026, 56.3% within 24 hours and 80.3% within 7 days. For gaps of 1% or more, 38.4% filled within a day and the median wait was 43 hours.
What is a CME gap in Bitcoin?
CME Bitcoin futures stop trading from Friday 17:00 to Sunday 18:00 New York time while Bitcoin keeps trading. If the price moves over the weekend, the futures chart shows a gap between Friday's close and Sunday's open; traders call it the CME gap and expect the price to come back to Friday's close.
Can you trade the CME gap fill?
Not with the rules we tested: selling gaps up and buying gaps down of 1% or more at the Sunday reopen, with Friday's close as the target, lost money with every stop rule and did worse than the same trades on random days when a stop was used, because the price often moved further away first.
How long does it take for a CME gap to fill?
For all Bitcoin gaps since 2017 the median was 16 hours after the Sunday reopen; for gaps of 1% or more, 43 hours, with 16.4% still open after 30 days.
How was the CME gap tested?
On Binance spot Bitcoin 1-minute data at the CME close and reopen times, with rules written and dated before the data was run, costs included on every trade, results split into development, validation and holdout periods, a random-entry control as the benchmark, and every variant reported. Read the protocol.
09Check our arithmetic
cg_spec.md
cg_lib.js · cg_ref.js · cg_selftest.js · cg_run.js
control_audit_lib.js · gh_lib.js · hourly_lib.js · ma_lib.js · rsi2_protocol.js
cg_selftest_result.txt · cg_results.txt · cg_summary.json · cg_gaps.csv · btc_gaps.json
Code provenance: our own code, written from the rules in the specification.
10Data notes
Source. Binance spot BTCUSDT 1-minute data from the exchange's public archives, each monthly file checked against its published checksum. Spot, not futures: the CME futures gap can differ from the spot gap by the change in the futures premium over the weekend. Holidays that move the CME close or reopen are not modelled. Funding on the perpetual is not included; median holding times were 11 to 47 hours.
11Corrections
22 Oct 2026, navigation: added a link to the new guide comparing trading costs across all our tests. No result changed. 22 Oct 2026, navigation: added a link to the new guide comparing trend following and mean reversion across all our tests. No result changed. 22 Oct 2026, navigation: added a link to the new guide comparing versions with and without a stop loss across our tests. No result changed.
+More tests and guides
- Noise area breakout bitcoin
- Bitcoin pullback strategy backtest
- Turtle trading bitcoin backtest
- Best time to trade gold
- Did the stop loss help? This test next to the other with-and-without pairs
- Trend following vs mean reversion: this test next to the others of its style
- Free prop firm challenge calculator
- What all the backtests found so far
- The backtesting protocol
- How to backtest a trading strategy without fooling yourself
- Backtesting glossary