move_buckets
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-22, from leveraged-etf-rebalancing-and-the-close.
| move_bucket | bucket_count | avg_3x_trade_pct |
|---|---|---|
| under 0.5% | 108 | 1.51 |
| 0.5% to 1% | 65 | 4.4 |
| 1% to 2% | 49 | 8.73 |
| 2% to 3% | 20 | 14.39 |
| 3% or more | 8 | 31.69 |
- Rows × columns
- 5 × 3
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
move_bucket |
text | 5 distinct values (0.5% to 1%, 1% to 2%, 2% to 3%…) | |
bucket_count |
number | 8 to 108 | count |
avg_3x_trade_pct |
number | 1.51 to 31.69 | percent |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
SELECT
multiIf(abs(move_pct) < 0.5, 'under 0.5%',
abs(move_pct) < 1.0, '0.5% to 1%',
abs(move_pct) < 2.0, '1% to 2%',
abs(move_pct) < 3.0, '2% to 3%',
'3% or more') AS move_bucket,
count() AS bucket_count,
round(avg(abs(move_pct)) * 6, 2) AS avg_3x_trade_pct
FROM
(
SELECT
date,
round(100 * (close_px / lagInFrame(close_px)
OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1), 2) AS move_pct
FROM
(
SELECT
date,
max(toFloat64(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'QQQ'
AND date >= '2024-12-16'
AND date <= '2025-12-31'
GROUP BY date
)
)
WHERE date >= '2025-01-02'
GROUP BY move_bucket
ORDER BY min(abs(move_pct))