STRASMORE/EXPLORE 2,170 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,170 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

Straddle vs Strangle: Break-Evens and Margin
How often SPY moved a given distance over 21 sessionsranking · 2026-08-22 · 8×2Preview: 8 ranked values, largest first. One-month expected move priced by the option marketranking · 2026-08-22 · 6×3Preview: 6 ranked values, largest first.
Expected Move From Implied Volatility
NVDA after its late-May 2023 report: implied volatility and where the stock wentseries · 2026-08-22 · 12×6Preview: a 12-point series, ending higher. Apple: implied volatility and the expected move at six horizons, one sessiontable · 2026-08-22 · 6×7 Implied vs realized: median 30-day expected move and what six stocks did nexttable · 2026-08-22 · 6×5
How often SPY moved a given distance over 21 sessions

How often SPY moved a given distance over 21 sessions

most recentas of ranking 8×2read in context →
How often SPY moved a given distance over 21 sessions — 8 rows by 2 columns, computed from US exchange, SIP and OPRA data.
move_sizeshare_of_windows_pct
2% or more62.4
3% or more45
4% or more29.7
5% or more19.7
6% or more12.2
8% or more6
10% or more2.8
12% or more1.4
the exact SQL behind every number
WITH
    daily AS
    (
        SELECT
            date,
            max(toFloat64(close)) AS close_px
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2011-01-01'
          AND date <  '2026-07-01'
        GROUP BY date
    ),
    spans AS
    (
        SELECT
            close_px,
            leadInFrame(close_px, 21)
                OVER (ORDER BY date ASC ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS close_fwd
        FROM daily
    )
SELECT
    concat(toString(threshold), '% or more')                                     AS move_size,
    round(100 * countIf(abs(100 * (close_fwd - close_px) / close_px) >= threshold)
        / count(), 1)                                                            AS share_of_windows_pct
FROM spans
ARRAY JOIN [2, 3, 4, 5, 6, 8, 10, 12] AS threshold
WHERE close_fwd > 0
GROUP BY threshold
ORDER BY threshold
$