MS

Market Science

CME Gap Study

December 30, 2019

Updated 30Dec2019, 17:29:31 UTC

NOTE: THE CONTENT IN THIS DOCUMENT IS CONFIDENTIAL AND PROPRIETARY.
While care has been made to ensure accuracy in the preparation of this document, slight variations in data may exist due to inconsistencies from data providers and applications. Derivatives trading involves substantial risk of loss. Past performance is not necessarily indicative of future results. Market Science employees may hold positions in instruments mentioned herein.

Abstract (TL;DR)

  • Gaps have decreased in size on a volatility-adjusted basis since the CME launched Bitcoin futures trading
    • The effect borders on statistical significance
    • this study doesn't attempt to assign a cause to the phenomenon
  • Weekend gaps have filled at a higher rate since launch
    • we can't reject the hypothesis that this difference is due to random chance.
  • A strategy that fades CME gaps and waits for them to close has been marginally profitable at best.
  • Short-term returns following weekend gaps are stronger in the direction of the gaps than against them

CME Gaps: A Primer

Since their launch in December 2017, the Bitcoin futures products offered by the Chicago Mercantile Exchange (CME) have become one of the most liquid ways for large financial institutions (especially those domiciled in the United States) to gain exposure to the cryptocurrency's price movements. CFTC regulation and access to large, established clearing houses greatly reduce many of the counterparty risks incurred by trading in offshore, unregulated exchanges.

However, the CME's market for Bitcoin futures doesn't share the 24/7 global trading hours of most other cryptocurrency exchanges. Similar to its markets for more established financial products, Bitcoin futures trading stops on the weekend. According to the official contract specifications the market is closed each week from 16:00 Central Standard Time (CST) on Fridays until Sunday 17:00 CST.

During this time period, no trades are conducted. This causes "gaps" to form on charts of CME Bitcoin prices, where the first traded price upon market open on Sunday is markedly different than the last traded price before the close on the previous Friday. Such gaps rarely form on other exchanges, since trading only stops for one-off occurrences such as maintenance or technical issues.

These apparent anomalies have become the source of much discussion; it's fairly common to observe traders incorporating them into their market analysis. This report seeks to determine whether such gaps provide any actionable information on which to form a trading edge.

Note: This study uses intraday price data from the Bitcoin Mercantile Exchange (BitMEX). Gap prices are the last traded ("close") price as of Friday 16:00 CST and the first traded ("open") price from Sunday 17:00 CST.

Average Gap Sizes

Just to get an idea of how large these gaps usually are, we'll look at their average size (in absolute terms). To account for the effects of volatility (we'd expect larger gaps during more volatile periods in the market), we'll consider both the raw size as a percentage as well as normalized by recent volatility. The latter is calculated by dividing the gap by the Average True Range of the last 480 one-hour bars. This was chosen somewhat arbitrarily, and done primarily for the sake of comparison later in this study.

Gap Fills

One of the most popular strategies or theories around CME downtime involve gaps "filling"; traders expect the market to retrace the moves that created a discontinuity in the first place, thereby closing the space.

To be frank, it's unclear what would cause such a phenomenon to occur. The theory most likely originated in equity and fixed income markets, where vastly diminished overnight liquidity effectively closes them. As a result, instruments in these markets often open at different prices than they closed at.

These gaps are "real"; very few if any trades took place between the two prices. Contrast this with CME Bitcoin futures, where virtually every other market is operating as normal during its scheduled exchange downtime. Bitcoin continues to trade uninterrupted the entire time.

Below, we'll take a look at how often this thesis is actually correct. For reference, we'll define a gap "filling" as a market that trades equal to above the last price on friday's CME close in the case of a gap down or vice versa.

Since the launch of Bitcoin futures in December 2017, gaps in CME price data caused by weekend downtime have eventually filled over 95% of the time. In 77% of these cases the retracement occurs in the subsequent week, before the next CME market open. Virtually all the moves are actually retraced before the next Friday market close. However, some gaps don't fill for an entire year! So far, this looks like a no-brainer: just fade every gap you see, right? RIGHT!?

Well, not so fast. The probability of the gap filling is only half (or maybe less) of the story.

We also need to consider how large the filled gaps are, as compared to market moves when they don't fill. This will help us determine the expectancy, or edge of this anomaly. For illustration purposes, stats for all gaps until close are shown below. These aren't particularly useful for evaluating a strategy, because many of the periods overlap (if one weekend gap up isn't filled, a gap up on the previous weekend must also be unfilled by definition).

Gap Total Returns
Gap Filled False True
mean -65.75% 2.92%
std 51.46% 2.85%
min -130.30% 0.04%
25% -104.29% 0.77%
50% -55.18% 2.18%
75% -36.07% 3.98%
max -2.91% 13.64%
Never Filled Gaps
Gap Start Gap End Final Returns
date
2018-01-07 23:00:00 16706.5 16408 -55.18%
2018-12-16 23:00:00 3156.5 3193 -130.30%
2019-02-17 23:00:00 3563.5 3599.5 -104.29%
2019-05-12 22:00:00 6291 7145.5 -2.91%
2019-08-11 22:00:00 11874 11502 -36.07%

Clearly, we'd endure some extreme pain waiting for gaps that never closed. In fact, employing leverage would have blown accounts up entirely waiting for the market to re-visit the 3000s in late 2018/early 2019.

This was only for demonstrative purposes; (I hope) most traders wouldn't just follow this strategy blindly, shorting 3193 and waiting for the gap to close. So next, we'll consider each week separately, and assess returns from fading the gap at CME market open. Concretely, we'll consider a strategy that:

  • Opens a trade in the opposite direction of the weekend gap upon CME market open
  • Close at the gap open level if touched
  • Otherwise hold until either 1) the next CME Friday market close or 2) the next CME Sunday market open
    • These cases will be considered separately

Risk-averse readers are likely screaming at the absurbity of such a strategy, what with the lack of stops and targets. That's understandable. However, the only way the stats above are relevant is if that's the exact strategy we consider: wait until the gap fills, exit immediately when it does. Including additional features would add complexity, more parameters, and distort the strike rates already established.

CME Close Returns
Filled Before CME Close
False # returns 25.00
# trades 25.00
mean return % -6.59
mean abs return % 7.13
return std % 6.88
sharpe ratio -6.90
# gains 3.00
# losses 22.00
win % 12.00
mean gain % 2.28
mean loss % -7.80
win/loss 0.29
True # returns 80.00
# trades 80.00
mean return % 2.26
mean abs return % 2.26
return std % 1.86
sharpe ratio 8.73
# gains 80.00
# losses 0.00
win % 100.00
mean gain % 2.26
mean loss % NaN
win/loss NaN
CME Open Returns
Filled Before CME Open
False # returns 24.00
# trades 24.00
mean return % -7.73
mean abs return % 8.42
return std % 7.50
sharpe ratio -7.43
# gains 4.00
# losses 20.00
win % 16.67
mean gain % 2.07
mean loss % -9.69
win/loss 0.21
True # returns 81.00
# trades 81.00
mean return % 2.24
mean abs return % 2.24
return std % 1.85
sharpe ratio 8.72
# gains 81.00
# losses 0.00
win % 100.00
mean gain % 2.24
mean loss % NaN
win/loss NaN
Basic Strategy Performance Summary
CME Close Returns CME Open Returns
# returns 105 105
mean return % 0.15 -0.04
mean abs return % 3.42 3.65
return std % 5.28 5.73
sharpe ratio 0.2 -0.05
# gains 83 85
# losses 22 20
win % 79.05 80.95
mean gain % 2.26 2.23
mean loss % -7.8 -9.69
win/loss 0.29 0.23

As should be expected, fading gaps is unprofitable most of the time that gaps don't fill (strike rate < 20%). The losses in this case are also pretty significant, offsetting the high strike rate for gaps closing. In fact, the before-cost risk-adjusted returns of this strategy are negligible (SR=0.20) when exiting at the CME weekly close of trading, and negative (SR=-0.05) when holding until the next week's trading begins.

Post-Gap Returns

Perhaps jumping straight to an all-or-nothing, fill-or-bust strategy right away was premature. There may still be some edge to fading the gap move in the short-term over subsequent time periods. Below are the forward returns for fading simply fading the gaps for $n$ hours into the future:

Forward Returns After Gaps
24h Returns 48h Returns Next Close Returns Next Open Returns
# returns 105 105 105 105
mean return % -0.49 -0.55 0.14 0.16
mean abs return % 3.04 4.73 6.83 7.99
return std % 4.35 6.48 9.38 10.92
sharpe ratio -2.13 -1.16 0.11 0.11
# gains 53 54 57 57
# losses 50 51 48 48
win % 51.46 51.43 54.29 54.29
mean gain % 2.53 4.06 6.42 7.51
mean loss % -3.7 -5.44 -7.32 -8.56
win/loss 0.68 0.75 0.88 0.88

Fading the gaps actually has a significantly negative edge in the 1-2 days following the CME open. The better strategy would be to trade in the direction of the gap immediately following their formation.

However, this analysis doesn't take into account the magnitude of each gap. Perhaps larger gaps are more suitable for fading? To answer this, we'll weight the returns by the square root of the Gap ATR multiple calculated earlier. This mimics a strategy that trades in larger size when gaps are larger and vice versa. Taking the square root helps to eliminate the impact of outliers (particularly large gaps).

Weighted Forward Returns After Gaps
24h Returns 48h Returns Next Close Returns Next Open Returns
# returns 105 105 105 105
mean return % -0.79 -0.81 0.89 0.36
mean abs return % 4.63 6.72 9.75 11.9
return std % 8.59 10.18 13.95 17.48
sharpe ratio -1.76 -1.07 0.46 0.15
# gains 53 54 57 57
# losses 50 51 48 48
win % 51.46 51.43 54.29 54.29
mean gain % 3.8 5.75 9.8 11.29
mean loss % -5.69 -7.75 -9.69 -12.62
win/loss 0.67 0.74 1.01 0.89

While this improved the risk-adjusted returns slightly, this is still not worth trading, especially after considering trading costs!

Risk/Reward

Next, we'll attempt to address the (fair) criticism that these illustrative examples aren't suitable as complete strategies. Many traders incorporate stop losses as a form of risk management and measure trade results in multiples of "R", or the amount of capital at risk in each trade. We want to get a sense of how much the market may move against us before ultimately yielding a profit. A risk-reward ratio will be used to measure this.

For the sake of simplicity, only the period from CME weekly open (gap end) to the following CME weekly close will be considered. In the case of 0 drawdown (i.e. price trended opposite the gap immediately and filled the gap), a drawdown of 1 bps (0.01%) will be substituted to avoid division by 0.

Traditionally, "risk" is the demoninator in such ratio. However, in the case of gap fills, we have a scenario where we place a trade in the opposite direction of the gap (short after gaps up and vice versa) and close it when the gap fills. Such a strategy constrains the potential gain to the size of the gap, while leaving adverse market movements unconstrained. For this reason, we'll use the inverse ratio $\frac{reward}{risk}$ as well.

Reward/Risk Not Filled Gap Filled
count 24.000000 81.000000
mean 0.497887 6.959579
std 0.830871 18.979778
min 0.024050 0.074946
25% 0.087196 0.554932
50% 0.211390 1.553086
75% 0.595185 5.800099
max 4.028726 108.875740
Risk/Reward Not Filled Gap Filled
count 24.000000 80.000000
mean 0.497887 7.036905
std 0.830871 19.086681
min 0.024050 0.074946
25% 0.087196 0.545095
50% 0.211390 1.565840
75% 0.595185 5.940222
max 4.028726 108.875740

The strategy looks even worse from a reward/risk standpoint. Capturing the gaps that did fill would've required stops 50% larger than the gaps on average; stops up to 13.3x as wide would've been needed to prevent getting stopped at all.

For the gaps that didn't fill, the maximum adverse excursion was over 9x the gap distance on average, and over 41x (!!!) at worst.

Before/After CME Launch Comparison

A popular theory posits that traders on 24/7 exchanges (both spot and derivative) will push the market away from those on the CME, therby "trapping" them with no way to exit their underwater positions. If this were the case, we'd expect the CME launch to cause an increase in the average gap size. As shown below, this doesn't appear to be the case. The following studies compare Bitmex data from (Jan 2016 - CME Launch) with data from (CME Launch - present).

Average gap size (as measured by the absolute percentage between gap close and gap open) actually decreased slightly since the CME launched its futures products. There's a more significant difference when we account for volatility: gaps were approximately 25% smaller in relative terms after the CME opened.

An alternative hypothesis could be that CME traders were more active in suppressing volatility on other venues during the market downtime to protect their positions. We'll leave this open to debate.

Finally, we'll examine the difference in gap fill rates before and after the CME futures launched. If these gaps are more likely to close because of the impact the CME has, there should be a significant increase in gap fill rate between the two periods.

Weekend gaps have filled at a higher rate since the CME launched Bitcoin futures trading. There may be some merit to this idea, after all.

Statistical Significance

To determine whether the impact CME futures gaps have had on XBTUSD price action is significant, we'll conduct a bootstrap test. This is a hack-y way of determining whether an auxiliary variable (in this case futures launching) actually has a significant effect on the primary variable in question (gap size or fill rate).

To conduct these tests, the individual measurements will be shuffled 5000 times each and split into two groups. In order to declare post-launch characteristics significantly different than their pre-launch counterparts, the difference between the two should fall well outside the mean of the random distribution.

While the difference between raw gap sizes in percentages fall well within the distribution, the value falls much closer to the tails when volatility is accounted for. While it doesn't exceed the threshold most frequently used for statistical significance ($p < 0.05$), it's close enough to warrant further consideration.

After randomly shuffling, we can safely reject the notion that the CME Launch had a significant impact on the rate of gap fills. The thesis that CME being closed over the weekend alters market behavior in the following week appears to lack merit.

Appendix: All Gaps since CME Launch

Back to main site: Market Science

Posted by: Market Science

Contact information: info@marketsscience.com.