Strasmore Research
Edukacja Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-07-24

Czym jest aukcja zamknięcia i closing cross

Wyjaśnienie mechanizmu aukcji zamknięcia oraz roli transakcji o 16:00. Dowiedz się, jak zlecenia market-on-close kształtują oficjalną cenę zamknięcia akcji.

Aukcja zamknięcia (Nasdaq określa ją jako closing cross) to pojedyncza, masowa transakcja zawierana o godzinie 16:00 czasu wschodniego, która ustala oficjalną cenę zamknięcia każdej akcji. Zamiast dopasowywać kupujących i sprzedających kolejnymi zleceniami, giełda notująca zbiera zlecenia zamknięcia przez całe popołudnie, a następnie krzyżuje całą pulę po jednej cenie w jednym zapisie. Stanowi to dopełnienie aukcji otwarcia, która rozpoczyna dzień. W przypadku poszczególnych akcji pojedynczy zapis tej transakcji jest rutynowo największą transakcją całego dnia. Wszystkie dane na tej stronie pochodzą z consolidated tape — jednolitego publicznego rejestru wszystkich transakcji na rynku akcji w USA — a do każdego panelu dołączony jest dokładny kod SQL.

Czym jest aukcja zamknięcia? Prosta definicja

Przez większość sesji akcje są przedmiotem handlu ciągłego: zlecenia napływają, są dopasowywane i rejestrowane pojedynczo — w przypadku najbardziej aktywnych walorów dzieje się to tysiące razy w ciągu minuty. Aukcja zamknięcia to inny mechanizm działający w ramach tego samego systemu. W końcowej fazie dnia giełda wymiany gromadzi wszystkie zlecenia oznaczone jako zlecenia zamknięcia, oblicza jedną cenę, przy której sparowanych zostanie najwięcej akcji, i realizuje całą pulę w ramach jednej transakcji o godzinie 4:00 p.m. ET.

Transakcja ta jest rejestrowana w publicznym systemie raportowania jak każdy inny handel, oznaczona własną etykietą — warunkiem sprzedaży 8, „Closing Prints” — a jej cena staje się oficjalną ceną zamknięcia podawaną wszędzie danej nocy. Rynek ciągły i aukcja nie są dwoma oddzielnymi rynkami; to jeden system, a aukcja stanowi na nim jedną, ogromną pozycję.

Dlaczego istnieje aukcja zamknięcia?

Zamknięcie stanowi cenę referencyjną rynku. Fundusze inwestycyjne wyliczają codzienne NAV na podstawie oficjalnych cen zamknięcia, dostawcy indeksów obliczają na ich podstawie benchmarki, a działy instytucjonalne są oceniane względem nich oraz innych wskaźników, takich jak VWAP, czyli średnia ważona wolumenem cena. Inwestor zawierający transakcję po cenie zamknięcia dokładnie śledzi wszystkie te wartości referencyjne — aukcja jest miejscem, w którym ta cena zostaje ustalona: dla większości inwestorów jest to jedyne miejsce, gdzie handel po tej cenie jest gwarantowany.

Ten mechanizm wykazuje efekt skali. Duże zlecenia gromadzą się po obu stronach, a pojedyncza transakcja krzyżowa realizuje je w maksymalnym wolumenie. Dzięki temu duże zlecenie zostaje zrealizowane po jednej cenie, zamiast przesuwać się przez spread bid-ask na rynku ciągłym, gdzie market makerzy podają oferty po obu stronach przez cały dzień.

Aukcja zamknięcia na rzeczywistym wykresie: jedna transakcja kontra mediana handlu

Poniższa tabela obejmuje 2 lipca 2026 r. — ostatnią sesję przed długim weekendem z okazji 4 lipca, pełny dzień handlowy (dane w kolejnej sekcji) — i porównuje aukcję zamknięcia dla SPY, AAPL oraz NVDA z pozostałymi transakcjami na ich wykresach. „Matched volume” oznacza liczbę akcji, które systemy rejestracji liczą jako skonsolidowany wolumen; transmisje administracyjne (warunki sprzedaży 15, 16 oraz 38) są wykluczone z każdego mianownika, zgodnie z naszą szczegółową analizą mikrostruktury tick-by-tick; poniższa tabela z kodami stanowi dowód.

ZapytanieAukcja zamknięcia a pozostałe transakcje — SPY, AAPL, NVDA dnia 2 lipca 2026
Dokładny kod SQL dla każdej liczby
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)

Najpierw należy odczytać wiersz dla AAPL. Mediana transakcji AAPL tego dnia wynosiła 20 akcji. Aukcja zamknięcia objęła 10.89 mln akcji w jednej transakcji — czyli około 545 tysiąca razy więcej niż mediana — co stanowi 14.4% wszystkich akcji AAPL dopasowanych w ciągu dnia, wliczając godziny pozagiełdowe. Luka między aukcją a medianą dla NVDA jest jeszcze większa — mediana wynosi 5 akcji przy aukcji wynoszącej 17.38 mln akcji, czyli 3475 tysiąca razy więcej niż mediana — przy czym aukcja stanowi 12.2% dziennego obrotu. Każdy instrument wykazuje dokładnie jedną transakcję aukcyjną — kolumna auction_print_count stanowi dowód — zarejestrowaną o godzinie 16:00:00 ET co do sekundy (kolumna auction_prints_at_1600 określa czas).

Twierdzenie zawarte w tytule znajduje potwierdzenie w danych. W przypadku obu spółek pojedynczych aukcja była największą transakcją całego dnia: największa ciągła transakcja AAPL wynosiła 1.8 mln akcji, natomiast aukcja była 6.05 razy większa; największa transakcja NVDA wynosiła 5.47 mln, a aukcja była 3.18 razy większa. Wyjątkiem jest SPY: jedna transakcja blokowa o wartości 2.5 mln akcji przewyższyła aukcję wynoszącą 1.65 mln akcji — w przypadku intensywnie handlowanego ETF pojedyncza transakcja blokowa może przewyższyć aukcję. SPY wykazuje również najmniejszy udział aukcji spośród trzech instrumentów na poziomie 2.9% — mimo to jej aukcja była 66 tysiąca razy większa niż mediana transakcji wynosząca 25 akcji.

Oficjalne zamknięcie to aukcja, a nie ostatnia transakcja

Powszechnym założeniem jest, że cena zamknięcia to po prostu ostatnia transakcja przed sygnałem kończącym sesję. Dane rynkowe wskazują co innego. Poniższy zapis dla AAPL z dnia 2 lipca 2026 roku obejmuje weryfikację sesji dla każdej daty wskazanej w tym wpisie: SPY odnotował dokładnie 390, 390 oraz 390 minutowych słupków sesji regulaminowej w dniach 16 czerwca, 30 czerwca i 2 lipca — są to trzy kompletne sesje w godzinach 9:30–16:00, zweryfikowane, a nie tylko założone.

ZapytanieWynik aukcji: cena aukcyjna AAPL vs. ostatnia transakcja ciągła, 2 lipca 2026
Dokładny kod SQL dla każdej liczby
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'

Handel ciągły trwa aż do momentu rozpoczęcia aukcji — w tym dniu nastąpiło to ułamek sekundy po godzinie 16:00:00. Ostatnia transakcja AAPL w handlu ciągłym przed aukcją, uwzględniająca wolumen, została odnotowana o godzinie 16:00:00.215052 ET przy cenie $308.1; o godzinie 16:00:00.373202 ET aukcja została rozliczona po cenie $308.63 — czyli o 53 centów powyżej ostatniej transakcji. Oficjalne zamknięcie tego wieczoru stanowiła cena aukcji, a nie cena ostatniej transakcji. Następnie odnotowano 2 komunikatów „Market Center Official Close” (warunek sprzedaży 15) — każdy z nich stanowi zapis oficjalnego zamknięcia danej giełdy, a nie retransmisję skonsolidowanego zamknięcia; giełdy mogą raportować różne ceny. Komunikat giełdy notującej jest dokładnie zgodny z wynikiem aukcji (różnica wynosi 0), a żaden z tych komunikatów nie zwiększa wolumenu. Handel trwa nadal w sesji po sesji przez kolejne cztery godziny; żadna z tych transakcji nie wpływa na oficjalne zamknięcie.

Jak działa aukcja zamknięcia? Zlecenia market-on-close oraz limit-on-close

W aukcji uczestniczą dwa dedykowane typy zleceń zamknięcia oraz zwykłe zlecenia limit, które znajdują się już w księdze zleceń ciągłych i również mogą brać udział w transakcji krzyżowej:

  • Zlecenie market-on-close (MOC) realizowane jest po cenie ustalonej przez aukcję. Brak ochrony ceny jest kosztem zapewnienia niemal gwarantowanej realizacji po oficjalnym zamknięciu (jeśli akcje zostaną zawieszone przed sygnałem zamknięcia, aukcja może nie zostać przeprowadzona, a zlecenia zamknięcia mogą pozostać niezrealizowane).
  • Zlecenie limit-on-close (LOC) dołącza do aukcji tylko wtedy, gdy cena aukcyjna osiągnie limit lub będzie od niego korzystniejsza. Zlecenie to posiada ochronę ceny, ale wiąże się z ryzykiem całkowitego pominięcia aukcji.

Oba typy zleceń oczekują na giełdzie do czasu rozpoczęcia aukcji; żadne z nich nie jest realizowane na rynku ciągłym przed tym terminem. Giełdy przestają przyjmować lub modyfikować zlecenia zamknięcia w ostatnich minutach (dokładne terminy zależą od giełdy i zmieniają się w czasie), a większość brokerów narzuca własne, wcześniejsze terminy. W momencie sygnału zamknięcia księga zostaje zablokowana, a transakcje są rozliczane po jednej cenie.

Czym jest nierównowaga aukcji zamknięcia?

Przed aukcją giełdy publikują dane dotyczące nierównowagi: informują, ile akcji oczekuje na kupno w stosunku do akcji oczekujących na sprzedaż przy zamknięciu, oraz podają wskazaniową cenę, po której mogłaby zostać przeprowadzona aukcja w danym momencie. Nierównowaga po stronie kupujących wynosząca jeden milion akcji oznacza, że jeden milion akcji kupna przy zamknięciu nie ma obecnie pary. Traderzy na rynku ciągłym monitorują te dane i budują swoje pozycje w ostatnich minutach handlu.

Dni zakończenia kwartału zwiększają wolumen aukcji zamknięcia

Niektóre dni kalendarzowe powodują znacznie większą koncentrację obrotu podczas zamknięcia. Rebalansowanie indeksów, terminy wygasania oraz przepływy kapitałowe funduszy na koniec miesiąca i kwartału opierają się na oficjalnych cenach zamknięcia, a przepływy te kumulują się w aukcji. 30 czerwca 2026 roku był ostatnim dniem handlowym drugiego kwartału. Poniższa tabela porównuje aukcję zamknięcia każdego tickera z tego dnia z typową sesją środkowomiesięczną z 16 czerwca — obie sesje zostały zweryfikowane w powyższym zestawieniu.

ZapytanieKoniec kwartału (30 czerwca) vs. środek miesiąca (16 czerwca 2026): te same trzy aukcje zamknięcia
Dokładny kod SQL dla każdej liczby
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)

Aukcja AAPL na koniec kwartału przekroczyła 21.71 mln akcji — czyli 2.9 razy więcej niż aukcja z 16 czerwca wynosząca 7.49 mln — a ten zapis stanowił 33.2% całkowitego wolumenu dopasowanego dla AAPL w ciągu całego dnia. Jedna transakcja po jednej cenie stanowiła jedną trzecią obrotu z całej sesji. Aukcja NVDA wzrosła z 23.47 mln do 41.14 mln akcji, osiągając 24.7% dziennego obrotu. W dniu 2 lipca każdy ticker odnotował dokładnie jedną aukcję na sesję — dwie kolumny liczby transakcji stanowią potwierdzenie. Taki wzorzec wielkości obrotu jest powodem istnienia filtrów względnego wolumenu. Udział aukcji w obrocie SPY pozostał niski w obu datach (2.7% i 3.6%). Pełny obraz sesji przedstawia nasze podsumowanie rynku z 30 czerwca 2026; anomalie danych z tego samego tygodnia końca kwartału opisano w kwartał, który nie został rozliczony.

Jak zidentyfikować wynik aukcji zamknięcia? Kody warunków transakcji

Który wynik należy do aukcji? Odpowiedź podaje rejestr transakcji. Każda transakcja posiada kody warunków sprzedaży, a słownik tych kodów znajduje się w tym samym magazynie — poniższy zapis jest zapytaniem, a nie stwierdzeniem.

ZapytanieEtykiety z rejestru transakcji dla zamknięcia, bezpośrednio ze słownika kodów
Dokładny kod SQL dla każdej liczby
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 id

Kod 8, "Closing Prints", oznacza sam wynik aukcji, a słownik wskazuje, że jest on wliczany do wolumenu skonsolidowanego (counts_toward_volume = 1). Kod 15, "Market Center Official Close", to raport administracyjny każdego centrum rynku dotyczący jego własnego oficjalnego zamknięcia; słownik klasyfikuje go jako nieaktualizujący wolumenu (0). Kody 16 i 38 — "Market Center Official Open" i "Corrected Consolidated Close (per listing market)" — to te same rodzaje księgowości dla otwarcia oraz korekt, również wykluczone (0 i 0). Każda powyższa liczba aukcyjna jest filtrowana na podstawie tych kodów, a nie czasu zegarowego, natomiast każdy mianownik wolumenu pomija te trzy kody administracyjne.

FAQ

O której godzinie odbywa się aukcja zamknięcia?

Chwilę po 16:00 ET, po zakończeniu sesji regularnej — w dni o wyjątkowo dużym wolumenie transakcji cena może zostać ustalona później. 2 lipca 2026 roku aukcje dla SPY, AAPL oraz NVDA zostały sfinalizowane dokładnie o godzinie 16:00:00 ET. W dni planowanego wcześniejszego zamknięcia aukcja odbywa się o 13:00 ET — kalendarz znajduje się pod adresem święta giełdowe i wcześniejsze zamknięcia.

Czym jest zlecenie typu market-on-close (MOC)?

Jest to zlecenie kupna lub sprzedaży po cenie ustalonej podczas aukcji zamknięcia. Udział w oficjalnym zamknięciu jest niemal pewny (chyba że nastąpi wstrzymanie handlu przed sygnałem zamknięcia), jednak zlecenie nie posiada limitu ceny. Zlecenie typu limit-on-close (LOC) zawiera limit ceny i dołącza do aukcji tylko wtedy, gdy cena aukcyjna jest równa limitowi lub jest od niego korzystniejsza.

Czy cena zamknięcia to ostatnia transakcja dnia?

Nie. Oficjalne zamknięcie to cena aukcyjna. 2 lipca 2026 roku ostatnia transakcja ciągła dla AAPL przed aukcją wyniosła $308.1, natomiast cena aukcyjna wyniosła $308.63 — różnica wyniosła 53 centów. Transakcje w sesji po sesji (after-hours) również nie zmieniają oficjalnego zamknięcia.

Dlaczego wolumen obrotu jest tak wysoki podczas zamknięcia?

Fundusze indeksowe, fundusze inwestycyjne oraz instytucje operujące w oparciu o benchmarki zawierają transakcje po oficjalnych cenach zamknięcia, a ich zlecenia są łączone w jednej aukcji. 2 lipca 2026 roku pojedyncza aukcja stanowiła 14.4% dopasowanego wolumenu AAPL w danym dniu; 30 czerwca na koniec kwartału wskaźnik ten wyniósł 33.2%.

Czy fundusze ETF również mają aukcję zamknięcia?

Tak — każda spółka oraz ETF notowany na giełdzie przeprowadzają aukcję na swojej giełdzie notowań. Aukcja stanowi zazwyczaj mniejszą część dziennego obrotu ETF: aukcja SPY z 2 lipca 2026 roku stanowiła 2.9% dopasowanego wolumenu, podczas gdy dla AAPL wskaźnik ten wyniósł 14.4%.


Wszystkie powyższe dane pochodzą z zapisanych, sprawdzalnych zapytań — należy rozwinąć kod SQL pod dowolnym panelem, aby dokonać audytu. Aby przeanalizować aukcję zamknięcia dla konkretnego symbolu, należy zadać te same pytania w języku angielskim na terminalu Strasmore.