{"slug":"us-stock-market-hours-moscow-time","qid":"msk_hour_liquidity","label":"msk_hour_liquidity","post_title":"us-stock-market-hours-moscow-time","post_url":"/blog/lang/ru/us-stock-market-hours-moscow-time#q-msk_hour_liquidity","columns":["msk_time","et_time","phase","volume_pct"],"rows":[{"msk_time":"11:00","et_time":"04:00","phase":"премаркет","volume_pct":0.29},{"msk_time":"12:00","et_time":"05:00","phase":"премаркет","volume_pct":0.1},{"msk_time":"13:00","et_time":"06:00","phase":"премаркет","volume_pct":0.13},{"msk_time":"14:00","et_time":"07:00","phase":"премаркет","volume_pct":0.32},{"msk_time":"15:00","et_time":"08:00","phase":"премаркет","volume_pct":0.52},{"msk_time":"16:00","et_time":"09:00","phase":"открытие","volume_pct":17.06},{"msk_time":"17:00","et_time":"10:00","phase":"основная сессия","volume_pct":17.01},{"msk_time":"18:00","et_time":"11:00","phase":"основная сессия","volume_pct":12.72},{"msk_time":"19:00","et_time":"12:00","phase":"основная сессия","volume_pct":9.5},{"msk_time":"20:00","et_time":"13:00","phase":"основная сессия","volume_pct":9.07},{"msk_time":"21:00","et_time":"14:00","phase":"основная сессия","volume_pct":10.19},{"msk_time":"22:00","et_time":"15:00","phase":"основная сессия","volume_pct":18.61},{"msk_time":"23:00","et_time":"16:00","phase":"после закрытия","volume_pct":3.94},{"msk_time":"00:00","et_time":"17:00","phase":"после закрытия","volume_pct":0.33},{"msk_time":"01:00","et_time":"18:00","phase":"после закрытия","volume_pct":0.11},{"msk_time":"02:00","et_time":"19:00","phase":"после закрытия","volume_pct":0.1}],"shape":"series","sql":"WITH\n    hourly AS\n    (\n        SELECT\n            toHour(toTimeZone(window_start, 'America/New_York')) AS et_hour,\n            sum(volume)                                          AS vol\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker = 'AAPL'\n          AND window_start >= toDateTime('2026-09-01 00:00:00')\n          AND window_start <  toDateTime('2026-10-01 00:00:00')\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 240\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) < 1200\n        GROUP BY et_hour\n    )\nSELECT\n    concat(leftPad(toString((et_hour + 7) % 24), 2, '0'), ':00')                 AS msk_time,\n    concat(leftPad(toString(et_hour), 2, '0'), ':00')                            AS et_time,\n    multiIf(et_hour < 9,  'премаркет',\n            et_hour = 9,  'открытие',\n            et_hour < 16, 'основная сессия',\n                          'после закрытия')                                     AS phase,\n    round(100 * toFloat64(vol) / toFloat64((SELECT sum(vol) FROM hourly)), 2)    AS volume_pct\nFROM hourly\nORDER BY et_hour","computed_at":"2026-10-05T14:52:37.740517+00:00","elapsed":0.003822699}