StratCraftStratCraftPortuguês
Código aberto

histdata: transferência de dados históricos

Transfira dados históricos de mercado de histdata.com e converta barras M1 em Apache Parquet comprimido. Escolha entre 34 instrumentos para investigação local.

Python 3.10+Apache ParquetzstdLicença MIT34 instrumentos
Ver no GitHub
Exemplo de CLI
$ pip install git+https://github.com/StratCraftsAI/histdata.git
$ histdata --pairs EURUSD GBPUSD --year-start 2020 --year-end 2025
Exemplo de saída: um ficheiro Parquet por instrumento
output/EURUSD_M1.parquet
output/GBPUSD_M1.parquet

Funcionalidades

Crie um conjunto de dados de mercado local e verifique a sua cobertura antes da análise quantitativa.

34 instrumentos

23 pares Forex, duas matérias-primas (WTI e Brent) e nove índices, incluindo S&P 500, Nikkei e DAX.

Saída em Apache Parquet

Parquet com compressão zstd, legível com pandas, Polars, DuckDB e outras ferramentas compatíveis com Arrow.

Ferramenta de linha de comandos

Instale com pip e selecione instrumentos e anos com o comando histdata.

Seleção de arquivos

As transferências M1 selecionam os arquivos anuais ou mensais disponíveis para o intervalo pedido e reutilizam os arquivos locais validados.

Esquema com tipos definidos

As colunas OHLCV usam timestamp[ms] e float64. Verifique o fuso horário de origem e o fluxo de trabalho CLI escolhido antes da análise.

Dependências Python

Usa requests, beautifulsoup4, pyarrow e filelock. Requer Python 3.10 ou posterior.

Fluxo de processamento

Transfira arquivos, processe dados M1 e escreva ficheiros Parquet com tipos definidos.

1
Extrair token
→
2
Transferir ZIP
→
3
Processar CSV M1
→
4
Escrever Parquet
histdata.com → ZIP (CSV) → list[OHLCVRow] → Parquet (zstd)

Instrumentos suportados

34 instrumentos de Forex, matérias-primas e índices globais. O histórico disponível varia consoante o instrumento.

Forex 23

Pares principais

EURUSDGBPUSDUSDJPYUSDCHFUSDCADAUDUSDNZDUSD

Pares cruzados

EURAUDEURCADEURCHFEURGBPEURNZDGBPAUDGBPCADGBPCHFGBPNZDAUDNZD

Cruzamentos com JPY

AUDJPYCADJPYCHFJPYEURJPYGBPJPYNZDJPY

Matérias-primas 2

BCOUSDBrent Crude Oil
WTIUSDWTI Crude Oil

Índices 9

AUXAUDASX 200
FRXEURCAC 40
GRXEURDAX 30
HKXHKDHang Seng
JPXJPYNikkei 225
NSXUSDNASDAQ 100
SPXUSDS&P 500
UDXUSDUS Dollar Index
UKXGBPFTSE 100

Esquema de saída

Colunas Parquet com tipos definidos. Valide os registos de data e hora e a qualidade dos dados antes de combinar conjuntos de dados.

ColunaTipoDescrição
timestamptimestamp[ms]Hora da barra; as transferências M1 normais usam UTC, --skip-download mantém o EST de origem
openfloat64Preço de abertura
highfloat64Preço máximo
lowfloat64Preço mínimo
closefloat64Preço de fecho
volumefloat64Campo de volume da fonte
Fontehistdata.com — CSV ASCII genérico delimitado por ponto e vírgula; não é necessária uma chave de API
Fuso horário de origemEST (UTC-5, sem ajuste para a hora de verão)
FormatoApache Parquet + zstd

Início rápido

Instale a partir do GitHub e selecione os instrumentos e o intervalo de datas de que precisa.

Instalação
pip install git+https://github.com/StratCraftsAI/histdata.git
Utilização da CLI
# Download EURUSD 2020-2025 and convert to Parquet
histdata --pairs EURUSD --year-start 2020 --year-end 2025

# Multiple pairs
histdata --pairs EURUSD GBPUSD USDJPY --year-start 2015 --year-end 2025

# All 34 instruments
histdata --pairs all --year-start 2020 --year-end 2025
Ler com pandas
import pandas as pd

df = pd.read_parquet("output/EURUSD_M1.parquet")
print(df.head())
#              timestamp     open     high      low    close  volume
# 0 2023-01-02 17:00:00  1.07045  1.07048  1.07045  1.07048     0.0

Opções da CLI

OpçãoPredefiniçãoDescrição
--pairsForex (23)Instrumentos a transferir. Use "all" para os 34 instrumentos.
--year-start2020Primeiro ano a transferir.
--year-end2025Último ano a transferir.
--timeframeM1M1 converte barras de um minuto. A opção tick transfere arquivos, mas não tem processamento de ticks nem saída Parquet.
--output-dir./outputDiretório para os ficheiros de saída Parquet.
--zip-dir./downloadsDiretório para os arquivos ZIP transferidos.
--skip-downloadoffConverte apenas ZIP M1 existentes; mantém os registos de data e hora EST de origem.
-v, --verboseoffAtiva os registos de depuração.

Perguntas frequentes

Preciso de uma chave de API?

Não é necessária uma chave de API. A ferramenta obtém um token de arquivo de histdata.com antes da transferência.

Quanto tempo demora uma transferência?

A duração depende do número e do tamanho dos arquivos disponíveis, da rede e do processamento local. A ferramenta limita a frequência dos pedidos; não é garantido um prazo de conclusão.

Posso usar a saída para investigação quantitativa?

Os ficheiros Parquet M1 podem ser lidos com pandas ou outras ferramentas compatíveis com Parquet. Verifique a cobertura, a qualidade, a correspondência das colunas e os requisitos de fuso horário antes de os importar para uma plataforma de investigação.

Em que fuso horário estão os registos de data e hora?

O CSV de origem usa EST fixo (UTC-5), sem ajuste para a hora de verão. As transferências M1 normais convertem para UTC. O fluxo --skip-download mantém os valores EST lidos da fonte. O tipo timestamp[ms] do Parquet não inclui metadados de fuso horário.

Suporta dados de ticks?

A opção --timeframe tick permite transferir arquivos de ticks, mas o processamento de ticks e a conversão para Parquet não estão implementados. Use M1 para a saída OHLCV documentada.

Primeiros passos

Software de código aberto sob a licença MIT. Consulte o código e valide um pequeno conjunto de dados antes de alargar a utilização.