{"slug":"us-premarket-and-after-hours-thai-time","qid":"thai_clock_spread","label":"thai_clock_spread","post_title":"us-premarket-and-after-hours-thai-time","post_url":"/blog/lang/th/us-premarket-and-after-hours-thai-time#q-thai_clock_spread","columns":["ict_clock","et_clock","aapl_spread_bps","etsy_spread_bps"],"rows":[{"ict_clock":"15:00","et_clock":"04:00","aapl_spread_bps":5.9,"etsy_spread_bps":436.9},{"ict_clock":"16:00","et_clock":"05:00","aapl_spread_bps":5.9,"etsy_spread_bps":446.7},{"ict_clock":"17:00","et_clock":"06:00","aapl_spread_bps":6.2,"etsy_spread_bps":459.2},{"ict_clock":"18:00","et_clock":"07:00","aapl_spread_bps":5,"etsy_spread_bps":264},{"ict_clock":"19:00","et_clock":"08:00","aapl_spread_bps":2.9,"etsy_spread_bps":324.8},{"ict_clock":"20:00","et_clock":"09:00","aapl_spread_bps":4.7,"etsy_spread_bps":178.3},{"ict_clock":"21:00","et_clock":"10:00","aapl_spread_bps":1.8,"etsy_spread_bps":19.1},{"ict_clock":"03:00","et_clock":"16:00","aapl_spread_bps":3.5,"etsy_spread_bps":362.3},{"ict_clock":"04:00","et_clock":"17:00","aapl_spread_bps":1.8,"etsy_spread_bps":410.9},{"ict_clock":"05:00","et_clock":"18:00","aapl_spread_bps":3.5,"etsy_spread_bps":250.2},{"ict_clock":"06:00","et_clock":"19:00","aapl_spread_bps":2.1,"etsy_spread_bps":183.6}],"shape":"ranking","sql":"WITH quotes AS\n(\n    SELECT\n        ticker,\n        toHour(toTimeZone(sip_timestamp, 'America/New_York')) AS et_hour,\n        toTimeZone(sip_timestamp, 'America/New_York')         AS et_ts,\n        toTimeZone(sip_timestamp, 'Asia/Bangkok')             AS ict_ts,\n        toUInt64(sequence_number)                             AS seq,\n        20000 * toFloat64(ask_price - bid_price) / toFloat64(ask_price + bid_price) AS spread_bps\n    FROM global_markets.cache_stocks_quotes\n    WHERE ticker IN ('AAPL', 'ETSY')\n      AND bid_price > 0\n      AND ask_price > bid_price\n      AND (\n            (sip_timestamp >= '2026-09-22 08:00:00' AND sip_timestamp < '2026-09-22 13:30:00')\n         OR (sip_timestamp >= '2026-09-22 14:00:00' AND sip_timestamp < '2026-09-22 14:30:00')\n         OR (sip_timestamp >= '2026-09-22 20:00:00' AND sip_timestamp < '2026-09-23 00:00:00')\n          )\n)\nSELECT\n    formatDateTime(min(ict_ts), '%H:00') AS ict_clock,\n    formatDateTime(min(et_ts), '%H:00')  AS et_clock,\n    round(quantileDeterministicIf(0.5)(spread_bps, seq, ticker = 'AAPL'), 1) AS aapl_spread_bps,\n    if(countIf(ticker = 'ETSY') > 0,\n       round(quantileDeterministicIf(0.5)(spread_bps, seq, ticker = 'ETSY'), 1),\n       NULL)                             AS etsy_spread_bps\nFROM quotes\nGROUP BY et_hour\nHAVING countIf(ticker = 'AAPL') > 0\nORDER BY et_hour","computed_at":"2026-10-09T16:28:15.048338+00:00","elapsed":0.004104638}