Il book
Ogni strumento ha il proprio book, tenuto in memoria come tre strutture che cooperano:Slab arena — una regione preallocata di slot per ordini
Livelli di prezzomappa ordinata, prezzo → livelloil top del book si trova andando in fondo, non scandendo
Indice ordiniid ordine → slotannulla e modifica a tempo costante
ordine
ordine
ordine
ordine
ordine
Catena doppiamente concatenata in sequenza di arrivo: la priorità dentro un livello è posizionale, non calcolata.
Perché l’ordine di riuso è fissoGli slot liberati sono riusati in ordine fisso e l’indice ha seed fisso. Non è una scelta di prestazioni: due validatori che li riusano in ordini diversi divergerebbero.
testa di ogni livello
lookup diretto
Gli ordini risiedono in una slab arena: una regione preallocata con allocazione e rilascio a tempo costante. Le operazioni sul book quindi non allocano sul percorso critico, e gli slot liberati vengono riusati in un ordine fisso invece che dove capita all’allocatore. Quest’ultimo dettaglio non è una scelta di prestazioni: se due validatori riusassero gli slot in ordini diversi, tutto ciò che osserva la disposizione degli slot divergerebbe.
La stessa disciplina vale per l’indice degli ordini, il cui seed è fisso e non casuale. Una hash map con seed per processo è una difesa standard contro gli attacchi per collisione; su un percorso di esecuzione di consenso è un fork.
I prezzi sono interi ovunque: unità di subtick, non decimali. Vedi Precisione per come questo si traduce in ciò che invii.
La priorità
La priorità è prima il prezzo, poi la posizione nella catena a quel prezzo. Il «tempo» è la posizione canonica dell’ordine nella sequenza confermata del blocco, non il momento in cui è arrivato a un nodo. È questo a eliminare la corsa alla latenza dentro il blocco. Due ordini nello stesso blocco hanno una precedenza definita che ogni validatore calcola in modo identico, e nessuna vicinanza a un nodo particolare la cambia. Tra un blocco e l’altro l’arrivo conta ancora, ma l’unità di competizione è il blocco, non il microsecondo. L’ordine delle fasi del kernel rafforza tutto questo: dentro un blocco gli annullamenti vengono eseguiti prima delle immissioni aggressive, così un prezzo esposto in book non può essere colpito da un ordine arrivato nello stesso blocco del suo annullamento.Incrociare un ordine
Ordine in arrivo
Incrocia il book?
Consuma il miglior livello opposto
Emette l’esecuzione
Fine
Resta in book o è rifiutato, secondo la validitàGTC resta in book · IOC lo annulla · FOK non esegue nulla se non per intero · post-only è rifiutato invece di incrociare
residuo — prende il livello dopo
nessun residuo
- GTC — il residuo resta in book.
- IOC — il residuo viene annullato.
- FOK — se l’ordine non può essere eseguito per intero, non viene eseguito niente.
- ALO — post-only (solo maker): se l’ordine prendesse liquidità, viene rifiutato invece di incrociare.
Prevenzione dell’auto-negoziazione
Quando un ordine in arrivo si incrocerebbe con liquidità in book dello stesso titolare, l’incrocio viene soppresso invece che eseguito. Quale lato cede è configurabile:
I maker annullati in questo modo vengono raccolti durante il matching e rimossi come parte dello stesso blocco, così nel book non resta un ordine già soppresso.
Per questo controllo la titolarità si risolve al livello di conto che il book traccia. Vedi Prevenzione dell’auto-negoziazione per la prospettiva lato trading.
Che cosa il matching non fa
Non calcola le commissioni, non realizza il P&L, non aggiusta le posizioni e non controlla il margine. Quelle cose avvengono dopo il matching, nella stanza di compensazione, guidate dalle esecuzioni che il matching ha prodotto. Non decide nemmeno se un ordine avesse il diritto di esistere. L’adeguatezza del margine, i limiti sugli ordini aperti, i vincoli reduce-only e la conversione da mercato a limite sono risolti prima che un ordine arrivi al book. Quando il motore di matching vede un ordine, la domanda è solo dove collocarlo nel book.Dove proseguire
Stanza di compensazione
Che cosa succede a saldi e posizioni una volta che le esecuzioni esistono.
Tipi di ordine
La prospettiva lato trading: che cosa puoi inviare e come si comporta ciascun tipo.
Book degli ordini
Profondità, livelli e come leggere il book da trader.
IntentionKernel
Dove sta il matching nell’esecuzione del blocco.