Tradegate vs Xetra: Hours and Prices
Median quoted spread by clock hour, one symbol, one sessionseries ·
2026-09-27 · 16×4
SPY volume in ten-minute buckets across one full trading dayseries ·
2026-09-27 · 96×2
Evening volume share and the gap to the official closeranking ·
2026-09-27 · 6×3
Where one session's volume actually printed, by phaseseries ·
2026-09-27 · 5×3
Median quoted spread by clock hour, one symbol, one session
Median quoted spread by clock hour, one symbol, one session
| et_time | median_spread_bps | regular_hours_median_bps | quote_count |
|---|---|---|---|
| 04:00 | 13.76 | 1.03 | 1478 |
| 05:00 | 7.23 | 1.03 | 2069 |
| 06:00 | 9.3 | 1.03 | 518 |
| 07:00 | 12.41 | 1.03 | 2204 |
| 08:00 | 12.05 | 1.03 | 3486 |
| 09:00 | 1.38 | 1.03 | 221100 |
| 10:00 | 1.04 | 1.03 | 278714 |
| 11:00 | 1.38 | 1.03 | 307205 |
| 12:00 | 1.03 | 1.03 | 268189 |
| 13:00 | 1.02 | 1.03 | 249935 |
| 14:00 | 0.68 | 1.03 | 173988 |
| 15:00 | 0.68 | 1.03 | 231589 |
| 16:00 | 6.51 | 1.03 | 1321 |
| 17:00 | 5.83 | 1.03 | 340 |
| 18:00 | 8.94 | 1.03 | 1106 |
| 19:00 | 15.15 | 1.03 | 1099 |
the exact SQL behind every number
WITH
(
SELECT round(quantileDeterministic(0.5)(
10000 * (toFloat64(ask_price) - toFloat64(bid_price))
/ ((toFloat64(ask_price) + toFloat64(bid_price)) / 2),
toUInt64(sequence_number)), 2)
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= toDateTime('2026-06-10 13:30:00')
AND sip_timestamp < toDateTime('2026-06-10 20:00:00')
AND bid_price > 0
AND ask_price > bid_price
AND sequence_number > 0
) AS regular_session_median
SELECT
formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(
10000 * (toFloat64(ask_price) - toFloat64(bid_price))
/ ((toFloat64(ask_price) + toFloat64(bid_price)) / 2),
toUInt64(sequence_number)), 2) AS median_spread_bps,
regular_session_median AS regular_hours_median_bps,
count() AS quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= toDateTime('2026-06-10 08:00:00')
AND sip_timestamp < toDateTime('2026-06-11 00:00:00')
AND bid_price > 0
AND ask_price > bid_price
AND sequence_number > 0
GROUP BY et_time
ORDER BY et_time
More from this analysisTradegate vs Xetra: Hours and Prices
SPY volume in ten-minute buckets across one full trading day
series 96×2
→
Where one session's volume actually printed, by phase
series 5×3
→
Evening volume share and the gap to the official close
ranking 6×3
→
Days when the New York open lands at 14:30 Frankfurt time (three-hour overlap), 2026 and 2027
series 4×5
→
See all 2,707 queries →