Differenza tra market order e limit order
Un market order garantisce l'esecuzione immediata al miglior prezzo disponibile, mentre un limit order fissa un prezzo massimo o minimo ma rischia il default.
Un order market indica "esegui subito al miglior prezzo disponibile"; un order limit indica "esegui solo al mio prezzo o a uno migliore". Questa singola differenza determina il prezzo pagato, l'effettiva esecuzione dell'ordine e i potenziali rischi. Questa guida misura il compromesso utilizzando dati di quotazione reali — in dollari, su ticker reali — e analizza i contesti in cui l'impatto è maggiore: tape veloce, ordini di grandi dimensioni, opzioni e extended hours.
Cos'è un market order?
Un market order viene eseguito immediatamente al miglior prezzo disponibile sul lato opposto del mercato: un acquisto viene eseguito al prezzo ask, una vendita al prezzo bid. L'esecuzione è quasi garantita per qualsiasi dimensione standard di un investitore retail su un titolo quotato; il prezzo no. Il costo di un market order, rispetto al midpoint tra bid e ask, è pari alla metà dello bid-ask spread — il costo per l'immediata esecuzione. La quotazione visibile a schermo è la NBBO, il miglior bid e offer di tutti i mercati, e varia costantemente: l'ordine viene eseguito rispetto alla NBBO vigente al momento dell'arrivo, non al momento del clic.
Cos'è un limit order?
Un limit order stabilisce un prezzo massimo (per gli acquisti) o un prezzo minimo (per le vendite). Impostando un buy limit a $50.00, non pagherai mai più di $50.00; tuttavia, se il mercato non raggiunge il prezzo indicato, l'operazione non viene eseguita e l'ordine rimane in attesa. Un'impostazione intermedia è rilevante: il marketable limit order, ovvero un buy limit impostato al prezzo ask attuale o leggermente superiore. In condizioni normali, l'ordine viene eseguito immediatamente come un market order, ma il limit funge da tetto massimo se il prezzo salta mentre l'ordine è in fase di trasmissione.
Due parametri determinano l'esito dell'ordine durante l'attesa. Duration: un ordine day viene annullato alla chiusura se non eseguito; un ordine good-till-canceled (GTC) rimane attivo tra le sessioni fino all'esecuzione, all'annullamento o alla scadenza secondo i limiti temporali del broker (solitamente tra sessanta e novanta giorni). Partial fills: un limit order può essere eseguito parzialmente; ad esempio, 40 azioni su un ordine di 100 azioni potrebbero essere eseguite al prezzo indicato, mentre le restanti 60 rimangono in attesa.
Stop orders e stop-limit orders
I moduli di inserimento ordini elencano altri due tipi derivati da questi. Un stop order rimane inattivo finché il titolo non viene scambiato al prezzo di stop o oltre di esso; a quel punto si attiva come un semplice market order — il classico "stop-loss" è un sell stop posizionato sotto il prezzo attuale. Il rischio: l'ordine attivato è un market order e, in caso di gap del titolo, l'esecuzione può avvenire a un prezzo molto inferiore a quello di stop. Un stop-limit order si attiva invece come un limit order — un prezzo di stop unito a un limit price — limitando il peggioramento possibile del prezzo di uscita, accettando però che, in caso di crollo troppo rapido, l'ordine potrebbe non essere mai eseguito.
Il costo dell'immediacy, in dollari
Il costo per incrociare lo spread è misurabile dai dati delle quotazioni. Una sessione regolare completa, cinque ticker, lo spread mediano quotato e l'impatto di metà di esso su 100 azioni:
L'esatto SQL dietro ogni numero
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 100, bid_price > 0 AND ask_price > bid_price), 1) AS spread_cents,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 50, bid_price > 0 AND ask_price > bid_price), 2) AS half_spread_cost_100sh_usd,
round(count() / 23400, 1) AS quote_updates_per_sec
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'IWM', 'AAPL', 'KO', 'CATO')
AND sip_timestamp >= '2026-07-08 04:00:00'
AND sip_timestamp < '2026-07-09 04:00:00'
AND toTimeZone(sip_timestamp, 'America/New_York') >= toDateTime('2026-07-08 09:30:00', 'America/New_York')
AND toTimeZone(sip_timestamp, 'America/New_York') < toDateTime('2026-07-08 16:00:00', 'America/New_York')
GROUP BY ticker
ORDER BY quote_updates_per_sec DESCAnalizziamo gli estremi. SPY, il titolo più scambiato del panel, ha aggiornato la sua migliore quotazione nazionale circa 176.8 volte al secondo e ha mantenuto uno spread mediano di 2 centesimi — incrociarlo su 100 azioni è costato circa $1. All'altro estremo, CATO ha quotato pochissimo, con uno spread mediano di 5 centesimi e un costo del half-spread vicino a $2.5 sulle stesse 100 azioni. In una large-cap liquida, i costi di immediacy sono irrilevanti; in un titolo poco liquido rappresentano una spesa concreta — e la quotazione a schermo può essere obsoleta da minuti. L'economia dell'intero mercato risiede in quanto costa scambiare un'azione.
Il prezzo si muove mentre l'ordine viene eseguito
Il rischio reale di un market order non è lo spread visibile, ma il movimento imprevedibile del prezzo. Per i titoli più scambiati, le quotazioni si aggiornano centinaia di volte al secondo. Il prezzo oscilla più rapidamente quando la domanda di market order è massima: subito dopo l'apertura. Ecco l'andamento della stessa sessione, osservando il range medio tra massimo e minimo all'interno di ogni minuto di trading su SPY:
L'esatto SQL dietro ogni numero
SELECT round(avgIf(range_cents, et_minute >= '09:30' AND et_minute < '09:45'), 1) AS open_window_cents,
round(avgIf(range_cents, et_minute >= '12:00' AND et_minute < '13:00'), 1) AS midday_window_cents,
round(avgIf(range_cents, et_minute >= '15:45' AND et_minute < '16:00'), 1) AS close_window_cents,
round(avgIf(range_cents, et_minute >= '09:30' AND et_minute < '09:45')
/ avgIf(range_cents, et_minute >= '12:00' AND et_minute < '13:00'), 1) AS open_vs_midday
FROM (
SELECT formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_minute,
toFloat64(high - low) * 100 AS range_cents
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-08 04:00:00'
AND window_start < '2026-07-09 04:00:00'
)
WHERE et_minute >= '09:30' AND et_minute < '16:00'Nei primi quindici minuti, il prezzo di SPY ha oscillato mediamente di 70.3 centesimi all'interno di ogni singolo minuto, contro i 35.8 centesimi al minuto durante la fascia centrale della giornata e i 38.8 centesimi negli ultimi quindici minuti. Un market order inserito alle 9:31 colpisce un prezzo che si muove circa 2 volte più velocemente rispetto a uno inserito a mezzogiorno. Anche lo spread è più ampio in quei primi minuti — consulta perché lo spread si amplia all'apertura.
L'impatto di una giornata di forte volatilità sul trade-off
L'8 luglio 2026 è stata una sessione ordinaria; il trade-off viene ricalcolato in una giornata straordinaria. Il 9 aprile 2025 si è collocata nel mezzo della volatilità causata dai titoli sui dazi di quella primavera — SPY in entrambi i giorni, stessi parametri:
L'esatto SQL dietro ogni numero
WITH quotes AS (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
round(quantileDeterministicIf(0.5)(toFloat64(ask_price - bid_price) * 100, cityHash64(ticker, sip_timestamp), bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND ((sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00')
OR (sip_timestamp >= '2025-04-09 04:00:00' AND sip_timestamp < '2025-04-10 04:00:00'))
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
),
bars AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
round(avg(toFloat64(high - low) * 100), 1) AS avg_minute_range_cents,
round(max(toFloat64(high - low) * 100), 0) AS worst_minute_range_cents,
round((max(high) - min(low)) / argMin(toFloat64(open), window_start) * 100, 1) AS session_range_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2026-07-08 04:00:00' AND window_start < '2026-07-09 04:00:00')
OR (window_start >= '2025-04-09 04:00:00' AND window_start < '2025-04-10 04:00:00'))
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
)
SELECT formatDateTime(quotes.d, '%Y-%m-%d') AS session,
bars.session_range_pct,
bars.avg_minute_range_cents,
bars.worst_minute_range_cents,
quotes.median_spread_cents
FROM quotes INNER JOIN bars ON quotes.d = bars.d
ORDER BY quotes.d DESCIl 2025-04-09, SPY ha percorso 10.8% da minimo a massimo in una sola sessione regolare, contro 0.9% nella giornata calma; lo scostamento medio al minuto è stato di 156.4 centesimi rispetto a 37.2, il più alto 1638 rispetto a 133. Anche lo spread si è ampliato — mediana 5¢ contro 2¢ — ma il movimento è predominante: in una giornata simile, il costo principale di un market order è la distanza percorsa dal prezzo tra la decisione e l'esecuzione. È in questi casi che il limite di un limit order diventa fondamentale — e quando un limit order passivo ha maggiori probabilità di essere eseguito precocemente, venendo poi superato dal prezzo.
Ordini di grandi dimensioni e la quotazione visualizzata
La quotazione rappresenta sia il prezzo che la dimensione — ovvero le azioni effettivamente offerte al miglior ask. Un ordine market superiore alla dimensione visualizzata può esaurirla e coprire la parte restante ai prezzi successivi: un processo noto come walking the book. Analisi della stessa sessione:
L'esatto SQL dietro ogni numero
SELECT ticker,
minIf(ask_size, bid_price > 0 AND ask_price > bid_price) AS smallest_displayed_shares,
round(quantileDeterministicIf(0.5)(toFloat64(ask_size), cityHash64(ticker, sip_timestamp), bid_price > 0 AND ask_price > bid_price), 0) AS median_ask_shares,
round(countIf(ask_size >= 1000 AND bid_price > 0 AND ask_price > bid_price) / countIf(bid_price > 0 AND ask_price > bid_price) * 100, 1) AS pct_covering_1000_shares
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'IWM', 'AAPL', 'KO', 'CATO')
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
ORDER BY median_ask_shares DESC, ticker ASCIWM, il titolo con maggiore profondità nel pannello, ha mostrato una mediana di 360 azioni al miglior ask; AAPL ne ha mostrate solo 80. In nessuno dei cinque titoli la dimensione dell'ask visualizzata ha coperto un ordine da 1.000 azioni nemmeno un decimo delle volte — 7.8% dei record di quotazione nel caso migliore, 0.6% nel caso peggiore. La dimensione visualizzata è un limite minimo, non l'inventario totale — l'interesse nascosto si trova tra i migliori prezzi e i book liquidi si ricaricano in millisecondi — ma la garanzia di un ordine market termina con le azioni visualizzate: oltre esse, l'ordine preleva ciò che il book offre successivamente; un ordine limit impone il limite che non verrà superato.
Opzioni: lo stesso trade-off, amplificato
I trader di opzioni subiscono l'impatto maggiore: i prezzi dei contratti sono contenuti, quindi uno spread di pochi centesimi rappresenta una quota molto più elevata rispetto al capitale investito. Ogni opzione Apple con scadenza nel 2026 con una quotazione bid-ask attiva, rispetto al titolo Apple, nella stessa sessione:
L'esatto SQL dietro ogni numero
WITH opt AS (
SELECT round(quantileDeterministic(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, cityHash64(ticker, sip_timestamp)), 0) AS option_median_spread_bps,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) * 100, cityHash64(ticker, sip_timestamp)), 0) AS option_median_spread_cents,
round(count() / 1e6, 0) AS option_quote_updates_millions
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:AAPL26' AND ticker < 'O:AAPL27'
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
AND bid_price > 0 AND ask_price > bid_price
),
stk AS (
SELECT round(quantileDeterministic(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, cityHash64(ticker, sip_timestamp)), 1) AS stock_median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
AND bid_price > 0 AND ask_price > bid_price
)
SELECT opt.option_median_spread_bps,
opt.option_median_spread_cents,
stk.stock_median_spread_bps,
round(opt.option_median_spread_bps / stk.stock_median_spread_bps, 0) AS option_to_stock_ratio,
opt.option_quote_updates_millions
FROM opt CROSS JOIN stkL'opzione Apple mediana quotata presentava uno spread pari a 606 punti base rispetto al proprio midpoint — circa 65 centesimi sul contratto — mentre l'azione Apple quotava 1 punti base: un divario di circa 606x. Un order di mercato su un'opzione comporta routinamente una perdita in un singolo esecuzione pari a quella di un order su un'azione nell'ordine di centinaia; i trader di opzioni esperti utilizzano di default gli order limit e operano sul midpoint. Il quadro completo dei costi è disponibile in quanto costa fare trading di opzioni.
Al di fuori degli orari regolari, l'ordine limit è spesso l'unica scelta
Molti broker rifiutano gli ordini market durante le sessioni pre-market e after-hours, accettando solo ordini limit. I dati sulle quotazioni mostrano le ragioni di questa politica — stessa giornata, tre finestre temporali:
L'esatto SQL dietro ogni numero
SELECT multiIf(et_min < 570, '1. Pre-market (4:00-9:30)', et_min < 960, '2. Regular (9:30-16:00)', '3. After-hours (16:00-20:00)') AS session_window,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'SPY'), 1) AS spy_spread_cents,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'AAPL'), 1) AS aapl_spread_cents,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'KO'), 1) AS ko_spread_cents
FROM (
SELECT ticker,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min,
toFloat64(ask_price - bid_price) * 100 AS spread_cents,
cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'KO')
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND bid_price > 0 AND ask_price > bid_price
)
WHERE et_min >= 240 AND et_min < 1200
GROUP BY session_window
HAVING countIf(ticker = 'SPY') > 0 AND countIf(ticker = 'AAPL') > 0 AND countIf(ticker = 'KO') > 0
ORDER BY session_windowLo spread mediano di Coca-Cola era di 1 cent durante l'orario regolare, 28 cent in pre-market e 30 cent dopo la chiusura; Apple è passata da 3 cent a 32; persino lo spread di SPY si è ampliato da 2 a 7. Meno partecipanti e book più sottili — il trading in orari estesi è il contesto in cui un ordine senza limite ha maggiori probabilità di essere eseguito a condizioni sfavorevoli, e le regole dei broker riflettono questo rischio.
Quale tipo di ordine si adatta a ogni situazione
I pannelli si riducono a una checklist — non è una consulenza, ma indica dove il costo del limite è basso e dove è elevato:
- Large-cap liquide, tape calma, ordine di piccole dimensioni. Il costo dello spread è trascurabile; un marketable limit garantisce l'immediata esecuzione di un market-order con un prezzo massimo prefissato.
- Titolo poco liquido. Gli spread sono ampi e le quotazioni possono essere obsolete; un limit permette la price discovery che una quotazione obsoleta non può offrire.
- Tape veloce — l'apertura, la pubblicazione di una news, una giornata come il 9 aprile 2025. Il rischio di movimento supera il costo dello spread; un limit lo limita al costo di non eseguire l'operazione.
- Ordine superiore alla dimensione visualizzata. La garanzia della quotazione termina con le azioni visualizzate; un limit stabilisce il tuo livello massimo accettabile.
- Options e titoli fuori orario regolare. I limit sono il default professionale — e spesso l'unico tipo accettato dal broker dopo la chiusura dei mercati.
Il riassunto in una riga: un market order garantisce l'esecuzione, non il prezzo; un limit order garantisce il prezzo, non l'esecuzione; un marketable limit garantisce l'esecuzione immediata limitando il danno.
FAQ sull'ordine market vs ordine limit
Un ordine market è garantito nell'esecuzione?
Per volumi retail ordinari su titoli quotati durante l'orario regolare, la risposta è sostanzialmente sì: esiste sempre una migliore offerta con cui scambiare. La garanzia riguarda l'esecuzione, mai il prezzo: in un titolo poco liquido o molto volatile, l'esecuzione può avvenire a un prezzo significativamente diverso dall'ultima quotazione visualizzata.
Cos'è un ordine stop-limit e in cosa differisce da un ordine limit?
Un ordine limit è attivo nel momento in cui viene inserito; un ordine stop-limit rimane inattivo finché il titolo non viene scambiato al prezzo di stop o oltre tale prezzo, momento in cui si attiva come un ordine limit al prezzo limite impostato. Il rischio è che un movimento rapido superi il limite e l'ordine non venga mai eseguito.
Cosa succede al mio ordine limit durante la notte?
Un ordine giornaliero scade non eseguito alla chiusura. Un ordine GTC (good-till-canceled) rimane attivo fino all'esecuzione, alla cancellazione o alla scadenza secondo i limiti temporali del broker — e non viene scambiato al di fuori dell'orario regolare a meno che non sia stata abilitata l'esecuzione in extended-hours. I titoli solitamente aprono con un gap durante la notte; se l'apertura presenta un gap che supera un ordine limit in attesa, l'esecuzione avviene al prezzo di apertura — per definizione, il tuo prezzo o uno migliore.
Perché il mio ordine market è stato eseguito a un prezzo diverso da quello mostrato a schermo?
Il national best bid and offer di un titolo attivo si aggiorna molte volte al secondo — SPY si è aggiornato circa 176.8 volte al secondo nella sessione misurata sopra. L'ordine viene eseguito sulla quotazione vigente al momento dell'arrivo; tra l'ordine e la visualizzazione intervengono ritardi di rete e di elaborazione.
Posso usare un ordine limit per vendere in perdita?
Sì — ma un sell limit viene eseguito al tuo prezzo o migliore: se posizionato sotto il bid attuale, viene eseguito immediatamente vicino al bid. Se l'obiettivo è "vendi solo se il titolo scende a 45$", si tratta di un sell stop — un sell limit a 45$ con il titolo a 50$ viene eseguito immediatamente a circa 50$.
Ogni pannello sopra è una query memorizzata sui record di quotazione e scambio reali — espandi la SQL o analizza il tuo ticker con le stesse domande sul terminale Strasmore.