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
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:
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_startWspó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
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 5W 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:
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 ASCAccenture (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:
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 ASCThe 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):
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_date6 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:
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.