Código abierto

histdata: descarga de datos históricos

Descarga datos históricos de mercado de histdata.com y convierte barras M1 a Apache Parquet comprimido. Elige entre 34 instrumentos para tu investigación local.

Python 3.10+Apache ParquetzstdLicencia MIT34 instrumentos
Ver en GitHub
Ejemplo de CLI
$ pip install git+https://github.com/StratCraftsAI/histdata.git
$ histdata --pairs EURUSD GBPUSD --year-start 2020 --year-end 2025
Salida ilustrativa: un archivo Parquet por instrumento
output/EURUSD_M1.parquet
output/GBPUSD_M1.parquet

Características

Crea un conjunto de datos de mercado local y revisa su cobertura antes del análisis cuantitativo.

34 instrumentos

23 pares de divisas, dos materias primas (WTI y Brent) y nueve índices, entre ellos el S&P 500, el Nikkei y el DAX.

Salida en Apache Parquet

Parquet con compresión zstd, compatible con pandas, Polars, DuckDB y otras herramientas compatibles con Arrow.

Herramienta de línea de comandos

Instala con pip y selecciona instrumentos y años con el comando histdata.

Selección de archivos

Las descargas M1 seleccionan los archivos anuales o mensuales disponibles para el intervalo solicitado y reutilizan los archivos locales validados.

Esquema con tipos definidos

Las columnas OHLCV usan timestamp[ms] y float64. Revisa la zona horaria de origen y el flujo de trabajo de CLI elegido antes del análisis.

Dependencias de Python

Usa requests, beautifulsoup4, pyarrow y filelock. Requiere Python 3.10 o posterior.

Flujo de procesamiento

Descarga archivos, procesa datos M1 y genera archivos Parquet con tipos definidos.

1
Extraer token
→
2
Descargar ZIP
→
3
Procesar CSV M1
→
4
Generar Parquet
histdata.com → ZIP (CSV) → list[OHLCVRow] → Parquet (zstd)

Instrumentos compatibles

34 instrumentos de divisas, materias primas e índices globales. El historial disponible varía según el instrumento.

Divisas 23

Pares principales

EURUSDGBPUSDUSDJPYUSDCHFUSDCADAUDUSDNZDUSD

Pares cruzados

EURAUDEURCADEURCHFEURGBPEURNZDGBPAUDGBPCADGBPCHFGBPNZDAUDNZD

Cruces con JPY

AUDJPYCADJPYCHFJPYEURJPYGBPJPYNZDJPY

Materias 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 salida

Columnas Parquet con tipos definidos. Valida las marcas temporales y la calidad de los datos antes de combinar conjuntos de datos.

ColumnaTipoDescripción
timestamptimestamp[ms]Hora de la barra; las descargas M1 normales usan UTC, --skip-download conserva EST del origen
openfloat64Precio de apertura
highfloat64Precio máximo
lowfloat64Precio mínimo
closefloat64Precio de cierre
volumefloat64Campo de volumen del origen
Origenhistdata.com — CSV ASCII genérico delimitado por punto y coma; no se necesita clave de API
Zona horaria de origenEST (UTC-5, sin ajuste por horario de verano)
FormatoApache Parquet + zstd

Inicio rápido

Instala desde GitHub y selecciona los instrumentos y el intervalo de fechas que necesitas.

Instalación
pip install git+https://github.com/StratCraftsAI/histdata.git
Uso de la 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
Leer con 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

Opciones de la CLI

OpciónValor predeterminadoDescripción
--pairsDivisas (23)Instrumentos que se descargarán. Usa "all" para los 34 instrumentos.
--year-start2020Primer año que se descargará.
--year-end2025Último año que se descargará.
--timeframeM1M1 convierte barras de un minuto. La opción tick descarga archivos, pero no dispone de procesamiento de ticks ni de salida Parquet.
--output-dir./outputDirectorio para los archivos de salida Parquet.
--zip-dir./downloadsDirectorio para los archivos ZIP descargados.
--skip-downloadoffConvierte únicamente ZIP M1 existentes; conserva las marcas temporales EST del origen.
-v, --verboseoffActiva el registro de depuración.

Preguntas frecuentes

¿Necesito una clave de API?

No se necesita clave de API. La herramienta obtiene un token de archivo de histdata.com antes de la descarga.

¿Cuánto tarda una descarga?

La duración depende del número y tamaño de los archivos disponibles, de la red y del procesamiento local. La herramienta limita la frecuencia de las solicitudes; no se garantiza un tiempo de finalización.

¿Puedo usar la salida para investigación cuantitativa?

Los archivos Parquet M1 se pueden leer con pandas u otras herramientas compatibles con Parquet. Revisa la cobertura, la calidad, la correspondencia de columnas y los requisitos de zona horaria antes de importarlos a una plataforma de investigación.

¿En qué zona horaria están las marcas temporales?

El CSV de origen usa EST fijo (UTC-5), sin ajuste por horario de verano. Las descargas M1 normales convierten a UTC. El flujo --skip-download conserva los valores EST procesados del origen. El tipo timestamp[ms] de Parquet no incluye metadatos de zona horaria.

¿Admite datos de ticks?

La opción --timeframe tick puede descargar archivos de ticks, pero el procesamiento de ticks y la conversión a Parquet no están implementados. Usa M1 para la salida OHLCV documentada.

Primeros pasos

Software de código abierto bajo la licencia MIT. Revisa el código y valida un conjunto de datos pequeño antes de ampliar su uso.