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

2,173 answered market questions

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

Learn Quant Trading From an Open Source Book
Twelve months of daily moves: annualized volatility and worst session, eight namesranking · 2026-08-02 · 8×3Preview: 8 ranked values, largest first. US tickers trading in a June week, and how many still traded in June 2026ranking · 2026-08-02 · 11×4Preview: 11 ranked values, smallest first. Average quoted spread by ET half hour: AAPL and KO, Friday July 17, 2026series · 2026-08-02 · 16×3Preview: a 16-point series, ending lower. Average distance from one session's close to the next session's open, monthlyseries · 2026-08-02 · 24×4Preview: a 16-point series, ending lower.
Twelve months of daily moves: annualized volatility and worst session, eight names

Twelve months of daily moves: annualized volatility and worst session, eight names

most recentas of ranking 8×3read in context →
Twelve months of daily moves: annualized volatility and worst session, eight names — 8 rows by 3 columns, computed from US exchange, SIP and OPRA data.
tickerannualized_vol_pctworst_day_pct
COIN6813.34
TSLA46.614.63
NVDA36.56.22
MSFT31.510.02
AAPL25.87.44
KO18.83.96
JNJ18.43.65
SPY12.72.69
the exact SQL behind every number
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS session_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'KO', 'JNJ', 'MSFT', 'AAPL', 'NVDA', 'TSLA', 'COIN')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-08-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session
),
rets AS (
    SELECT ticker,
           toFloat64(session_close) AS close_px,
           toFloat64(lagInFrame(session_close) OVER (PARTITION BY ticker ORDER BY session)) AS prev_close
    FROM daily
)
SELECT ticker,
       round(stddevSamp(close_px / prev_close - 1) * sqrt(252) * 100, 1) AS annualized_vol_pct,
       round(abs(min(close_px / prev_close - 1)) * 100, 2) AS worst_day_pct
FROM rets
WHERE prev_close > 0
GROUP BY ticker
ORDER BY annualized_vol_pct DESC
$