Så exporterar du diagramdata, OHLCV och indikatorvärden från NinjaTrader till CSV
NinjaTrader exporterar OHLCV-data för staplar direkt via Data Manager: högerklicka på ett instrument, välj export, och du får en semikolonavgränsad CSV med datum, tid, open, high, low, close och volym. Indikatorvärden finns inte med i den exporten. För att få ut indikatorvärden behöver du skriva en NinjaScript-indikator som skriver värdena till en fil. Så fungerar båda vägarna.
- NinjaTraders Data Manager exporterar OHLCV-data för staplar till en semikolonavgränsad CSV; formatet är datum och tid, sedan open, high, low, close och volym.
- Indikatorvärden ingår inte i den vanliga OHLCV-exporten och kräver en NinjaScript-exportindikator som skriver värdena till fil.
- För OHLCV och indikatorer i samma utdata kör du NinjaScript-exporten parallellt med exporten av stapeldata och slår ihop resultaten.
Så exporterar du OHLCV-data för staplar från NinjaTrader
NinjaTrader 8 lagrar historisk stapeldata i sin egen lokala databas. För att exportera den: öppna Control Center, gå till Tools > Historical Data (eller Data Manager i vissa versioner), högerklicka på det instrument du vill ha och välj Export. Välj datumintervall och tidsram och bekräfta. NinjaTrader skriver en CSV till den utdatamapp du valt.
Den exporterade CSV-filen använder som standard semikolon som avgränsare i stället för komma. Kolumnordningen är: Date;Time;Open;High;Low;Close;Volume för intradagstidsramar, eller Date;Open;High;Low;Close;Volume för dagsstaplar. Datumformatet är YYYYMMDD och tidsformatet är HHMMSS.
OHLCV-exporten omfattar all historisk data som NinjaTrader har laddat ner för det instrumentet och den tidsramen. Om du behöver mer historik, ladda ner den först via plattformens verktyg för nedladdning av historisk data innan du exporterar.
Vad den vanliga OHLCV-exporten från NinjaTrader inte innehåller
OHLCV-exporten från Data Manager innehåller bara stapeldata. Den innehåller inte: indikatorvärden beräknade från de staplarna, ritobjekt eller annoteringsdata, affärshistorik eller anteckningar på sessionsnivå.
Filen är en export av rå prisdata. Lagret för indikatorberäkning finns helt i NinjaTraders körmiljö och serialiseras inte till stapeldatafilen. Om ditt analysarbetsflöde bygger på specifika indikatoravläsningar vid sidan av pris, kommer en export med bara OHLCV inte att bära med sig den kontexten.
För strukturerad export av ritningar och annoteringar tillsammans med OHLCV, se /resources/articles/ninjatrader-drawing-export.
| Datatyp | Ingår i exporten från Data Manager |
|---|---|
| Open, High, Low, Close (per stapel) | Ja |
| Volym (per stapel) | Ja |
| Datum- och tidsstämplar | Ja |
| Indikatorvärden (EMA, RSI, VWAP osv.) | Nej |
| Ritobjekt och annoteringar | Nej |
| Affärshistorik och fills | Nej |
| Anteckningar på sessionsnivå | Nej |
Instrumentlistor och kontraktsmånader i NinjaTrader: kvartalsvis eller månadsvis
Instrumentlistor finns under Tools och sedan Instrument Lists i NinjaTraders Control Center. En lista samlar instrument så att du kan köra Strategy Analyzer eller en Market Analyzer över alla på en gång, eller snabbt ladda dem i andra fönster.
Terminer i NinjaTrader har förfallomånaden i namnet, till exempel ES 12-26. Hur ofta en ny kontraktsmånad dyker upp bestäms av börsen: CME:s aktieindexterminer som ES och NQ listar kvartalskontrakt (mars, juni, september och december), medan råolja (CL) listar ett kontrakt varje månad. Ingen av de vanliga indexterminerna listas en gång om året.
När ett kontrakt når sitt rollover-datum rullar du instrumenten framåt under Tools och sedan Database Management. Enligt NinjaTraders hjälpguide uppdaterar en rollover förfallomånaden i alla instrumentlistor och fönster i öppna arbetsytor, och du sparar arbetsytorna för att behålla ändringen. NinjaScript-strategier rullar inte framåt av sig själva.
Vid export, kontrollera Merge Policy under Tools, Options, Market data. MergeBackAdjusted slår ihop varje förfallomånad till en sammanhängande historik med justeringar vid rollover-datumen; Do Not Merge behåller en kontraktsmånad. Skriv kontraktsmånaden och sammanslagningsinställningen i filnamnet så att staplarna kan matchas senare.
- Aktieindexterminer (ES, NQ): kvartalsvis, mars, juni, september, december.
- Råolja (CL): ett nytt kontrakt varje månad.
- Rollover i Database Management uppdaterar varje instrumentlista; spara arbetsytorna igen.
- Merge Policy avgör om exporterad historik täcker ett kontrakt eller flera.
Så exporterar du indikatorvärden från NinjaTrader
För att få in indikatorvärden i en CSV-fil skriver du en NinjaScript-indikator som beräknar det värde du vill ha och skriver det till en fil vid varje stapeluppdatering. NinjaTraders NinjaScript-miljö har tillgång till System.IO för filskrivning.
Grundmönstret är: i OnStateChange för State.DataLoaded öppnar du en StreamWriter mot din målsökväg. I OnBarUpdate skriver du, om BarsInProgress == 0 och IsFirstTickOfBar, den aktuella stapelns Date, Time och indikatorvärden till StreamWriter. I OnStateChange för State.Terminated stänger du StreamWriter.
Med StreamWriter-metoden får du en post per stapel för alla indikatorer i NinjaTraders bibliotek eller för valfri egenskriven indikator. Utdata är en avgränsad textfil som du kan öppna i ett kalkylblad eller importera till valfritt analysverktyg. Ett alternativ som är oberoende av plattformen finns i /resources/articles/thinkorswim-to-csv-xlsx-annotations.
Att kombinera OHLCV och indikatorvärden i en fil
Det finns två sätt att kombinera OHLCV-staplar med indikatorvärden. Det första är att skriva en enda NinjaScript-exportindikator som matar ut OHLCV-fält och indikatorvärden i varje rad, så att allt hålls justerat mot samma stapelstämpel.
Det andra sättet är att exportera OHLCV från Data Manager och exportera indikatorvärden separat via NinjaScript, och sedan slå ihop de två filerna i ett kalkylblad eller skript med den gemensamma tidsstämpeln som nyckel. Tidsstämpelformatet måste vara konsekvent mellan filerna för att sammanslagningen ska fungera korrekt.
Metoden med en enda NinjaScript-fil är renare för analys men kräver NinjaScript-kunskaper för att implementera. Sammanslagningsmetoden fungerar utan egen kod om tidsstämpelformaten stämmer överens.
Där NinjaTraders export brister och när du bör komplettera
Exportflödet i NinjaTrader, oavsett om det sker från Data Manager eller via NinjaScript, är tillförlitligt för utvinning av data stapel för stapel, men kräver NinjaScript-utveckling för allt utöver rå OHLCV. För den som inte programmerar är det en märkbar tröskel att exportera indikatorvärden.
Den andra begränsningen är hur portabla annoteringarna är: ritningar, anteckningstext och stöd- och motståndsnivåer som ritats i NinjaTrader finns inte med i OHLCV- eller indikatorexporterna. För arbetsflöden som behöver föra diagramkontexten vidare tillsammans med stapeldatan krävs ett kompletterande exportlager för annoteringar.
För ett sådant annoteringslager som är oberoende av plattformen, se /resources/articles/chart-annotation-export-for-trading-journal-xlsx-csv, och se /resources/articles/export-tradingview-indicator-values-csv för en jämförelse över plattformar av olika sätt att exportera indikatorer.
Vanliga frågor
- Kan NinjaTrader exportera indikatorvärden till CSV direkt?
- Nej. OHLCV-exporten från Data Manager innehåller bara pris- och volymdata för staplar. För att exportera indikatorvärden behöver du skriva en NinjaScript-indikator som använder System.IO.StreamWriter för att skriva värdena till en fil vid varje stapeluppdatering.
- Vilken OHLCV-data kan du exportera från ett NinjaTrader-diagram?
- Med Data Manager kan du exportera datum, tid, open, high, low, close och volym för alla instrument och tidsramar som NinjaTrader har laddat ner. Utdata är en semikolonavgränsad CSV. Intradagsexporter har en tidskolumn; dagsexporter har det inte.
- Vad är det bästa sättet att få ut NinjaTrader-diagramdata för extern analys?
- För OHLCV-data för staplar: använd exporten från Data Manager. För indikatorvärden: skriv en NinjaScript-exportindikator som skriver indikatoravläsningar per stapel till en fil tillsammans med OHLCV-fälten. Slå ihop utdata på tidsstämpeln om du använder två separata exporter.
- Vilken avgränsare använder NinjaTraders CSV-export?
- NinjaTrader använder semikolon som avgränsare i stället för komma i sin standardexport till CSV. Vid import till Excel eller andra verktyg väljer du ”semikolon” som avgränsare i stället för komma.
- Är terminskontrakt i NinjaTrader kvartalsvisa eller månadsvisa?
- Det beror på hur börsen listar dem. ES och NQ listar kvartalskontrakt i mars, juni, september och december; CL listar varje månad. NinjaTrader namnger varje kontrakt efter förfallomånad, till exempel ES 12-26, och under Tools och sedan Database Management rullar du instrumentlistorna till nästa månad.
Prova MyLinedChart
MyLinedChart sparar dina ritningar, anteckningar och indikatorvärden som data som du kan exportera, granska och använda igen.
Utforska MyLinedChart