Cache delle barre e pipeline dello storico: cache, copertura, broker, live
Ogni grafico footprint carica le sue barre attraverso un solo controller: legge la cache SQLite locale, chiede alla cache quali finestre mancano, scarica dal broker solo quelle e infine applica i lotti live. La cache è indicizzata su uno strumento canonico e conserva la granularità a 1 minuto da cui vengono derivati i timeframe intraday.
Senzoukria · Documentazione · Aggiornato a settembre 2026
Dove trovarlo
- Fasi
- idle → cache → ensure → live, riportate con una percentuale di avanzamento che non torna mai indietro durante una stessa esecuzione
- Granularità pivot
- 1m. Ogni timeframe intraday che divide esattamente viene sommato localmente dalle barre a 1 minuto in cache; 1d e le barre a conteggio (100t, tick/volume/range/delta) sono in cache alla loro granularità
- Intervallo storico
- Impostazioni del grafico → «Intervallo storico»: 24 ore (oggi), 3 giorni, 7 giorni. Predefinito 24 ore (oggi). La finestra chiesta al broker è intervallo × 24 ore all'indietro da adesso, indipendentemente dal fuso di visualizzazione; il timeframe giornaliero mantiene un minimo di 360 ore
- Dove si gestisce la cache
- Impostazioni → «Cache e broker» rimanda alla pagina Account: «Feed, broker e cache locale vivono nella pagina Account.» Nessun controllo del grafico cancella barre in cache
Che cosa fa
Il controller dello storico esegue la stessa sequenza per ogni fonte dati. Prima impagina la cache (cache_query_page, 1.000 righe per pagina, al massimo 64 pagine) per la finestra richiesta. Poi chiede a cache_coverage quali buchi ci sono dentro quella finestra e passa al broker solo quelli (rithmic_history_ensure con il tick size dello strumento). Infine si sottoscrive ai lotti live e li fonde nello stesso store.
Le barre sono conservate per timestamp di bucket con una provenienza: synthetic, ohlcv, cache, hist o live. Una regola di fusione decide quale copia vince: una barra reale sostituisce sempre una sintetica, una barra live sostituisce il bucket in formazione, OHLCV non sovrascrive mai una barra esistente e, altrimenti, si tiene la copia con più volume (poi con più scambi). È questo che permette a una barra in cache, a una riscaricata e a una live di coesistere senza raddoppiare il volume.
I simboli non Rithmic sono normalizzati in una chiave canonica come ESZ6.CME (radice, codice del mese, ultima cifra dell'anno, borsa) così che «ES 12-26» proveniente da un bridge ed «ESZ6» da Rithmic condividano le stesse righe di cache. I simboli Rithmic sono conservati come vengono inviati, con la borsa aggiunta quando è nota.
Impostazioni e limiti
| Impostazione | Predefinito | Che cosa cambia |
|---|---|---|
| Intervallo storico (impostazioni del grafico) | 24 ore (oggi) | Finestra richiesta a cache e broker: 1, 3 o 7 giorni × 24 ore all'indietro da adesso. Il fuso di visualizzazione governa l'asse, non la quantità di dati. Offline, la finestra di cache è ancorata alla barra in cache più recente anziché all'orologio |
| Tetto di barre per timeframe | 15s/30s 200 · 1m 1.500 · 3m 1.200 · 5m 2.100 · 15m 3.000 · 1h 4.500 · 1d 400 · 100t 1.500 | Numero massimo di barre tenute in memoria; i tetti dei timeframe al minuto (tranne 1d) sono moltiplicati per l'intervallo in giorni |
| Timeframe personalizzati | Da 120 a 1.500 barre (25 ore); da 2h in su fino a 4.500 (190 giorni) | Tetto calcolato dal periodo quando il timeframe non è in tabella |
| Tick size | Dal catalogo degli strumenti | Passato alla fase ensure; senza di esso il backend raggruppa sulla griglia predefinita e la finestra non viene mai marcata come coperta |
| Ricarica storico | Pulsante | ⚙ → Impostazioni di trading → Ricarica storico riapre le finestre che il broker ha restituito con zero tick; non cancella nulla |
Come usarla
- Apri il grafico sul timeframe che ti serve; lo storico si riempie da solo e resta su disco, così alla successiva apertura si legge la cache prima di interrogare il broker.
- Passa liberamente fra 1m, 5m, 15m e gli altri timeframe derivabili: vengono sommati localmente dalla granularità a 1 minuto, senza alcun round-trip.
- Allarga l'Intervallo storico solo quando serve: una settimana di footprint a 1 minuto è una montagna di tick e il primo caricamento richiede tempo.
- Quando un avviso segnala che un altro caricamento dello storico è in corso o che il caricamento si è bloccato, premi Ricarica storico nelle impostazioni del grafico: niente altro nell'applicazione riapre una finestra tornata vuota.
Avvisi e trappole
- «CME Globex è chiuso» significa che non c'è nulla di nuovo da scaricare; le barre in cache restano sul grafico e una sessione già drenata resta riproducibile.
- I rifiuti con rp_code 13 sono di solito intermittenti; il grafico continua a funzionare su dati in cache e live e riprova da solo.
- «La griglia di prezzo di questo strumento è sconosciuta» significa che il tick size non è nel catalogo, quindi lo storico viene riscaricato a ogni caricamento finché non lo si aggiunge.
- Una finestra tornata vuota non viene mai richiesta di nuovo in automatico; Ricarica storico è l'unica cosa che lo sblocca.
- La fase ensure ha un watchdog di stallo a 120 secondi e riprova dopo 3 secondi su un backend occupato; il controller non chiama mai cache_clear e non tocca localStorage.
- Il suggerimento dell'Intervallo storico nelle Impostazioni dice che la finestra è contata dalla mezzanotte nel fuso scelto; il controller dello storico chiede invece intervallo × 24 ore all'indietro da adesso, quindi un grafico letto a fine giornata può portare poco più di un giorno di calendario.
Pagine correlate
- Scaricamento dello storico crypto
- Riempire uno storico lungo per i backtest
- Glossario: tick size
- Come leggere un grafico footprint
Questa pagina in altre lingue
Domande frequenti
- Perché il grafico mostra già le barre mentre la barra di avanzamento si muove ancora?
- La fase di cache pubblica le barre appena le pagine vengono lette (fino al 25 % dell'avanzamento), poi la fase ensure riempie i buchi che il broker deve ancora inviare.
- Posso svuotare la cache per rimediare a un caricamento sbagliato?
- Il controller dello storico non chiama mai cache_clear e il grafico non offre alcuno svuotamento. La leva è Ricarica storico nelle impostazioni del grafico, che riapre solo le finestre tornate con zero tick e lascia intatti le barre in cache e il flusso live.
- Le cache del bridge e di Rithmic sono condivise?
- Le righe sono indicizzate sulla chiave canonica dello strumento, quindi un contratto ES di dicembre visto da un bridge e da Rithmic finisce sulla stessa chiave quando il simbolo è interpretabile.