
I formati dei dati di mercato rientrano in tre categorie pratiche: protocolli di serializzazione in tempo reale che trasferiscono i dati dai feed degli exchange, formati di storage che li archiviano, e strutture di campionamento che li rimodellano per l'analisi. Per i feed, conviene conoscere prima Simple Binary Encoding (SBE) e FAST. Per lo storage, Parquet e CSV. Tutto il resto si costruisce su questi cinque elementi.
TL;DR:
- I formati dei dati di mercato si suddividono in protocolli in tempo reale come SBE e FAST, formati di storage come Parquet e CSV, e strutture di campionamento come dollar bars e volume bars.
- I feed a bassa latenza utilizzano tipicamente SBE per una serializzazione compatta, con FIX che definisce il contenuto dei messaggi e FAST che ottimizza la banda su UDP, in particolare per i dati L2 e L3.
- Per l'archiviazione dei dati, Parquet è preferito per l'analisi grazie alla sua compressione columnar, mentre il CSV resta il formato universale per compatibilità, sebbene sia meno efficiente nelle query su larga scala.
- I metodi di campionamento basati su eventi, come le dollar bars, forniscono input più stabili e con meno rumore per i modelli di machine learning rispetto alle barre a tempo fisso.
- Una progettazione corretta dello schema, con versioning, unità di misura esplicite e definizioni leggibili da macchina, è essenziale per la riutilizzabilità dei dati e la validazione coerente tra sistemi diversi.
Indice
- Feed in tempo reale: SBE, FAST, FIX e la suddivisione L1/L2/L3
- Scegliere un formato di storage: CSV, Parquet e Avro a confronto
- Time bars contro barre basate su eventi: campionamento tick, volume e dollar
- Progettazione dello schema e metadati: cosa rende un formato riutilizzabile
- Come BacktestMarket confeziona i dati storici per l'importazione
- Dove le pipeline dati di produzione falliscono davvero
- Ottenere dati storici pronti per l'integrazione senza costruire la pipeline da soli
- Fonti
- FAQ
Feed in tempo reale: SBE, FAST, FIX e la suddivisione L1/L2/L3
FIX è lo standard di messaggistica che definisce cosa significa un messaggio di dati di mercato. Non definisce come questi byte viaggino sul filo, ed è qui che entrano in gioco i livelli di encoding. Simple Binary Encoding (SBE) è l'encoding preferito dalla FIX Trading Community per la serializzazione binaria a bassa latenza, favorito dalle venue che necessitano di messaggi compatti e di dimensione prevedibile, analizzabili senza pesante gestione di stringhe. FAST adotta un compromesso diverso: elimina la ridondanza dai campi ripetitivi per ridurre le dimensioni dello stream, il che si adatta bene ai feed multicast con banda limitata piuttosto che alla pura velocità di decodifica.
La granularità del feed determina cosa si riceve effettivamente:
- L1 fornisce il miglior bid, il miglior ask e l'ultimo trade, sufficiente per un ticker ma non per l'analisi dell'order flow.
- L2 aggiunge la profondità del book, più livelli di prezzo su ciascun lato, il che consente di modellare liquidità e slippage.
- L3 espone gli ordini individuali anziché i livelli aggregati, offrendo la ricostruzione completa dell'order book.
Le specifiche dei feed degli exchange definiscono tipicamente snapshot, aggiornamenti incrementali e meccanismi di recovery, e la specifica JSE Market Data Gateway è un esempio concreto: utilizza FAST su UDP con elenchi espliciti di campi per best bid/offer, messaggi di trade e recovery basato su sequenza. Qualsiasi consumatore deve implementare logiche per pacchetti fuori sequenza, rilevamento di gap sul multicast, e una chiara fonte di verità per i timestamp, poiché il tempo dell'exchange e il tempo di ricezione divergono sotto carico.
Scegliere un formato di storage: CSV, Parquet e Avro a confronto
Il CSV resta il formato di scambio universale proprio perché ogni strumento riesce a leggerlo, e grandi prodotti di dati storici vengono ancora distribuiti in questo modo: il dataset NYSE TAQ viene distribuito come CSV compresso in gzip, mappato in modo molto simile agli eventi del feed live originale. Ma il CSV è orientato per righe e non tipizzato, il che lo rende costoso da interrogare su larga scala. Apache Parquet risolve il problema con uno storage columnar e compressione integrata, permettendo a una query analitica di scansionare solo le colonne di cui ha bisogno invece di analizzare ogni riga.
Avro si colloca tra i due: orientato per righe come il CSV, ma con uno schema incorporato, il che lo rende adatto per pipeline di ingestione grezza che verranno successivamente convertite in Parquet per l'analisi. Uno schema pratico:
- Ingerire i messaggi grezzi del feed come Avro o JSON delimitato da newline, poiché lo schema viaggia insieme ai dati.
- Validare i record rispetto ai tipi attesi, agli intervalli e ai timestamp monotoni prima che qualsiasi processo a valle li tocchi.
- Convertire i batch validati in Parquet per l'interrogazione, mantenendo a disposizione esportazioni CSV per gli strumenti che accettano solo file flat.
Consiglio pratico: Tieni a disposizione nel tuo toolchain un reader compatibile con PyArrow come fallback; quasi ogni stranezza incontrata con Parquet è dovuta a un mismatch di versione tra le librerie di scrittura e lettura.
Time bars contro barre basate su eventi: campionamento tick, volume e dollar
Le time bars campionano il mercato a intervalli fissi, una barra al minuto indipendentemente dall'attività. È semplice, ma statisticamente scomodo: un minuto tranquillo e un minuto frenetico ricevono lo stesso peso. Le barre basate su eventi campionano in base all'attività anziché all'orologio, e la ricerca sulle strutture dei dati finanziari sostiene che spesso producono input più stabili per i modelli di machine learning rispetto alle barre a tempo fisso.
Le principali varianti:
- Tick bars: si chiudono dopo un numero fisso di trade, smussando i periodi di bassa attività.
- Volume bars: si chiudono dopo che un numero fisso di azioni o contratti viene scambiato, utili quando le dimensioni dei trade variano molto.
- Dollar bars: si chiudono dopo che un importo fisso in dollari cambia mano, restando più stabili tra diversi regimi di prezzo rispetto alle tick o volume bars, poiché si adattano automaticamente al movimento del prezzo.
- Imbalance bars: si chiudono quando il volume di acquisto e vendita diverge oltre una soglia, catturando momenti di flusso informato piuttosto che semplice attività.
Concettualmente, per costruire dollar bars: si somma il valore nozionale (prezzo per quantità) trade per trade, e una volta che il totale progressivo supera la soglia stabilita, si chiude la barra e si azzera il contatore. I backtest su strumenti liquidi tendono a favorire dollar o volume bars per la stabilità delle feature, mentre le time bars funzionano ancora bene per segnali a bassa frequenza e più grezzi. Per note di implementazione più approfondite e codice, i dati minute-bar strutturati in questo modo riducono il rumore che il campionamento a intervallo fisso introduce in un backtest.
Progettazione dello schema e metadati: cosa rende un formato riutilizzabile
Uno schema che solo tu riesci a leggere non è uno schema, è una passività. Parti da nomi di campo stabili, unità di misura esplicite (basis point contro percentuale, millisecondi contro microsecondi), ed enumerazioni invece di campi di stato in testo libero. Distribuisci lo schema stesso in una forma leggibile da macchina — JSON Schema, schema Avro o definizioni Protobuf — così i team a valle possono validare rispetto ad esso invece di indovinare dai record di esempio.
- Versiona lo schema in modo esplicito e documenta ogni modifica non retrocompatibile, non solo quelle additive.
- Includi record di esempio e un set di regole di validazione insieme al file dello schema, non in un wiki separato.
- Fissa una volta per tutte la tua convenzione di timestamp e fuso orario (UTC è l'opzione più sicura di default) e non mescolare mai convenzioni diverse tra i campi.
Consiglio pratico: Un breve README con un vocabolario controllato per i nomi dei campi contribuisce all'adozione più di una specifica lunga che nessuno legge. Quando nessuno standard industriale formale copre il tuo caso, gli standard di dati approvati dalla community raccomandano comunque un README chiaro più uno schema leggibile da macchina per mantenere i dati riutilizzabili e conformi ai principi FAIR.
Come BacktestMarket confeziona i dati storici per l'importazione
La piattaforma fornisce dati storici intraday minute-bar puliti su più asset class, strutturati per l'importazione diretta in piattaforme di trading come MT4 e MT5 senza un passaggio di conversione separato. I dataset vengono confezionati come set completi e pronti per il caricamento per ciascuno strumento, il che accorcia il ciclo ingestione-validazione-conversione che la maggior parte delle pipeline CSV o Parquet richiede ancora.
Prima di far girare un dataset in un backtest, controlla tre cose: la continuità barra per barra (nessun gap inspiegato), l'allineamento dei timestamp rispetto alla convenzione di orologio della propria piattaforma, e la gestione coerente degli aggiustamenti su qualsiasi serie futures back-adjusted. La guida sull'importazione di dati CSV in MT4 illustra la meccanica di quest'ultimo passaggio di importazione una volta che il dataset stesso risulta verificato.

Dove le pipeline dati di produzione falliscono davvero

Il vero compromesso non è latenza contro funzionalità, ma ergonomia contro correttezza, e la maggior parte dei team ottimizza prima la cosa sbagliata. Timestamp fuori ordine, trade duplicati vicino alle riconnessioni del feed, e i confini dell'ora legale causano più incidenti in produzione di quanto non faccia mai la scelta dell'encoding.
Prima di fidarti di un feed, riproduci per intero una sessione registrata, esegui test di vincolo su ogni campo (prezzo maggiore di zero, ID di sequenza monotoni, valori di enumerazione validi), e alimenta la pipeline con casi limite sintetici come un gap-fill o uno snapshot duplicato. Prima correggi la correttezza dell'ingestione, poi preoccupati di risparmiare microsecondi.
— Inizio
Ottenere dati storici pronti per l'integrazione senza costruire la pipeline da soli
Costruire una pipeline conforme di ingestione-validazione-storage a partire da feed grezzi degli exchange richiede un tempo di ingegnerizzazione reale. BacktestMarket accorcia questo processo fornendo dati storici minute-bar puliti su forex, metalli, obbligazioni e indici azionari a partire dal 2014, confezionati per l'uso immediato anziché dump grezzi degli exchange che dovresti pulire da solo.

- I dataset arrivano pronti per l'importazione diretta in MT4 o MT5, senza necessità di un passaggio manuale di riformattazione.
- Il BTM Data Converter gestisce la conversione del formato quando serve una struttura diversa rispetto al pacchetto predefinito.
- Il supporto arriva direttamente dagli ingegneri che costruiscono e mantengono i dataset, non da un help desk generico.
Per i lettori che desiderano un accesso continuo anziché download singoli, il Piano Annuale copre l'accesso continuativo ai dati a 119 EUR all'anno. Sfoglia il catalogo completo dei dati storici per vedere la copertura degli strumenti prima di impegnarti in un'architettura di backtest.
Fonti
- Simple Binary Encoding (SBE) — FIX Trading Community
- Apache Parquet — Wikipedia
- Standard di dati approvati dalla community — ARDC
- Strutture dei dati finanziari — RiskLabAI
- Specifica JSE Market Data Gateway (FAST - UDP)
FAQ
Quali sono i diversi tipi di dati di mercato?
I dati di mercato si suddividono generalmente in dati di feed in tempo reale (quotazioni, trade, profondità dell'order book), dati storici usati per backtest e ricerca, e dati di riferimento come identificativi degli strumenti e corporate action. Dal punto di vista del formato, i feed utilizzano tipicamente encoding binari come SBE, mentre gli archivi storici usano comunemente CSV o Parquet.
Cosa sono i dati di mercato L1, L2 e L3?
L1 copre il miglior bid, il miglior ask e l'ultimo prezzo di trade, il minimo necessario per la visualizzazione di una quotazione. L2 aggiunge più livelli di prezzo di profondità su ciascun lato del book, mentre L3 espone gli ordini individuali anziché i livelli aggregati, consentendo la ricostruzione completa dell'order book.
Quali sono i 7 tipi di mercati finanziari?
Le definizioni variano a seconda della fonte, ma una suddivisione comunemente citata include mercati azionari, mercati obbligazionari, mercati monetari, mercati dei derivati, mercati forex, mercati delle commodity e mercati delle criptovalute. Ognuno ha i propri formati di dati e convenzioni di feed, sebbene gli approcci di serializzazione e storage sottostanti trattati qui si applichino ampiamente a tutti loro.
Cos'è la regola 3-5-7 nel trading?
La regola 3-5 è una linea guida di risk management, non uno standard di formato dati, e va oltre lo scopo degli schemi di dati di mercato trattati qui. In generale si riferisce a limitare il rischio per singolo trade e per l'intero portafoglio a percentuali predefinite, ma è consigliabile consultare una risorsa dedicata al risk management piuttosto che una guida sulla formattazione dei dati.
Perché i quant preferiscono le dollar bars o le volume bars alle time bars?
Le barre basate su eventi campionano in base all'attività di mercato anziché all'orologio, e la ricerca sulle strutture dei dati finanziari suggerisce che questo produce input più stabili per il machine learning rispetto alle barre a tempo fisso. Le dollar bars in particolare si adattano ai cambiamenti di prezzo nel tempo, mantenendo la frequenza delle barre più coerente tra diversi regimi di volatilità.
Consigliati
- Minute Bar Data: cosa serve ai quant per backtest affidabili
- Gap Festivi nei Dati di Mercato: guida pratica per i quant
- 5 Controlli che i Quant Devono Eseguire sui Dati M1 con Outlier Gestiti Prima di MT4/MT5
- Dati Intraday Nasdaq: Accesso, Specifiche e Utilizzo Pratico
Risorse correlate
Esplora i pacchetti di dati storici di BacktestMarket per mettere in pratica le idee di questo articolo.
