{"slug":"tradegate-vs-xetra-trading-hours","qid":"spread_by_clock","label":"Median quoted spread by clock hour, one symbol, one session","post_title":"Tradegate vs Xetra: Hours and Prices","post_url":"/blog/tradegate-vs-xetra-trading-hours#q-spread_by_clock","columns":["et_time","median_spread_bps","regular_hours_median_bps","quote_count"],"rows":[{"et_time":"04:00","median_spread_bps":13.76,"regular_hours_median_bps":1.03,"quote_count":1478},{"et_time":"05:00","median_spread_bps":7.23,"regular_hours_median_bps":1.03,"quote_count":2069},{"et_time":"06:00","median_spread_bps":9.3,"regular_hours_median_bps":1.03,"quote_count":518},{"et_time":"07:00","median_spread_bps":12.41,"regular_hours_median_bps":1.03,"quote_count":2204},{"et_time":"08:00","median_spread_bps":12.05,"regular_hours_median_bps":1.03,"quote_count":3486},{"et_time":"09:00","median_spread_bps":1.38,"regular_hours_median_bps":1.03,"quote_count":221100},{"et_time":"10:00","median_spread_bps":1.04,"regular_hours_median_bps":1.03,"quote_count":278714},{"et_time":"11:00","median_spread_bps":1.38,"regular_hours_median_bps":1.03,"quote_count":307205},{"et_time":"12:00","median_spread_bps":1.03,"regular_hours_median_bps":1.03,"quote_count":268189},{"et_time":"13:00","median_spread_bps":1.02,"regular_hours_median_bps":1.03,"quote_count":249935},{"et_time":"14:00","median_spread_bps":0.68,"regular_hours_median_bps":1.03,"quote_count":173988},{"et_time":"15:00","median_spread_bps":0.68,"regular_hours_median_bps":1.03,"quote_count":231589},{"et_time":"16:00","median_spread_bps":6.51,"regular_hours_median_bps":1.03,"quote_count":1321},{"et_time":"17:00","median_spread_bps":5.83,"regular_hours_median_bps":1.03,"quote_count":340},{"et_time":"18:00","median_spread_bps":8.94,"regular_hours_median_bps":1.03,"quote_count":1106},{"et_time":"19:00","median_spread_bps":15.15,"regular_hours_median_bps":1.03,"quote_count":1099}],"shape":"series","sql":"WITH\n    (\n        SELECT round(quantileDeterministic(0.5)(\n                   10000 * (toFloat64(ask_price) - toFloat64(bid_price))\n                   / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2),\n                   toUInt64(sequence_number)), 2)\n        FROM global_markets.cache_stocks_quotes\n        WHERE ticker = 'AAPL'\n          AND sip_timestamp >= toDateTime('2026-06-10 13:30:00')\n          AND sip_timestamp <  toDateTime('2026-06-10 20:00:00')\n          AND bid_price > 0\n          AND ask_price > bid_price\n          AND sequence_number > 0\n    ) AS regular_session_median\nSELECT\n    formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,\n    round(quantileDeterministic(0.5)(\n        10000 * (toFloat64(ask_price) - toFloat64(bid_price))\n        / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2),\n        toUInt64(sequence_number)), 2) AS median_spread_bps,\n    regular_session_median   AS regular_hours_median_bps,\n    count()                  AS quote_count\nFROM global_markets.cache_stocks_quotes\nWHERE ticker = 'AAPL'\n  AND sip_timestamp >= toDateTime('2026-06-10 08:00:00')\n  AND sip_timestamp <  toDateTime('2026-06-11 00:00:00')\n  AND bid_price > 0\n  AND ask_price > bid_price\n  AND sequence_number > 0\nGROUP BY et_time\nORDER BY et_time","computed_at":"2026-09-27T15:08:19.169922+00:00","elapsed":0.004078721}