Como exportar dados de gráfico, OHLCV e valores de indicadores do NinjaTrader para CSV
O NinjaTrader exporta dados de candles OHLCV nativamente pelo Data Manager: clique com o botão direito em um instrumento, exporte e você recebe um CSV delimitado por ponto e vírgula com data, hora, abertura, máxima, mínima, fechamento e volume. Os valores dos indicadores não estão nessa exportação. Para tirá-los de lá é preciso escrever um indicador em NinjaScript que grave os valores em um arquivo. Veja como funcionam os dois caminhos.
- O Data Manager do NinjaTrader exporta dados de candles OHLCV para um CSV delimitado por ponto e vírgula; o formato é data e hora, depois abertura, máxima, mínima, fechamento e volume.
- Os valores dos indicadores não estão na exportação OHLCV padrão e exigem um indicador de exportação em NinjaScript para gravar os valores em arquivo.
- Para ter OHLCV e indicadores juntos, é preciso rodar a exportação em NinjaScript junto com a exportação dos candles e unir os resultados.
Como exportar dados de candles OHLCV do NinjaTrader
O NinjaTrader 8 guarda os dados históricos de candles em um banco de dados local próprio. Para exportá-los: abra o Control Center, vá em Tools > Historical Data (ou Data Manager, em algumas versões), clique com o botão direito no instrumento desejado e selecione Export. Escolha o período e o tempo gráfico e confirme. O NinjaTrader grava um CSV na pasta de saída que você selecionou.
O CSV exportado usa ponto e vírgula como delimitador por padrão, em vez de vírgula. A ordem das colunas é: Date;Time;Open;High;Low;Close;Volume para tempos gráficos intradiários, ou Date;Open;High;Low;Close;Volume para candles diários. O formato da data é YYYYMMDD e o do horário é HHMMSS.
A exportação OHLCV cobre todo o histórico que o NinjaTrader baixou para aquele instrumento e tempo gráfico. Se você precisar de mais histórico, baixe-o primeiro pelas ferramentas de download de dados históricos da plataforma antes de exportar.
O que a exportação OHLCV padrão do NinjaTrader não inclui
A exportação OHLCV do Data Manager contém apenas dados de candles. Ela não inclui: valores de indicadores calculados a partir desses candles, objetos de desenho ou dados de anotações, histórico de operações nem anotações da sessão.
O arquivo é uma exportação de dados brutos de preço. A camada de cálculo dos indicadores fica inteiramente no ambiente de execução do NinjaTrader e não é serializada no arquivo de candles. Se o seu fluxo de análise depende de leituras específicas de indicadores ao lado do preço, a exportação só com OHLCV não leva esse contexto.
Para uma exportação estruturada de dados de desenho e anotação junto com o OHLCV, veja /resources/articles/ninjatrader-drawing-export.
| Tipo de dado | Incluído na exportação do Data Manager |
|---|---|
| Abertura, máxima, mínima, fechamento (por candle) | Sim |
| Volume (por candle) | Sim |
| Carimbos de data e hora | Sim |
| Valores de indicadores (EMA, RSI, VWAP etc.) | Não |
| Objetos de desenho e anotações | Não |
| Histórico de operações e execuções | Não |
| Anotações da sessão | Não |
Listas de instrumentos e meses de contrato no NinjaTrader: trimestrais ou mensais
As listas de instrumentos ficam em Tools, depois Instrument Lists, no Control Center do NinjaTrader. Uma lista agrupa instrumentos para você rodar o Strategy Analyzer ou um Market Analyzer em todos de uma vez, ou carregá-los rápido em outras janelas.
No NinjaTrader, os futuros trazem o vencimento no nome, como ES 12-26. A frequência de um novo mês de contrato é definida pela bolsa: futuros de índices de ações da CME, como ES e NQ, listam contratos trimestrais (março, junho, setembro e dezembro), enquanto o petróleo (CL) lista um contrato por mês. Nenhum dos futuros de índice mais comuns tem listagem anual.
Quando um contrato chega à data de rolagem, você rola os instrumentos para frente em Tools, depois Database Management. O guia de ajuda do NinjaTrader diz que a rolagem atualiza o vencimento em todas as listas de instrumentos e janelas dos workspaces abertos, e você salva os workspaces para manter a mudança. As estratégias NinjaScript não rolam sozinhas.
Para exportar, confira a Merge Policy em Tools, Options, Market data. MergeBackAdjusted junta cada vencimento num histórico contínuo, com ajustes nas datas de rolagem; Do Not Merge mantém um único mês de contrato. Coloque o mês do contrato e a configuração de merge no nome do arquivo para poder casar as barras depois.
- Futuros de índices de ações (ES, NQ): trimestrais, em março, junho, setembro e dezembro.
- Petróleo (CL): um contrato novo todo mês.
- A rolagem em Database Management atualiza todas as listas de instrumentos; salve os workspaces de novo.
- A Merge Policy decide se o histórico exportado cobre um contrato ou vários.
Como exportar valores de indicadores do NinjaTrader
Para levar os valores dos indicadores a um arquivo CSV, você escreve um indicador em NinjaScript que calcula o valor desejado e o grava em um arquivo a cada atualização de candle. O ambiente NinjaScript do NinjaTrader tem acesso ao System.IO para gravação de arquivos.
O padrão básico é: no OnStateChange para State.DataLoaded, abra um StreamWriter para o caminho do arquivo de destino. No OnBarUpdate, se BarsInProgress == 0 e IsFirstTickOfBar, grave no StreamWriter a data, a hora e os valores dos indicadores do candle atual. No OnStateChange para State.Terminated, feche o StreamWriter.
A abordagem com StreamWriter dá a você um registro candle a candle de qualquer indicador disponível na biblioteca do NinjaTrader ou de qualquer indicador personalizado que você tenha escrito. A saída é um arquivo de texto delimitado que você pode abrir numa planilha ou importar em qualquer ferramenta de análise. Para uma alternativa de exportação que não dependa da plataforma, veja /resources/articles/thinkorswim-to-csv-xlsx-annotations.
Combinando OHLCV e valores de indicadores em um só arquivo
Há duas abordagens para combinar candles OHLCV com valores de indicadores. A primeira é escrever um único indicador de exportação em NinjaScript que gere os campos OHLCV e os valores dos indicadores em cada linha, o que mantém tudo alinhado ao mesmo carimbo de tempo do candle.
A segunda abordagem é exportar o OHLCV pelo Data Manager e os valores dos indicadores separadamente por NinjaScript, e depois unir os dois arquivos em uma planilha ou script usando o carimbo de tempo em comum como chave de junção. O formato do carimbo de tempo precisa ser consistente entre os dois arquivos para a união funcionar direito.
A abordagem de arquivo único em NinjaScript é mais limpa para análise, mas exige conhecimento de NinjaScript para ser implementada. A abordagem de união funciona sem código próprio se os formatos de carimbo de tempo baterem.
Onde a exportação do NinjaTrader fica curta e quando complementar
O fluxo de exportação do NinjaTrader, seja pelo Data Manager ou por NinjaScript, é confiável para extrair dados candle a candle, mas exige desenvolvimento em NinjaScript para qualquer coisa além do OHLCV bruto. Quem não programa enfrenta uma barreira considerável para exportar valores de indicadores.
A outra limitação é a portabilidade das anotações: desenhos de gráfico, textos de anotação e níveis de suporte e resistência desenhados no NinjaTrader não estão nas exportações de OHLCV nem de indicadores. Para fluxos que precisam levar o contexto do gráfico junto com os dados de candles, é necessária uma camada complementar de exportação de anotações.
Para essa camada de anotações independente da plataforma, veja /resources/articles/chart-annotation-export-for-trading-journal-xlsx-csv e, para uma comparação entre plataformas das abordagens de exportação de indicadores, /resources/articles/export-tradingview-indicator-values-csv.
Perguntas frequentes
- O NinjaTrader exporta valores de indicadores para CSV nativamente?
- Não. A exportação OHLCV do Data Manager inclui apenas dados de preço e volume dos candles. Para exportar valores de indicadores, você precisa escrever um indicador em NinjaScript que use o System.IO.StreamWriter para gravar os valores em um arquivo a cada atualização de candle.
- Quais dados OHLCV dá para exportar de um gráfico do NinjaTrader?
- Pelo Data Manager, você exporta data, hora, abertura, máxima, mínima, fechamento e volume de qualquer instrumento e tempo gráfico que o NinjaTrader tenha baixado. A saída é um CSV delimitado por ponto e vírgula. As exportações intradiárias incluem uma coluna de hora; as diárias não.
- Qual é a melhor forma de obter dados de gráfico do NinjaTrader para análise externa?
- Para dados de candles OHLCV: use a exportação do Data Manager. Para valores de indicadores: escreva um indicador de exportação em NinjaScript que grave as leituras dos indicadores candle a candle em um arquivo, junto com os campos OHLCV. Una os resultados pelo carimbo de tempo se usar duas exportações separadas.
- Qual é o delimitador do CSV exportado pelo NinjaTrader?
- O NinjaTrader usa ponto e vírgula como delimitador, em vez de vírgula, na exportação CSV padrão. Ao importar no Excel ou em outras ferramentas, escolha "ponto e vírgula" como delimitador, em vez de vírgula, durante a importação.
- Os contratos futuros no NinjaTrader são trimestrais ou mensais?
- Depende da listagem da bolsa. ES e NQ listam contratos trimestrais em março, junho, setembro e dezembro; CL lista todo mês. O NinjaTrader nomeia cada um pelo vencimento, como ES 12-26, e em Tools, depois Database Management, você rola as listas de instrumentos para o mês seguinte.
Experimente o MyLinedChart
O MyLinedChart guarda seus desenhos, anotações e valores de indicadores como dados que você pode exportar, revisar e reutilizar.
Conhecer o MyLinedChart