STRASMORE/EXPLORE 3,094 QUERIES

msk_clock_windows

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.

as of table 2×6read in context →
msk_clock_windows — 2 rows by 6 columns, computed from US exchange, SIP and OPRA data.
us_clockmsk_openmsk_closemsk_open_decimalfrom_ruto_ru
EST: зимний клок США17:3000:0017.53 ноября 20256 марта 2026
EDT: летний клок США16:3023:0016.59 марта 202630 сентября 2026
Rows × columns
2 × 6
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 msk_clock_windows, derived from the stored result.
ColumnTypeRangeNotes
us_clock text 2 distinct values
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
from_ru text 2 distinct values (3 ноября 2025, 9 марта 2026)
to_ru text 2 distinct values (30 сентября 2026, 6 марта 2026)

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('2025-11-03 00:00:00')
          AND window_start <  toDateTime('2026-10-01 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
    ),
    clocks AS
    (
        SELECT
            sess,
            first_bar,
            toHour(toTimeZone(first_bar, 'Europe/Moscow'))
              - toHour(toTimeZone(first_bar, 'America/New_York')) AS msk_minus_et
        FROM sessions
    )
SELECT
    if(msk_minus_et = 8, 'EST: зимний клок США', 'EDT: летний клок США')                      AS us_clock,
    formatDateTime(toTimeZone(min(first_bar), 'Europe/Moscow'), '%H:%i')                      AS msk_open,
    formatDateTime(toTimeZone(min(first_bar) + toIntervalMinute(390), 'Europe/Moscow'), '%H:%i') AS msk_close,
    round(toHour(toTimeZone(min(first_bar), 'Europe/Moscow'))
          + toMinute(toTimeZone(min(first_bar), 'Europe/Moscow')) / 60, 2)                    AS msk_open_decimal,
    concat(toString(toDayOfMonth(min(sess))), ' ',
           arrayElement(['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'], toMonth(min(sess))), ' ',
           toString(toYear(min(sess))))                                                       AS from_ru,
    concat(toString(toDayOfMonth(max(sess))), ' ',
           arrayElement(['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'], toMonth(max(sess))), ' ',
           toString(toYear(max(sess))))                                                       AS to_ru
FROM clocks
GROUP BY msk_minus_et
ORDER BY min(sess)
⌘/Ctrl + Enter

Work with this data in your AI assistant

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