Открытый исходный код

histdata: Загрузка исторических данных

Загружайте исторические рыночные данные с histdata.com и преобразуйте бары M1 в сжатый Apache Parquet. Для локальных исследований доступны 34 инструмента.

Python 3.10+Apache ParquetzstdЛицензия MIT34 инструмента
Посмотреть на GitHub
Пример CLI
$ pip install git+https://github.com/StratCraftsAI/histdata.git
$ histdata --pairs EURUSD GBPUSD --year-start 2020 --year-end 2025
Пример вывода: один файл Parquet на инструмент
output/EURUSD_M1.parquet
output/GBPUSD_M1.parquet

Возможности

Создайте локальный набор рыночных данных и проверьте его полноту перед количественным анализом.

34 инструмента

23 валютные пары, два сырьевых инструмента (WTI и Brent) и девять индексов, включая S&P 500, Nikkei и DAX.

Вывод в Apache Parquet

Parquet со сжатием zstd, доступный для чтения в pandas, Polars, DuckDB и других инструментах, совместимых с Arrow.

Инструмент командной строки

Установите через pip и выберите инструменты и годы командой histdata.

Выбор архивов

Для загрузки M1 выбираются доступные годовые или месячные архивы за указанный период; проверенные локальные архивы используются повторно.

Типизированная схема

Столбцы OHLCV используют timestamp[ms] и float64. Перед анализом проверьте часовой пояс источника и выбранный режим CLI.

Зависимости Python

Использует requests, beautifulsoup4, pyarrow и filelock. Требуется Python 3.10 или новее.

Этапы обработки

Загрузка архивов, разбор данных M1 и запись типизированных файлов Parquet.

1
Извлечение токена
→
2
Загрузка ZIP
→
3
Разбор CSV M1
→
4
Запись Parquet
histdata.com → ZIP (CSV) → list[OHLCVRow] → Parquet (zstd)

Поддерживаемые инструменты

34 инструмента: валюты, сырьё и мировые индексы. Доступная история зависит от инструмента.

Валюты 23

Основные пары

EURUSDGBPUSDUSDJPYUSDCHFUSDCADAUDUSDNZDUSD

Кросс-курсы

EURAUDEURCADEURCHFEURGBPEURNZDGBPAUDGBPCADGBPCHFGBPNZDAUDNZD

Кросс-курсы с JPY

AUDJPYCADJPYCHFJPYEURJPYGBPJPYNZDJPY

Сырьё 2

BCOUSDBrent Crude Oil
WTIUSDWTI Crude Oil

Индексы 9

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

Схема вывода

Типизированные столбцы Parquet. Перед объединением наборов данных проверьте временные метки и качество данных.

СтолбецТипОписание
timestamptimestamp[ms]Время бара; обычная загрузка M1 использует UTC, --skip-download сохраняет EST источника
openfloat64Цена открытия
highfloat64Максимальная цена
lowfloat64Минимальная цена
closefloat64Цена закрытия
volumefloat64Поле объёма из источника
Источникhistdata.com — Универсальный ASCII CSV с разделителем «точка с запятой»; ключ API не требуется
Часовой пояс источникаEST (UTC-5, без перехода на летнее время)
ФорматApache Parquet + zstd

Быстрый старт

Установите из GitHub и выберите нужные инструменты и диапазон дат.

Установка
pip install git+https://github.com/StratCraftsAI/histdata.git
Использование 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
Чтение через 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

Параметры CLI

ПараметрПо умолчаниюОписание
--pairsВалюты (23)Инструменты для загрузки. Значение "all" выбирает все 34 инструмента.
--year-start2020Первый год для загрузки.
--year-end2025Последний год для загрузки.
--timeframeM1M1 преобразует минутные бары. Параметр tick загружает архивы, но разбор тиков и вывод в Parquet не реализованы.
--output-dir./outputКаталог для выходных файлов Parquet.
--zip-dir./downloadsКаталог для загруженных ZIP-архивов.
--skip-downloadoffПреобразовать только имеющиеся ZIP M1; временные метки EST источника сохраняются.
-v, --verboseoffВключить журнал отладки.

Частые вопросы

Нужен ли ключ API?

Ключ API не требуется. Перед загрузкой инструмент получает токен архива с histdata.com.

Сколько времени занимает загрузка?

Время зависит от количества и размера доступных архивов, сети и локальной обработки. Инструмент ограничивает частоту запросов; время завершения не гарантируется.

Можно ли использовать результат для количественных исследований?

Файлы M1 Parquet можно читать через pandas или другие совместимые с Parquet инструменты. Перед импортом в исследовательскую платформу проверьте полноту и качество данных, сопоставление столбцов и требования к часовым поясам.

В каком часовом поясе указаны временные метки?

Исходный CSV использует фиксированное время EST (UTC-5) без перехода на летнее время. Обычная загрузка M1 преобразует его в UTC. Режим --skip-download сохраняет разобранные значения EST источника. Parquet timestamp[ms] не содержит метаданных часового пояса.

Поддерживаются ли тиковые данные?

Параметр --timeframe tick позволяет загружать тиковые архивы, но разбор тиков и преобразование в Parquet не реализованы. Для документированного вывода OHLCV используйте M1.

Начать работу

Программа с открытым исходным кодом по лицензии MIT. Изучите исходный код и проверьте небольшой набор данных перед более широким использованием.