{"slug":"can-you-trade-us-stocks-24-hours","qid":"spread_by_et_hour","label":"AAPL quoted spread by New York clock hour, July 14, 2026: median and 90th percentile minute","post_title":"Can You Trade US Stocks 24 Hours a Day?","post_url":"/blog/can-you-trade-us-stocks-24-hours#q-spread_by_et_hour","columns":["et_hour","quoted_minute_count","median_spread_bps","p90_spread_bps"],"rows":[{"et_hour":"18:00","quoted_minute_count":50,"median_spread_bps":10.25,"p90_spread_bps":13.98},{"et_hour":"04:00","quoted_minute_count":60,"median_spread_bps":7.6,"p90_spread_bps":11.43},{"et_hour":"16:00","quoted_minute_count":50,"median_spread_bps":7.52,"p90_spread_bps":11.74},{"et_hour":"08:00","quoted_minute_count":60,"median_spread_bps":5.72,"p90_spread_bps":10.62},{"et_hour":"10:00","quoted_minute_count":60,"median_spread_bps":1.76,"p90_spread_bps":1.98},{"et_hour":"12:00","quoted_minute_count":60,"median_spread_bps":1.09,"p90_spread_bps":1.27},{"et_hour":"14:00","quoted_minute_count":60,"median_spread_bps":0.85,"p90_spread_bps":1.04}],"shape":"ranking","sql":"WITH per_minute AS (\n    SELECT toStartOfMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_minute,\n           avg((toFloat64(ask_price) - toFloat64(bid_price))\n               / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2)) * 10000 AS avg_spread_bps\n    FROM global_markets.cache_stocks_quotes\n    WHERE ticker = 'AAPL'\n      AND sip_timestamp >= toDateTime('2026-07-14 08:00:00', 'UTC')\n      AND sip_timestamp <  toDateTime('2026-07-15 00:00:00', 'UTC')\n      AND bid_price > 0\n      AND ask_price > bid_price\n      AND toHour(toTimeZone(sip_timestamp, 'America/New_York')) IN (4, 8, 10, 12, 14, 16, 18)\n    GROUP BY et_minute\n)\nSELECT formatDateTime(et_minute, '%H:00') AS et_hour,\n       count() AS quoted_minute_count,\n       round(quantileDeterministic(0.5)(avg_spread_bps, cityHash64(et_minute)), 2) AS median_spread_bps,\n       round(quantileDeterministic(0.9)(avg_spread_bps, cityHash64(et_minute)), 2) AS p90_spread_bps\nFROM per_minute\nGROUP BY et_hour\nHAVING count() >= 5\nORDER BY median_spread_bps DESC","computed_at":"2026-08-01T08:25:45.130940+00:00","elapsed":0.003463299}