Comprendre le fonctionnement du closing cross
Découvrez le mécanisme de l'enchère de clôture qui fixe le cours officiel via un prix unique et comment les ordres market-on-close impactent le volume du tape.
L'enchère de clôture (appelée closing cross par le Nasdaq) est une transaction unique et massive effectuée à 16h00, heure de l'Est, qui fixe le cours de clôture officiel de chaque action. Au lieu de faire correspondre les acheteurs et les vendeurs ordre par ordre, la bourse de cotation collecte les ordres de clôture tout au long de l'après-midi. Elle croise ensuite l'ensemble du pool à un prix unique, en une seule transaction. Cela constitue la contrepartie de l'opening auction qui lance la journée. Pour chaque titre, ce volume représente systématiquement la transaction la plus importante de la journée. Toutes les données de cette page sont extraites du consolidated tape — le registre public unifié de toutes les transactions boursières américaines — avec le code SQL exact associé à chaque panneau.
Qu'est-ce que l'enchère de clôture ? Définition simple
Pendant la majeure partie de la séance, une action s'échange en continu : les ordres arrivent, s'appariement et sont exécutés un par un — pour les titres les plus actifs, des milliers de fois par minute. L'enchère de clôture est un mécanisme différent sur le même flux de données. Dans la dernière phase de la journée, la bourse de cotation regroupe tous les ordres marqués pour la clôture, calcule le prix unique permettant d'apparier le plus grand nombre d'actions, et exécute l'ensemble du pool en une seule transaction à 16h00 ET.
L'opération s'affiche sur le flux public comme n'importe quelle autre transaction, avec son propre étiquetage — condition de vente 8, "Closing Prints" — et son prix devient le cours de clôture officiel coté partout le soir même. Le marché continu et l'enchère ne sont pas deux marchés distincts ; ils font partie du même flux, et l'enchère n'est qu'une ligne massive sur celui-ci.
Pourquoi l'enchère de clôture existe-t-elle ?
La clôture constitue le prix de référence du marché. Les fonds communs de placement calculent leur valeur liquidative quotidienne à partir des cours de clôture officiels. Les fournisseurs d'indices utilisent ces cours pour calculer leurs benchmarks, et les desks institutionnels sont évalués par rapport à eux, ainsi qu'à des mesures comme le VWAP, le prix moyen pondéré par les volumes. Un investisseur qui transige au prix de clôture suit exactement toutes ces références — l'enchère est le mécanisme qui fixe ce prix : pour la plupart des investisseurs, c'est l'unique plateforme garantissant l'exécution au prix de clôture.
Cet effet d'attraction s'auto-alimente. Les ordres importants s'accumulent des deux côtés du carnet. Un croisement (cross) les apparie avec une taille maximale, permettant à un ordre important d'être exécuté à un prix unique. Cela évite de traverser le spread bid-ask du marché continu, où les market makers cotent les deux côtés tout au long de la journée.
L'enchère de clôture sur le tape réel : un seul print contre la médiane des transactions
Le tableau ci-dessous analyse la séance du 2 juillet 2026 — l'ultime session avant le week-end prolongé du 4 juillet, une journée de trading complète et vérifiée (les données figurent dans le tableau suivant) — et compare l'enchère de clôture de SPY, AAPL et NVDA à l'ensemble des transactions de leur tape. Le « volume apparié » correspond aux actions comptabilisées par le tape dans le volume consolidé ; les retransmissions administratives (conditions de vente 15, 16 et 38) sont exclues de chaque dénominateur, conformément à notre analyse approfondie de la microstructure tick-by-tick ; le tableau de dictionnaire de codes ci-dessous présente les données brutes.
Le SQL exact derrière chaque chiffre
SELECT
ticker,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
formatDateTime(toTimeZone(argMaxIf(sip_timestamp, size, has(conditions, 8)), 'America/New_York'), '%H:%i:%S') AS auction_time_et,
countIf(has(conditions, 8)) AS auction_print_count,
countIf(has(conditions, 8) AND formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') = '16:00:00') AS auction_prints_at_1600,
round(quantileDeterministicIf(0.5)(toFloat64(size), toUInt64(sip_timestamp), NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) AS median_trade_shares,
round(toFloat64(maxIf(size, has(conditions, 8))) / quantileDeterministicIf(0.5)(toFloat64(size), toUInt64(sip_timestamp), NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])) / 1000) AS auction_vs_median_thousand_x,
round(100 * toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS auction_pct_of_volume,
round(toFloat64(maxIf(size, NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 2) AS biggest_other_trade_m,
round(toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(maxIf(size, NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))), 2) AS auction_vs_biggest_other_x
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)Lisez d'abord la ligne AAPL. La médiane des transactions AAPL ce jour-là était de 20 actions. L'enchère de clôture a croisé 10.89 millions d'actions en un seul print — soit environ 545 mille fois la médiane — représentant 14.4% de chaque action AAPL appariée sur la journée, hors-séance incluse. L'écart entre l'enchère et la médiane pour NVDA est encore plus important — une médiane de 5 actions contre un croisement de 17.38 millions d'actions, soit 3475 mille fois sa médiane — tout en représentant 12.2% de son volume journalier. Chaque titre affiche un seul print d'enchère — la colonne auction_print_count contient les données — horodaté à 16:00:00 ET à la seconde près (auction_prints_at_1600 précise le timing).
L'affirmation du titre est étayée par les données. Pour ces deux actions, le croisement était la transaction la plus importante de la journée : le plus gros print continu d'AAPL était de 1.8 millions d'actions, l'enchère était 6.05 fois plus importante ; le plus gros pour NVDA était de 5.47 millions, le croisement était 3.18 fois plus important. SPY est l'exception : un seul bloc de 2.5 millions d'actions a dépassé son croisement de 1.65 millions d'actions — pour un ETF très liquide, un seul bloc peut être supérieur à l'enchère. SPY affiche également la plus faible part d'enchère des trois à 2.9% — pourtant, son croisement était encore 66 mille fois supérieur à sa médiane de transaction de 25 actions.
The official close is the auction, not the last tick
A common assumption is that the closing price is simply the last trade before the bell. The tape disagrees. The one-row receipt below covers AAPL on July 2, 2026, opening with session checks for every date this post pins: SPY printed exactly 390, 390, and 390 regular-session minute bars on June 16, June 30, and July 2 — three complete 9:30-to-4:00 sessions, verified, never assumed.
Le SQL exact derrière chaque chiffre
WITH
(
SELECT countIf(window_start >= toDateTime('2026-06-16 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-06-16 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-16 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-06-17 00:00:00', 'America/New_York')
) AS bars_jun16,
(
SELECT countIf(window_start >= toDateTime('2026-06-30 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-06-30 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-30 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-01 00:00:00', 'America/New_York')
) AS bars_jun30,
(
SELECT countIf(window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
) AS bars_jul02,
(
SELECT maxIf(sip_timestamp, has(conditions, 8))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
) AS auction_ts,
(
SELECT argMaxIf(exchange, size, has(conditions, 8))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
) AS listing_exchange
SELECT
bars_jun16 AS spy_session_bars_jun16,
bars_jun30 AS spy_session_bars_jun30,
bars_jul02 AS spy_session_bars_jul02,
countIf(has(conditions, 8)) AS auction_print_count,
toFloat64(argMaxIf(price, size, has(conditions, 8))) AS auction_price,
formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S.%f') AS auction_et,
toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))) AS last_tick_price,
formatDateTime(toTimeZone(maxIf(sip_timestamp, sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S.%f') AS last_tick_et,
round((toFloat64(argMaxIf(price, size, has(conditions, 8))) - toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])))) * 100, 1) AS auction_minus_last_tick_cents,
countIf(has(conditions, 15)) AS official_close_reprints,
countIf(has(conditions, 15) AND exchange = listing_exchange) AS listing_venue_reprints,
round(toFloat64(anyIf(price, has(conditions, 15) AND exchange = listing_exchange)) - toFloat64(argMaxIf(price, size, has(conditions, 8))), 4) AS listing_reprint_price_difference
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'Continuous trading runs right up to the moment the cross fires — on this day, a fraction of a second past 4:00:00. AAPL's last volume-counting continuous trade before the cross printed at 16:00:00.215052 ET at $308.1; at 16:00:00.373202 ET the auction crossed at $308.63 — 53 cents above that final tick. The official close that evening was the auction's price, not the last tick's. The tape then carried 2 "Market Center Official Close" messages (sale condition 15) — each reporting venue's record of its own official close, not re-broadcasts of the consolidated close; venues can report different prices. The listing exchange's message matches the auction print exactly (the difference measures 0), and none of these messages add volume. Trading continues in the after-hours session for four more hours; none of those prints move the official close either.
Comment fonctionne l'enchère de clôture ? Ordres Market-on-close et limit-on-close
Deux types d'ordres dédiés alimentent l'enchère — en plus des ordres limit ordinaires déjà présents dans le carnet continu, qui peuvent également participer au cross :
- Un ordre market-on-close (MOC) s'exécute au prix fixé par l'enchère. Il n'y a aucune protection de prix — c'est la contrepartie d'une exécution quasi garantie à la clôture officielle (si un titre est suspendu avant la cloche, le cross peut ne pas avoir lieu et les ordres de clôture peuvent ne pas être exécutés).
- Un ordre limit-on-close (LOC) rejoint l'enchère uniquement si le prix de l'enchère est égal ou supérieur à sa limite. Il offre une protection de prix, avec le risque de manquer totalement le cross.
Les deux types d'ordres restent sur la plateforme jusqu'au cross ; aucun ne s'échange sur le marché continu avant cela. Les bourses cessent d'accepter ou de modifier les ordres de clôture durant les dernières minutes (les délais exacts varient selon la bourse et évoluent dans le temps), et la plupart des courtiers imposent leurs propres échéances plus précoces. À la cloche, le carnet est verrouillé et un prix unique permet l'exécution.
Qu'est-ce qu'un déséquilibre de l'enchère de clôture ?
Avant le cross, les bourses publient des données sur l'imbalance : le nombre d'actions en attente à l'achat par rapport à la vente à la clôture, ainsi qu'un prix indicatif qui serait celui du cross à cet instant. Un déséquilibre acheteur d'un million d'actions signifie qu'un million d'actions à l'achat ne sont pas encore appariées. Les traders du marché continu surveillent ces flux et ajustent leurs positions dans les dernières minutes.
Les jours de fin de trimestre gonflent les enchères de clôture
Certaines dates calendaires concentrent une part plus importante du volume sur la clôture. Les rebalancements d'indices, les expirations et les flux de fonds de fin de mois ou de trimestre dépendent tous des prix de clôture officiels ; ces flux convergent lors de l'enchère. Le 30 juin 2026 était le dernier jour de trading du deuxième trimestre. Le tableau ci-dessous compare l'enchère de clôture de chaque ticker ce jour-là à une séance ordinaire du milieu du mois, le 16 juin — les deux étant des séances complètes vérifiées dans le récapitulatif ci-dessus.
Le SQL exact derrière chaque chiffre
SELECT
ticker,
countIf(has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00') AS jun16_auction_print_count,
countIf(has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00') AS jun30_auction_print_count,
round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')) / 1e6, 2) AS jun16_auction_shares_m,
round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / 1e6, 2) AS jun30_auction_shares_m,
round(toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')), 1) AS jun30_vs_jun16_x,
round(100 * toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp < '2026-06-17 00:00:00')) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND sip_timestamp < '2026-06-17 00:00:00')), 1) AS jun16_auction_pct,
round(100 * toFloat64(maxIf(size, has(conditions, 8) AND sip_timestamp >= '2026-06-30 00:00:00')) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND sip_timestamp >= '2026-06-30 00:00:00')), 1) AS jun30_auction_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
AND ((sip_timestamp >= '2026-06-16 00:00:00' AND sip_timestamp < '2026-06-17 00:00:00')
OR (sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'))
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)L'enchère de fin de trimestre d'AAPL a dépassé 21.71 millions d'actions — soit 2.9 fois son enchère du 16 juin qui était de 7.49 millions — et cette transaction représentait 33.2% du volume total de la journée pour AAPL. Un tiers du volume d'une séance réalisé en une seule transaction, à un prix unique. L'enchère de NVDA est passée de 23.47 millions à 41.14 millions d'actions, atteignant 24.7% de son volume quotidien. Au 2 juillet, chaque ticker n'a enregistré qu'une seule enchère par séance — les deux colonnes de nombre de transactions font foi. Ce type de volume est précisément ce que les filtres de relative volume sont conçus pour détecter. La part de l'enchère pour SPY est restée faible aux deux dates (2.7% et 3.6%). Pour une vue d'ensemble de la séance, consultez notre récapitulatif de marché du 30 juin 2026 ; pour une anomalie de données sur la même semaine de fin de trimestre, la fin de trimestre qui n'a pas été enregistrée.
Comment identifier le print de l'enchère de clôture ? Les codes de condition de vente
Quel print correspond à l'enchère ? La tape le précise. Chaque transaction comporte des codes de condition de vente, et le dictionnaire des codes est fourni avec — le reçu ci-dessous est une requête et non une affirmation.
Le SQL exact derrière chaque chiffre
SELECT
name,
id,
toUInt8(JSONExtractBool(update_rules, 'consolidated', 'updates_volume')) AS counts_toward_volume
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks' AND type = 'sale_condition' AND id IN (8, 15, 16, 38)
ORDER BY idLe code 8, "Closing Prints", désigne le print de l'enchère lui-même ; le dictionnaire indique qu'il est inclus dans le volume consolidé (counts_toward_volume = 1). Le code 15, "Market Center Official Close", correspond au rapport administratif de chaque centre de marché concernant sa propre clôture officielle ; le dictionnaire précise qu'il n'actualise pas le volume (0). Les codes 16 et 38 — "Market Center Official Open" et "Corrected Consolidated Close (per listing market)" — sont des écritures comptables similaires pour l'ouverture et pour les corrections, également exclus (0 et 0). Chaque chiffre d'enchère ci-dessus est filtré selon ces codes plutôt que selon l'heure, et chaque dénominateur de volume exclut les trois codes administratifs.
FAQ
À quelle heure a lieu l'enchère de clôture ?
Peu après 16h00 ET, à la fin de la séance régulière — lors des journées à très fort volume, l'exécution peut être retardée. Le 2 juillet 2026, les enchères pour SPY, AAPL et NVDA ont toutes été enregistrées à 16:00:00 ET précisément. Lors des journées de clôture anticipée, l'enchère a lieu à 13h00 ET — consultez le calendrier des jours fériés et clôtures anticipées pour plus de détails.
Qu'est-ce qu'un ordre Market-on-Close (MOC) ?
Il s'agit d'un ordre d'achat ou de vente au prix fixé par l'enchère de clôture. La participation à la clôture officielle est quasi assurée (sauf en cas de suspension avant la cloche), sans contrôle du prix. Un ordre Limit-on-Close (LOC) ajoute une limite de prix et ne participe à l'enchère que si le prix de clôture est égal ou supérieur à cette limite.
Le prix de clôture correspond-il à la dernière transaction de la journée ?
Non. La clôture officielle est le prix de l'enchère. Le 2 juillet 2026, la dernière transaction continue d'AAPL avant l'enchère était de $308.1 et l'enchère s'est clôturée à $308.63 — soit un écart de 53 cents. Les transactions en after-hours ne modifient pas non plus la clôture officielle.
Pourquoi le volume d'échange est-il si élevé à la clôture ?
Les fonds indiciels, les fonds communs de placement et les institutions utilisant des benchmarks transigent aux prix de clôture officiels, et leurs ordres sont regroupés lors d'une seule enchère. Le 2 juillet 2026, une seule enchère représentait 14.4% du volume exécuté pour AAPL ; au trimestre clos le 30 juin, ce ratio atteignait 33.2%.
Les ETF ont-ils également une enchère de clôture ?
Oui — chaque action cotée et chaque ETF effectue son enchère sur sa bourse de cotation. L'enchère représente généralement une part plus faible de la journée d'un ETF : l'enchère de SPY le 2 juillet 2026 représentait 2.9% de son volume exécuté, contre 14.4% pour AAPL.
Chaque chiffre ci-dessus provient d'une requête stockée et vérifiable — développez la requête SQL sous chaque panneau pour l'auditer. Pour analyser l'enchère de clôture d'un ticker que vous suivez, posez les mêmes questions en anglais sur le terminal Strasmore.