オープンソース

histdata:過去データのダウンロードツール

histdata.com から過去の市場データを取得し、M1 データを圧縮 Apache Parquet に変換します。ローカルでの研究に必要なデータを 34 銘柄から選べます。

Python 3.10+Apache ParquetzstdMIT ライセンス34 銘柄
GitHub で見る
CLI の使用例
$ pip install git+https://github.com/StratCraftsAI/histdata.git
$ histdata --pairs EURUSD GBPUSD --year-start 2020 --year-end 2025
出力例:銘柄ごとに 1 つの Parquet ファイル
output/EURUSD_M1.parquet
output/GBPUSD_M1.parquet

機能

市場データセットをローカルに構築し、定量分析の前に収録範囲を確認できます。

34 銘柄

外国為替 23 通貨ペア、商品 2 銘柄(WTI とブレント原油)、S&P 500・日経・DAX を含む指数 9 銘柄。

Apache Parquet 出力

zstd 圧縮の Parquet ファイルを、pandas、Polars、DuckDB などの Arrow 対応ツールで読み込めます。

CLI ツール

pip でインストールし、histdata コマンドで銘柄と年を選択します。

アーカイブの選択

M1 のダウンロードでは、指定期間に該当する年次または月次のアーカイブを選択し、検証済みのローカルアーカイブを再利用します。

型付きスキーマ

OHLCV 列には timestamp[ms] と float64 を使用します。分析前に、元データのタイムゾーンと選択した CLI の処理手順を確認してください。

Python の依存パッケージ

requests、beautifulsoup4、pyarrow、filelock を使用します。Python 3.10 以降が必要です。

処理の流れ

アーカイブを取得して M1 データを解析し、型付きの Parquet ファイルを書き出します。

1
トークンを抽出
→
2
ZIP を取得
→
3
M1 CSV を解析
→
4
Parquet を出力
histdata.com → ZIP (CSV) → list[OHLCVRow] → Parquet (zstd)

対応銘柄

外国為替・商品・世界の指数にわたる 34 銘柄に対応。利用可能な過去データの期間は銘柄によって異なります。

外国為替 23

主要通貨ペア

EURUSDGBPUSDUSDJPYUSDCHFUSDCADAUDUSDNZDUSD

クロス通貨ペア

EURAUDEURCADEURCHFEURGBPEURNZDGBPAUDGBPCADGBPCHFGBPNZDAUDNZD

円のクロス通貨ペア

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 は 1 分足を変換します。tick オプションはアーカイブを取得できますが、ティックの解析機能や Parquet 出力はありません。
--output-dir./outputParquet 出力ファイルの保存先ディレクトリ。
--zip-dir./downloads取得した ZIP アーカイブの保存先ディレクトリ。
--skip-downloadoff既存の M1 ZIP のみを変換し、元データの 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 ライセンスのオープンソースソフトウェアです。利用を広げる前に、ソースを確認し、小規模なデータセットで検証してください。