desfase
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-09, from us-premarket-and-after-hours-spain-time.
| ventana | desde | hasta | dias_de_desfase | premarket_abre | sesion_abre | after_hours_cierra |
|---|---|---|---|---|---|---|
| Otoño 2026 | 25/10/2026 | 01/11/2026 | 7 | 09:00 | 14:30 | 01:00 |
| Primavera 2027 | 14/03/2027 | 28/03/2027 | 14 | 09:00 | 14:30 | 01:00 |
| Otoño 2027 | 31/10/2027 | 07/11/2027 | 7 | 09:00 | 14:30 | 01:00 |
- Rows × columns
- 3 × 7
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
ventana |
text | 3 distinct values (Otoño 2026, Otoño 2027, Primavera 2027) | |
desde |
text | 3 distinct values (14/03/2027, 25/10/2026, 31/10/2027) | |
hasta |
text | 3 distinct values (01/11/2026, 07/11/2027, 28/03/2027) | |
dias_de_desfase |
number | 7 to 14 | |
premarket_abre |
text | 1 distinct value (09:00) | |
sesion_abre |
text | 1 distinct value (14:30) | |
after_hours_cierra |
text | 1 distinct value (01:00) |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH cambios AS
(
SELECT
anio,
-- segundo domingo de marzo: EE. UU. entra en horario de verano
addDays(marzo_1, ((7 - toDayOfWeek(marzo_1)) % 7) + 7) AS eeuu_entra,
-- último domingo de marzo: la UE entra en horario de verano
subtractDays(marzo_31, toDayOfWeek(marzo_31) % 7) AS ue_entra,
-- último domingo de octubre: la UE vuelve al horario de invierno
subtractDays(octubre_31, toDayOfWeek(octubre_31) % 7) AS ue_sale,
-- primer domingo de noviembre: EE. UU. vuelve al horario de invierno
addDays(noviembre_1, (7 - toDayOfWeek(noviembre_1)) % 7) AS eeuu_sale
FROM
(
SELECT
anio,
makeDate(anio, 3, 1) AS marzo_1,
makeDate(anio, 3, 31) AS marzo_31,
makeDate(anio, 10, 31) AS octubre_31,
makeDate(anio, 11, 1) AS noviembre_1
FROM
(
SELECT anio_base + arrayJoin([0, 1]) AS anio
FROM
(
SELECT toYear(min(date)) AS anio_base
FROM global_markets.stocks_market_holidays
WHERE date >= today()
)
)
)
)
SELECT
concat(ventanas.1, ' ', toString(anio)) AS ventana,
formatDateTime(ventanas.2, '%d/%m/%Y') AS desde,
formatDateTime(ventanas.3, '%d/%m/%Y') AS hasta,
toUInt16(dateDiff('day', ventanas.2, ventanas.3)) AS dias_de_desfase,
formatDateTime(toTimeZone(toDateTime(concat(toString(ventanas.2), ' 04:00:00'), 'America/New_York'), 'Europe/Madrid'), '%H:%i') AS premarket_abre,
formatDateTime(toTimeZone(toDateTime(concat(toString(ventanas.2), ' 09:30:00'), 'America/New_York'), 'Europe/Madrid'), '%H:%i') AS sesion_abre,
formatDateTime(toTimeZone(toDateTime(concat(toString(ventanas.2), ' 20:00:00'), 'America/New_York'), 'Europe/Madrid'), '%H:%i') AS after_hours_cierra
FROM
(
SELECT
anio,
arrayJoin([
('Primavera', eeuu_entra, ue_entra),
('Otoño', ue_sale, eeuu_sale)
]) AS ventanas
FROM cambios
)
WHERE ventanas.3 >= today()
ORDER BY ventanas.2
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.