Vai al contenuto

Matching engine: priorità e allocazione degli ordini

Il matching engine applica le regole della sede per abbinare ordini compatibili e allocare i fill. La priorità prezzo-tempo è comune ma non universale: esistono algoritmi FIFO, pro-rata e ibridi.

A chi serve — A chi vuole capire perché due ordini allo stesso prezzo possono ricevere fill diversi e perché il comportamento cambia tra prodotti o sedi.

Il matching engine è il sistema che, all'interno di una sede elettronica, abbina interessi di acquisto e vendita compatibili secondo il regolamento del mercato. Determina quali ordini possono incrociarsi, in quale sequenza viene assegnata la quantità e quali esecuzioni vengono comunicate ai partecipanti. Non prevede il prezzo e non sceglie discrezionalmente il “trade migliore”: applica regole e parametri definiti dalla venue.

In parole semplici — Il prezzo stabilisce quali ordini sono compatibili; l'algoritmo stabilisce chi riceve la quantità disponibile. “Prima arrivato, prima servito” è soltanto uno dei metodi possibili.

Il motore va distinto dal broker. L'intermediario riceve l'ordine del cliente, esegue controlli e decide come instradarlo secondo istruzioni e obblighi applicabili. Può inviarlo a una borsa, a un market maker, a un ECN, a un ATS o internalizzarlo. Il matching engine opera invece nel perimetro della singola sede o del singolo sistema di esecuzione. Investor.gov sottolinea che percorso, tempi e luogo di esecuzione incidono sul risultato finale.


Sequenza essenziale

Una pipeline tipica comprende:

  1. ricezione e validazione del messaggio: strumento, lato, quantità, prezzo, autorizzazioni e controlli di rischio;
  2. sequenziamento degli eventi ammessi, inclusi nuovi ordini, modifiche e cancellazioni;
  3. verifica dell'incrocio fra ordine aggressivo e interesse opposto;
  4. priorità di prezzo, se prevista: l'acquisto affronta gli ask più bassi, la vendita i bid più alti;
  5. allocazione della quantità tra gli ordini eleggibili allo stesso prezzo;
  6. trade report e aggiornamento di order book, quantità residue e stato degli ordini.

Alcune funzioni possono essere distribuite tra gateway, risk engine e motore centrale. L'architettura tecnica varia; ciò che conta per il trader è il regolamento pubblicato, non il nome del componente software.


Price-time, pro-rata e algoritmi ibridi

La priorità prezzo-tempo, spesso chiamata FIFO al medesimo livello di prezzo, assegna prima la quantità all'ordine arrivato prima. È comune, ma non è universale. CME Group documenta per i propri mercati algoritmi FIFO, FIFO con priorità dedicate, pro-rata, threshold pro-rata, configurable e combinazioni ibride. Prodotti diversi sulla stessa infrastruttura possono usare algoritmi diversi.

Con tre ordini resting allo stesso prezzo — A per 50 contratti, B per 30 e C per 20 — un ordine aggressivo da 40 produce risultati differenti:

Algoritmo semplificato Possibile allocazione
FIFO, A è il più vecchio A riceve 40; B e C zero
Pro-rata puro A 20, B 12, C 8
Ibrido una parte segue FIFO, la restante viene ripartita pro-rata

Gli algoritmi reali possono aggiungere arrotondamenti, quote minime, priorità top, lead market maker o regole sul residuo. L'esempio mostra il principio, non replica la specifica di un prodotto. Per sapere perché un ordine ha ricevuto un fill occorre identificare contratto, sessione e algoritmo vigente.

L'articolo 28 MiFID II richiede alle imprese d'investimento europee di gestire ordini comparabili dei clienti secondo il tempo di ricezione e con procedure rapide, eque e spedite. Questa prescrizione riguarda la gestione degli ordini da parte dell'impresa; non dimostra che ogni venue debba allocare i fill con un algoritmo price-time. Confondere i due livelli porta a generalizzazioni errate.


Come entrano i tipi d'ordine

Tipo Relazione con il matching engine
se accettato, cerca interesse opposto disponibile; può ricevere più fill, un fill parziale o nessun fill
può aggredire il book entro il limite oppure riposare; la coda dipende dall'algoritmo
può essere conservato dal broker o dalla venue; prima del trigger non è necessariamente presente nel book eseguibile

Un market grande non autorizza il motore a inventare controparti. Consuma la liquidità disponibile finché regole, protezioni e quantità lo permettono. Un limit non è necessariamente passivo: se attraversa il prezzo opposto, può eseguire subito. Lo stop aggiunge un livello precedente, perché occorre prima determinare se la condizione di attivazione è soddisfatta.


Elementi che modificano il risultato

Oltre all'algoritmo base, una sede può prevedere aste di apertura o chiusura, ordini iceberg o reserve, quantità implicite, self-trade prevention, price band, massimali di messaggi e controlli pre-trade. Alcune regole stabiliscono come perdere o conservare la priorità dopo una modifica. Un aumento di quantità o un cambio di prezzo, per esempio, può ricevere un nuovo timestamp; non esiste una regola unica valida per ogni mercato.

Il market maker è un partecipante o intermediario che quota prezzi e fornisce liquidità secondo i propri obblighi e incentivi. Il matching engine è l'infrastruttura che applica le regole agli interessi ammessi, compresi quelli dei market maker. I due ruoli non sono intercambiabili.

Per analizzare un'esecuzione servono almeno: stato dell'ordine, timestamp, prezzo e quantità di ogni fill, venue, algoritmo del prodotto, time in force e regole sulle modifiche. Il solo grafico delle candele non ricostruisce la coda né la quantità disponibile davanti all'ordine.

Errore tipico — Attribuire ogni mancato fill a un problema del broker senza verificare priorità, algoritmo, quantità davanti in coda e regole della sede.


Fonti

Collegamenti