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

Analiza przebiegu Flash Crash z 2010 roku

Szczegółowa rekonstrukcja wydarzeń z 6 maja 2010 roku. W ciągu 36 minut wartość rynkowa spadła o bilion USD, po czym nastąpiło gwałtowne odbicie kursów.

6 maja 2010 roku amerykański rynek akcji uległ gwałtownemu załamaniu, po czym odzyskał wartości w czasie krótszym niż pół godziny. Zjawisko to, znane jako flash crash, pozostaje jednym z najbardziej nietypowych okresów handlu w nowoczesnej historii rynków. Zniknęła wówczas wartość rynkowa blisko biliona USD, która w większości powróciła na swoje poziomy. W trakcie tych wydarzeń ceny znanych spółek osiągnęły poziomy $0.01 oraz $100000 za akcję. Poniżej przedstawiono rejestr transakcji minuta po minucie, godziny, nazwy spółek oraz zapytania SQL dla każdej liczby. Każdy panel można rozwinąć, aby zobaczyć kod SQL.

Przebieg dnia

ZapytanieSPY, 6 maja 2010 — dzień flash crash, zapis transakcji
Dokładny kod SQL dla każdej liczby
WITH
    (
        SELECT argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2010-05-05 00:00:00') AND window_start < toDateTime('2010-05-06 04:00:00')
    ) AS prior_rth_close
SELECT
    round(prior_rth_close, 2) AS prior_close,
    round(toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_open,
    round((toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS gap_pct,
    round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_low,
    formatDateTime(toTimeZone(argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 'America/New_York'), '%H:%i') AS low_et,
    round(toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_close,
    round((toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS day_change_pct,
    round((minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / prior_rth_close - 1) * 100, 1) AS low_vs_prior_pct,
    round(toFloat64(sum(volume)) / 1e6, 1) AS day_shares_m,
    countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS rth_minute_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= toDateTime('2010-05-06 04:00:00') AND window_start < toDateTime('2010-05-06 23:59:00')

Na rynku od rana panowało napięcie spowodowane komunikatami dotyczącymi zadłużenia Grecji. Kurs SPY spadł poniżej otwarcia na poziomie $116.26. Następnie nastąpił gwałtowny spadek: dołady dnia na poziomie $105 odnotowano o 14:45 ET, co stanowiło -10.1% mniej niż poprzednie zamknięcie wynoszące $116.83. Przed zamknięciem sesji SPY powrócił do poziomu $112.88 — co oznacza -3.4% zmiany w ciągu dnia, jednak wartość ta pozostaje znacznie powyżej najniższego punktu sesji. Wolumen: 639.9 milionów akcji, co czyni tę sesję SPY jedną z najbardziej obrotowych w historii.

Krach minuta po minucie

Wykresy półgodzinne ukrywają to zdarzenie; przy rozdzielczości minutowej jest ono jednoznaczne. Oto SPY od godziny 14:00 do 15:30 czasu ET:

ZapytanieSPY, interwał 1-minutowy, 14:00–15:30 ET, 6 maja 2010
Dokładny kod SQL dla każdej liczby
SELECT
    formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_minute,
    round(toFloat64(close), 2) AS close_usd,
    round(toFloat64(low), 2) AS low_usd,
    round(toFloat64(volume) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= toDateTime('2010-05-06 18:00:00') AND window_start < toDateTime('2010-05-06 19:30:00')
ORDER BY window_start

Wspólna analiza SEC–CFTC określa ramy czasowe zdarzenia od około godziny 14:32 czasu ET, kiedy rozpoczęto realizację dużego zautomatyzowanego programu sprzedaży zlecenia na około 75 000 kontraktów E-mini S&P 500 futures (około 4,1 mld USD), do około godziny 15:08, kiedy ceny powróciły do większości poziomów sprzed gwałtownego spadku — trwało to trzydzieści sześć minut. Powyższy wykres odpowiada temu przebiegowi. SPY zakończył 14:32 minutę na poziomie $113.15. Dwanaście minut później, w 14:44 minucie, obrócono 9.21 mln akcji — w porównaniu do 1.44 mln w spokojnej minucie, takiej jak 14:05 — a 14:45 minuta odnotowała dołek dnia na poziomie $105. Do zamknięcia 15:08 minuty SPY osiągnął $113.63 — powyżej poziomu, od którego rozpoczął się spadek. Pełny powrót do poprzednich poziomów w około pół godziny.

W ciągu dnia nastąpiła jedna przerwa w handlu, która trwała pięć sekund. O godzinie 14:45:28 czasu ET — w tej samej minucie, w której odnotowano wspomniany dołek — funkcja Stop Logic giełdy CME wstrzymała handel kontraktami E-mini futures, zgodnie z oficjalnym raportem, a po wznowieniu handlu pojawiły się oferty kupna. Mechanizmy circuit breakers dla całego rynku z 2010 roku były powiązane z indeksem Dow przy progach 10, 20 i 30 procent, a ówczesne przepisy nie przewidywały żadnej przerwy przy dziesięcioprocentowym spadku tak późno w sesji; żaden mechanizm nie został aktywowany. Mechanizmy circuit breakers dla pojedynczych akcji jeszcze nie istniały — należą one do wynalazków tego dnia.

Przyczyny wyprzedaży

Przyczyny wyprzedaży nie były dla regulatorów tajemnicą. Raport SEC–CFTC opisał pojedynczy kompleks funduszy inwestycyjnych — zidentyfikowany w mediach jako Waddell & Reed — który wykorzystywał zautomatyzowany algorytm. Algorytm sprzedawał kontrakty E-mini z częstotliwością uzależnioną od wolumenu, nie biorąc pod uwagę ceny ani czasu. Wraz ze wzrostem wolumenu algorytm zwiększał tempo sprzedaży na rynku, na którym pośrednicy wysokiej częstotliwości przestali absorbować zapasy i zaczęli przekazywać je sobie nawzajem — co w raporcie określono mianem wolumenu typu "hot potato". Pięć lat później wskazano drugą osobę odpowiedzialną za te wydarzenia: w kwietniu 2015 roku amerykańskie organy ścigania aresztowały londyńskiego tradera Navindera Singha Sarao za spoofing w arkuszu zleceń E-mini. Polegało to na składaniu zleceń, których nigdy nie zamierzał realizować, w dniu 6 maja oraz w setkach innych dniach. W 2016 roku przyznał się do winy, a w styczniu 2020 roku otrzymał wyrok. Skala wpływu jego zleceń na tamto popołudnie pozostaje przedmiotem debat; poniższa lekcja dotycząca struktury rynku nie jest od tego zależna.

Gdzie wyprzedaż była najsilniejsza

ZapytanieNajwiększe spadki w skali minuty (open-to-low), 14:00–15:30 ET
Dokładny kod SQL dla każdej liczby
SELECT
    formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_minute,
    round(toFloat64(open), 2) AS minute_open,
    round(toFloat64(low), 2) AS minute_low,
    round(toFloat64(open) - toFloat64(low), 2) AS drop_within_minute_usd,
    round(toFloat64(volume) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= toDateTime('2010-05-06 18:00:00') AND window_start < toDateTime('2010-05-06 19:30:00')
ORDER BY drop_within_minute_usd DESC
LIMIT 5

W najgorszej minucie wartość spadła o $5.72 od otwarcia do minimum — o godzinie 14:49 ET, przy obrocie wynoszącym 4.98 milionów akcji w ciągu sześćdziesięciu sekund. Dane z notowań wskazują na prostą i trwałą przyczynę: ceny wymagają stałych kupujących, a przez kilka minut nikt nie dokonywał zakupów. Jest to najsilniejszy dotychczas argument pozwalający zrozumieć mechanizm działania zlecenia rynkowego — każde zlecenie stop-loss aktywowane w tym oknie czasowym stało się zleceniem rynkowym poszukującym ofert kupna, których nie było. NBBO stanowi tętno rynku, a tego popołudnia przestało ono bić.

Jeden cent i 100 000 USD: absurdalne transakcje

Gdy realne zlecenia kupna zniknęły, napływające zlecenia sprzedaży realizowano po pozostałych kwotowaniach — w tym po tzw. „stub quotes” wystawianych przez animatorów rynku, które znajdowały się daleko od jakiejkolwiek prawdopodobnej ceny. Surowy zapis transakcji wciąż zawiera te dane:

ZapytanieZnane anomalne transakcje, 14:30–15:30 ET
Dokładny kod SQL dla każdej liczby
SELECT
    ticker,
    round(min(toFloat64(price)), 2) AS lowest_print,
    round(max(toFloat64(price)), 2) AS highest_print,
    countIf(toFloat64(price) <= 0.05) AS penny_prints,
    countIf(toFloat64(price) >= 99999) AS hundred_k_prints,
    count() AS prints
FROM global_markets.stocks_trades
WHERE ticker IN ('ACN', 'AAPL', 'BID', 'PG')
  AND sip_timestamp >= toDateTime('2010-05-06 18:30:00') AND sip_timestamp < toDateTime('2010-05-06 19:30:00')
GROUP BY ticker
ORDER BY ticker ASC

Accenture (ACN), spółka konsultingowa, która tego popołudnia handlowała w okolicach $41.49, odnotowała transakcje 43 po pięć centów lub mniej, osiągając minimum na poziomie $0.01. W przeciwnym kierunku Apple odnotowało transakcje 2 po $100000 za akcję, a Sotheby's zrobiło to samo 2 razy.

Giełdy anulowały później każdą transakcję wykonaną z odchyleniem większym niż 60 procent od ceny referencyjnej sprzed krachu — ta granica wyjaśnia asymetrię w zestawieniu. Transakcje ACN po jednym centcie zostały wyeliminowane, więc jej najniższy przetrwały dołek w interwale minutowym, $17.74, znajduje się -57.2% poniżej ceny referencyjnej — tuż w granicach limitu anulowania. Procter & Gamble nigdy nie handlowało po cenie typu stub: jego najgorsza transakcja w tym okresie, $39.37, wynosiła -36.7% poniżej ceny referencyjnej, więc każde zlecenie stop-loss zrealizowane po tej cenie pozostało ważne. Transakcje ACN po jednym centcie przekroczyły tę granicę i zostały usunięte; najgorsza realizacja P&G pozostała w jej obrębie i została utrzymana. Ta arbitralna granica nauczyła traderów o typach zleceń więcej niż jakakolwiek publikacja.

How wide the damage spread

Same window, honored tape only — the minute aggregates, measured from each name's 2:30 pm price:

ZapytanieStraty w oknie crashu wg walorów — względem odniesienia z 14:30 ET
Dokładny kod SQL dla każdej liczby
SELECT
    ticker,
    round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870), 2) AS pre_crash_1430,
    round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 871 AND 915), 2) AS crash_low,
    round((minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 871 AND 915) / argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870) - 1) * 100, 1) AS low_vs_1430_pct,
    formatDateTime(toTimeZone(argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 871 AND 915), 'America/New_York'), '%H:%i') AS low_et,
    round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870) - 1) * 100, 1) AS close_vs_1430_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('ACN', 'PG', 'MMM', 'IWM', 'DIA', 'SPY')
  AND window_start >= toDateTime('2010-05-06 04:00:00') AND window_start < toDateTime('2010-05-06 23:59:00')
GROUP BY ticker
ORDER BY low_vs_1430_pct ASC

The dispersion is the story. ACN's surviving low sat -57.2% under its reference and P&G's -36.7%, while the broad ETFs bottomed single-digit percentages down — DIA, the Dow-tracking ETF, -6.5% and IWM -5.2%. Those DIA minutes were reported around the world as the largest intraday point drop in the Dow's history to that date. The last column is the recovery receipt: each of the six closed within about three percent of its 2:30 pm level, as if the middle hour had been a rumor.

Porównanie 6 maja do innych dni krachów

Porównano flash crash do innych znanych jednodniowych załamań w erze wykresów minutowych (dane giełdowe sięgają 2003 roku; Black Monday z 1987 roku poprzedza ten okres):

ZapytaniePięć znanych sesji crash — głębokość dołka i odbicie (SPY)
Dokładny kod SQL dla każdej liczby
WITH daily AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
        round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_low,
        round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND ((window_start >= toDateTime('2008-09-26 04:00:00') AND window_start < toDateTime('2008-09-30 00:00:00'))
        OR (window_start >= toDateTime('2010-05-05 04:00:00') AND window_start < toDateTime('2010-05-07 00:00:00'))
        OR (window_start >= toDateTime('2015-08-21 04:00:00') AND window_start < toDateTime('2015-08-25 00:00:00'))
        OR (window_start >= toDateTime('2018-02-02 04:00:00') AND window_start < toDateTime('2018-02-06 00:00:00'))
        OR (window_start >= toDateTime('2020-03-13 04:00:00') AND window_start < toDateTime('2020-03-17 00:00:00')))
    GROUP BY et_date
)
SELECT
    toString(et_date) AS session,
    round((rth_low / prev_close - 1) * 100, 1) AS low_vs_prior_pct,
    round((rth_close / prev_close - 1) * 100, 1) AS close_vs_prior_pct,
    round((rth_close / rth_low - 1) * 100, 1) AS bounce_off_low_pct
FROM (
    SELECT et_date, rth_low, rth_close,
           lagInFrame(rth_close) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
    FROM daily
)
WHERE et_date IN (toDate('2008-09-29'), toDate('2010-05-06'), toDate('2015-08-24'), toDate('2018-02-05'), toDate('2020-03-16'))
ORDER BY et_date

6 maja 2010 roku nie jest najgłębszym spadkiem w zestawieniu: 16 marca 2020 notowano -12.4% poniżej poprzedniego zamknięcia, w porównaniu do -10.1% podczas flash crash. Jednak żaden inny dzień nie dorównuje temu wydarzeniu pod względem odbicia. SPY zamknął się 7.5% powyżej dołku z 6 maja, podczas gdy dla kolejnego najlepszego odbicia w zestawieniu (24 sierpnia 2015 — mini flash crash) wynosiło ono 3.9%, a dla dni krachu z okresu upadku Lehman oraz COVID wynosiło zaledwie 1.7% i 0.9%. W pierwszym przypadku wycena pozostaje niska do zamknięcia sesji; w drugim brak płynności powoduje gwałtowny powrót tego samego popołudnia.

Czy odbicie w kształcie litery V się utrzymało?

O tym, czy doszło do krachu, decydują dwa pytania: jak szybko powrócono do poprzednich poziomów cenowych oraz czy poziom wyznaczony przez panikę został ponownie przetestowany. Oba pytania otrzymały odpowiedzi:

ZapytanieSkutki — odzyskanie zamknięcia z 5 maja oraz realne przełamanie dołka paniki
Dokładny kod SQL dla każdej liczby
WITH
    (
        SELECT minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2010-05-06 04:00:00') AND window_start < toDateTime('2010-05-07 00:00:00')
    ) AS flash_low
SELECT
    round(any(flash_low), 2) AS flash_crash_low,
    round(any(may5_close), 2) AS may5_close,
    toString(any(first_above_date)) AS first_close_above_may5,
    countIf(et_date > toDate('2010-05-06') AND et_date <= first_above_date) AS sessions_until_reclaim,
    toString(any(first_below_date)) AS first_close_below_low,
    round(anyIf(close_usd, et_date = first_below_date), 2) AS close_that_session,
    countIf(et_date > toDate('2010-05-06') AND et_date <= first_below_date) AS sessions_until_break
FROM (
    SELECT et_date, close_usd, flash_low, may5_close,
           min(if(et_date > toDate('2010-05-06') AND close_usd < flash_low, et_date, toDate('2100-01-01'))) OVER () AS first_below_date,
           min(if(et_date > toDate('2010-05-06') AND close_usd > may5_close, et_date, toDate('2100-01-01'))) OVER () AS first_above_date
    FROM (
        SELECT et_date, close_usd, flash_low,
               max(if(et_date = toDate('2010-05-05'), close_usd, 0)) OVER () AS may5_close
        FROM (
            SELECT
                toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
                round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS close_usd,
                flash_low
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= toDateTime('2010-05-05 04:00:00') AND window_start < toDateTime('2011-01-01 00:00:00')
            GROUP BY et_date
        )
    )
)

Odbicie nastąpiło szybko: SPY zamknął się powyżej poziomu z 5 maja wynoszącego $116.83 zaledwie 4 sesji później, dnia 2010-05-12. Odbicie w kształcie litery V utrzymało się — przez pewien czas. Jednak dołek po gwałtownym załamaniu nie był zjawiskiem incydentalnym: 37 sesji po krachu, dnia 2010-06-29, SPY zamknął się na poziomie $104.22 — poniżej panicznego dołka wynoszącego $105 — podczas wyprzedaży europejskich obligacji skarbowych, która dominowała tego lata. Kluczowa jest różnica: gwałtowny krach osiągnął tę cenę w kilka minut, bez żadnych informacji rynkowych, i nastąpiło odbicie; letnia wyprzedaż trwała wiele tygodni i utrzymała się na tym poziomie. Cena to wartość, po której można dokonać transakcji w danej sekundzie; wartość to to, co pozostaje po zakończeniu sesji.

Co zmieniło się później

Nagły krach doprowadził do powstania współczesnego systemu mechanizmów ograniczających zmienność: limitów Limit Up/Limit Down dla pojedynczych akcji oraz zrewidowanych procedur wstrzymywania handlu na całym rynku. Mechanizmy te były widoczne podczas późniejszych kryzysów (wstrzymania handlu w marcu 2020 są ich bezpośrednimi następcami). Zakazano stosowania ofert typu stub quote; sformalizowano zasady dotyczące ewidentnie błędnych transakcji; duże zlecenia na futures podlegają obecnie kontroli pod kątem egzekucji uwzględniającej cenę. Struktura rynku, na którym się handluje, została w znacznym stopniu opracowana po tych trzydziestu sześciu minutach.

FAQ dotyczące flash crash

Co spowodowało flash crash w 2010 roku?

Oficjalny raport SEC/CFTC opisał zautomatyzowany program sprzedaży E-mini o wartości około 4,1 mld USD, który realizował zlecenia przy niskiej płynności. Pośrednicy wysokiej częstotliwości najpierw zwiększyli wolumen, a następnie wycofali się z rynku. Media wskazały na firmę funduszy inwestycyjnych Waddell & Reed jako stronę sprzedającą; trader Navinder Sarao został później oskarżony o spoofing na tym samym rynku tego dnia. Według danych transakcyjnych płynność wyparowała, a ceny spadły do poziomu najbliższego zlecenia kupna — czasem o jeden cent.

O której godzinie rozpoczął się i zakończył flash crash?

Ramy czasowe regulatorów obejmują okres od około 14:32 ET, kiedy rozpoczęła się automatyczna sprzedaż, do około 15:08, kiedy ceny ogólne odzyskały większość straty — trwało to 36 minut. Minimum dla SPY wyniosło 14:45 ET, co stanowiło -10.1% poniżej poprzedniego zamknięcia, a powrót do poziomów sprzed spadków zajął około 23 minut od dołka.

Jakie akcje ucierpiały podczas flash crash w 2010 roku?

Spadki dotknęły niemal wszystko, jednak najbardziej znanymi ofiarami były spółki, których zlecenia kupna całkowicie zniknęły: Accenture odnotowało minimum na poziomie 0.01 USD, Apple oraz Sotheby's na poziomie 100000 USD, a Procter & Gamble handlowało po kursie 39.37 USD — czyli -36.7% poniżej poziomu popołudniowego. Transakcje przekraczające 60 procent przed spadkami zostały anulowane; zlecenia P&G zostały zrealizowane.

Czy podczas flash crash nastąpiło wstrzymanie handlu?

6 maja 2010 roku nie uruchomiono ogólnorynkowego mechanizmu circuit breaker — ówczesne przepisy nie przewidywały wstrzymania handlu przy spadkach o takiej skali pod koniec sesji. Jedyna przerwa tego dnia trwała pięć sekund: mechanizm Stop Logic na giełdzie CME na krótko wstrzymał futures E-mini o 14:45:28 ET, w tej samej minucie, w której odnotowano minimum indeksu. Mechanizmy circuit breaker dla pojedynczych akcji oraz pasma Limit Up/Limit Down zostały wprowadzone później.

Czy flash crash może się powtórzyć?

Mniejsze zjawiska już wystąpiły — pojedyncze symbole regularnie trafiają na wstrzymania LULD, a krótkotrwałe zdarzenia typu flash powracają. Wersja o skali z 2010 roku została dotychczas powstrzymana przez mechanizmy wstrzymywania handlu, które powstały jako odpowiedź na tamto wydarzenie. Odpowiedź brzmi: element strukturalny — płynność, która może wyparować w milisekundach — jest stałym elementem rynku.

Uwagi do danych

Pełne uwagi do danych
  • Słupek z godziny 15:09 w panelu minutowym zawiera błędny dołek 108.37 kilka minut po odbiciu. Ten sam słupek znajduje się w tabeli największych zmian minutowych — jest to zgodne z opóźnionymi raportami, które w agregatach są przypisane do minuty ich otrzymania. W zapisie z 6 maja występuje ich wiele.
  • Anulowane transakcje a agregaty: surowy zapis ACN wykazuje transakcje na kwotę $0.01, podczas gdy dołek w słupku minutowym wynosi $17.74 — agregaty minutowe odzwierciedlają zapis po anulowaniu, natomiast surowy zapis transakcji zawiera pierwotne kwoty.
  • "Referencja 14:30" w panelu dyspersji to ostatnie zamknięcie słupka minutowego w ramach sesji regulaminowej dla każdej spółki o godzinie 14:30 ET lub wcześniej; okno krachu obejmuje godziny 14:31–15:15.
  • QQQ nie występuje w panelach porównawczych: w 2010 roku spółka ta była notowana pod tickerem QQQQ.

Każdy powyższy panel to zapisane, wersjonowane zapytanie SQL do historycznego zapisu transakcji — rozwiń zapytanie SQL, aby zobaczyć każde wymiarowanie. Chcesz przeanalizować ten dzień w praktyce zamiast tylko go czytać? Jest to jeden z możliwych do przetestowania scenariuszy w symulatorze handlowym Strasmore Labs.