daily_swing
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 can-you-place-a-limit-order-on-a-mutual-fund.
| session_date | asof_label | high_low_range_pct | open_to_close_move_pct |
|---|---|---|---|
| 2026-08-10 | Aug 10 | 0.44 | 0.06 |
| 2026-08-11 | Aug 11 | 0.7 | 0.51 |
| 2026-08-12 | Aug 12 | 0.47 | 0.29 |
| 2026-08-13 | Aug 13 | 0.68 | 0.39 |
| 2026-08-14 | Aug 14 | 0.43 | 0.28 |
| 2026-08-17 | Aug 17 | 0.55 | 0.45 |
| 2026-08-18 | Aug 18 | 0.34 | 0.16 |
| 2026-08-19 | Aug 19 | 0.57 | 0.17 |
| 2026-08-20 | Aug 20 | 0.8 | 0.44 |
| 2026-08-21 | Aug 21 | 0.48 | 0.04 |
| 2026-08-24 | Aug 24 | 0.41 | 0.17 |
| 2026-08-25 | Aug 25 | 0.49 | 0.03 |
| 2026-08-26 | Aug 26 | 0.45 | 0.18 |
| 2026-08-27 | Aug 27 | 0.68 | 0.34 |
| 2026-08-28 | Aug 28 | 0.91 | 0.31 |
| 2026-08-31 | Aug 31 | 0.43 | 0.04 |
| 2026-09-01 | Sep 1 | 0.68 | 0.03 |
| 2026-09-02 | Sep 2 | 0.62 | 0.36 |
| 2026-09-03 | Sep 3 | 0.86 | 0.69 |
| 2026-09-04 | Sep 4 | 0.5 | 0.24 |
| 2026-09-08 | Sep 8 | 0.6 | 0.4 |
| 2026-09-09 | Sep 9 | 0.46 | 0.22 |
| 2026-09-10 | Sep 10 | 0.46 | 0.03 |
| 2026-09-11 | Sep 11 | 0.36 | 0.06 |
| 2026-09-14 | Sep 14 | 0.74 | 0.25 |
| 2026-09-15 | Sep 15 | 0.56 | 0.36 |
| 2026-09-16 | Sep 16 | 1.61 | 0.72 |
| 2026-09-17 | Sep 17 | 0.48 | 0.07 |
| 2026-09-18 | Sep 18 | 0.53 | 0.05 |
- Rows × columns
- 29 × 4
- Period covered
- to
- 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 |
|---|---|---|---|
session_date |
date | 2026-08-10 to 2026-09-18 | |
asof_label |
text | 29 distinct values (Aug 10, Aug 11, Aug 12…) | |
high_low_range_pct |
number | 0.34 to 1.61 | percent |
open_to_close_move_pct |
number | 0.03 to 0.72 | 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
toString(date) AS session_date,
formatDateTime(date, '%b %e') AS asof_label,
round((toFloat64(max(high)) / toFloat64(min(low)) - 1) * 100, 2) AS high_low_range_pct,
round(abs(toFloat64(any(close)) / toFloat64(any(open)) - 1) * 100, 2) AS open_to_close_move_pct
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= today() - 45
AND date <= today() - 3
GROUP BY date
ORDER BY date