
Un codice di contratto future è composto da tre parti incollate insieme: un root del prodotto, una lettera del mese e un codice dell'anno. Per mappare correttamente i codici, leggi prima la coda (prima l'anno, poi la lettera del mese), tratta ciò che rimane come il root, e poi conferma quel root rispetto all'exchange e alle specifiche del contratto. Il resto di questa guida mostra come fare, dove le piattaforme non concordano, e come mantenere pulita la tua tabella di mappatura quando esegui backtest.
TL;DR
- La maggior parte dei simboli futures segue lo schema root del prodotto + lettera del mese + codice dell'anno, per esempio ESZ5 per il contratto E-mini S&P 500 di dicembre 2025, come spiega la guida alla simbologia di MetroTrade.
- Le dodici lettere dei mesi sono F, G, H, J, K, M, N, Q, U, V, X e Z. Non tutti i vendor le usano allo stesso modo, quindi configura esattamente le lettere usate dal tuo feed.
- Un anno a una sola cifra è ambiguo attraverso i decenni. Usa anni a due o quattro cifre in qualsiasi tabella di mappatura che mantieni.
- I root possono ripetersi tra exchange, dimensioni (full, mini, micro) e piattaforme, quindi una chiave di mappatura sicura include root, exchange, moltiplicatore e scadenza.
- Per i backtest, mappa ogni contratto datato a una serie continua attraverso una regola di roll e adjustment documentata.
Indice
- Come viene costruito un codice futures
- Le lettere dei mesi
- Il codice dell'anno è dove le mappature si rompono
- Stesso contratto, simboli diversi
- Verifica prima di fidarti di una mappatura
- Da contratti datati a una serie continua
- Prospettiva
- Errori comuni di mappatura
- Mettere al lavoro una tabella di mappatura
- Parti da dati puliti
- FAQ
- Fonti
Come viene costruito un codice futures
Ogni contratto future quotato è un prodotto specifico che scade in un mese specifico. Il codice deve trasportare tutti e tre questi elementi, quindi è costruito in tre parti.
- Root: da uno a tre (a volte più) caratteri che identificano il prodotto. ES è l'E-mini S&P 500, CL è il petrolio greggio, GC è l'oro.
- Codice del mese: una lettera per il mese di consegna o scadenza.
- Codice dell'anno: una, due o quattro cifre.
Investopedia descrive il ticker completo come un codice merce, una singola lettera del mese e un anno a due cifre, e fa l'esempio di CCZ18 come contratto sul cacao per dicembre 2018. Tastytrade scompone un simbolo negli stessi tre componenti e nota che il codice dell'anno conta soprattutto quando si cerca un contratto back-month, specialmente verso la fine di un anno solare.
Un trucco pratico: analizza da destra. Prendi le cifre dell'anno dalla fine, poi la singola lettera che le precede, e ciò che rimane è il root. ESZ5 diventa anno 5, mese Z, root ES. Analizzare da sinistra fallisce non appena un root ha due, tre o quattro lettere.
Le lettere dei mesi
Le lettere sembrano arbitrarie finché non vedi come sono state scelte. Investopedia nota che lettere che rappresentano azioni come bid e ask, lettere confuse come C, D ed E, e I ed L, facili da confondere quando scritte a mano, sono state eliminate dall'insieme tradizionale. Ciò che rimane, per la convenzione in stile CME che Overcharts elenca, è:
| Mese | Codice | Mese | Codice |
|---|---|---|---|
| Gennaio | F | Luglio | N |
| Febbraio | G | Agosto | Q |
| Marzo | H | Settembre | U |
| Aprile | J | Ottobre | V |
| Maggio | K | Novembre | X |
| Giugno | M | Dicembre | Z |
Due trucchi mnemonici aiutano. Il ciclo trimestrale usato dai futures su indici e valute è H, M, U, Z (marzo, giugno, settembre, dicembre). E Z chiude l'alfabeto proprio come dicembre chiude l'anno.
Un'avvertenza dalla stessa pagina di Overcharts: non esiste una nomenclatura comune per ogni data feed, quindi un feed può usare lettere diverse per lo stesso mese. Molti seguono lo standard dell'exchange che quota il contratto, ma non dovresti darlo per scontato. Alcune piattaforme scrivono per esteso un mese a tre lettere invece (ES SEP23 al posto di ESU3), che è un formato diverso per lo stesso contratto.
Il codice dell'anno è dove le mappature si rompono
La lettera del mese è stabile. L'anno no.
- Una cifra: ESM6 significa giugno di un anno che finisce con 6.
- Due cifre: ESM26 significa giugno 2026.
- Quattro cifre: ESM2026, che MetroTrade segnala essere usato da alcune piattaforme.
Discount Trading spiega che un codice a una cifra può essere ambiguo attraverso i decenni: ESM6 potrebbe essere 2016, 2026 o 2036. Per un trader che guarda solo contratti live questo è innocuo, perché solo uno di questi esiste alla volta. Per un ricercatore con dieci o più anni di storico in un'unica tabella, è una vera fonte di errori silenziosi.
Il settore si sta muovendo per superare il problema. AMP Futures ha annunciato nel 2018 che CQG è passato da un codice dell'anno a una cifra a uno a due cifre in modo che i contratti che attraversano più di un decennio potessero essere gestiti, e ha avvertito che i sistemi che supportano solo anni a una cifra avrebbero smesso di funzionare con il nuovo formato. Overcharts elenca quattro formati per l'anno (Y, YY, YYY e YYYY) e dice che quello corretto dipende dal data feed.
Regola per le tue tabelle: memorizza l'anno come quattro cifre in una colonna separata, e deriva da quello la stringa del vendor. Non memorizzare mai solo la stringa del vendor.
Stesso contratto, simboli diversi
Prendi l'E-mini S&P 500 in scadenza a marzo 2024. A seconda di dove guardi, quello stesso contratto può comparire come ESH4, ESH24 o ES MAR24. Su Rithmic è scritto con un suffisso dell'exchange: Ironbeam descrive il formato come codice del simbolo, codice del mese, cifra dell'anno, un punto e un codice dell'exchange, dando ESH4.CME.
Le differenze derivano da alcuni fattori:
- Larghezza dell'anno: una, due o quattro cifre, come sopra.
- Separatori e suffissi: punti, barre e tag dell'exchange. Alcune piattaforme retail mettono una barra prima del root, come in /ES.
- Ortografia del mese: lettera o abbreviazione a tre lettere.
- Nome del root: il root dell'exchange e quello del vendor possono differire, per esempio per prodotti con un codice di clearing diverso.
- Varianti di dimensione: Linn Software fa notare che Interactive Brokers usa un solo root sia per i contratti full che per i micro e li separa tramite un moltiplicatore.
Quest'ultimo punto è quello che morde. Se la tua chiave è solo il root, un contratto micro e uno full-size collassano in un'unica riga, e il tuo scaling del PnL risulta sbagliato di un fattore dieci.
Una chiave di mappatura sicura
Linn Software nota che Interactive Brokers ha bisogno di cinque informazioni per identificare esattamente un future: il codice sottostante, l'exchange, la valuta, il mese di scadenza e il moltiplicatore. Questa lista è un buon template per qualsiasi tabella di mappatura, qualunque sia il vendor:
| Colonna | Esempio | Perché è lì |
|---|---|---|
| Root dell'exchange | ES | Il prodotto sull'exchange |
| Exchange | CME | I root possono ripetersi tra piazze diverse |
| Valuta | USD | Esistono quotazioni dello stesso prodotto in valute diverse |
| Moltiplicatore | 50 | Separa full, mini e micro |
| Scadenza (AAAA-MM) | 2025-12 | Inequivocabile, ordinabile |
| Simbolo(i) del vendor | ESZ5, ESZ25, ES DEC25 | Una riga, molti alias |
La colonna degli alias è il cuore della mappatura. Una riga canonica per contratto, molte stringhe del vendor che vi puntano.
Verifica prima di fidarti di una mappatura
I formati dei simboli cambiano quando le piattaforme aggiornano i loro feed. Il consiglio di Discount Trading è di controllare il simbolo attivo nella ricerca simboli della piattaforma stessa prima di inserire un ordine. Overcharts va oltre per il lavoro sui dati: tratta il formato ufficiale del simbolo del feed come autorevole, e imposta l'esatta larghezza dell'anno e le lettere dei mesi, perché un simbolo costruito in modo errato semplicemente non verrà riconosciuto.
Una breve routine di verifica per ogni nuovo root che aggiungi:
- Trova il prodotto sulla pagina dell'exchange di quotazione e annota il root dell'exchange, la dimensione del contratto, il tick size e i mesi quotati.
- Confronta i mesi quotati con i mesi effettivamente presenti nei tuoi dati. Un prodotto quotato solo per marzo, giugno, settembre e dicembre non dovrebbe avere una barra di luglio.
- Costruisci il simbolo per una scadenza nota e cercalo nella tua piattaforma o feed.
- Controlla che il livello di prezzo e il tick size corrispondano alla specifica.
- Registra il moltiplicatore e la valuta nella tua tabella.
Il passaggio due intercetta più errori di qualsiasi altro. Un contratto che compare in un mese mai quotato dall'exchange è quasi sempre una lettera del mese etichettata male o un anno confuso.
Per un riferimento rapido su root futures, exchange e mercati, un riferimento sui root futures ed exchange è comodo da tenere aperto mentre costruisci la tabella.
Da contratti datati a una serie continua
Un backtest raramente gira su un unico contratto. Una strategia che tratta l'E-mini per dieci anni tocca circa quaranta contratti trimestrali, e ciascuno vive solo per pochi mesi di liquidità intensa. Serve quindi una regola che li cucia in un'unica serie. È qui che la mappatura dei codici smette di essere un lavoro d'ufficio e comincia a influenzare i risultati.
La panoramica metodologica di Quantpedia definisce l'approccio standard come la costruzione di un'unica sequenza continua da un flusso di contratti. Descrive due scelte che devi fare.
Quando effettuare il roll. Puoi fare il roll l'ultimo giorno di negoziazione del contratto in scadenza, ma spesso la liquidità si sposta verso il contratto successivo prima di quel momento. Molti ricercatori fanno il roll prima, basandosi sul volume o su un numero fisso di giorni prima della scadenza.
Come effettuare l'adjustment. Quantpedia descrive un metodo a differenza, in cui i contratti più vecchi vengono traslati verso l'alto o verso il basso di una costante per rimuovere il salto a ogni roll, lavorando a ritroso a partire dal contratto più recente. Descrive anche un metodo a rapporto, in cui i prezzi più vecchi vengono moltiplicati per una costante, e una combinazione pesata attorno alla data di roll.
Cosa significa questo per la mappatura:
- La tua tabella di mappatura deve indicare quale contratto datato è il front in ogni data. Tienilo come una tabella a sé con una data di inizio, una data di fine e l'identificativo del contratto.
- Mantieni la regola di roll versionata. Se passi da un roll all'ultimo giorno di negoziazione a uno basato sul volume, la serie cambia, e i vecchi risultati non sono più confrontabili.
- I contratti scaduti devono rimanere nella tabella. Se elimini ESZ5 dopo la scadenza non potrai più ricostruire la serie che lo utilizzava.
- Le serie back-adjusted hanno prezzi che non sono mai stati scambiati realmente. Usale per segnali e rendimenti, e usa i prezzi non rettificati per qualsiasi cosa legata a un livello reale, come stop posizionati a numeri tondi o stime del margine.
Un esempio pratico
Supponiamo che la tabella di roll indichi che l'E-mini di dicembre 2025 è front fino al 2025-12-11 e che il contratto di marzo 2026 subentri dopo. Nella data di roll i due contratti chiudono distanti 18 punti. Con il metodo a differenza sottrai quello scarto da ogni barra del contratto di dicembre e da tutto ciò che è precedente, così non c'è un salto artificiale di 18 punti nella tua serie dei rendimenti. Con il metodo a rapporto moltiplichi invece per il rapporto tra le due chiusure. In entrambi i casi è la tabella, non il simbolo del vendor, a dire al tuo codice quale contratto era live.
Prospettiva
Raccogliamo e manteniamo i nostri set di dati in autonomia, e il problema di mappatura trattato in questo articolo è qualcosa con cui ci confrontiamo ogni giorno. Un simbolo è utile solo se tutti, a valle, concordano sul suo significato, quindi il nostro approccio è verificare i dati barra per barra e documentare ogni adjustment che facciamo.
Il nostro punto di vista è che un backtest è onesto solo quanto lo sono i suoi dati. Se un codice del mese è sbagliato o un roll non è documentato, nessuna quantità di tuning della strategia potrà rimediarvi. Per questo costruiamo i nostri set come storici completi di minute-bar puliti, pronti per essere importati in piattaforme come MT4 e MT5, con gli adjustment riportati per iscritto in modo che tu possa riprodurli. Lo stesso standard vale sia che chi esegue il test sia una persona, sia una pipeline guidata dall'AI.
Quando hai una domanda su un simbolo, un roll o un adjustment, parli con gli ingegneri che raccolgono i dati, non con una coda di ticket.
Start
Errori comuni di mappatura
- Usare il root come chiave. Contratti full, mini e micro, e lo stesso root su exchange diversi, entrano in collisione.
- Fidarsi di un anno a una cifra. Sembra funzionare finché lo storico non attraversa un confine tra decenni.
- Assumere che ogni feed usi le stesse lettere dei mesi. Overcharts è esplicito nel dire che non esiste una nomenclatura universale.
- Eliminare i contratti scaduti. Perdi la possibilità di ricostruire o verificare la serie.
- Mescolare prezzi rettificati e non rettificati. Una chiusura back-adjusted non è un prezzo a cui avresti potuto effettivamente operare.
- Ignorare le differenze di sessione e fuso orario. Due vendor possono concordare sul simbolo e tuttavia tagliare la barra giornaliera in momenti diversi. La nostra guida su come far corrispondere i dati intraday all'esecuzione tratta questo tema per i metalli, e la stessa logica si applica ai futures.
- Scegliere un formato di file che nasconde i metadati. Se scadenza e moltiplicatore non sono nel file, devono vivere nella tua tabella. La nostra panoramica sui formati dei dati di mercato per i quant confronta le opzioni.
Mettere al lavoro una tabella di mappatura
Costruisci la tabella una volta sola e lascia che ogni altro strumento la legga. Uno schema funzionale prevede tre tabelle:
- Contratti: una riga per ogni contratto datato con la chiave canonica (root, exchange, valuta, moltiplicatore, scadenza).
- Alias: una riga per ogni stringa del vendor, che punta a un contratto, con il nome del vendor e la larghezza dell'anno annotati.
- Calendario di roll: una riga per ogni serie continua per periodo, che nomina il contratto front e la regola usata.
Con questo in atto, aggiungere una nuova fonte di dati significa aggiungere righe alla tabella degli alias, non riscrivere codice. Aggiungere un nuovo prodotto significa aggiungere il suo root, il moltiplicatore e i mesi quotati. E quando una piattaforma cambia il suo formato, come ha fatto CQG nel 2018, aggiorni gli alias e nient'altro.
Parti da dati puliti
Una tabella di mappatura vale quanto lo storico che c'è dietro. Su BacktestMarket vendiamo download una tantum di set di dati storici completi in minute-bar dal 2014 su forex, metalli, indici azionari, obbligazioni e materie prime, con bundle per asset class e dati futures back-adjusted come il Dax Pack Back Adjusted. Puoi sfogliare tutti i set di dati nella nostra pagina dei dati storici, oppure dare un'occhiata al Piano Annuale a 119€ all'anno.
Se stai impostando una nuova mappatura futures e vuoi confrontarti su simboli o adjustment, i nostri ingegneri possono aiutarti. Puoi anche vedere i nostri expert advisor e indicatori sulla home page di BacktestMarket.
FAQ
Cosa significa ESZ5?
ES è il root del prodotto per l'E-mini S&P 500, Z è il codice del mese di dicembre e 5 è l'anno. MetroTrade lo legge come il contratto di dicembre 2025. Alcune piattaforme scrivono lo stesso contratto con un anno a due o quattro cifre.
Le lettere dei mesi futures sono uguali su ogni exchange?
Perlopiù sì: le dodici lettere da F a Z sono la convenzione comune, e molti feed seguono lo standard dell'exchange di quotazione. Ma Overcharts fa notare che non esiste una nomenclatura comune tra tutti i data feed. Configura sempre le lettere documentate dal tuo feed specifico.
Perché alcuni simboli hanno anni a una cifra e altri a due?
I sistemi più vecchi o semplificati usano solo l'ultima cifra, mentre la maggior parte delle piattaforme moderne ne usa due. Discount Trading spiega che la forma a una cifra può essere ambigua attraverso i decenni. CQG è passato a due cifre in modo che i contratti che coprono più di dieci anni potessero essere rappresentati.
Come mappo i contratti scaduti per il backtesting?
Mantieni ogni contratto scaduto nella tua tabella dei contratti con la sua scadenza, e aggiungi un calendario di roll che indichi quale contratto era front in ogni data. Poi costruisci la serie continua con un metodo di roll e adjustment documentato, come delinea Quantpedia. Questo ti permette di ricostruire la stessa serie in seguito.
Cosa dovrei usare come chiave univoca per un contratto future?
Usa insieme root dell'exchange, exchange, valuta, moltiplicatore e mese di scadenza. Questo rispecchia i cinque dettagli di cui Interactive Brokers ha bisogno per identificare esattamente un future. Memorizza i simboli dei vendor come alias che puntano a quella chiave.
Fonti
- A Guide to Delivery Months in Futures Markets, Investopedia
- Futures Symbol Format, Overcharts Help Center
- Futures Symbology Explained for Beginners, MetroTrade
- Futures Contract Specifications Explained, Tastytrade
- Futures Symbol Guide, Discount Trading
- Change to CQG Symbols: Now 2-digit year code, AMP Futures
- Understanding Symbols on Rithmic, Ironbeam
- Interactive Brokers Symbol Guide, Linn Software
- Continuous Futures Contracts Methodology for Backtesting, Quantpedia
Consigliati
- Regole di Roll per i Contratti Futures
- Dati Futures Continui: Come Costruirli e Usarli
- Metodi di Rollover dei Futures che Riducono il Roll Drag per i Quant con Test su Minute Bar
Risorse correlate
Esplora i robot Expert Advisor di BacktestMarket per mettere in pratica le idee di questo articolo.

