← Torna agli articoli
March 20, 2026
5 min di lettura

La Coda Dentro il Muro: Analisi della Posizione degli Ordini nella Densità del Book degli Ordini

La Coda Dentro il Muro: Analisi della Posizione degli Ordini nella Densità del Book degli Ordini
#book degli ordini
#posizione in coda
#scalping
#market making
#FIFO
#trading algoritmico
#microstruttura del mercato

Introduzione: Perché il Book degli Ordini Aggregato Mente

Ogni trader che opera sul book degli ordini vede la stessa immagine: le offerte d'acquisto a sinistra, le offerte di vendita a destra e a ogni livello di prezzo — un numero che mostra il volume totale degli ordini limite. Ad esempio:

Prezzo 10001  |  150 lotti
Prezzo 10000  |  2.400 lotti    muro
Prezzo  9999  |  80 lotti

2.400 lotti al livello 10000 — questo è un "muro" (densità). E qui si nasconde una domanda di importanza critica che la maggior parte dei trader ignora: dove esattamente all'interno di quei 2.400 lotti si trova il nostro ordine?

Prezzo 10000  [ 1.800 lotti PRIMA di noi ][ NOSTRO ORDINE 10 lotti ][ 590 lotti DOPO di noi ]

Questa non è curiosità accademica. È la differenza tra un ordine eseguito e uno non eseguito. Tra profitto e perdita. Tra un backtest che mostra una bella curva di equity e la realtà in cui la strategia non funziona.


Cos'è la Posizione in Coda e Perché Calcolarla

Coda FIFO all'interno di un muro di prezzo Visualizzazione di una coda FIFO: la posizione del trader tra gli altri ordini a un livello di prezzo

FIFO e la Realtà delle Borse

La stragrande maggioranza delle borse — sia tradizionali (CME, NASDAQ) che di criptovalute (Binance, Bybit, OKX) — utilizza la regola della Priorità Prezzo-Tempo (FIFO). Ciò significa: allo stesso prezzo, l'ordine inserito per primo viene eseguito per primo.

Quando arriva un ordine di mercato in vendita che "colpisce" il nostro livello di prezzo bid, riempie sequenzialmente gli ordini limite dalla testa della coda alla coda. Se l'ordine di mercato non era abbastanza grande da raggiungere la nostra posizione in coda — rimaniamo non eseguiti.

Due Componenti del Valore della Posizione in Coda

La ricerca accademica (Moallemi & Yuan, Columbia Business School, 2017) identifica due componenti del valore della posizione in coda:

  1. Componente statica — il compromesso tra cattura dello spread e selezione avversa. Più siamo indietro nella coda, maggiore è la probabilità di essere eseguiti da un grande ordine informato (anziché da rumore). In parole semplici: se vieni eseguito per ultimo nella coda — il prezzo si sta molto probabilmente già muovendo contro di te.

  2. Componente dinamica — l'opzionalità fornita dal miglioramento della posizione in coda nel tempo. Quando gli ordini davanti a noi vengono cancellati o eseguiti, la nostra posizione migliora senza alcuna azione da parte nostra.

I dati empirici mostrano che per strumenti con una grande dimensione del tick, il valore della posizione in coda può essere paragonabile alla dimensione dello spread. Si tratta di un'entità enorme.


Come Stimare la Propria Posizione in Coda

Il Problema della Stima

Inseriamo un ordine limite di dimensione S al prezzo P. Al momento dell'inserimento, ci sono già Q lotti a quel livello di prezzo. La nostra stima iniziale della posizione:

V̂(t₀) = Q(t₀)     — numero di lotti davanti a noi

Successivamente, monitoriamo tutte le variazioni di volume al nostro livello di prezzo. Questo è l'algoritmo chiave descritto da Erik Rigtorp e implementato nei prodotti di Trading Technologies (TT), Bookmap e altri.

Algoritmo di Aggiornamento

Per ogni diminuzione ΔQ al livello di prezzo, dobbiamo determinare: l'ordine era davanti a noi o dietro di noi?

Se riusciamo a distinguere le esecuzioni dalle cancellazioni:

  • Esecuzione (fill): riduce inequivocabilmente la coda davanti a noi → V̂ = max(V̂ + ΔQ, 0)
  • Cancellazione: incertezza — l'ordine cancellato potrebbe essere stato sia davanti che dietro di noi

Per le cancellazioni si utilizza un modello probabilistico:

V̂(n+1) = max(V̂(n) + p(n) × ΔQ(n), 0)

dove p(n) è la probabilità che l'ordine cancellato fosse davanti a noi. Una famiglia di modelli:

p(n) = f(V̂(n)) / (f(V̂(n)) + f(max(Q(n) - S - V̂(n), 0)))

dove f(x) è una funzione crescente, come ln(1+x) o la funzione identità. L'intuizione: più grande è il volume davanti a noi rispetto al volume dietro di noi, più è probabile che la cancellazione sia avvenuta davanti a noi.

Livelli di Dati e la Realtà dei Mercati Crypto

La qualità della stima dipende direttamente dalla granularità dei dati:

Livello Dati Cosa Vediamo Precisione Stima PIQ
Livello 1 (BBO) Migliore bid/ask + volume Impossibile stimare
Livello 2 (aggregato per prezzo) Volume a ogni livello di prezzo Stima probabilistica
Livello 3 (Market-by-Order, MBO) Ogni singolo ordine con ID Posizione esatta

Nel crypto, la situazione è la seguente:

  • Binance — fornisce un flusso di profondità L2 con aggiornamenti ogni 100ms. I dati L3 (MBO) non sono disponibili pubblicamente.
  • Coinbase — uno dei pochi CEX che offrono un flusso L3 tramite WebSocket con dati completi ordine per ordine.
  • CME (futures BTC/ETH) — dati MBO completi tramite il feed ITCH.

La maggior parte dei trader crypto lavora con L2, il che significa che si affida a stime probabilistiche. Ma anche una stima probabilistica è radicalmente migliore di nessuna stima.


Visualizzazione: Il Muro come Book degli Ordini Interno

Proponiamo di visualizzare ogni densità significativa (muro) come un mini book degli ordini all'interno del book degli ordini:

╔════════════════════════════════════════════════════════════════╗
║  Prezzo 10001150 lotti                                    ║
╠════════════════════════════════════════════════════════════════╣
║  Prezzo 10000[████████████░░░▓▓░░░░░░░]  2.400 lotti      ║
║                │   ↑ 1.800 primanoi590 dopo           ║
║                │   velocità drenaggio: ~120 lotti/sec          ║
║                │   ETA all'esecuzione: ~15 sec                 ║
╠════════════════════════════════════════════════════════════════╣
║  Prezzo  999980 lotti                                     ║
╚════════════════════════════════════════════════════════════════╝

Cosa Viene Calcolato in Tempo Reale

  1. Lotti davanti al nostro ordine — una stima del volume che deve essere eseguito o cancellato prima che arrivi a noi.

  2. Lotti dietro il nostro ordine — il volume inserito dopo di noi. Se il muro si sta rapidamente "gonfiando" dalla coda — altri partecipanti considerano questo livello attrattivo.

  3. Velocità di drenaggio della coda — calcolata dalle operazioni effettive (esecuzioni) a questo livello di prezzo. Espressa in lotti/secondo.

  4. Tempo Stimato all'Esecuzione (ETF) — una previsione del tempo prima che il nostro ordine venga eseguito, calcolata come lotti_davanti / velocità_drenaggio.

  5. Ordini multipli nella stessa densità — il bot può monitorare la posizione di ciascuno dei suoi ordini se ce ne sono diversi all'interno dello stesso muro.


Applicazione nello Scalping

Backtesting consapevole della coda Confronto tra backtesting naive e backtesting consapevole della coda: probabilità effettiva di esecuzione vs stima ottimistica

Il Problema del Backtesting Basato sulle Candele

Un backtest classico su candele OHLCV funziona come segue: se il prezzo ha raggiunto il nostro ordine limite — contarlo come eseguito. Ma questo è un errore critico:

Esempio. Abbiamo un buy-limit a 10000. Nella candela da 1 minuto, low = 10000. Il backtest sulla candela lo conta come esecuzione. Ma in realtà:

  • C'era un muro di 5.000 lotti al livello 10000
  • Il nostro ordine era in coda alla fine (posizione 4.800)
  • Solo 2.000 lotti hanno scambiato attraverso quel livello durante questo minuto
  • In realtà, il nostro ordine NON sarebbe stato eseguito

Il backtesting consapevole della coda risolve questo problema: modella la posizione in coda, conta il volume scambiato al livello dai dati tick e determina se il volume scambiato era sufficiente a raggiungere la nostra posizione.

Più di un'Esecuzione al Minuto

Nello scalping attivo, un ordine può essere eseguito e reinserito più volte in un singolo minuto. Un backtest basato sulle candele semplicemente non può modellare questo. Solo l'analisi a livello di tick con modellazione della coda consente di:

  • Determinare il momento esatto di ogni esecuzione
  • Capire se abbiamo il tempo di reinserire l'ordine
  • Stimare quante volte la strategia avrebbe effettivamente scattato in un intervallo

Previsione del Tempo all'Esecuzione

Un bot che conosce la propria posizione in coda e l'attuale velocità di "drenaggio" del muro può:

  1. Calcolare l'ETA — tempo approssimativo all'esecuzione
  2. Confrontare l'ETA con una previsione del movimento di prezzo — se ETA = 30 secondi, ma il nostro modello prevede un'inversione in 10 secondi, dovremmo cancellare l'ordine
  3. Adattare la dimensione dell'ordine — un ordine più grande è più vicino alla testa della coda sulle borse pro-rata (CME), ma sulle borse FIFO la dimensione non influenza la posizione in coda

Confronto della Velocità di Drenaggio con la Media

Una metrica preziosa per uno scalper: velocità corrente di drenaggio della coda vs velocità media su N candele.

  • Velocità superiore alla media → alta aggressività degli ordini di mercato → il muro potrebbe essere "sfondato" → la nostra esecuzione è più probabile
  • Velocità inferiore alla media → il mercato si è "bloccato" → il muro reggerà → l'ordine resterà in sospeso e il prezzo potrebbe allontanarsi

Dove Questo è Già Implementato: Panoramica del Mercato

Trading Technologies (TT) — Position In Queue (PIQ)

L'implementazione più matura. TT mostra il PIQ per ogni ordine del trader nella colonna Floating Order Book. Per le borse che forniscono dati sulla posizione in coda direttamente tramite il loro feed (CME, ICE), vengono mostrati valori esatti. Per le altre — una stima conservativa.

Bookmap Quant

La versione professionale di Bookmap ($499/mese) include la visualizzazione delle posizioni in coda degli ordini e l'esportazione degli eventi. Bookmap Quant utilizza dati MBO e la sua API L0 consente di costruire adattatori personalizzati per qualsiasi fonte di dati.

CQG — Stima della Posizione in Coda

CQG fornisce la stima della posizione in coda per i mercati futures. La piattaforma calcola una stima probabilistica del PIQ basata su dati L2/L3 e la visualizza nell'interfaccia DOMTrader.

Rithmic — Dati sulla Coda degli Ordini

Rithmic è un fornitore di dati di mercato che offre accesso a bassa latenza ai dati per la stima della posizione in coda. È utilizzato come layer infrastrutturale da molte prop trading firm e trader algoritmici per costruire i propri modelli PIQ.

Jigsaw Trading — Visualizzazione dell'Order Flow

Jigsaw Trading è specializzata nella visualizzazione dell'order flow con stima della posizione in coda. I suoi strumenti Depth & Sales e Reconstructed Tape aiutano i trader a vedere il quadro reale delle esecuzioni ai livelli di prezzo.

Modelli Accademici

  • Moallemi & Yuan (2017) — un modello formale per la valutazione della posizione in coda basato sui dati NASDAQ ITCH
  • Cont, Stoikov & Talreja (2010) — un modello del book degli ordini limite come sistema di processi nascita-morte
  • Gould & Bonart (2015) — lo squilibrio della coda come predittore del movimento del mid-price
  • Approcci Deep Learning — modelli RNN (Columbia, 2022) per stimare le probabilità e i tempi di esecuzione

Cosa NON Esiste sul Mercato

Nessuno dei prodotti esistenti offre la visualizzazione della struttura interna di un muro per i mercati crypto in un formato pensato per un bot di scalping. Questa è la nicchia che Marketmaker.cc può riempire.


Contrastare le Strategie dei Manipolatori

Rilevamento dello spoofing nel book degli ordini Rilevamento di muri falsi: ordini genuini vs blocchi di spoofing con alti tassi di cancellazione

Comprendere la struttura interna di un muro non riguarda solo l'ottimizzazione della propria esecuzione. È uno strumento di protezione dalla manipolazione e, se usato abilmente, uno strumento per leggere le intenzioni dei grandi player.

Spoofing: Muri Falsi

Lo spoofing è l'inserimento di ordini grandi con l'intenzione di cancellarli prima dell'esecuzione. L'obiettivo è creare una falsa impressione di offerta/domanda.

Come aiuta l'analisi PIQ:

  • Velocità di accumulo del muro. Un muro genuino si costruisce gradualmente. Un muro di spoofing appare istantaneamente.
  • Comportamento all'avvicinarsi del prezzo. Un muro genuino resta. Un muro-spoof "scappa."
  • Tasso di cancellazione. Gli spoofer cancellano gli ordini prima dell'esecuzione. Monitorare il rapporto inserito/cancellato permette il rilevamento dello spoof in tempo reale.
  • Ciclicità. Lo spoofing spesso mostra schemi ripetitivi: appare → scompare → appare a un nuovo livello.

Layering: Livelli Falsi a Cascata

Il layering è una forma più sofisticata di spoofing in cui vengono inseriti ordini falsi su più livelli di prezzo.

Come aiuta l'analisi PIQ:

  • Cancellazioni correlate. Se gli ordini su 5 livelli consecutivi vengono cancellati simultaneamente — è quasi certamente layering da parte di un singolo partecipante.
  • Asimmetria del book degli ordini. La liquidità genuina è di solito distribuita in modo più o meno uniforme.
  • Reazione alle esecuzioni. Gli ordini genuini vengono eseguiti e non "scappano."

Ordini Iceberg: Liquidità Nascosta

Un iceberg è un ordine grande suddiviso in piccole porzioni visibili. Dopo l'esecuzione di una porzione, quella successiva appare automaticamente.

Come aiuta l'analisi PIQ:

  • Il pattern del livello "immortale". Il volume viene continuamente eseguito ma non diminuisce.
  • Analisi di assorbimento. Il prezzo colpisce il muro, esegue il volume visibile, ma il muro si rigenera.
  • Comportamento della coda durante l'assorbimento. La nostra posizione "scivola" in avanti ogni volta che una fetta dell'iceberg viene eseguita e reinserita in coda.

Il Market Maker come Partecipante "Invisibile" nel Muro

I market maker professionisti impiegano diverse tattiche:

  1. Quote stuffing — inserimento e cancellazione massivi di ordini per "inquinare" i dati dei concorrenti
  2. Penny jumping — inserimento di un ordine un tick migliore del concorrente per catturare la priorità
  3. Dynamic quoting — adattamento degli ordini in tempo reale al variare dello squilibrio della coda
  4. Level defense — aggiunta di liquidità all'avvicinarsi del prezzo

Implementazione: Architettura del Modulo Queue Position Tracker

Dati in Ingresso

1. Stream WebSocket del book degli ordini (profondità L2):
   - Aggiornamenti migliore bid/ask
   - Aggiornamenti della profondità (volume a ogni livello di prezzo)

2. Stream WebSocket dei trade:
   - Ogni trade: prezzo, volume, lato (acquisto/vendita), timestamp

3. Ordini propri (dal bot di trading):
   - order_id, prezzo, dimensione, timestamp di inserimento

Algoritmo Core (Pseudocodice Python-like)

class QueuePositionTracker:
    def __init__(self, order_price, order_size, initial_depth):
        self.price = order_price
        self.size = order_size
        self.queue_ahead = initial_depth  # V̂(t₀) = Q(t₀)
        self.queue_behind = 0
        self.fill_velocity = EMA(span=30)  # EMA della velocità di esecuzione

    def on_trade(self, trade_price, trade_size):
        """Chiamato a ogni trade al nostro livello di prezzo"""
        if trade_price == self.price:
            self.queue_ahead = max(self.queue_ahead - trade_size, 0)
            self.fill_velocity.update(trade_size)

    def on_depth_change(self, new_depth, change_type):
        """Chiamato quando cambia la profondità al nostro livello di prezzo"""
        if change_type == 'cancel':
            total = self.queue_ahead + self.size + self.queue_behind
            p_ahead = log(1 + self.queue_ahead) / (
                log(1 + self.queue_ahead) + log(1 + self.queue_behind)
            )
            cancelled = abs(new_depth - total)
            self.queue_ahead = max(
                self.queue_ahead - p_ahead * cancelled, 0
            )
            self.queue_behind = max(
                self.queue_behind - (1 - p_ahead) * cancelled, 0
            )
        elif change_type == 'new_order':
            added = new_depth - (self.queue_ahead + self.size + self.queue_behind)
            self.queue_behind += added

    @property
    def estimated_time_to_fill(self):
        """Tempo stimato all'esecuzione in secondi"""
        if self.fill_velocity.value <= 0:
            return float('inf')
        return self.queue_ahead / self.fill_velocity.value

    @property
    def fill_probability(self, horizon_sec=60):
        """Probabilità di esecuzione entro un dato orizzonte"""
        expected_volume = self.fill_velocity.value * horizon_sec
        return min(expected_volume / max(self.queue_ahead, 1), 1.0)

Casi Limite Critici

  1. Muro completamente "consumato" — se queue_ahead scende a 0, il prossimo ordine di mercato ci esegue
  2. Cancellazione di massa (wall pull) — il muro scompare bruscamente, queue_ahead cambia drasticamente
  3. Il nostro ordine viene spostato — alla cancellazione e reinserimento, finiamo in coda
  4. Ordini multipli nello stesso muro — ognuno viene monitorato indipendentemente

Metriche per Dashboard e Backtesting

In Tempo Reale (Terminale di Scalping)

Metrica Formula Colore
Posizione in Coda % queue_ahead / total_depth × 100 Verde < 30%, giallo 30-70%, rosso > 70%
ETA all'Esecuzione queue_ahead / fill_velocity Secondi
Salute del Muro depth_now / depth_5sec_ago Stabilità del muro
Tasso di Assorbimento filled_volume / visible_depth Presenza di liquidità nascosta
Spoof Score cancel_rate × sudden_appear × distance_from_price 0-100, indicatore di falsità

Per il Backtesting (Simulazione Consapevole della Coda)

  1. Tasso di esecuzione corretto per la coda — percentuale di ordini effettivamente eseguiti tenendo conto della posizione in coda
  2. Latenza di esecuzione effettiva — tempo reale dall'inserimento all'esecuzione
  3. Selezione avversa per esecuzione — variazione media del prezzo contro di noi dopo un'esecuzione
  4. Correlazione della velocità della coda — correlazione tra la velocità di drenaggio della coda e il successivo movimento di prezzo

Book degli Ordini Sociale: Ordini di Team Dentro il Muro

Book degli ordini sociale Modello di visibilità a tre livelli: ordini personali, abbonamenti e posizioni del team all'interno del muro

Livello 1: Borsa o Piattaforma di Trading

Se sei una borsa o un terminale di trading, possiedi la conoscenza assoluta della posizione di ogni ordine di ogni utente. La piattaforma può mostrare a ogni utente quanto volume "altrui" sta davanti e dietro al suo ordine, senza rivelare l'identità degli altri partecipanti.

Livello 2: Piattaforma Marketmaker.cc — Ordini Personali + Layer Sociale

Su Marketmaker.cc, abbiamo in programma di implementare un modello di visibilità degli ordini a tre livelli all'interno del muro:

Ordini personali — il layer base. Ogni trader vede tutti i propri ordini con metriche individuali.

Ordini in abbonamento (signal provider) — trader che condividono le posizioni tramite abbonamento. Meccanismo opt-in: il leader decide se mostrare le posizioni.

Ordini del team (trading team / fondo) — il layer più prezioso per i gruppi professionali. Risolve i problemi: conflitti tra ordini, allocazione della liquidità, monitoraggio del rischio del team, formazione.

Modello dei Permessi

┌─────────────────────────────────────────────────────────────┐
│  Ordine del Trader                                           │
│                                                              │
│  Visibile a:                                                 │
│  ├── Il trader stesso           → SEMPRE                     │
│  ├── Abbonati                   → se il trader ha abilitato  │
│  │   ├── Ritardo di visualiz.   → configurabile (0s60s)     │
│  │   ├── Mostra dimensione      → sì / nascondi / arrotonda  │
│  │   └── Mostra ETA             → sì / no                    │
│  └── Team                       → se parte di un team        │
│      ├── Ritardo                → configurabile (0s5s)      │
│      ├── Mostra dimensione      → sì (per gestione rischio)  │
│      └── Visibilità per ruolo   → trader / manager / viewer  │
└─────────────────────────────────────────────────────────────┘

Trasparenza Totale: Borse DEX e Book degli Ordini On-Chain

Nelle borse DEX con book degli ordini on-chain — principalmente Hyperliquid — ogni ordine è collegato a un indirizzo wallet specifico. Possiamo vedere non solo il muro aggregato, ma ogni singolo ordine di ogni partecipante.

Tuttavia, lavorare con questi dati in tempo reale richiede l'esecuzione di un proprio nodo blockchain Hyperliquid.

Identificazione Automatica degli Ordini dei Manipolatori

Il quarto layer di visualizzazione — classificazione algoritmica degli ordini per tipo di partecipante: market maker, spoofer, retail. Gli algoritmi di classificazione operano su più livelli: rilevamento dello spoofing, classificazione dei market maker, rilevamento di scenari di squeeze e fingerprinting digitale dei trader.

Maggiori dettagli nel prossimo articolo della serie: "Impronta Digitale di un Trader: Come Identificare un Market Maker dal Comportamento nel Book degli Ordini"


Conclusione

L'analisi della posizione degli ordini all'interno della densità del book degli ordini è il prossimo passo evolutivo dal "guardare il book degli ordini" al "comprendere la microstruttura del mercato". Questo è il territorio dove si intersecano:

  • Teoria delle code — per la modellazione delle code
  • Modelli stocastici dell'order flow — per la stima delle probabilità di esecuzione
  • Machine learning — per il rilevamento dello spoofing e la previsione del comportamento del muro
  • Ingegneria a bassa latenza — per la ricezione e l'elaborazione dei dati in tempo reale

Ad oggi, nessun prodotto nel mercato crypto offre una visualizzazione completa del "muro come mini book degli ordini" con le posizioni degli ordini degli utenti, la stima dell'ETA, il rilevamento dello spoofing e il backtesting consapevole della coda in un'unica interfaccia.

Su Marketmaker.cc, stiamo lavorando per rendere questa analisi accessibile a ogni trader — dagli scalper singoli ai team di prop trading.



Fonti e Ulteriori Letture

Disclaimer: le informazioni fornite in questo articolo hanno solo scopo didattico e informativo e non costituiscono consulenza finanziaria, di investimento o di trading. Il trading di criptovalute comporta un rischio significativo di perdita.

Autori

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Resta un Passo Avanti al Mercato

Iscriviti alla nostra newsletter per approfondimenti esclusivi sul trading con IA, analisi di mercato e aggiornamenti sulla piattaforma.

Rispettiamo la tua privacy. Annulla l'iscrizione in qualsiasi momento.