STRASMORE/EXPLORE 3,293 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,293 answered market questions

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

Micro E-mini vs E-mini Futures: Specs & Cost
SPY volume on each quarterly expiry Friday against its prior 20 sessionsseries · 2026-09-28 · 13×3Preview: a 13-point series, ending higher. Average daily range by index family, trailing six monthsranking · 2026-09-28 · 4×3Preview: 4 ranked values, largest first.
Futures Tick Size and Tick Value Explained
Worked P&L examples: ticks moved x tick value x contracts (hypothetical)table · 2026-09-16 · 7×5 Outright tick size and tick value per contract, CME specifications, September 2026ranking · 2026-09-16 · 10×4Preview: 10 ranked values, smallest first. Calendar spread tick versus outright tick, dollars per contract, CME specifications, September 2026ranking · 2026-09-16 · 10×4Preview: 10 ranked values, smallest first.
SPY volume on each quarterly expiry Friday against its prior 20 sessions

SPY volume on each quarterly expiry Friday against its prior 20 sessions

most recentas of series 13×3read in context →
SPY volume on each quarterly expiry Friday against its prior 20 sessions — 13 rows by 3 columns, computed from US exchange, SIP and OPRA data.
settlement_datevolume_millionsvolume_vs_20day_avg
2023-06-16114.21.35
2023-09-15111.81.54
2023-12-15141.62.01
2024-03-15107.61.58
2024-06-2163.41.33
2024-09-2077.51.55
2024-12-20124.72.9
2025-03-2183.81.16
2025-06-2094.11.28
2025-09-1997.91.4
2025-12-19103.51.2
2026-03-20165.61.86
2026-09-1865.41.64
the exact SQL behind every number
WITH daily AS
(
    SELECT
        date,
        toFloat64(volume) AS day_volume,
        avg(toFloat64(volume)) OVER (ORDER BY date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS avg_prior_20
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2023-06-01'
      AND date <= '2026-09-25'
)
SELECT
    toString(date)                      AS settlement_date,
    round(day_volume / 1e6, 1)          AS volume_millions,
    round(day_volume / avg_prior_20, 2) AS volume_vs_20day_avg
FROM daily
WHERE toMonth(date) IN (3, 6, 9, 12)
  AND toDayOfWeek(date) = 5
  AND toDayOfMonth(date) BETWEEN 15 AND 21
  AND avg_prior_20 > 0
ORDER BY date
$