Chartdata, OHLCV en indicatorwaarden van NinjaTrader exporteren naar CSV
NinjaTrader exporteert OHLCV-bardata standaard via de Data Manager: klik met rechts op een instrument, kies export en je krijgt een CSV met puntkomma's als scheidingsteken met datum, tijd, open, high, low, close en volume. Indicatorwaarden zitten niet in die export. Om indicatorwaarden eruit te halen, schrijf je een NinjaScript-indicator die de waarden naar een bestand schrijft. Zo werken beide paden.
- De NinjaTrader Data Manager exporteert OHLCV-bardata naar een CSV met puntkomma's; het formaat is datum en tijd, dan open, high, low, close, volume.
- Indicatorwaarden zitten niet in de standaard OHLCV-export en vragen een NinjaScript-exportindicator die waarden naar een bestand schrijft.
- Voor gecombineerde uitvoer van OHLCV plus indicatoren draai je de NinjaScript-export naast de export van de bardata en voeg je de uitvoer samen.
OHLCV-bardata exporteren uit NinjaTrader
NinjaTrader 8 bewaart historische bardata in een eigen lokale database. Om te exporteren: open het Control Center, ga naar Tools > Historical Data (of in sommige versies Data Manager), klik met rechts op het gewenste instrument en kies Export. Kies de periode en het tijdframe en bevestig. NinjaTrader schrijft een CSV naar de gekozen uitvoermap.
De geëxporteerde CSV gebruikt standaard puntkomma's als scheidingsteken in plaats van komma's. De kolomvolgorde is: Date;Time;Open;High;Low;Close;Volume voor intradaytijdframes, of Date;Open;High;Low;Close;Volume voor dagbars. Het datumformaat is YYYYMMDD en het tijdformaat is HHMMSS.
De OHLCV-export dekt alle historische data die NinjaTrader voor dat instrument en tijdframe heeft gedownload. Heb je meer historie nodig, download die dan eerst met de downloadtools voor historische data van het platform voordat je exporteert.
Wat de standaard OHLCV-export van NinjaTrader niet bevat
De OHLCV-export van de Data Manager bevat alleen bardata. Hij bevat niet: indicatorwaarden die uit die bars zijn berekend, tekenobjecten of annotatiedata, tradegeschiedenis of notities op sessieniveau.
Het bestand is een export van ruwe koersdata. De laag voor indicatorberekening leeft volledig in de uitvoeromgeving van NinjaTrader en wordt niet naar het bestand met bardata geschreven. Hangt je analysewerkwijze af van specifieke indicatormetingen naast de koers, dan neemt de export met alleen OHLCV die context niet mee.
Voor gestructureerde export van teken- en annotatiedata naast OHLCV, zie /resources/articles/ninjatrader-drawing-export.
| Datatype | Opgenomen in export van Data Manager |
|---|---|
| Open, High, Low, Close (per bar) | Ja |
| Volume (per bar) | Ja |
| Datum- en tijdstempels | Ja |
| Indicatorwaarden (EMA, RSI, VWAP, enz.) | Nee |
| Tekenobjecten en annotaties | Nee |
| Tradegeschiedenis en fills | Nee |
| Notities op sessieniveau | Nee |
Instrumentlijsten en contractmaanden in NinjaTrader: per kwartaal of per maand
Instrumentlijsten vind je in het NinjaTrader Control Center onder Tools en daarna Instrument Lists. Een lijst groepeert instrumenten, zodat je de Strategy Analyzer of een Market Analyzer in één keer over alle instrumenten kunt laten lopen, of ze snel in andere vensters kunt laden.
Futures in NinjaTrader dragen hun expiratie in de naam, zoals ES 12-26. Hoe vaak er een nieuwe contractmaand verschijnt, bepaalt de beurs: CME-aandelenindexfutures zoals ES en NQ hebben kwartaalcontracten (maart, juni, september en december), terwijl ruwe olie (CL) elke maand een contract heeft. Geen van de gangbare indexfutures heeft één contract per jaar.
Als een contract zijn rollover-datum bereikt, rolt Tools en daarna Database Management de instrumenten door. Volgens de helpgids van NinjaTrader werkt een rollover de expiratie bij in alle instrumentlijsten en vensters van open werkruimtes, en sla je de werkruimtes op om de wijziging te houden. NinjaScript-strategieën rollen niet vanzelf door.
Controleer voor exports de Merge Policy onder Tools, Options, Market data. MergeBackAdjusted voegt elke expiratie samen tot één doorlopende historie met correcties op de rollover-datums; Do Not Merge houdt één contractmaand aan. Zet de contractmaand en de merge-instelling in de bestandsnaam, zodat je de bars later kunt koppelen.
- Aandelenindexfutures (ES, NQ): per kwartaal, maart, juni, september, december.
- Ruwe olie (CL): elke maand een nieuw contract.
- Rollover in Database Management werkt elke instrumentlijst bij; sla werkruimtes opnieuw op.
- De Merge Policy bepaalt of geëxporteerde historie één contract of meerdere omvat.
Indicatorwaarden exporteren uit NinjaTrader
Om indicatorwaarden in een CSV-bestand te krijgen, schrijf je een NinjaScript-indicator die de gewenste waarde berekent en bij elke barupdate naar een bestand schrijft. De NinjaScript-omgeving van NinjaTrader heeft toegang tot System.IO om bestanden te schrijven.
Het basispatroon is: open in OnStateChange voor State.DataLoaded een StreamWriter naar het pad van je doelbestand. Schrijf in OnBarUpdate, als BarsInProgress == 0 en IsFirstTickOfBar, de Date, Time en indicatorwaarden van de huidige bar naar de StreamWriter. Sluit in OnStateChange voor State.Terminated de StreamWriter.
Met de StreamWriter-aanpak krijg je per bar een record van elke indicator uit de bibliotheek van NinjaTrader of van elke eigen indicator die je hebt geschreven. De uitvoer is een tekstbestand met scheidingstekens dat je in Excel opent of in elke analysetool importeert. Voor een alternatief voor export die van het platform afhangt, zie /resources/articles/thinkorswim-to-csv-xlsx-annotations.
OHLCV en indicatorwaarden combineren in één bestand
Er zijn twee manieren om OHLCV-bars met indicatorwaarden te combineren. De eerste is één NinjaScript-exportindicator te schrijven die in elke rij OHLCV-velden en indicatorwaarden uitvoert, zodat alles op hetzelfde bartijdstempel is afgestemd.
De tweede manier is OHLCV uit de Data Manager te exporteren en de indicatorwaarden apart via NinjaScript te exporteren, en dan de twee bestanden in een spreadsheet of script samen te voegen met het gedeelde tijdstempel als sleutel. Het tijdstempelformaat moet in beide bestanden consistent zijn om het samenvoegen goed te laten werken.
De aanpak met één NinjaScript-bestand is schoner voor analyse, maar vraagt NinjaScript-kennis om te implementeren. De samenvoegaanpak werkt zonder eigen code als de tijdstempelformaten overeenkomen.
Waar de export van NinjaTrader tekortschiet en wanneer je aanvult
De exportwerkwijze van NinjaTrader, via de Data Manager of via NinjaScript, is betrouwbaar voor het bar voor bar ophalen van data, maar vraagt NinjaScript-ontwikkeling voor alles voorbij ruwe OHLCV. Niet-ontwikkelaars lopen tegen een flinke drempel aan bij het exporteren van indicatorwaarden.
De andere beperking is de overdraagbaarheid van annotaties: grafiektekeningen, notitietekst en support- en resistanceniveaus die in NinjaTrader zijn getekend, zitten niet in de OHLCV- of indicatorexports. Voor werkwijzen die grafiekcontext naast de bardata moeten meenemen, is een aanvullende laag voor het exporteren van annotaties nodig.
Voor die annotatielaag los van het platform, zie /resources/articles/chart-annotation-export-for-trading-journal-xlsx-csv en /resources/articles/export-tradingview-indicator-values-csv voor een vergelijking van exportaanpakken voor indicatoren over platforms heen.
Veelgestelde vragen
- Kan NinjaTrader indicatorwaarden standaard naar CSV exporteren?
- Nee. De OHLCV-export van de Data Manager bevat alleen koers- en volumedata van bars. Om indicatorwaarden te exporteren, schrijf je een NinjaScript-indicator die System.IO.StreamWriter gebruikt om waarden bij elke barupdate naar een bestand te schrijven.
- Welke OHLCV-data kun je uit een NinjaTrader-grafiek exporteren?
- Met de Data Manager exporteer je datum, tijd, open, high, low, close en volume voor elk instrument en tijdframe dat NinjaTrader heeft gedownload. De uitvoer is een CSV met puntkomma's. Intradayexports bevatten een tijdkolom; dagexports niet.
- Wat is de beste manier om NinjaTrader-chartdata te krijgen voor externe analyse?
- Voor OHLCV-bardata: gebruik de export van de Data Manager. Voor indicatorwaarden: schrijf een NinjaScript-exportindicator die per bar indicatormetingen naast de OHLCV-velden naar een bestand schrijft. Voeg de uitvoer samen op het tijdstempel als je twee aparte exports gebruikt.
- Welk scheidingsteken gebruikt de CSV-export van NinjaTrader?
- NinjaTrader gebruikt in de standaard CSV-export puntkomma's als scheidingsteken in plaats van komma's. Kies bij het importeren in Excel of andere tools 'puntkomma' als scheidingsteken in plaats van komma.
- Zijn futurescontracten in NinjaTrader per kwartaal of per maand?
- Dat hangt af van de notering op de beurs. ES en NQ hebben kwartaalcontracten in maart, juni, september en december; CL heeft elke maand een contract. NinjaTrader noemt elk contract naar de expiratie, zoals ES 12-26, en Tools en daarna Database Management rolt instrumentlijsten door naar de volgende maand.
Probeer MyLinedChart
MyLinedChart bewaart je tekeningen, notities en indicatorwaarden als data die je kunt exporteren, terugkijken en hergebruiken.
Ontdek MyLinedChart