STRASMORE/EXPLORE 2,707 QUERIES

daily_moves

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-27, from how-much-to-risk-per-trade.

as of ranking 6×3read in context →
daily_moves — 6 rows by 3 columns, computed from US exchange, SIP and OPRA data.
move_bucketsessionsshare_pct
1. under 0.5%38130.4
2. 0.5% to 1%30624.4
3. 1% to 2%32425.9
4. 2% to 3%13911.1
5. 3% to 5%876.9
6. over 5%161.3
Rows × columns
6 × 3
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for daily_moves, derived from the stored result.
ColumnTypeRangeNotes
move_bucket text 6 distinct values
sessions number 16 to 381
share_pct number 1.3 to 30.4 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(move_pct < 0.5, '1. under 0.5%',
            move_pct < 1.0, '2. 0.5% to 1%',
            move_pct < 2.0, '3. 1% to 2%',
            move_pct < 3.0, '4. 2% to 3%',
            move_pct < 5.0, '5. 3% to 5%',
                            '6. over 5%')          AS move_bucket,
    count()                                        AS sessions,
    round(100 * count() / sum(count()) OVER (), 1)  AS share_pct
FROM
(
    SELECT abs(100 * (c / prev_c - 1)) AS move_pct
    FROM
    (
        SELECT
            toFloat64(close) AS c,
            lagInFrame(toFloat64(close)) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'AAPL'
          AND date >= '2021-09-01'
          AND date <  '2026-09-01'
    )
    WHERE prev_c > 0
)
GROUP BY move_bucket
ORDER BY move_bucket
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.