dst_switch_trace
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-10-05, from us-stock-market-hours-moscow-time.
| session_date | msk_open | msk_close | msk_open_decimal | msk_close_decimal |
|---|---|---|---|---|
| 2026-02-23 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-02-24 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-02-25 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-02-26 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-02-27 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-03-02 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-03-03 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-03-04 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-03-05 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-03-06 | 17:30 | 00:00 | 17.5 | 24 |
| 2026-03-09 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-10 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-11 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-12 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-13 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-16 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-17 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-18 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-19 | 16:30 | 23:00 | 16.5 | 23 |
| 2026-03-20 | 16:30 | 23:00 | 16.5 | 23 |
- Rows × columns
- 20 × 5
- 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-02-23 to 2026-03-20 | |
msk_open |
text | 2 distinct values (16:30, 17:30) | |
msk_close |
text | 2 distinct values (00:00, 23:00) | |
msk_open_decimal |
number | 16.5 to 17.5 | US dollars |
msk_close_decimal |
number | 23 to 24 | US dollars |
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.
WITH
sessions AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS sess,
min(window_start) AS first_bar
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-02-23 00:00:00')
AND window_start < toDateTime('2026-03-21 00:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY sess
)
SELECT
toString(sess) AS session_date,
formatDateTime(toTimeZone(first_bar, 'Europe/Moscow'), '%H:%i') AS msk_open,
formatDateTime(toTimeZone(first_bar + toIntervalMinute(390), 'Europe/Moscow'), '%H:%i') AS msk_close,
round(toHour(toTimeZone(first_bar, 'Europe/Moscow'))
+ toMinute(toTimeZone(first_bar, 'Europe/Moscow')) / 60, 2) AS msk_open_decimal,
round(toHour(toTimeZone(first_bar, 'Europe/Moscow'))
+ toMinute(toTimeZone(first_bar, 'Europe/Moscow')) / 60 + 6.5, 2) AS msk_close_decimal
FROM sessions
ORDER BY sess
Работайте с этими данными в своём ИИ-ассистенте
Открывается готовым к запросам, с данными этой страницы. Бесплатно, без аккаунта.