Analisi del Flash Crash del 2010
Il 6 maggio 2010 un trilione di dollari di valore è svanito per poi tornare in trentasei minuti. Analisi dettagliata del registro dei prezzi durante il crash.
Il 6 maggio 2010, il mercato azionario statunitense ha subito un crollo e si è ripreso in poco più di mezz'ora: il flash crash, il periodo di trading più insolito della storia moderna dei mercati. Quasi un trilione di dollari di capitalizzazione è svanito per poi tornare quasi interamente; nel frattempo, titoli molto noti hanno registrato prezzi di $0.01 e di $100000 per azione. Di seguito: il registro dei minuti, gli orari, i titoli coinvolti — e una query memorizzata dietro ogni numero. Espandi ogni pannello per visualizzare la SQL.
La giornata, in sintesi
L'esatto SQL dietro ogni numero
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')La giornata era già tesa — con notizie sul debito greco a dominare il mercato per tutta la mattina — e SPY ha registrato un trend ribassista partendo dai $116.26 dell'apertura. Successivamente si è verificato un crollo: il minimo della giornata di $105 è stato segnato alle 14:45 ET, ovvero -10.1% sotto la chiusura precedente di $116.83. Al suono della campana SPY è risalito a $112.88 — con un rendimento del -3.4% sulla giornata, ma comunque ben al di sopra del punto di minimo. Volume: 639.9 milioni di azioni, una delle sessioni con maggiore volume per SPY della sua storia.
Il crash, minuto per minuto
I grafici a mezz'ora nascondono l'evento; con una risoluzione a un minuto è inconfutabile. Ecco SPY dalle 14:00 alle 15:30 ET:
L'esatto SQL dietro ogni numero
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_startL'analisi congiunta SEC–CFTC colloca l'evento a partire dalle 14:32 ET, quando un grande programma di vendita automatizzato ha iniziato a eseguire un ordine di circa 75.000 contratti E-mini S&P 500 futures (circa 4,1 miliardi di dollari), fino alle 15:08 circa, quando i prezzi generali avevano recuperato la maggior parte del crollo — trentasei minuti dall'inizio alla fine. Il grafico sopra segue quell'andamento. SPY ha chiuso il minuto 14:32 a $113.15. Dodici minuti dopo, il minuto 14:44 ha scambiato 9.21 milioni di azioni — contro i 1.44 milioni di un minuto tranquillo come il 14:05 — e il minuto 14:45 ha registrato il minimo della giornata a $105. Alla chiusura del minuto 15:08, SPY si attestava a $113.63 — sopra il livello in cui era iniziato il calo. Un ciclo completo in circa mezz'ora.
Un unico halt è scattato durante la giornata e è durato cinque secondi. Alle 14:45:28 ET — all'interno dello stesso minuto del minimo sopra indicato — la funzionalità Stop Logic del CME ha sospeso il trading sui futures E-mini, secondo il rapporto ufficiale, e i bid sono tornati non appena la sospensione è stata revocata. I circuit breaker di mercato del 2010 erano calibrati sul Dow con soglie del 10, 20 e 30 percenti, e le regole allora in vigore non prevedevano alcuna sospensione per un calo del dieci percenti così tardi nella sessione; nessuna è scattata. I circuit breaker per le singole azioni non esistevano ancora — fanno parte delle innovazioni introdotte proprio questo giorno.
Cosa ha causato il selling off
L'origine delle vendite non è mai stata un mistero per i regolatori. Il rapporto SEC–CFTC ha descritto un singolo complesso di fondi comuni — identificato dalla stampa come Waddell & Reed — che utilizzava un algoritmo automatizzato per vendere contratti E-mini. La velocità di vendita era legata al volume, senza considerare il prezzo o il tempo. Con l'aumento dei volumi, l'algoritmo ha accelerato le vendite in un mercato in cui gli intermediari ad alta frequenza avevano smesso di assorbire l'inventario, iniziando a scambiarselo continuamente — il celebre volume "hot potato" citato nel rapporto. Cinque anni dopo è emerso un secondo nome: le autorità statunitensi hanno arrestato il trader londinese Navinder Singh Sarao nell'aprile 2015, per spoofing sul book degli ordini E-mini — inserendo ordini che non aveva mai intenzione di eseguire — il 6 maggio e in centinaia di altri giorni. Si è dichiarato colpevole nel 2016 ed è stato condannato nel gennaio 2020. L'impatto reale dei suoi ordini in quel pomeriggio rimane oggetto di dibattito; la lezione strutturale riportata di seguito non dipende da questo fattore.
Dove le vendite sono state più intense
L'esatto SQL dietro ogni numero
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 5Il peggior minuto registrato ha visto un calo di $5.72 rispetto all'apertura fino al minimo — alle 14:49 ET, su 4.98 milioni di azioni in sessanta secondi. Ciò che i dati mostrano è semplice e definitivo: i prezzi necessitano di acquirenti costanti, e per alcuni minuti non ce ne sono stati. Questo è l'argomento più forte mai registrato per comprendere l'effetto di un market order — ogni stop-loss attivato in quell'intervallo è diventato un market order alla ricerca di bid che non esistevano. Il NBBO è il battito cardiaco di un mercato, e quel pomeriggio si è fermato.
Un centesimo e 100.000 dollari: le quotazioni assurde
Quando i reali ordini di acquisto sono scomparsi, gli ordini in entrata si sono spostati verso le uniche quotazioni rimaste — incluse le "stub quotes" dei market-maker, posizionate lontano da qualsiasi prezzo plausibile. Il registro delle transazioni mostra ancora tali prezzi:
L'esatto SQL dietro ogni numero
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), una società di consulenza che quel pomeriggio scambiava vicino a $41.49, ha registrato 43 transazioni a cinque centesimi o meno, toccando il minimo di $0.01. In direzione opposta, Apple ha registrato 2 scambi a $100000 per azione, e Sotheby's ha fatto lo stesso per 2 volte.
Le borse hanno successivamente annullato ogni transazione eseguita con uno scostamento superiore al 60 percentuale rispetto al prezzo di riferimento pre-crash — e questo limite spiega l'asimmetria nei dati. Le quotazioni da un centesimo di ACN sono state eliminate, quindi il suo minimo minuto più basso sopravvissuto, $17.74, si trova -57.2% sotto il riferimento — appena all'interno del limite di annullamento. Procter & Gamble non ha mai scambiato su una stub quote: il suo peggior trade nel periodo, $39.37, era -36.7% sotto il suo riferimento, quindi ogni stop-loss venduto a quel prezzo è stato confermato. Le quotazioni da un centesimo di ACN hanno superato quel limite ed è stato cancellato; il peggior fill di P&G è rimasto all'interno di esso ed è stato mantenuto. Quel confine arbitrario ha insegnato ai trader più sui tipi di ordine di quanto qualsiasi opuscolo abbia mai fatto.
L'ampiezza del calo
Nello stesso intervallo temporale, considerando solo i dati ufficiali — i minimi al minuto, misurati rispetto al prezzo delle ore 14:30 di ogni titolo:
L'esatto SQL dietro ogni numero
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 ASCLa dispersione è l'elemento chiave. Il minimo di ACN si è attestato a -57.2% sotto il suo valore di riferimento e quello di P&G a -36.7%, mentre gli ETF di mercato hanno toccato minimi con perdite a una cifra — DIA, l'ETF che replica il Dow, -6.5% e IWM -5.2%. I dati di DIA di quei minuti sono stati riportati in tutto il mondo come il più grande crollo intraday del Dow nella sua storia fino a quella data. L'ultima colonna indica il recupero: ciascuno dei sei titoli si è chiuso entro circa il tre per cento dal livello delle ore 14:30, come se l'ora centrale fosse stata solo un rumor.
Confronto tra il 6 maggio e altri giorni di crash
Confronta il flash crash con gli altri famosi crolli giornalieri nell'era delle candele a un minuto (questo registro azionario risale al 2003; il Black Monday del 1987 è precedente):
L'esatto SQL dietro ogni numero
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_dateIl 6 maggio 2010 non è il calo più profondo della tabella: 16 marzo 2020 ha scambiato -12.4% sotto la chiusura precedente rispetto a -10.1% per il flash crash. Tuttavia, nessun altro giorno si avvicina per quanto riguarda il rimbalzo. SPY ha chiuso 7.5% sopra il minimo del 6 maggio, contro il 3.9% della migliore ripresa successiva nel set (24 agosto 2015 — anch'essa un mini flash crash) e solo 1.7% e 0.9% nei giorni del crash dell'era Lehman e del COVID. Un repricing rimane basso fino alla chiusura; un buco di liquidità provoca un rimbalzo immediato la stessa pomeriggio.
Il pattern a V ha retto?
Due domande definiscono se un crash sia stato tale: la velocità con cui il vecchio prezzo è tornato e se il minimo di panico sia stato mai scambiato di nuovo. Entrambe hanno risposte certe:
L'esatto SQL dietro ogni numero
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
)
)
)Il recupero è stato rapido: SPY ha chiuso nuovamente sopra la chiusura del 5 maggio di $116.83 solo 4 sessioni dopo, in data 2010-05-12. Il pattern a V ha retto — per un po'. Tuttavia, il minimo del flash-crash non è rimasto un'anomalia: 37 sessioni dopo il crash, in data 2010-06-29, SPY ha chiuso a $104.22 — sotto il minimo di panico di $105 — durante il selloff del debito sovrano europeo che ha dominato quell'estate. La differenza è il punto fondamentale: il flash crash ha raggiunto quel prezzo in pochi minuti, senza notizie, e ha rimbalzato; l'estate ci è arrivata nell'arco di settimane e vi è rimasta. Il prezzo è ciò con cui si può transare in questo secondo; il valore è ciò che sopravvive al pomeriggio.
Cosa è cambiato successivamente
Il flash crash ha generato il moderno regime di circuit-breaker: bande Limit Up/Limit Down per i singoli titoli e revisioni delle sospensioni dell'intero mercato, meccanismi visibili nelle crisi successive (le sospensioni di marzo 2020 ne sono i discendenti diretti). Le stub quotes sono state vietate; le regole per gli errori di esecuzione evidenti sono state formalizzate; i grandi ordini sui futures sono ora soggetti a uno scrutinio di esecuzione basato sul prezzo. La struttura del mercato in cui si opera oggi è stata sostanzialmente delineata nelle conseguenze di quei trentasei minuti.
FAQ sul flash crash
Cosa ha causato il flash crash del 2010?
Il rapporto ufficiale di SEC/CFTC ha descritto un programma di vendita automatizzato di E-mini per circa 4,1 miliardi di dollari eseguito in condizioni di scarsa liquidità, con intermediari ad alta frequenza che hanno prima amplificato i volumi e poi si sono ritirati. La stampa ha identificato come venditore la società di fondi comuni Waddell & Reed; il trader Navinder Sarao è stato successivamente perseguito per spoofing sullo stesso mercato in quella giornata. La versione dei dati di mercato: la liquidità è evaporata e i prezzi sono scesi fino al primo bid disponibile — a volte anche di un solo centesimo.
A che ora è iniziato e terminato il flash crash?
La cronologia dei regolatori va dalle 14:32 ET circa, quando è iniziata la vendita automatizzata, fino alle 15:08 circa, quando i prezzi generali avevano recuperato la maggior parte del crollo — 36 minuti. Il minimo di SPY è stato registrato a 14:45 ET, -10.1% sotto la chiusura precedente, e il ritorno ai livelli pre-crollo ha richiesto circa 23 minuti dal punto di minimo.
Quali titoli sono stati colpiti nel flash crash del 2010?
Quasi tutto è sceso, ma le vittime più note sono state società i cui bid sono scomparsi completamente: Accenture ha registrato minimi di $0.01, Apple e Sotheby's hanno registrato $100000, e Procter & Gamble è sceso fino a $39.37 — -36.7% sotto il suo livello pomeridiano. Sono stati annullati gli scambi superiori al 60 percento rispetto ai prezzi pre-crash; gli esecuzioni di P&G sono rimaste valide.
Il trading è stato sospeso durante il flash crash?
Nessun circuit breaker di mercato è scattato il 6 maggio 2010 — le regole allora in vigore non prevedevano sospensioni per un calo di tale entità in una fase così avanzata della sessione. L'unica pausa della giornata è durata cinque secondi: lo Stop Logic del CME ha sospeso brevemente i futures E-mini alle 14:45:28 ET, nello stesso minuto del minimo dell'indice. I circuit breaker per i singoli titoli e le bande Limit Up/Limit Down sono stati creati successivamente.
Un flash crash potrebbe accadere di nuovo?
Sono avvenute versioni più piccole — i singoli simboli raggiungono regolarmente i halt LULD e si verificano mini eventi flash. La versione su scala di mercato del 2010 è stata finora contenuta dai meccanismi di halt da essa ispirati. La risposta onesta è che l'elemento strutturale — la liquidità che può ritirarsi in millisecondi — è permanente.
Note sui dati
Note complete sui dati
- La barra delle 15:09 del panel minuto per minuto presenta un minimo anomalo di 108.37 pochi minuti dopo il recupero; la stessa barra compare tra le righe della tabella con i minimi più ripidi — un fenomeno coerente con le quotazioni segnalate in ritardo, che gli aggregati posizionano nel minuto di arrivo. Il tape del 6 maggio ne contiene molti.
- Operazioni annullate e aggregati: il tape grezzo di ACN mostra quotazioni da $0.01 mentre il minimo della barra al minuto è $17.74 — gli aggregati al minuto riflettono il record post-annullamento, il tape delle operazioni grezze le quotazioni originali.
- Il "riferimento delle 14:30" del panel di dispersione è l'ultima chiusura della barra al minuto della sessione regolare per ogni titolo, avvenuta alle 14:30 ET o prima; la finestra del crash è tra le 14:31 e le 15:15.
- QQQ è assente dai panel cross-name: nel 2010 era scambiato con il ticker QQQQ.
Ogni panel sopra riportato è una query memorizzata e versionata sul tape storico — espandi la SQL per visualizzare ogni misurazione. Vuoi simulare questa giornata invece di leggerla? È uno degli scenari giocabili nel trading simulator di Strasmore Labs.