{"slug":"us-market-volume-by-hour-beijing-time","qid":"volume_by_slot","label":"volume_by_slot","post_title":"us-market-volume-by-hour-beijing-time","post_url":"/blog/lang/zh-hans/us-market-volume-by-hour-beijing-time#q-volume_by_slot","columns":["et_time","beijing_time","spy_share_pct","qqq_share_pct"],"rows":[{"et_time":"09:30","beijing_time":"21:30","spy_share_pct":11.41,"qqq_share_pct":14.29},{"et_time":"10:00","beijing_time":"22:00","spy_share_pct":8.08,"qqq_share_pct":9.88},{"et_time":"10:30","beijing_time":"22:30","spy_share_pct":7.09,"qqq_share_pct":8.39},{"et_time":"11:00","beijing_time":"23:00","spy_share_pct":6.32,"qqq_share_pct":7.05},{"et_time":"11:30","beijing_time":"23:30","spy_share_pct":6.37,"qqq_share_pct":6.8},{"et_time":"12:00","beijing_time":"00:00","spy_share_pct":5.19,"qqq_share_pct":5.75},{"et_time":"12:30","beijing_time":"00:30","spy_share_pct":4.76,"qqq_share_pct":5.44},{"et_time":"13:00","beijing_time":"01:00","spy_share_pct":5.33,"qqq_share_pct":5.3},{"et_time":"13:30","beijing_time":"01:30","spy_share_pct":5.29,"qqq_share_pct":5.4},{"et_time":"14:00","beijing_time":"02:00","spy_share_pct":6.15,"qqq_share_pct":5.53},{"et_time":"14:30","beijing_time":"02:30","spy_share_pct":6.11,"qqq_share_pct":5.7},{"et_time":"15:00","beijing_time":"03:00","spy_share_pct":7.76,"qqq_share_pct":6.48},{"et_time":"15:30","beijing_time":"03:30","spy_share_pct":20.14,"qqq_share_pct":13.99}],"shape":"series","sql":"WITH session_bars AS\n(\n    SELECT\n        ticker,\n        volume,\n        toTimeZone(window_start, 'America/New_York') AS et,\n        toHour(et) * 60 + toMinute(et)               AS et_min,\n        intDiv(et_min, 30) * 30                      AS slot\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'QQQ')\n      AND window_start >= toDateTime('2026-04-01 04:00:00', 'UTC')\n      AND window_start <  toDateTime('2026-07-01 04:00:00', 'UTC')\n      AND et_min >= 570\n      AND et_min <  960\n)\nSELECT\n    formatDateTime(toDateTime(s.slot * 60, 'UTC'), '%H:%i')                  AS et_time,\n    formatDateTime(toDateTime(((s.slot + 720) % 1440) * 60, 'UTC'), '%H:%i') AS beijing_time,\n    round(100 * toFloat64(sumIf(s.volume, s.ticker = 'SPY')) / any(t.spy_total), 2) AS spy_share_pct,\n    round(100 * toFloat64(sumIf(s.volume, s.ticker = 'QQQ')) / any(t.qqq_total), 2) AS qqq_share_pct\nFROM session_bars AS s\nCROSS JOIN\n(\n    SELECT\n        toFloat64(sumIf(volume, ticker = 'SPY')) AS spy_total,\n        toFloat64(sumIf(volume, ticker = 'QQQ')) AS qqq_total\n    FROM session_bars\n) AS t\nGROUP BY s.slot\nORDER BY s.slot","computed_at":"2026-09-26T15:42:13.520171+00:00","elapsed":0.024357707}