Come esportare in CSV i dati del grafico di NinjaTrader, OHLCV e valori degli indicatori
NinjaTrader esporta nativamente i dati delle barre OHLCV tramite il Data Manager: clic destro su uno strumento, esporta, e ottieni un CSV delimitato da punto e virgola con data, ora, apertura, massimo, minimo, chiusura e volume. I valori degli indicatori non sono in quell'esportazione. Per ottenerli bisogna scrivere un indicatore NinjaScript che stampi i valori su file. Ecco come funzionano entrambi i percorsi.
- Il Data Manager di NinjaTrader esporta i dati delle barre OHLCV in un CSV delimitato da punto e virgola; il formato è data e ora, poi apertura, massimo, minimo, chiusura, volume.
- I valori degli indicatori non sono inclusi nell'esportazione OHLCV standard e richiedono un indicatore NinjaScript di esportazione che scriva i valori su file.
- Un output combinato OHLCV più indicatori richiede di eseguire l'esportazione NinjaScript insieme a quella dei dati delle barre e di unire i risultati.
Come esportare i dati delle barre OHLCV da NinjaTrader
NinjaTrader 8 conserva i dati storici delle barre nel proprio database locale. Per esportarli: apri il Control Center, vai su Tools > Historical Data (o Data Manager in alcune versioni), clic destro sullo strumento che vuoi e scegli Export. Scegli l'intervallo di date e il timeframe, poi conferma. NinjaTrader scrive un CSV nella cartella di output selezionata.
Il CSV esportato usa per impostazione predefinita il punto e virgola come delimitatore invece della virgola. L'ordine delle colonne è: Date;Time;Open;High;Low;Close;Volume per i timeframe intraday, oppure Date;Open;High;Low;Close;Volume per le barre giornaliere. Il formato della data è YYYYMMDD e quello dell'ora è HHMMSS.
L'esportazione OHLCV copre tutti i dati storici che NinjaTrader ha scaricato per quello strumento e quel timeframe. Se ti serve più storico, scaricalo prima con gli strumenti di download dei dati storici della piattaforma e poi esporta.
Cosa non include l'esportazione OHLCV standard di NinjaTrader
L'esportazione OHLCV del Data Manager contiene solo dati delle barre. Non include: valori degli indicatori calcolati su quelle barre, oggetti di disegno o dati di annotazione, storico delle operazioni o note a livello di sessione.
Il file è un'esportazione grezza dei dati di prezzo. Il livello di calcolo degli indicatori vive interamente nell'ambiente di esecuzione di NinjaTrader e non viene serializzato nel file dei dati delle barre. Se il tuo flusso di analisi dipende da specifiche letture degli indicatori accanto al prezzo, l'esportazione con solo OHLCV non porterà quel contesto.
Per l'esportazione strutturata di disegni e annotazioni accanto all'OHLCV, vedi /resources/articles/ninjatrader-drawing-export.
| Tipo di dato | Incluso nell'esportazione del Data Manager |
|---|---|
| Apertura, massimo, minimo, chiusura (per barra) | Sì |
| Volume (per barra) | Sì |
| Data e ora | Sì |
| Valori degli indicatori (EMA, RSI, VWAP, ecc.) | No |
| Oggetti di disegno e annotazioni | No |
| Storico delle operazioni ed esecuzioni | No |
| Note a livello di sessione | No |
Liste di strumenti e mesi dei contratti in NinjaTrader: trimestrali o mensili
Le liste di strumenti si trovano in Tools, poi Instrument Lists, nel Control Center di NinjaTrader. Una lista raggruppa gli strumenti così puoi eseguire lo Strategy Analyzer o un Market Analyzer su tutti insieme, o caricarli rapidamente in altre finestre.
In NinjaTrader i futures riportano la scadenza nel nome, come ES 12-26. La frequenza con cui compare un nuovo mese di contratto la decide la borsa: i futures sugli indici azionari del CME come ES e NQ quotano contratti trimestrali (marzo, giugno, settembre e dicembre), mentre il petrolio greggio (CL) quota un contratto ogni mese. Nessuno dei futures sugli indici più comuni ha una quotazione annuale.
Quando un contratto arriva alla data di rollover, Tools, poi Database Management, porta avanti gli strumenti. La guida di NinjaTrader spiega che un rollover aggiorna la scadenza in tutte le liste di strumenti e nelle finestre dei workspace aperti, e che devi salvare i workspace per mantenere la modifica. Le strategie NinjaScript non passano da sole al contratto successivo.
Per le esportazioni, controlla la Merge Policy in Tools, Options, Market data. MergeBackAdjusted unisce ogni scadenza in un'unica storia continua con gli scostamenti alle date di rollover; Do Not Merge mantiene un solo mese di contratto. Metti il mese del contratto e l'impostazione di merge nel nome del file, così potrai abbinare le barre in seguito.
- Futures sugli indici azionari (ES, NQ): trimestrali, marzo, giugno, settembre, dicembre.
- Petrolio greggio (CL): un nuovo contratto ogni mese.
- Il rollover in Database Management aggiorna ogni lista di strumenti; salva di nuovo i workspace.
- La Merge Policy decide se la storia esportata copre un solo contratto o più contratti.
Come esportare i valori degli indicatori da NinjaTrader
Per portare i valori degli indicatori in un file CSV, scrivi un indicatore NinjaScript che calcoli il valore che vuoi e lo scriva su un file a ogni aggiornamento di barra. L'ambiente NinjaScript di NinjaTrader ha accesso a System.IO per la scrittura su file.
Lo schema di base è: in OnStateChange per State.DataLoaded, apri uno StreamWriter sul percorso del file di destinazione. In OnBarUpdate, se BarsInProgress == 0 e IsFirstTickOfBar, scrivi nello StreamWriter Date, Time e i valori degli indicatori della barra corrente. In OnStateChange per State.Terminated, chiudi lo StreamWriter.
L'approccio con StreamWriter ti dà un registro barra per barra di qualsiasi indicatore disponibile nella libreria di NinjaTrader o di qualsiasi indicatore personalizzato che hai scritto. L'output è un file di testo delimitato che puoi aprire in un foglio di calcolo o importare in qualsiasi strumento di analisi. Per un'alternativa all'esportazione legata alla piattaforma, vedi /resources/articles/thinkorswim-to-csv-xlsx-annotations.
Combinare OHLCV e valori degli indicatori in un solo file
Ci sono due approcci per combinare le barre OHLCV con i valori degli indicatori. Il primo è scrivere un unico indicatore NinjaScript di esportazione che produca in ogni riga i campi OHLCV e i valori degli indicatori: così tutto resta allineato allo stesso timestamp della barra.
Il secondo approccio è esportare l'OHLCV dal Data Manager ed esportare separatamente i valori degli indicatori con NinjaScript, poi unire i due file in un foglio di calcolo o in uno script usando il timestamp comune come chiave di unione. Il formato del timestamp deve essere coerente tra i due file perché l'unione funzioni correttamente.
L'approccio con un unico file NinjaScript è più pulito per l'analisi ma richiede competenze NinjaScript per implementarlo. L'approccio con l'unione funziona senza codice personalizzato se i formati dei timestamp coincidono.
Dove l'esportazione di NinjaTrader mostra i suoi limiti e quando integrarla
Il flusso di esportazione di NinjaTrader, dal Data Manager o tramite NinjaScript, è affidabile per l'estrazione dei dati barra per barra, ma richiede sviluppo NinjaScript per qualsiasi cosa oltre all'OHLCV grezzo. Chi non sa programmare incontra una barriera concreta nell'esportazione dei valori degli indicatori.
L'altro limite è la portabilità delle annotazioni: disegni sul grafico, testo delle note e livelli di supporto e resistenza tracciati in NinjaTrader non sono presenti nelle esportazioni OHLCV o degli indicatori. Per i flussi che devono portare il contesto del grafico insieme ai dati delle barre serve un livello supplementare di esportazione delle annotazioni.
Per quel livello di annotazioni indipendente dalla piattaforma, vedi /resources/articles/chart-annotation-export-for-trading-journal-xlsx-csv e /resources/articles/export-tradingview-indicator-values-csv per un confronto multipiattaforma degli approcci di esportazione degli indicatori.
Domande frequenti
- NinjaTrader può esportare nativamente i valori degli indicatori in CSV?
- No. L'esportazione OHLCV del Data Manager include solo dati di prezzo e volume delle barre. Per esportare i valori degli indicatori devi scrivere un indicatore NinjaScript che usi System.IO.StreamWriter per scrivere i valori su file a ogni aggiornamento di barra.
- Quali dati OHLCV si possono esportare da un grafico NinjaTrader?
- Con il Data Manager puoi esportare data, ora, apertura, massimo, minimo, chiusura e volume per qualsiasi strumento e timeframe che NinjaTrader ha scaricato. L'output è un CSV delimitato da punto e virgola. Le esportazioni intraday includono una colonna dell'ora; quelle giornaliere no.
- Qual è il modo migliore per ottenere i dati del grafico NinjaTrader per un'analisi esterna?
- Per i dati delle barre OHLCV: usa l'esportazione del Data Manager. Per i valori degli indicatori: scrivi un indicatore NinjaScript di esportazione che scriva su file le letture degli indicatori barra per barra insieme ai campi OHLCV. Unisci i risultati sul timestamp se usi due esportazioni separate.
- Qual è il formato del delimitatore nell'esportazione CSV di NinjaTrader?
- NinjaTrader usa il punto e virgola come delimitatore invece della virgola nell'esportazione CSV predefinita. Quando importi in Excel o in altri strumenti, scegli "punto e virgola" come delimitatore durante l'importazione e non la virgola.
- I contratti futures in NinjaTrader sono trimestrali o mensili?
- Dipende dalla quotazione della borsa. ES e NQ quotano contratti trimestrali a marzo, giugno, settembre e dicembre; CL quota ogni mese. NinjaTrader chiama ciascuno con la sua scadenza, come ES 12-26, e Tools, poi Database Management, porta le liste di strumenti al mese successivo.
Prova MyLinedChart
MyLinedChart conserva disegni, note e valori degli indicatori come dati che puoi esportare, rivedere e riutilizzare.
Scopri MyLinedChart