"Bitcoin trades like a tech stock" is usually argued from daily closes. Until recently that was the only honest way to do it: the stock market closed at 16:00 New York time and crypto didn't. Binance now lists USDⓈ-M perpetuals on gold, silver, crude, copper and a dozen US stocks next to BTC and ETH, all trading 24/7 on the same venue. That makes a minute-by-minute comparison possible, in every US session, including weekends.
The first week of November gave us a good starting point:
- 4 November: BTC +2.9% and ETH +5.7%. A basket of 12 US stock perps ended flat (−0.1%), hiding a 14-point spread between MSFT (+6.7%) and MU (−7.0%).
- 5 November: the stock basket fell 7.8%, a −5.2σ day against its own previous 60 sessions. BTC fell 4.9%, which was only −2.1σ for BTC.
So on 4 November crypto went one way while stocks went nowhere, and on 5 November they fell together but by very different amounts. This article uses those two days as the case study, then measures what holds over 21 April – 7 November 2026: 139 trading days and 21 perps:
- How tightly does crypto move with stocks, and in which US session?
- Who moves first, and by how much?
- How big is the "gap" between them on a normal day, and how unusual were 4-5 November?
TL;DR
- In US hours they reprice in the same minute. At 1-minute resolution, BTC and the stock perps move together (ρ ≈ 0.44 at lag 0). Neither leads by a measurable minute: the lead-lag asymmetry in regular hours is +0.008 [−0.006, +0.022] and flips sign between the two halves of the sample.
- On weekends the stock perps follow BTC by about a minute. With the stock market closed, the correlation of BTC's move with the stock basket's move one minute later is 0.108, against 0.003 the other way round. The difference holds in both halves of the sample. It is weak, though: about 1% of the next minute's variance.
- The relationship is real but loose. On US close-to-close returns the correlation is 0.51 and R² is 0.26, so BTC explains about a quarter of the basket's daily variance. The 20-day correlation swung from −0.05 in late August to 0.84 now.
- 5 November was the biggest miss in the sample. The stock basket's move unexplained by BTC was −6.1%, the largest of 137 days. The opening crash didn't create a pattern: across the other 138 US opens, BTC did not follow the stocks' first five minutes (ρ = −0.05, p = 0.52).
- Crude oil is the one that moves the other way: ρ = −0.19 with BTC in regular hours. Gold and silver move with BTC (+0.35 / +0.38).
Code and data: tick-microstructure-research (tmr crossasset fetch / analyze). Everything comes from public Binance data.
The perps
FollowSM's feed now covers 18 Binance TradFi perps alongside crypto, with VPIN, ±1% book imbalance and per-event taker sweeps:
| group | perps |
|---|---|
| commodities | XAU (gold), XAG (silver), CL (crude oil), COPPER |
| index ETF | QQQ (Nasdaq-100) |
| US megacaps | AAPL, MSFT, AMZN, GOOGL, META, TSLA |
| semiconductors | NVDA, MU, TSM, AVGO, INTC |
| other | PLTR, BABA |
In this article "the stock basket" means an equal-weight basket of the 12 US-listed single stocks (all of the above except QQQ, BABA and the four commodities). Its log return over any interval is the mean of its members' log returns. The QQQ perp serves as a cross-check: on 5-minute returns in regular hours it correlates 0.94 with the basket.
Every minute is labelled with the session of the underlying US market, using the NYSE calendar from Part 3: regular hours 09:30–16:00 ET, pre-market from 04:00, post-market to 20:00, overnight 20:00–04:00 into a trading day, and weekend/holiday for everything else. The perps keep the stock market's rhythm: the basket trades 54% of its volume in regular hours and 4% on weekends. BTC trades 34% and 16%.
The case: 3-6 November, hour by hour
Fig 1. Percentage moves since the 3 November US close. Blue bands are US regular hours.
Tuesday evening (3 Nov). On the evening of US midterm election day, between 19:00 and 22:00 ET, after the cash close, BTC fell 1.8%, the QQQ perp 2.2% and the stock basket 3.1%. Minute by minute, BTC and the SPY and QQQ perps all hit their lows within two minutes of each other, at 22:08–22:09 ET. By 04:00 ET most of it was gone. We don't attribute moves to news here; the point is that crypto and the stock perps moved together while no US stock exchange was open.
Wednesday (4 Nov). Crypto and stocks split.
| US close to US close | 4 Nov | 5 Nov |
|---|---|---|
| BTC | +2.9% | −4.9% (−2.1σ) |
| ETH | +5.7% | −7.0% (−2.4σ) |
| stock basket (12 perps) | −0.1% | −7.8% (−5.2σ) |
| QQQ perp | +0.9% | −6.3% (−5.9σ) |
| MSFT / AAPL / AMZN | +6.7% / +5.4% / +6.1% | −3.6% / −1.4% / −2.1% |
| NVDA / MU / TSM | −3.1% / −7.0% / −2.3% | −9.2% / −17.2% / −10.9% |
| AVGO / INTC / PLTR / TSLA | −1.9% / −3.7% / −2.1% / −3.3% | −10.5% / −10.5% / −9.8% / −10.8% |
| BABA | +5.0% | +2.6% |
| gold (XAU) / silver (XAG) | +3.6% / +5.2% | +0.9% / −0.4% |
| crude (CL) / copper | −8.1% / +0.1% | +2.2% / −3.1% |
σ = the day's log return over the standard deviation of that perp's previous 60 US close-to-close returns.
The perps are the stock market here. Against the official closes (Yahoo daily bars), every single-stock and ETF perp in the table moved within a third of a percentage point of the listed share on each day from 4 to 6 November:
| official close vs perp | 4 Nov | 5 Nov |
|---|---|---|
| SPY | +1.65% / +1.63% | −4.41% / −4.27% |
| QQQ | +0.97% / +0.91% | −6.49% / −6.26% |
| MU | −7.00% / −6.97% | −17.46% / −17.19% |
Why other reports show different crypto numbers. Many market summaries quote BTC +3.9% and −5.5% (ETH +6.6% and −7.7%) for these two days. Those are UTC calendar days, and we get the same figures from the perps on that basis. We use US close-to-close instead, so crypto and stocks are measured over the same 24 hours.
On 4 November BTC tracked the megacaps, not the chip stocks. Measured against the basket, the day was ordinary: its BTC-unexplained residual was −1.4%, larger than 62% of days. The basket's flat close came from two halves cancelling each other.
Thursday (5 Nov). The selloff came in two legs. At 07:00 ET, BTC, ETH, the QQQ perp and MU all dropped in the same 1-minute bar. Then the stocks broke at the open. The VIX closed at 28.18, up from 16.61 the day before.
Fig 2. Basis points since 09:29 ET on 5 November. The black line is the 09:30 open.
| since 09:29 ET | 09:36 | 09:37 | 10:00 | 10:30 |
|---|---|---|---|---|
| stock basket | −85 bps | −130 | −349 | −484 |
| QQQ perp | −74 | −106 | −239 | −349 |
| BTC | −10 | −49 | −154 | −395 |
| ETH | −33 | −68 | −178 | −476 |
| gold | +26 | +17 | −24 | −48 |
For six minutes the stock perps fell and BTC barely moved. Then BTC dropped 39 bps in a single minute on $145M of perp volume, nine times the minute before. It kept falling for the rest of the hour. On the chart it looks like a textbook lead-lag: stocks moved first and crypto caught up.
The stock side of that was the real market, not a perp running ahead of it. On Yahoo's 1-minute bars the QQQ ETF itself stood at −73 and −104 bps at 09:36 and 09:37, and the perp stayed within about 3 bps of the ETF at 09:36, 09:37, 10:00 and 10:30.
Is that a pattern? Testing the open
One day is an anecdote, so we turned it into a test. On every other US open in the sample (138 days, with 5 November excluded because it generated the hypothesis), we compared the basket's first five minutes with BTC's next fifteen. As a control, we ran the same measurement at 12:00 ET.
| n | ρ(first 5 min, next 15 min) | permutation p | biggest-quintile days where the follower kept going | |
|---|---|---|---|---|
| stocks first 5 min → BTC next 15 min, at the open | 138 | −0.05 | 0.52 | 36% (10 of 28) |
| same, at 12:00 ET (control) | 138 | −0.09 | 0.32 | 39% |
| BTC first 5 min → stocks next 15 min, at the open | 138 | +0.10 | 0.23 | 61% (17 of 28) |
| same, at 12:00 ET (control) | 138 | +0.01 | 0.90 | 43% |
Nothing. On the days with the biggest opening moves, BTC continued in the stocks' direction only 36% of the time. 5 November was one day, not a rule.
How tightly do they move together, by session?
Fig 3. Correlation of 5-minute returns with BTC, with 95% confidence intervals from a bootstrap over whole days.
| corr with BTC, 5-min returns | regular | pre-market | post-market | overnight | weekend/holiday |
|---|---|---|---|---|---|
| stock basket | 0.46 [0.42, 0.51] | 0.41 | 0.28 | 0.44 | 0.40 [0.36, 0.44] |
| QQQ perp | 0.48 | 0.43 | 0.31 | 0.44 | 0.24 |
| NVDA / MU / TSM | 0.34 / 0.32 / 0.34 | 0.30 / 0.27 / 0.30 | 0.21 / 0.24 / 0.23 | 0.37 / 0.33 / 0.30 | 0.27 / 0.24 / 0.15 |
| TSLA | 0.33 | 0.26 | 0.14 | 0.34 | 0.30 |
| MSFT / AMZN / META / GOOGL / AAPL | 0.20 / 0.20 / 0.19 / 0.18 / 0.14 | 0.09–0.19 | 0.08–0.12 | 0.12–0.30 | 0.12–0.23 |
| gold / silver | 0.35 / 0.38 | 0.33 / 0.34 | 0.19 / 0.22 | 0.26 / 0.27 | 0.20 / 0.20 |
| copper | 0.35 | 0.26 | 0.15 | 0.26 | 0.06 |
| crude (CL) | −0.19 | −0.23 | −0.10 | −0.13 | −0.12 |
ETH's numbers are within ±0.03 of BTC's everywhere. Three observations:
- Chip stocks and TSLA are the "crypto-like" stocks. Their correlation with BTC is about twice that of AAPL, MSFT, META or GOOGL. That fits 4 November, when the two groups split.
- The overnight session is as tight as regular hours. With the cash market shut, the stock perps and BTC still move together: 0.44 overnight against 0.46 in regular hours.
- Crude is the only perp that moves against BTC, in every session. On 4 November it fell 8.1% while BTC rose 2.9%.
The post-market dip (0.28) is probably single-stock news, such as earnings, moving individual stocks on its own after the close.
Who moves first?
We measured cross-correlation of 1-minute returns at lags from −5 to +5 minutes. A positive lag means BTC moved first.
Fig 4. corr(BTC 1-minute return, stock basket 1-minute return k minutes later). The lag-0 bar is off scale.
| BTC vs stock basket, 1-min returns | lag 0 | BTC first (+1) | stocks first (−1) | asymmetry, 95% CI |
|---|---|---|---|---|
| regular hours | 0.44 | 0.013 | 0.005 | +0.008 [−0.006, +0.022] |
| pre-market | 0.40 | 0.010 | 0.006 | +0.004 [−0.014, +0.023] |
| overnight | 0.40 | 0.038 | 0.027 | +0.011 [0.000, +0.021] |
| weekend/holiday | 0.35 | 0.108 | 0.003 | +0.105 [+0.061, +0.157] |
In US hours, nobody leads by a minute. The off-lag correlations are 0.04 or less, against about 0.4 within the same minute. The regular-hours asymmetry is +0.019 in the first half of the sample and −0.008 in the second, so we don't claim it. Anything faster than a minute is beyond what 1-minute bars can resolve. Part 5 showed how much can happen inside one.
On weekends the stock perps follow BTC. The weekend asymmetry holds in both halves:
| weekend/holiday asymmetry | 21 Apr – 30 Jul | 30 Jul – 7 Nov |
|---|---|---|
| BTC vs stock basket | +0.086 [+0.048, +0.125] | +0.141 [+0.058, +0.273] |
| BTC vs QQQ perp | +0.055 [+0.027, +0.081] | +0.063 [+0.028, +0.104] |
The same shows up for NVDA (+0.034 [+0.014, +0.054]) and even for gold (+0.031 [+0.005, +0.056]). It also shows up in large moves. When BTC made a 5-minute move beyond 4 trailing standard deviations on a weekend (130 times), the basket moved 8.3 bps with it in the same five minutes and another +3.2 bps [+0.7, +5.8] over the next fifteen. A random-time placebo stays within ±1.1 bps.
Two cautions:
- This may be staleness, not information. When the stock market is closed, the stock perps trade a fraction of their weekday volume (weekends are 4% of the basket's volume), so their last price is often a minute old. A thin market that updates late shows exactly this lag whether or not anyone is "reacting to BTC". We can't separate the two with minute bars, and for a risk system the consequence is the same: an equity-perp mark on a Saturday can be a minute behind BTC.
- It is small. A lag-1 correlation of 0.1 explains about 1% of the next minute's variance. We did not test it as a strategy, and on books this thin we wouldn't expect it to survive costs.
Large moves during the week
The same shock test in all sessions:
| > 4σ 5-minute move in... | n | the other asset in the same 5 min (signed) | next 15 min | next 15 min, placebo 95% bound |
|---|---|---|---|---|
| stock basket → BTC | 411 | +21.6 bps [+18.8, +24.5], 84% same sign | +0.7 [−3.7, +4.8] | ±1.8 |
| BTC → stock basket | 399 | +14.8 bps [+12.1, +17.6], 82% same sign | +1.3 [−0.9, +3.6] | ±1.5 |
A big move in either market shows up in the other within the same five minutes, and doesn't continue. Whatever the "gap" between crypto and stocks is, during the week it is not a delay you can wait for.
The daily gap
The daily figures use US close-to-close returns, with the perp's last minute before 16:00 ET as the close.
| value | |
|---|---|
| correlation, BTC vs stock basket | 0.51 (137 days) |
| beta: basket % per 1% BTC | 0.42 |
| R² | 0.26 |
| median / 90th percentile |residual| | 1.0% / 2.6% |
| 20-day rolling correlation, range | −0.05 to 0.84 |
| 5 Nov residual | −6.1%, the largest of 137 days |
Fig 5. Rolling 20-trading-day correlation of US close-to-close returns.
The relationship is real, positive in every session and clearly non-zero. But it is loose and it moves. BTC accounts for about a quarter of the basket's daily variance. The 20-day correlation fell to about zero in late August and sits at its high now; one outlier day like 5 November can move a 20-day correlation a long way on its own. On 5 November, a BTC hedge sized by the regression would have offset about 2 of the basket's 8 points (log returns).
What this means in practice
- Don't use one as a hedge for the other. An R² of 0.26 with a correlation that swings from 0 to 0.8 within a quarter is not a hedge ratio, and the worst residual came on the worst day.
- Don't wait for a lag in US hours. At minute resolution both markets reprice in the same bar, and big moves don't continue into the next 15 minutes. If there is a lead, it is inside the minute. Part 5 showed how fast that race is: Polymarket's crypto books repriced a median 227 ms after a Binance sweep.
- On weekends, treat equity-perp prices as lagging BTC. For a risk system, a BTC move on Saturday means the equity-perp marks may still be catching up.
- Look at the members, not the index. On 4 November a flat basket hid +6.7% and −7.0%, and the chip stocks were the ones that tracked crypto.
A weekend mark check with the FollowSM SDK
All 18 TradFi perps are in the same feed as BTC, so one client covers both. The sketch below flags equity-perp marks while a BTC taker sweep is active on a weekend. We measured the weekend lag on minute returns, not on sweeps specifically, and we didn't backtest this check. Treat it as a monitoring hint, not a signal.
from datetime import datetime from zoneinfo import ZoneInfo from followsm_sdk import FollowSMClient NY = ZoneInfo("America/New_York") EQUITY_PERPS = ("NVDAUSDT", "MUUSDT", "TSLAUSDT") client = FollowSMClient() # no key: the free tier is enough for a few calls a minute def us_weekend(now: datetime) -> bool: """Fri 20:00 to Sun 20:00 New York time. NYSE holidays are not handled here.""" now = now.astimezone(NY) since_friday = (now.weekday() - 4) % 7 * 24 + now.hour - 20 + now.minute / 60 return 0 <= since_friday < 48 def weekend_mark_warning(now: datetime | None = None) -> list[str]: now = now or datetime.now(NY) if not us_weekend(now): return [] btc = client.get_toxicity_snapshot("BTCUSDT") if not btc.sweep_active: return [] side = "buy" if (btc.last_sweep_side or 0) > 0 else "sell" return [ f"{sym} {client.get_toxicity_snapshot(sym).price}: BTC {side} sweep " f"${(btc.last_sweep_notional_usd or 0) / 1e6:.1f}M, mark may lag by a minute" for sym in EQUITY_PERPS ] Caveats
- Short history. 21 April to 7 November 2026: 139 trading days, about 30 weekends and four NYSE holidays. That covers one bout of sharp regime change in late August and one large shock. The session and lead-lag results come with day-block bootstrap intervals; the daily statistics rest on 137 points.
- Minute bars. "Same minute" is not "simultaneous". Anything inside a minute is invisible here.
- One venue. All prices are Binance perps. Part 3 showed these perps track the cash market closely in regular hours (1-minute correlation 0.94–0.99 with Yahoo bars), and on 4–6 November their daily moves were within a third of a point of the official closes. Still, venue-wide effects such as cross-margin liquidations can push correlations up on stress days.
- Weekend lag. As above, it may be stale prices rather than information flow. It is not a tested strategy.
- No news attribution. We describe what the prices did and when. We don't claim why.
- σ for event days uses each perp's previous 60 US close-to-close returns; the volatility regime of that window matters.
Reproduce
git clone https://github.com/Follow-SM/tick-microstructure-research cd tick-microstructure-research && pip install -e ".[parquet]" tmr crossasset fetch # 1-minute klines for 21 perps (data.binance.vision, checksum-verified), Yahoo closes and VIX tmr crossasset analyze # research/results_crossasset.json and the five charts Yahoo serves 1-minute bars for only about 30 days, so the minute-level ETF check at the 5 November open can only be rebuilt from a copy fetched before early December. Everything else rebuilds from scratch.
Get started
- The research toolkit: tick-microstructure-research.
- Python SDK:
pip install followsm-sdk· TypeScript:npm install @followsm/sdk
FollowSM streams VPIN, ±1% book toxicity and imbalance percentiles and per-event taker sweeps for crypto pairs and for the 18 Binance TradFi perps covered here: gold, silver, crude, copper, QQQ, TSLA, AMZN, META, GOOGL, AAPL, MSFT, NVDA, MU, TSM, AVGO, INTC, PLTR and BABA.
👉 Get your API key at follow-sm.com/pricing
References: Epps (1979), "Comovements in Stock Prices in the Very Short Run", Journal of the American Statistical Association. Lo & MacKinlay (1990), "An Econometric Analysis of Nonsynchronous Trading", Journal of Econometrics. Barclay & Hendershott (2003), "Price Discovery and Trading After Hours", Review of Financial Studies.
Not financial advice. Crypto, perpetual futures and equities carry substantial risk of loss.






