Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

Modificare un ordine fa perdere la priorità?

Cambiare il prezzo di un ordine limit fa perdere la priorità in coda. Scopri il costo sulla probabilità di esecuzione e il re-price di pareggio per un bot.

La modifica dell’ordine e la priorità in coda sono in contrasto. Sui book azionari statunitensi e sulla maggior parte delle sedi di negoziazione dei futures, modificare il prezzo di un ordine limit resting lo manda in fondo alla coda al nuovo prezzo. Anche l’aumento della quantità esposta produce lo stesso effetto. Ridurre la quantità consente invece di mantenere la propria posizione. Cancellare un ordine e inviarne uno nuovo equivale a un nuovo ingresso, con un nuovo timestamp, indipendentemente dal nome del pulsante sulla piattaforma.

Modificare un ordine fa perdere la priorità in coda?

Quattro regole coprono quasi tutte le sedi di negoziazione che un trader autonomo può utilizzare.

  • Modificare il prezzo fa perdere la priorità. L’ordine arriva al nuovo prezzo come un nuovo arrivato, dietro a tutti gli ordini già presenti a quel livello.
  • Aumentare la quantità visualizzata fa perdere la priorità. Alcune sedi rimettono in coda solo la quantità aggiunta e lasciano invariata la tranche originaria; altre ricalcolano il tempo per l’intero ordine. In nessuno dei due casi le azioni aggiuntive mantengono la posizione precedente.
  • Ridurre la quantità visualizzata mantiene la priorità. La sede lo considera una cancellazione parziale. Restituire una parte della quantità non comporta alcun costo in termini di posizione in coda.
  • Cancellare e reinviare un ordine fa sempre perdere la priorità. Nel frattempo si crea un intervallo in cui non c’è alcun ordine attivo dell’operatore.

L’asimmetria ha una logica. La priorità temporale è il vantaggio che il book riconosce a chi è rimasto a un determinato prezzo mentre gli altri attendevano. Aggiungere quantità o spostare il prezzo significa assumere un nuovo rischio, che parte dal fondo della coda. Ridurre la quantità significa ritirare rischio, e non c’è nulla da addebitare. In un book pro rata il calcolo cambia, perché l’allocazione dipende dalla quantità visualizzata e non dal momento di arrivo. Priorità prezzo-tempo versus pro rata illustra entrambi i meccanismi.

Modificare l’ordine in essere o annullarlo e sostituirlo?

Sul venue sono istruzioni diverse. Una modifica, che la piattaforma può chiamare modify o replace, è un unico messaggio che identifica l’ordine esistente e indica il cambiamento. Viene applicata in modo atomico: la modifica viene eseguita oppure l’ordine resta invariato. L’annullamento seguito da un nuovo ordine consiste invece in due eventi separati, con un intervallo tra loro. Durante quell’intervallo non occupi alcuna posizione nella coda. Se il mercato esegue scambi al tuo prezzo, in quell’intervallo non partecipi.

Alcuni venue gestiscono internamente una modifica come un annullamento seguito da un nuovo ordine. Alcuni broker, inoltre, trasformano una modifica in un cancel and replace prima dell’invio, anche quando il venue supporta una vera modifica in place. Il risultato è lo stesso: perdi la priorità. Se una modifica viene rifiutata, l’ordine originale resta attivo. Se invece l’annullamento va a buon fine e il nuovo ordine viene rifiutato, non hai più alcun ordine working. Anche una modifica che preserva la priorità restituisce di norma un nuovo identificativo dell’ordine. Nei tuoi registri compare quindi un nuovo ordine, mentre il book continua a considerare quello precedente.

Quanto costa modificare un ordine

La posizione in coda vale solo quanto il mercato è in grado di pagarla. Le azioni davanti al tuo ordine devono essere eseguite prima del tuo, e il ritmo degli scambi varia ampiamente nel corso della seduta.

QueryVelocità di svuotamento della coda da parte del tape, per ora del giorno (AAPL, giugno 2026)
L'esatto SQL dietro ogni numero
SELECT
    formatDateTime(toStartOfFifteenMinutes(et), '%H:%i')                    AS et_time,
    round(toFloat64(avg(volume)) / 1000, 1)                                 AS avg_k_shares_per_min,
    round(quantileDeterministic(0.5)(toFloat64(volume),
                                     toUInt64(toUnixTimestamp(et))) / 1000, 1) AS median_k_shares_per_min
FROM
(
    SELECT
        toTimeZone(window_start, 'America/New_York') AS et,
        volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'AAPL'
      AND window_start >= '2026-06-01'
      AND window_start <  '2026-07-01'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
GROUP BY et_time
ORDER BY et_time
Run this yourself

Nel giugno 2026, il quarto d’ora iniziato alle 09:30 ET ha registrato una mediana di 182.8 mila azioni AAPL al minuto, contro 62 mila nella fascia iniziata alle 12:00. Stesso ordine, stesso prezzo. All’apertura, il tempo di attesa davanti all’ordine è molto diverso rispetto a quello nel pieno della giornata.

Probabilità di esecuzione prima e dopo una modifica

Le modifiche si riflettono nella probabilità. Il pannello seguente conta, nell’arco di un mese di minuti della sessione regolare, quante volte un minuto di tape ha registrato almeno un determinato numero di azioni. Va letto come la probabilità che una coda di quella dimensione davanti a te venga smaltita entro un minuto.

QueryQuota di finestre di un minuto con almeno N azioni (giugno 2026)
L'esatto SQL dietro ogni numero
WITH minute_volume AS
(
    SELECT
        ticker,
        toStartOfMinute(toTimeZone(window_start, 'America/New_York')) AS et_minute,
        sum(volume)                                                   AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'KO')
      AND window_start >= '2026-06-01'
      AND window_start <  '2026-07-01'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
    GROUP BY ticker, et_minute
)
SELECT
    q.ahead                                                                                           AS shares_ahead,
    round(100 * countIf(mv.ticker = 'AAPL' AND mv.shares >= q.ahead) / countIf(mv.ticker = 'AAPL'), 1) AS aapl_pct_of_minutes,
    round(100 * countIf(mv.ticker = 'KO'   AND mv.shares >= q.ahead) / countIf(mv.ticker = 'KO'),   1) AS ko_pct_of_minutes
FROM minute_volume AS mv
CROSS JOIN
(
    SELECT arrayJoin([500, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000]) AS ahead
) AS q
GROUP BY q.ahead
ORDER BY q.ahead
Run this yourself

Con 500 azioni davanti, il 100 percento dei minuti di AAPL ha registrato un volume sufficiente, contro il 100 percento dei minuti di KO. A 8000 azioni, il dato di AAPL è pari al 100 percento; a 128000 azioni scende al 22.2 percento. La curva si muove in una sola direzione: perdere priorità significa semplicemente scorrere verso destra lungo la curva.

Considera la linea come un limite superiore ottimistico. Il volume di un minuto viene eseguito su molti prezzi e su entrambi i lati del mercato, e solo una parte arriva al tuo livello di prezzo. Di conseguenza, una coda reale si smaltisce più lentamente. I minuti senza alcun print non vengono conteggiati. Stima della tua posizione in coda rende il quadro più preciso includendo la profondità e i tassi di cancellazione.

La distanza di riprezzamento di pareggio

Ora attribuiamo un valore economico alla modifica. Consideriamo un ordine di acquisto ipotetico con 8.000 azioni davanti e una probabilità del 60% di essere eseguito entro il minuto successivo. Migliorare il bid di un centesimo lo porta al nuovo miglior prezzo, senza ordini davanti: assegniamo a questo scenario una probabilità del 99%. La modifica costa un centesimo per azione su ogni eseguito.

Indichiamo con V il valore per azione di un eseguito, cioè il vostro edge più l’eventuale rebate, e con t la distanza di riprezzamento. La modifica è in pareggio quando la probabilità migliorata moltiplicata per il payoff ridotto equivale alla probabilità iniziale moltiplicata per il payoff pieno. Da qui si ricava una singola formula:

t = V x (1 - p0 / p1)

Con un eseguito del valore di 3 centesimi per azione e probabilità che passano dal 60% al 99%, la distanza di pareggio è vicina a 1,2 centesimi. Un miglioramento di un centesimo si ripaga da solo. Inseguire il prezzo di due centesimi no.

Applichiamo la stessa formula a un bot il cui unico edge è il maker rebate. I maker rebate di fascia alta sulle principali borse azionarie statunitensi sono compresi tra circa 0,20 e 0,30 centesimi per azione nei tariffari pubblicati a metà 2026; assumiamo quindi un quarto di centesimo. La formula porta a una distanza di pareggio vicina a 0,1 centesimi, mentre la variazione minima accettata da qualsiasi venue statunitense è un centesimo intero: circa dieci volte tanto. Un bot che riprezza l’ordine per proteggere un rebate paga un tick per inseguire un quarto di centesimo.

Il rebate viene riconosciuto sugli eseguiti, mai sulle intenzioni. Un ordine con un’ottima posizione in coda che non viene mai eseguito non genera nulla, e un rebate che non si incassa non è un risparmio. Commissioni e rebate maker-taker spiega come funzionano questi tariffari.

Quando non c’è margine per migliorare il prezzo

Il miglioramento del prezzo è possibile solo quando c’è spazio tra bid e offer. Sui titoli a maggiore capitalizzazione, nella maggior parte dei casi, questo spazio non esiste.

QueryFrequenza con cui lo spread quotato è di un solo centesimo (sessione del 10 giugno 2026)
L'esatto SQL dietro ogni numero
SELECT
    ticker                                                                                  AS symbol,
    round(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2)                        AS avg_spread_cents,
    round(100 * countIf(toFloat64(ask_price) - toFloat64(bid_price) <= 0.0105) / count(), 1) AS one_tick_wide_pct
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'KO', 'SPY', 'NVDA', 'COST', 'NFLX')
  AND sip_timestamp >= '2026-06-10 13:30:00'
  AND sip_timestamp <  '2026-06-10 20:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
  AND toFloat64(ask_price) - toFloat64(bid_price) < 5
GROUP BY ticker
ORDER BY one_tick_wide_pct DESC
Run this yourself

NFLX ha quotato con uno spread di un centesimo nel 81.4 percento degli aggiornamenti delle quotazioni del 10 giugno 2026, con uno spread medio di 1.3 centesimi. All’estremo opposto del panel, COST ha registrato una media di 77.53 centesimi. In un mercato a un tick non esiste un prezzo intermedio tra bid e offer verso cui spostarsi. L’unico modo per avanzare nella coda è attraversare lo spread. In questo modo si diventa taker: si paga la taker fee invece di incassare il rebate e si rinuncia all’intero spread, non a un solo tick.

Quante volte un bot di re-pricing deve scegliere

Un bot che segue il mercato non esegue questa operazione una sola volta. La esegue ogni volta che il miglior livello del book si allontana dal suo ordine.

QueryPrezzi bid migliori distinti per quarto d’ora (AAPL e KO, 10 giugno 2026)
L'esatto SQL dietro ogni numero
SELECT
    formatDateTime(toStartOfFifteenMinutes(et), '%H:%i') AS et_time,
    uniqExactIf(bid_price, ticker = 'AAPL')              AS aapl_distinct_bids,
    uniqExactIf(bid_price, ticker = 'KO')                AS ko_distinct_bids
FROM
(
    SELECT
        toTimeZone(sip_timestamp, 'America/New_York') AS et,
        ticker,
        bid_price
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('AAPL', 'KO')
      AND sip_timestamp >= '2026-06-10 13:30:00'
      AND sip_timestamp <  '2026-06-10 20:00:00'
      AND bid_price > 0
)
GROUP BY et_time
ORDER BY et_time
Run this yourself

Il miglior bid su AAPL ha toccato 359 prezzi distinti nel quarto d’ora iniziato alle 09:30 ET del 10 giugno 2026 e 152 nel quarto d’ora iniziato alle 15:45. Il miglior bid su KO ha toccato 78 prezzi nel primo intervallo di un quarto d’ora. Ognuno di questi movimenti può generare una modifica che un bot di re-pricing potrebbe inviare, e ogni modifica fa ripartire l’attesa. I bot di grid trading adottano l’approccio opposto: collocano una scaletta a prezzi fissi. I prezzi diventano obsoleti, ma la priorità resta.

Iceberg e self trade prevention

Due effetti di secondo ordine colgono spesso gli operatori alla sprovvista.

Gli ordini con quantità di riserva, generalmente chiamati ordini iceberg, mostrano una parte della quantità e mantengono nascosto il resto. Nella maggior parte dei book, ogni aggiornamento della quantità visualizzata si accoda nuovamente in fondo alla coda a quel prezzo. Un grande iceberg si comporta quindi come una serie di piccoli ordini che cedono continuamente la propria posizione agli ordini interamente esposti. Modificare la quantità visualizzata riavvia lo stesso ciclo.

L’altro effetto riguarda il self trade prevention. Le venue non consentono che l’ordine di un partecipante venga eseguito contro un suo ordine già presente sul book. La soluzione abituale consiste nel cancellare uno dei due ordini o, su alcune venue, entrambi. Un bot che aggiorna il prezzo su un book poco profondo può eliminare la propria quotazione sul lato opposto. In questo modo, una modifica comporta la perdita di due posizioni nella coda anziché di una. Le modifiche mantengono normalmente la validità temporale dell’ordine originario, mentre una cancellazione con reinserimento la azzera e la fa ripartire. Questo dettaglio è illustrato in validità temporale degli ordini.

FAQ

La modifica del prezzo di un limit order fa perdere la posizione in coda?

Sì. Sui book azionari statunitensi e sulla maggior parte delle venue futures, l’ordine viene considerato nuovo al nuovo prezzo e si colloca dopo tutte le azioni già presenti a quel livello. L’unica modifica che conserva la priorità è la riduzione della size allo stesso prezzo.

Cancel and replace equivale a modificare un ordine?

Dipende dalla venue. Un amendment è un singolo messaggio e può conservare la priorità quando viene ridotta soltanto la size. Un cancel and replace consiste invece in due eventi, con un intervallo durante il quale non hai alcun ordine resting, e il nuovo ordine si colloca sempre in fondo alla coda.

La riduzione della size di un ordine conserva la priorità in coda?

Sì, allo stesso prezzo. Le venue trattano la riduzione della size come una cancellazione parziale e le azioni residue conservano il timestamp originario. L’aumento della size non funziona allo stesso modo.

Quanto vale effettivamente la posizione in coda?

La probabilità di esecuzione che consente di ottenere, moltiplicata per il valore che un’esecuzione ha per te. Entrambe le componenti possono essere misurate: i pannelli sopra mostrano quanti volumi vengono eseguiti ogni minuto, mentre il tuo edge e l’eventuale rebate determinano il valore di un’esecuzione.


Ogni pannello qui include l’SQL che lo ha prodotto. Modifica il ticker o l’intervallo di date e poni la stessa domanda per qualsiasi nome sul terminale Strasmore.

#order book#queue position#execution#maker taker#trading bots