Blog › Manutenzione di NinjaTrader
NinjaTrader 8 · Prestazioni e rischio

NinjaTrader 8 lento o con le candele congelate: perché succede, quanto ti costa e come risolverlo

Di Trading Strategy Designer · Lettura 8 min · Ricerca tecnica con fonti citate

Se il tuo NinjaTrader 8 è diventato lento, le candele smettono di aggiornarsi in pieno mercato o la piattaforma si chiude da sola, molto probabilmente il problema non è la tua connessione né il tuo computer: è nel database interno di NinjaTrader. E non è un fastidio tecnico — è un rischio finanziario misurabile.

In questa guida ti spieghiamo, con documentazione ufficiale e studi sottoposti a revisione paritaria, perché succede, quanto ti costa davvero, cosa puoi fare tu stesso e come evitare che accada di nuovo.

Cos'è il database di NinjaTrader e perché si degrada

NinjaTrader 8 salva i tuoi ordini, le esecuzioni, le posizioni e lo storico dei prezzi in un database SQLite locale (cartella Documenti\NinjaTrader 8\db). SQLite è affidabile in miliardi di installazioni, ma la sua stessa documentazione elenca le condizioni esatte che lo corrompono[1] — e diverse sono abituali in un ambiente di trading intensivo.

Perché NinjaTrader 8 è particolarmente vulnerabile

Condizione (SQLite ufficiale)Presente nel trading reale
Blocco del file difettoso / accesso concorrentePiù istanze o account condividono gli stessi file contemporaneamente
Errore di fsync (il disco “mente” sulla scrittura)Alto volume di ordini: migliaia di scritture per sessione
Spegnimento o crash a metà di una transazioneCadute del feed, riconnessioni, chiusure forzate
Backup durante una transazione attivaStrumenti che copiano la cartella con NinjaTrader aperto
La stessa guida di SQLite avverte che, a maggior volume di scrittura, maggiore è la dipendenza dal corretto funzionamento di fsync() — esattamente il profilo di un copiatore multi-account che emette migliaia di ordini al giorno.

Sintomi: come capire se è il tuo database

La catena causale: dal file alla perdita

Il danno segue una sequenza meccanica e riproducibile:

#AnelloCosa succede
1DB corrotto o enormeErrori di dati (ID duplicati) o file danneggiato; letture lente
2La piattaforma ricarica il DB nel thread dello schermoAlla riconnessione del feed, il grafico tenta di ricaricare le esecuzioni dal DB
3BloccoIl thread dello schermo si blocca; le candele si fermano, l'operatività prosegue su un altro thread
4Esecuzione danneggiataOrdini tardivi, duplicati o impossibili; posizione non gestita
5Perdita finanziariaSlippage, posizione intrappolata, rischio senza stop

Non è un fastidio tecnico: è un rischio finanziario misurabile

Un blocco è, in fondo, latenza estrema. E la latenza ha un costo quantificato dalla letteratura accademica.

Costo del ritardo
≈14%
del costo di immediatezza era dato da 500 ms di latenza; è triplicato rispetto al 5% del 1995[2]
Cresce con
σ ↑
la volatilità dell'attivo: più il prezzo si muove, più costòso diventa ogni millisecondo perso

Se 500 ms rappresentano già un costo sostanziale, un blocco di secondi o minuti trasforma quel costo in una perdita di primo ordine. E accade proprio quando il mercato è più volatile — ovvero quando il feed cade e il DB va sotto stress.

Uno studio del Journal of Financial Economics (2022) sulle interruzioni dei broker documenta inoltre che, quando la tua piattaforma ti blocca, perdi il controllo del tuo rischio nel momento peggiore; non è un aneddoto, è un effetto misurato su scala di mercato[3].

Un caso reale, già documentato da NinjaTrader[4]: un trader ha tentato di chiudere una posizione a un livello tecnico critico; la piattaforma si è bloccata e non è riuscito a uscire. Al ripristino, gli ordini di vendita che aveva premuto ripetutamente durante il blocco sono stati eseguiti più volte. Risultato dichiarato: perdite significative.

Come si traduce nel tuo P&L

DannoEffetto sul tuo conto
Slippage da bloccoPrezzo di entrata/uscita peggiore in ogni operazione interessata
Posizione intrappolataPerdita sul lato avverso mentre non puoi chiudere
Ordini duplicati / fantasmaEsposizione indesiderata, posizione invertita
Dati storici corrottiBacktest e statistiche calcolati male → decisioni errate
Registrazioni errateDispute con le prop firm, errori fiscali/contabili
Onestà: il guasto di fondo appartiene alla piattaforma (ricarica il suo database nel thread dello schermo). L'operatore non lo causa; lo subisce. Per questo la difesa corretta è preventiva e automatica, non dipendere dal fatto che l'utente “impari a riavviare”.

Soluzioni manuali (e perché non bastano)

Il problema è che questo è manuale, occasionale e rischioso: bisogna ricordarsene, scegliere il momento (mercato chiuso) e un passo sbagliato può lasciarti senza storico. La maggior parte reagisce solo quando qualcosa si è già rotto.

Il modo per non farlo accadere di nuovo: automatizzare la manutenzione

Invece di spegnere incendi, la soluzione sostenibile è che la manutenzione avvenga da sola, in secondo piano e nel momento giusto. Per questo abbiamo creato TSD DB Guardian, un programma esterno a NinjaTrader che si occupa della salute del suo database senza che tu debba fare nulla:

Funziona in modo programmabile (settimanale, ogni 15 o ogni 30 giorni) e include un pulsante di emergenza per avviare la manutenzione all'istante. È software per Windows che convive con NinjaTrader 8; non è un componente aggiuntivo che si carica dentro la piattaforma.

Onestà: DB Guardian riduce i blocchi e mantiene il database sano, ma non sostituisce i tuoi backup né garantisce risultati di trading. È uno strumento di manutenzione e protezione.

Smetti di litigare con il database di NinjaTrader

Prova TSD DB Guardian 14 giorni gratis, con tutte le funzioni e senza carta.

Scopri TSD DB Guardian Prova gratis 14 giorni
Controllo di salute del grafico a candele di NinjaTrader con TSD DB Guardian
TSD DB Guardian sorveglia la salute del database di NinjaTrader in secondo piano.

Domande frequenti

Perderò il mio storico dati riparando il database?

No, se si fa con un backup preventivo. DB Guardian esegue sempre il backup prima di agire; se lo fai manualmente, fai prima tu la copia.

Devo smettere di operare per fare la manutenzione?

No. DB Guardian aspetta il mercato chiuso e lavora in secondo piano. La manutenzione manuale conviene però farla con la piattaforma chiusa.

Questo è un indicatore di NinjaTrader?

No. È un programma Windows indipendente che convive con NinjaTrader 8 e si occupa del suo database dall'esterno.

Perché si blocca proprio nei momenti di maggior movimento?

Perché la volatilità porta più ordini, più scritture e più riconnessioni del feed — le condizioni esatte che stressano il database SQLite e innescano la ricarica nel thread dello schermo.

Riferimenti

  1. SQLite. How To Corrupt An SQLite Database File. sqlite.org/howtocorrupt.html
  2. Moallemi, C. C., & Saglam, M. (2013). The Cost of Latency in High-Frequency Trading. Operations Research, 61(5).
  3. Retail trader sophistication and stock market quality: Evidence from brokerage outages. Journal of Financial Economics (2022).
  4. NinjaTrader Support Forum. Issue with Order Flow Market Depth Map Freezing Platform — significant loss incurred.
  5. NinjaTrader Help Guide. Operations > Database Operations (Reset DB / Repair DB).

← Torna al blog