Priorytet ceny i czasu a pro-rata w arkuszu zleceń
Analiza mechanizmów realizacji zleceń na giełdzie. Wyjaśnienie różnic między priorytetem FIFO a alokacją proporcjonalną na podstawie danych rynkowych i przykładów liczbowych.
Priorytet ceny i czasu oraz alokacja proporcjonalna (pro-rata) to dwie zasady, według których giełda decyduje, które zlecenie oczekujące zostanie zrealizowane, gdy na tym samym poziomie cenowym znajduje się kilka ofert. W systemie priorytetu ceny i czasu, zwanym również FIFO, zlecenie, które wpłynęło jako pierwsze, jest realizowane w pierwszej kolejności, aż do ostatniej akcji. W systemie pro-rata każde zlecenie na danym poziomie cenowym otrzymuje część wolumenu proporcjonalną do swojej wielkości, a czas nadejścia ma marginalne znaczenie. Ten sam arkusz zleceń, ta sama transakcja, a zupełnie inne wyniki realizacji.
Priorytet ceny i czasu a pro-rata w jednym arkuszu zleceń
Przyjmijmy jeden poziom cenowy. Pięć ofert kupna oczekuje na poziomie 100,00, wprowadzonych w następującej kolejności: 10 lotów, następnie 200, 5, 50 oraz 35. Łącznie daje to 300 lotów na jednym poziomie cenowym. Sprzedający składa zlecenie rynkowe na 100 lotów. Cena nie pozwala na rozstrzygnięcie pierwszeństwa. Algorytm alokacji systemu transakcyjnego dokonuje wyboru, a algorytm ten jest zasadą danej platformy, a nie prawem natury.
Oto jak sprzedaż 100 lotów rozkłada się w trzech modelach. Arkusz i realizacje są hipotetycznym przykładem roboczym.
- Oferta 1, 10 lotów, pierwsza w kolejce: 10 lotów w FIFO, 4 w pro-rata, 10 w modelu hybrydowym.
- Oferta 2, 200 lotów, druga w kolejce: 90 w FIFO, 67 w pro-rata, 63 w modelu hybrydowym.
- Oferta 3, 5 lotów, trzecia w kolejce: brak realizacji w żadnym z trzech modeli.
- Oferta 4, 50 lotów, czwarta w kolejce: brak realizacji w FIFO, 17 w pro-rata, 16 w modelu hybrydowym.
- Oferta 5, 35 lotów, piąta w kolejce: brak realizacji w FIFO, 12 w pro-rata, 11 w modelu hybrydowym.
Oferta 1 to małe zlecenie, które wpłynęło jako pierwsze. FIFO realizuje je w całości, wyprzedzając zlecenie na 200 lotów, które mogło spóźnić się o mikrosekundę. Pro-rata przydziela mu 4 loty: udział 10 z 300 lotów oczekujących przy transakcji na 100 lotów daje 3,33 lota, co po zaokrągleniu w dół daje 3, a jeden pozostały lot jest przydzielany według kolejności czasowej. Oferty 4 i 5 to lustrzane odbicie: w FIFO są całkowicie pominięte, a w pro-rata otrzymują przydział.
Oferta 3 wymaga uwagi. Jej proporcjonalny udział wynoszący 1,67 lota zaokrągla się w dół do 1. Platformy stosujące pro-rata ustalają minimalną alokację, zazwyczaj 1 lub 2 loty, a zlecenie, którego udział spada poniżej tego progu, nie otrzymuje nic. Przy minimum 2 lotów, oferta 3 nie otrzymuje nic w obu modelach proporcjonalnych. Autentycznie małe zlecenie w kolejce pro-rata jest niemal niewidoczne.
Co wnosi model hybrydowy: część z góry
Czysty model pro-rata występuje rzadko. Trzecia kolumna to hybryda priorytetu ceny i czasu oraz pro-rata: jedno wyznaczone zlecenie otrzymuje stałą część przed podziałem reszty. Oferta 1 jest pierwsza w kolejce i przejmuje do 40 procent przychodzącej transakcji, z limitem do własnych 10 lotów. Pozostałe 90 lotów dzieli się proporcjonalnie między pozostałe cztery oferty, z tym samym zaokrągleniem i minimum. Platformy przypisują tę część do zlecenia typu TOP, co oznacza zlecenie, które ustanowiło nową najlepszą cenę, zazwyczaj z limitem do niewielkiej wielkości. W czystym modelu pro-rata poprawa ceny nie przynosi dodatkowych korzyści, więc nikt nie chce być traderem, który zawęża rynek. Stała część dla podmiotu ustalającego cenę przywraca część zachęt charakterystycznych dla FIFO.
W systemie FIFO aktywem jest pozycja w kolejce
W arkuszu typu cena-czas nigdy nie chodzi o to, czy cena jest właściwa. Kluczowe jest to, ile akcji znajduje się przed nami na tym poziomie i jak szybko kolejka przed nami jest realizowana. Realizacje następują w małych częściach.
Dokładny kod SQL dla każdej liczby
SELECT
ticker AS symbol,
round(sum(volume) / sum(transactions), 1) AS avg_shares_per_print
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO', 'JNJ', 'T', 'F')
AND date >= '2026-06-01'
AND date < '2026-07-01'
GROUP BY ticker
HAVING sum(transactions) > 0
ORDER BY avg_shares_per_print DESCWśród spółek 8, F odnotowało największą średnią transakcję na poziomie 336.5 akcji, a MSFT najmniejszą na poziomie 53.2. Przy takich wielkościach zlecenie z limitem na 500 akcji jest realizowane przez długą serię małych kontrahentów, a każda akcja znajdująca się przed nim jest realizowana w pierwszej kolejności.
Szybkość popłaca, ponieważ nadejście o jeden komunikat wcześniej stawia inwestora przed wszystkimi, którzy pojawili się później na tym poziomie cenowym. Anulowanie i zastąpienie zlecenia jest kosztowne: na niemal każdej platformie typu cena-czas zmiana ceny lub zwiększenie wielkości powoduje utratę znacznika czasu i przesunięcie na koniec kolejki. Zmniejszenie wielkości zazwyczaj pozwala zachować priorytet. Z tego właśnie powodu traderzy traktują pozycję w kolejce jak zapasy.
Dokładny kod SQL dla każdej liczby
SELECT
ticker AS symbol,
round(count() / 600.0, 1) AS quote_updates_per_second,
round(avg(toFloat64(ask_price) - toFloat64(bid_price))
/ avg(toFloat64(bid_price)) * 10000, 2) AS avg_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO')
AND sip_timestamp >= '2026-06-17 14:00:00'
AND sip_timestamp < '2026-06-17 14:10:00'
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
ORDER BY quote_updates_per_second DESCPozycja w kolejce jest nietrwała, ponieważ poziom cenowy może nie przetrwać. SPY odświeżało swoje kwotowanie 296.4 razy na sekundę w ciągu tego dziesięciominutowego okna, w porównaniu do 28.8 dla KO. Średni kwotowany spread wyniósł 0.32 punktów bazowych, przy czym punkt bazowy to jedna setna punktu procentowego. Wartość kolejki na poziomie cenowym, który utrzymuje się przez dwie sekundy, jest warta dwie sekundy. Ta zmienność jest jednym z mechanizmów stojących za tym, jak animatorzy rynku zarabiają pieniądze.
W systemie pro-rata aktywem jest wielkość
Odwrócenie zasady powoduje odwrócenie zachęt. Jeśli realizacja jest proporcjonalna do wyświetlanej wielkości, sposobem na uzyskanie większej części jest wyświetlenie większej liczby akcji. Trader kontraktów terminowych, który chce 20 lotów i oczekuje około jednej trzeciej przydziału, wystawia ofertę na 60. Wszyscy na tym poziomie wykonują te same obliczenia, poziom się pompuje, a udział każdego uczestnika ponownie spada. Wyświetlana głębokość arkusza w systemie pro-rata zawyża to, co tłum faktycznie chce kupić. Zawyżanie kwotowań jest równowagą wynikającą z tej zasady, a nie sztuczką, i niesie ze sobą realny koszt: duży sprzedający może przejąć cały poziom, a wszystkie zawyżone kwotowania zostaną zrealizowane jednocześnie.
Dokładny kod SQL dla każdej liczby
SELECT
multiIf(size = 1, '1 contract',
size <= 5, '2 to 5 contracts',
size <= 25, '6 to 25 contracts',
size <= 100, '26 to 100 contracts',
'over 100 contracts') AS size_bucket,
round(100.0 * count() / sum(count()) OVER (), 1) AS share_pct
FROM global_markets.options_trades
WHERE underlying_symbol = 'AAPL'
AND sip_timestamp >= '2026-06-17 13:30:00'
AND sip_timestamp < '2026-06-17 20:00:00'
GROUP BY size_bucket
ORDER BY share_pct DESCArkusz opcji to miejsce, w którym większość inwestorów detalicznych spotyka się z zasadami alokacji innymi niż zwykłe FIFO. Wiele giełd opcji stawia zlecenia klientów przed wszystkimi innymi, a następnie stosuje pro-rata lub parytet wśród pozostałych. Wielkości są tam małe, a zasady minimalnej alokacji najbardziej dotykają małe zlecenia. 48.5 procent realizacji opcji AAPL w tej sesji mieściło się w przedziale 1 contract, z 5 dostępnych przedziałów. Wobec wielkości oczekujących, które mogą sięgać tysięcy kontraktów na cenę wykonania, proporcjonalny udział dla jednego kontraktu zaokrągla się do zera. Priorytet klienta i minimalna alokacja są tym, co w ogóle pozwala na realizację małych zleceń, i to jest duża część tego, dlaczego zlecenia opcyjne nie są realizowane, mimo że cena jest widoczna na ekranie.
Model cena-broker-czas i miejsca jego stosowania
Trzecia rodzina znajduje się pomiędzy tymi dwoma. W modelu cena-broker-czas, zazwyczaj zwanym parytetem, system dzieli transakcję między brokerów reprezentowanych na danym poziomie cenowym, a następnie stosuje priorytet czasu wewnątrz zleceń każdego brokera. NYSE od dawna stosuje model parytetu tego typu. Broker posiadający jedno zlecenie na danym poziomie może otrzymać taką samą liczbę akcji jak broker posiadający dziesięć, więc miejsce, w którym broker kieruje zlecenie, ma wartość, której nie wycenia żaden z czystych modeli.
W dużym uproszczeniu: amerykańskie giełdy akcji stosują priorytet ceny i czasu, z priorytetem wyświetlania i miejscami z nakładkami parytetu. Większość amerykańskich giełd opcji stosuje priorytet ceny i czasu z pierwszeństwem klienta, a kilka dodaje poniżej pro-rata lub parytet. Kontrakty terminowe na indeksy akcji zazwyczaj stosują FIFO, podczas gdy wiele produktów stóp procentowych CME korzysta z pro-rata lub hybrydy z alokacją TOP. Algorytmy te są ustalane dla każdego produktu i z czasem rewidowane, więc warto sprawdzić zasadę dla kontraktu, którym handlujesz, w aktualnym regulaminie.
Ukryta wielkość i zlecenia typu iceberg tracą priorytet wyświetlania
Każdy z powyższych modeli najpierw alokuje wyświetlaną wielkość. Zlecenie ukryte lub niewyświetlona część zlecenia typu iceberg znajduje się za każdym wyświetlanym zleceniem na tym samym poziomie cenowym na większości platform, niezależnie od tego, jak wcześnie wpłynęło. Zlecenie typu iceberg pokazujące 100 z 5000 akcji ustawia swoje widoczne 100 akcji w kolejce według czasu, a następnie odświeża kolejną transzę z nowym znacznikiem czasu na końcu kolejki. Wyświetlanie wielkości kupuje priorytet, a ukrywanie jest opłacane pozycją w kolejce.
Dlaczego zlecenie rynkowe przy NBBO może nie zostać zrealizowane
NBBO to najlepsza oferta kupna i sprzedaży na wszystkich amerykańskich giełdach, będąca migawką, która może być nieaktualna w momencie, gdy zlecenie dotrze na rynek.
Dokładny kod SQL dla każdej liczby
SELECT
multiIf(size < 100, 'under 100 shares',
size = 100, 'exactly 100 shares',
size <= 500, '101 to 500 shares',
size <= 1000, '501 to 1,000 shares',
'over 1,000 shares') AS size_bucket,
round(100.0 * count() / sum(count()) OVER (), 1) AS share_pct
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-17 13:30:00'
AND sip_timestamp < '2026-06-17 20:00:00'
GROUP BY size_bucket
ORDER BY share_pct DESCNajczęstszą pojedynczą realizacją dla AAPL w tej sesji było under 100 shares, przy 88.9 procentach realizacji w 5 przedziałach wielkości. Wyświetlana wielkość wewnątrz spreadu często wynosi kilkaset akcji. Zlecenie większe niż wyświetlane przejmuje to, co jest dostępne, a następnie przechodzi do kolejnej ceny lub oczekuje, w zależności od wysłanego typu zlecenia. Zlecenie z limitem wycenione dokładnie na NBBO, które dociera po wyczerpaniu poziomu, dołącza do końca kolejki i czeka.
Uwagi do danych
Arkusz zleceń na początku jest hipotetyczny. Wielkości ofert kupna, sprzedaż 100 lotów, minimum 2 lotów i 40-procentowa część dla TOP zostały wybrane tak, aby różnice w alokacji były czytelne; nie sugerują one parametrów żadnej konkretnej platformy. Każdy panel jest przypisany do stałego okna: czerwiec 2026 dla średniej wielkości realizacji oraz jedna sesja 17 czerwca 2026 dla pozostałych trzech. Wielkości są zgodne z raportami na skonsolidowanej taśmie (consolidated tape).
FAQ
Czym jest priorytet ceny i czasu?
Priorytet ceny i czasu szereguje zlecenia oczekujące najpierw według ceny, a następnie według czasu nadejścia. Wśród zleceń na tym samym poziomie cenowym najwcześniejszy znacznik czasu jest realizowany w całości, zanim kolejne zlecenie otrzyma jakąkolwiek część. Amerykańskie giełdy akcji stosują to jako podstawową zasadę.
Czym jest alokacja pro-rata?
Pro-rata daje każdemu zleceniu na najlepszym poziomie cenowym część przychodzącej transakcji proporcjonalną do jego wielkości, przy czym czas nadejścia jest używany tylko dla pozostałych lotów. Większość platform pro-rata stosuje minimalną alokację, więc zlecenie, którego udział spada poniżej tego progu, nie otrzymuje nic.
Dlaczego traderzy kontraktów terminowych kwotują więcej, niż chcą zrealizować?
W arkuszu pro-rata alokacja zależy od wyświetlanej wielkości, więc trader oczekujący ułamka kwotowania wystawia wielokrotność tego, co chce zrealizować. Cały poziom robi to samo, a wyświetlana głębokość kończy się powyżej rzeczywistego popytu.
Czy anulowanie i zastąpienie zlecenia powoduje utratę miejsca w kolejce?
Na platformie typu cena-czas zmiana ceny zlecenia lub zwiększenie jego ilości nadaje mu nowy znacznik czasu na końcu kolejki na danym poziomie cenowym. Zmniejszenie ilości zazwyczaj zachowuje pierwotną pozycję. Każda platforma ustala dokładne zachowanie systemu.
Każdy powyższy panel zawiera kod SQL, który go wygenerował, dzięki czemu można zmienić symbol lub okno czasowe i uruchomić go ponownie. Te same pytania można zadać w języku angielskim na terminalu Strasmore.