Horaires Bourse américaine : ouverture et clôture
À quelle heure ouvrent et ferment le NYSE et le Nasdaq ? Séance régulière de 9 h 30 à 16 h 00 ET, premarket et after-hours, marchés fermés le week-end.
Les horaires de la Bourse américaine vont de 9 h 30 à 16 h 00, heure de l’Est des États-Unis, du lundi au vendredi. Le NYSE et le Nasdaq ouvrent tous deux la séance régulière à 9 h 30 ET et la clôturent à 16 h 00 ET. Deux plages horaires étendues entourent cette séance : le premarket à partir de 4 h 00 ET et les échanges after-hours jusqu’à 20 h 00 ET. Les marchés sont fermés le week-end et environ dix jours fériés par an. Chaque chiffre de cette page est calculé à partir de transactions réelles. La requête exacte utilisée pour chaque chiffre est accessible en un clic. (Pour une vue d’ensemble, la prochaine fermeture et la séance la plus récente, consultez la Bourse est-elle ouverte aujourd’hui.)
À quelles heures la Bourse ouvre-t-elle et ferme-t-elle ?
La séance régulière, celle à laquelle se réfèrent les cours cotés, les niveaux des indices et les informations du soir, va de la cloche d’ouverture à 9 h 30 ET à la cloche de clôture à 16 h 00 ET : six heures et demie, cinq jours par semaine. Les deux grandes places de cotation américaines suivent les mêmes horaires. Un ordre standard passé auprès d’un courtier est exécuté par défaut pendant cette période.
La journée complète de trading électronique est plus étendue :
- Premarket : de 4 h 00 à 9 h 30 ET, trading électronique avant la cloche d’ouverture.
- Séance régulière : de 9 h 30 à 16 h 00 ET, période durant laquelle l’essentiel des échanges de la journée est réalisé.
- After-hours : de 16 h 00 à 20 h 00 ET, trading électronique après la cloche de clôture.
Deux enchères encadrent la séance régulière. Une enchère d’ouverture fixe le cours officiel d’ouverture de chaque action à 9 h 30. La enchère de clôture, une seule transaction appariée de très grande taille réalisée quelques instants après 16 h 00, fixe le cours officiel de clôture repris partout dans les informations du soir. Tous les horaires indiqués sur cette page sont exprimés en heure de l’Est : sur la côte Ouest des États-Unis, la même séance régulière se déroule de 6 h 30 à 13 h 00.
À quoi ressemblent les horaires de la Bourse sur le tape ?
Les définitions sont une chose ; le tape en apporte la preuve. Les graphiques ci-dessous portent sur une séance récente complète du tape de SPY, 2026-10-01, un Thursday, la séance la plus récente suffisamment ancienne pour que son historique soit complet (le flux de données accuse un retard d’un ou deux jours), vérifiée en comptant ses barres d’une minute pendant la séance régulière : 390, soit une pour chaque minute entre les deux cloches. La première barre de la séance a été exécutée à 04:00 ET et la dernière à 19:59 ET ; le tape couvre toute la journée étendue, de 4 h 00 à 20 h 00.
| date de séance | jour de la semaine | barres de séance régulière | minute de la première barre de la journée | minute de la dernière barre de la journée | heure ET de la première barre | heure ET de la dernière barre | nombre total d’actions (M) | préouverture (%) | séance régulière (%) | 30 min après la clôture (%) | soirée (%) | 30 premières minutes (%) | 30 dernières minutes (%) | demi-heure de milieu de séance (%) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-01 | Thursday | 390 | 240 | 1199 | 04:00 | 19:59 | 47.7 | 3 | 85.8 | 8.5 | 2.7 | 9.6 | 14.6 | 4.7 |
Le SQL exact derrière chaque chiffre
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 21
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars = 390
)
) AS session_day
SELECT
toString(session_day) AS session_date,
formatDateTime(session_day, '%W') AS weekday,
b.regular_session_bars AS regular_session_bars,
b.first_bar_minute_of_day AS first_bar_minute_of_day,
b.last_bar_minute_of_day AS last_bar_minute_of_day,
b.first_bar_et AS first_bar_et,
b.last_bar_et AS last_bar_et,
t.total_shares_m AS total_shares_m,
t.premarket_pct AS premarket_pct,
t.regular_pct AS regular_pct,
t.post_close_30min_pct AS post_close_30min_pct,
t.evening_pct AS evening_pct,
t.first_30min_pct AS first_30min_pct,
t.last_30min_pct AS last_30min_pct,
t.midday_half_hour_pct AS midday_half_hour_pct
FROM
(
SELECT
countIf(et_min >= 570 AND et_min < 960) AS regular_session_bars,
min(et_min) AS first_bar_minute_of_day,
max(et_min) AS last_bar_minute_of_day,
formatDateTime(min(et_ts), '%H:%i') AS first_bar_et,
formatDateTime(max(et_ts), '%H:%i') AS last_bar_et
FROM
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et_ts,
toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) = session_day
)
) AS b
CROSS JOIN
(
SELECT
round(sum(shares) / 1e6, 1) AS total_shares_m,
round(100.0 * sumIf(shares, NOT is_close AND et_min < 570) / sum(shares), 1) AS premarket_pct,
round(100.0 * sumIf(shares, is_close OR (et_min >= 570 AND et_min < 960)) / sum(shares), 1) AS regular_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 960 AND et_min < 990) / sum(shares), 1) AS post_close_30min_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 990) / sum(shares), 1) AS evening_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 570 AND et_min < 600) / sum(shares), 1) AS first_30min_pct,
round(100.0 * sumIf(shares, is_close OR (et_min >= 930 AND et_min < 960)) / sum(shares), 1) AS last_30min_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 750 AND et_min < 780) / sum(shares), 1) AS midday_half_hour_pct
FROM
(
SELECT
toFloat64(size) AS shares,
has(conditions, 8) AS is_close,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
+ toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime(session_day, 'America/New_York')
AND sip_timestamp < toDateTime(session_day + 1, 'America/New_York')
AND NOT hasAny(conditions, [15, 16, 38])
)
) AS tLa répartition des volumes est instructive. Elle se lit transaction par transaction sur le tape consolidé, et le print de l’enchère de clôture est comptabilisé dans la séance régulière qu’il termine. Sur les 47.7 millions d’actions SPY échangées pendant ces seize heures, la séance régulière en a représenté 85.8%. Le premarket de cinq heures et demie en a enregistré 3%. La demi-heure qui suit immédiatement la cloche de clôture en a enregistré 8.5%. Cette période comprend les importantes transactions négociées déclarées sur le tape après la fin de la séance. Les trois heures et demie restantes de la soirée en ont enregistré 2.7% au total.
Les tranches d’une demi-heure montrent la structure de la journée :
| demi-heure ET | actions (M) |
|---|---|
| 04:00 | 0.22 |
| 04:30 | 0.06 |
| 05:00 | 0.04 |
| 05:30 | 0.02 |
| 06:00 | 0.12 |
| 06:30 | 0.11 |
| 07:00 | 0.11 |
| 07:30 | 0.09 |
| 08:00 | 0.17 |
| 08:30 | 0.12 |
| 09:00 | 0.34 |
| 09:30 | 4.56 |
| 10:00 | 3.95 |
| 10:30 | 3.07 |
| 11:00 | 2.73 |
| 11:30 | 3.18 |
| 12:00 | 2.29 |
| 12:30 | 2.22 |
| 13:00 | 2.49 |
| 13:30 | 3.68 |
Le SQL exact derrière chaque chiffre
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 21
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars = 390
)
) AS session_day
SELECT
formatDateTime(toStartOfInterval(if(has(conditions, 8),
toTimeZone(sip_timestamp, 'America/New_York') - INTERVAL 10 MINUTE,
toTimeZone(sip_timestamp, 'America/New_York')),
INTERVAL 30 MINUTE), '%H:%i') AS et_half_hour,
round(sum(toFloat64(size)) / 1e6, 2) AS shares_m
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime(session_day, 'America/New_York')
AND sip_timestamp < toDateTime(session_day + 1, 'America/New_York')
AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY et_half_hour
ORDER BY et_half_hourLors de cette séance, la dernière demi-heure, print de l’enchère compris, a représenté 14.6% du volume total de la journée, contre 4.7% pour la tranche de déjeuner de 12 h 30 à 13 h 00 ; la première demi-heure en a représenté 9.6%. L’intensité de la clôture s’explique par un facteur mécanique : les fonds indiciels, les fonds communs de placement et les institutions qui répliquent un benchmark interviennent aux cours officiels de clôture, et leurs ordres se concentrent dans l’enchère de clôture. Au total, les volumes ont été répartis sur 32 tranches distinctes d’une demi-heure pendant la journée étendue.
Qu’est-ce que le premarket et l’after-hours ?
Le premarket (de 4 h 00 à 9 h 30, heure de l’Est) et l’after-hours (de 16 h 00 à 20 h 00, heure de l’Est) sont des créneaux de négociation exclusivement électroniques autour de la séance régulière. Ils attirent moins de participants, les bid-ask spreads y sont plus larges et la plupart des brokers n’acceptent que les ordres à cours limité pendant ces séances. Les annonces d’entreprises se concentrent sur ces créneaux : les publications de résultats se multiplient juste après la clôture de 16 h 00 et dans les heures précédant l’ouverture. C’est à ces moments que le cours d’une action peut s’écarter fortement de son cours de clôture précédent. Un prix affiché à 19 h 00 ne garantit en rien le niveau d’ouverture de l’action le lendemain matin.
La part du volume par séance, le coût mesuré des bid-ask spreads et l’heure exacte à laquelle les annonces sont effectivement publiées figurent dans la négociation after-hours et premarket, l’article complémentaire de cette page. En résumé, comme le montrent les panneaux ci-dessus : les séances étendues sont bien réelles et permettent de négocier, mais leur liquidité est faible par rapport à la séance régulière.
À quelles heures les options et les futures sont-ils négociés ?
Les options sur les actions individuelles se négocient de 9 h 30 à 16 h, heure de l’Est, sans séance de préouverture ni after-hours. Les options sur une courte liste d’ETF larges et de produits indiciels, notamment SPY, QQQ et IWM, ainsi que les options sur indices comme SPX et VIX, bénéficient de 15 minutes supplémentaires, jusqu’à 16 h 15, heure de l’Est. Le flux de marché montre cette différence sur 2026-10-01, pour la même séance que celle mesurée plus haut :
| contrat | date de séance | transactions de 3 h 45 à 4 h 00 | transactions de 4 h 00 à 4 h 15 | heure ET de la dernière transaction | minute de la dernière transaction de la journée |
|---|---|---|---|---|---|
| AAPL options (single name) | 2026-10-01 | 8623 | 1 | 16:00 | 960 |
| SPY options (ETF) | 2026-10-01 | 63980 | 21161 | 16:14 | 974 |
Le SQL exact derrière chaque chiffre
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 21
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars = 390
)
) AS session_day
SELECT
if(startsWith(ticker, 'O:SPY'), 'SPY options (ETF)', 'AAPL options (single name)') AS contract,
toString(session_day) AS session_date,
countIf(sip_timestamp >= toDateTime(concat(toString(session_day), ' 15:45:00'), 'America/New_York')
AND sip_timestamp < toDateTime(concat(toString(session_day), ' 16:00:00'), 'America/New_York')) AS trades_345_to_400,
countIf(sip_timestamp >= toDateTime(concat(toString(session_day), ' 16:00:00'), 'America/New_York')
AND sip_timestamp < toDateTime(concat(toString(session_day), ' 16:15:00'), 'America/New_York')) AS trades_400_to_415,
formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%H:%i') AS last_trade_et,
toHour(toTimeZone(max(sip_timestamp), 'America/New_York')) * 60
+ toMinute(toTimeZone(max(sip_timestamp), 'America/New_York')) AS last_trade_minute_of_day
FROM global_markets.options_trades
WHERE (startsWith(ticker, 'O:SPY') OR startsWith(ticker, 'O:AAPL'))
AND match(ticker, '^O:(SPY|AAPL)[0-9]{6}[CP][0-9]{8}$')
AND sip_timestamp >= toDateTime(concat(toString(session_day), ' 15:45:00'), 'America/New_York')
AND sip_timestamp < toDateTime(concat(toString(session_day), ' 23:00:00'), 'America/New_York')
GROUP BY contract
ORDER BY contractLes 15 dernières minutes de la séance régulière ont été très actives sur les deux flux : 8623 transactions sur les options AAPL, contre 63980 sur SPY. Les 15 minutes qui ont suivi la clôture les ont départagés : AAPL n’a enregistré que 1 transactions isolées, la dernière à 16:00, heure de l’Est, tandis que SPY a affiché 21161 transactions, la dernière à 16:14, heure de l’Est. Les jours d’expiration suivent leur propre calendrier ; à quelles heures les options 0DTE se négocient-elles en donne le détail.
Les futures suivent un calendrier complètement différent. Les futures sur indices actions du CME se négocient presque 24 heures sur 24, du dimanche à 18 h au vendredi à 17 h, heure de l’Est, avec une pause quotidienne d’une heure à partir de 17 h. C’est la séance overnight qui alimente les titres annonçant que « les futures progressent ce matin ». Le marché obligataire se négocie de gré à gré selon les horaires recommandés par la SIFMA, soit environ de 8 h à 17 h, heure de l’Est, avec son propre calendrier de jours fériés : les obligations sont fermées pour Columbus Day et Veterans Day, alors que les actions continuent de se négocier.
Quand la Bourse est-elle fermée ?
Les marchés actions américains sont fermés le week-end, environ dix jours fériés complets par an et, certains jours prévus au calendrier, plus tôt, à 13 h 00 ET. Le calendrier ci-dessous reprend directement le programme des places boursières et se met à jour automatiquement : chaque jour férié disparaît une fois passé et le suivant remonte dans la liste.
| date du jour férié | jour de la semaine | jour férié | statut de la journée | heure ET de la clôture anticipée | jours restants |
|---|---|---|---|---|---|
| 2026-11-26 | Thu | Thanksgiving | closed | 53 | |
| 2026-11-27 | Fri | Thanksgiving | early-close | 01:00 PM | 54 |
| 2026-12-24 | Thu | Christmas | early-close | 01:00 PM | 81 |
| 2026-12-25 | Fri | Christmas | closed | 82 | |
| 2027-01-01 | Fri | New Years Day | closed | 89 | |
| 2027-01-18 | Mon | Martin Luther King, Jr. Day | closed | 106 | |
| 2027-02-15 | Mon | Washington's Birthday | closed | 134 | |
| 2027-03-26 | Fri | Good Friday | closed | 173 | |
| 2027-05-31 | Mon | Memorial Day | closed | 239 | |
| 2027-06-18 | Fri | Juneteenth | closed | 257 | |
| 2027-07-05 | Mon | Independence Day | closed | 274 | |
| 2027-09-06 | Mon | Labor Day | closed | 337 |
Le SQL exact derrière chaque chiffre
SELECT
toString(date) AS holiday_date,
formatDateTime(date, '%a') AS weekday,
any(name) AS holiday,
any(status) AS day_status,
any(if(status = 'early-close',
formatDateTime(toTimeZone(close, 'America/New_York'), '%I:%i %p'),
'')) AS early_close_et,
dateDiff('day', today(), date) AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
GROUP BY date
ORDER BY dateLa prochaine fermeture prévue est Thanksgiving, le 2026-11-26, dans 53 jours. Le calendrier chargé recense 12 dates de fermeture à venir, chacune indiquée comme une fermeture complète ou une clôture anticipée. Lors d’une clôture anticipée, la séance ordinaire se termine à 13 h 00 ET au lieu de 16 h 00 : la durée de négociation est de trois heures et demie au lieu de six heures et demie, et l’enchère de clôture donne lieu à des prints à 13 h 00. Ces séances écourtées se concentrent autour de Thanksgiving et de Noël. Les règles de report liées aux week-ends — un jour férié tombant un samedi entraîne une fermeture le vendredi précédent, et un jour férié tombant un dimanche le lundi suivant —, le calendrier complet et la méthode permettant de vérifier une fermeture passée à partir du tape sont présentés dans jours fériés et clôtures anticipées de la Bourse américaine.
À quoi ressemble une séance écourtée sur le tape ?
Le calendrier indique les clôtures anticipées ; le tape montre concrètement à quoi elles ressemblent. La dernière séance écourtée sur le tape du SPY était 2025-12-24, avec Wednesday : 210 barres d’une minute pendant la séance régulière, de 9 h 30 jusqu’à l’enchère de clôture de 13 h.
| date de séance | jour de la semaine | barres de la séance du matin | heure ET de la dernière barre | minute de la dernière barre de la journée | nombre total d’actions (M) | préouverture (%) | séance régulière (%) | 30 min après la clôture (%) | soirée (%) | 30 premières minutes (%) | 30 dernières minutes (%) | clôture moins ouverture (%) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025-12-24 | Wednesday | 210 | 16:59 | 1019 | 39.9 | 1.2 | 89.6 | 7.8 | 1.4 | 10.9 | 24.2 | 13.3 |
Le SQL exact derrière chaque chiffre
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 400
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars >= 150 AND rth_bars <= 240
)
) AS half_day
SELECT
toString(half_day) AS session_date,
formatDateTime(half_day, '%W') AS weekday,
b.morning_session_bars AS morning_session_bars,
b.last_bar_et AS last_bar_et,
b.last_bar_minute_of_day AS last_bar_minute_of_day,
t.total_shares_m AS total_shares_m,
t.premarket_pct AS premarket_pct,
t.regular_pct AS regular_pct,
t.post_close_30min_pct AS post_close_30min_pct,
t.evening_pct AS evening_pct,
t.first_30min_pct AS first_30min_pct,
t.last_30min_pct AS last_30min_pct,
round(t.last_30min_pct - t.first_30min_pct, 1) AS close_minus_open_pct
FROM
(
SELECT
countIf(et_min >= 570 AND et_min < 780) AS morning_session_bars,
formatDateTime(max(et_ts), '%H:%i') AS last_bar_et,
max(et_min) AS last_bar_minute_of_day
FROM
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et_ts,
toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 400
AND toDate(toTimeZone(window_start, 'America/New_York')) = half_day
)
) AS b
CROSS JOIN
(
SELECT
round(sum(shares) / 1e6, 1) AS total_shares_m,
round(100.0 * sumIf(shares, NOT is_close AND et_min < 570) / sum(shares), 1) AS premarket_pct,
round(100.0 * sumIf(shares, is_close OR (et_min >= 570 AND et_min < 780)) / sum(shares), 1) AS regular_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 780 AND et_min < 810) / sum(shares), 1) AS post_close_30min_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 810) / sum(shares), 1) AS evening_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 570 AND et_min < 600) / sum(shares), 1) AS first_30min_pct,
round(100.0 * sumIf(shares, is_close OR (et_min >= 750 AND et_min < 780)) / sum(shares), 1) AS last_30min_pct
FROM
(
SELECT
toFloat64(size) AS shares,
has(conditions, 8) AS is_close,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
+ toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime(half_day, 'America/New_York')
AND sip_timestamp < toDateTime(half_day + 1, 'America/New_York')
AND NOT hasAny(conditions, [15, 16, 38])
)
) AS tLa structure d’une journée complète subsiste malgré la compression. Sur les 39.9 millions d’actions SPY exécutées, la séance régulière écourtée en a concentré 89.6%. La dernière demi-heure avant la clôture de 13 h, enchère de clôture comprise, en a concentré 24.2%, nettement plus que les 10.9% de la première demi-heure. La même concentration autour de l’enchère de clôture que lors d’une journée normale est simplement avancée de trois heures. La demi-heure suivant la clôture a enregistré 7.8% (à nouveau pendant la fenêtre de déclaration des blocs), puis le reste de l’après-midi à peine 1.4%. Les horaires étendus ferment eux aussi plus tôt : la dernière barre de la journée s’est imprimée à 16:59 ET. Les échanges after-hours s’arrêtent vers 17 h lors des séances écourtées, soit trois heures avant l’horaire habituel de 20 h. Les options ferment également plus tôt : à 13 h pour les valeurs individuelles et à 13 h 15 pour les contrats ETF et indiciels à horaires étendus.
| demi-heure ET | actions (M) |
|---|---|
| 04:00 | 0.03 |
| 04:30 | 0 |
| 05:00 | 0.01 |
| 05:30 | 0.01 |
| 06:00 | 0.01 |
| 06:30 | 0.01 |
| 07:00 | 0.05 |
| 07:30 | 0.03 |
| 08:00 | 0.1 |
| 08:30 | 0.11 |
| 09:00 | 0.13 |
| 09:30 | 4.36 |
| 10:00 | 3.84 |
| 10:30 | 3.46 |
| 11:00 | 4.98 |
| 11:30 | 3.79 |
| 12:00 | 5.69 |
| 12:30 | 9.66 |
| 13:00 | 3.11 |
| 13:30 | 0.11 |
Le SQL exact derrière chaque chiffre
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 400
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars >= 150 AND rth_bars <= 240
)
) AS half_day
SELECT
formatDateTime(toStartOfInterval(if(has(conditions, 8),
toTimeZone(sip_timestamp, 'America/New_York') - INTERVAL 10 MINUTE,
toTimeZone(sip_timestamp, 'America/New_York')),
INTERVAL 30 MINUTE), '%H:%i') AS et_half_hour,
round(sum(toFloat64(size)) / 1e6, 2) AS shares_m
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime(half_day, 'America/New_York')
AND sip_timestamp < toDateTime(half_day + 1, 'America/New_York')
AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY et_half_hour
ORDER BY et_half_hourLe volume s’est réparti sur 26 tranches d’une demi-heure. La structure habituelle, avec une ouverture active et une clôture plus soutenue, a été comprimée sur trois heures et demie.
Combien de séances de trading compte une année ?
Après exclusion des week-ends et des jours fériés, une année civile compte environ 250 séances de trading. Le décompte des séances dans les données de marché permet d’obtenir le nombre exact :
| jours de cotation | séances complètes | séances écourtées | séances irrégulières | séances du week-end | première séance | dernière séance |
|---|---|---|---|---|---|---|
| 254 | 252 | 2 | 0 | 0 | 2025-09-29 | 2026-10-01 |
Le SQL exact derrière chaque chiffre
SELECT
count() AS trading_days,
countIf(rth_bars >= 380) AS full_length_sessions,
countIf(rth_bars <= 240) AS shortened_sessions,
countIf(rth_bars > 240 AND rth_bars < 380) AS irregular_sessions,
countIf(is_weekend) AS weekend_sessions,
toString(min(d)) AS first_session,
toString(max(d)) AS last_session
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toDayOfWeek(toDate(toTimeZone(window_start, 'America/New_York'))) >= 6 AS is_weekend,
countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 370
AND window_start < today() - 2
GROUP BY d, is_weekend
HAVING rth_bars > 0
)Entre 2025-09-29 et 2026-10-01, le marché a compté 254 séances régulières, dont 252 journées complètes et 2 journées écourtées, ainsi qu’exactement 0 séances le week-end. Les données de marché confirment ainsi qu’aucune séance régulière ne s’est tenue un samedi ou un dimanche.
Horaires des marchés actions dans le monde
Les horaires américains ne représentent qu’une étape d’une rotation mondiale presque continue. La Bourse de Londres est ouverte de 8 h 00 à 16 h 30, heure locale. Sa dernière partie de séance chevauche généralement les deux premières heures de la séance régulière américaine, de 9 h 30 à 11 h 30, heure de l’Est. Les marchés européens clôturent donc en milieu de matinée à New York. Tokyo est ouvert de 9 h 00 à 15 h 30, heure locale, avec une pause déjeuner. Sa séance se déroule entièrement pendant la nuit américaine. Une grande place boursière est ouverte presque tous les jours ouvrés quelque part dans le monde. Mais une action cotée aux États-Unis ne fait l’objet de prints que pendant les horaires américains mesurés sur cette page.
FAQ sur les horaires de la Bourse
À quelle heure la Bourse ouvre-t-elle ?
Le NYSE et le Nasdaq ouvrent la séance régulière à 9 h 30, heure de l’Est, du lundi au vendredi. Les échanges électroniques avant l’ouverture commencent bien plus tôt, à 4 h 00, mais le cours d’ouverture officiel de chaque action est fixé lors de l’enchère d’ouverture de 9 h 30.
La Bourse est-elle ouverte le week-end ?
Non. Les Bourses américaines ne tiennent aucune séance le samedi ni le dimanche. Les données de marché de l’année écoulée affichées ci-dessus montrent 0 séances le week-end. Après la clôture de vendredi à 16 h 00 et la fin des échanges after-hours à 20 h 00, les transactions reprennent lundi à 4 h 00 en premarket, hors jours fériés.
Que sont les échanges premarket et after-hours ?
Il s’agit des échanges électroniques réalisés en dehors des horaires réguliers. Le premarket s’étend de 4 h 00 à 9 h 30, heure de l’Est, et les échanges after-hours de 16 h 00 à 20 h 00. Ces deux sessions comptent moins de participants et affichent des bid-ask spreads plus larges que la séance régulière. La plupart des brokers n’y acceptent que les ordres à cours limité.
Quand la Bourse ferme-t-elle plus tôt ?
Lors des demi-séances prévues au calendrier, les échanges réguliers prennent fin à 13 h 00, heure de l’Est, au lieu de 16 h 00. C’est généralement le cas le vendredi suivant Thanksgiving, la veille de Noël lorsqu’elle tombe un jour ouvré, ainsi que le 3 juillet certaines années. Les données de marché de l’année écoulée montrent 2 séances écourtées.
Que se passe-t-il si une action est suspendue à la clôture ?
Une action dont la cotation est toujours suspendue au fixing de clôture ne fait pas l’objet d’une enchère de clôture différée ce jour-là. Les règles de la Bourse interdisent une enchère de réouverture lorsque la suspension se prolonge au-delà d’environ 15 h 50, heure de l’Est. La suspension se poursuit donc simplement jusqu’à la clôture. En l’absence d’enchère pour fixer un cours, la Bourse retient comme cours de clôture officiel le prix moyen pondéré par les volumes des transactions effectuées sur cette action durant les cinq dernières minutes précédant la suspension, et non son dernier cours traité. Les suspensions concernent chaque action séparément ; le reste du marché clôture à 16 h 00 comme prévu.
La Bourse ferme-t-elle à 16 h 00 ou à 16 h 30 ?
Les Bourses américaines clôturent les échanges réguliers à 16 h 00, heure de l’Est. Les cotations qui continuent d’évoluer ensuite proviennent de la session after-hours, qui se poursuit jusqu’à 20 h 00, tandis que quelques produits indiciels se traitent jusqu’à 16 h 15.
Les horaires de marché sont un calendrier ; le tape en est le relevé. Chaque panneau ci-dessus correspond à une requête enregistrée que vous pouvez ouvrir, modifier et relancer sur le terminal Strasmore. Vous pouvez vérifier n’importe quelle séance, n’importe quel ticker ou la prochaine fermeture prévue en langage courant.