Dukascopy の無料ヒストリカルデータフィードから為替・貴金属・暗号資産の価格データをダウンロードする Python CLI ツール。
asyncio による非同期並行ダウンロードで高速に動作します。
- 1分足 (OHLCV) データの取得 (BID / ASK)
- Tick データ の取得 (Ask / Bid / Volume)
- CSV / Parquet 形式での出力
- 非同期並行ダウンロード (デフォルト 20 並列、最大調整可能)
- リトライ機能付き (3回まで)
| カテゴリ | 銘柄例 |
|---|---|
| メジャー通貨ペア | EURUSD, USDJPY, GBPUSD, AUDUSD, USDCHF, USDCAD, NZDUSD |
| クロス通貨 | EURJPY, GBPJPY, EURGBP, AUDCAD, NZDCHF など |
| 貴金属 | XAUUSD, XAGUSD |
| 暗号資産 | BTCUSD, ETHUSD |
上記以外の銘柄も Dukascopy で提供されていれば取得可能です。config.py の DECIMAL_FACTORS に小数点係数を追加してください。
git clone git@github.com:xxvw/Dukascopy-DL.git
cd Dukascopy-DL
pip install -r requirements.txt- Python 3.10+
- 依存パッケージ: aiohttp, pandas, pyarrow, tqdm
python main.py <銘柄> <開始日> <終了日> [オプション]# EURUSD の 2024年1月の1分足 (BID)
python main.py EURUSD 2024-01-01 2024-02-01
# ASK 価格で取得
python main.py EURUSD 2024-01-01 2024-02-01 --ask# EURUSD の 2024年1月2日のTickデータ
python main.py EURUSD 2024-01-02 2024-01-03 --tick# Parquet 形式で保存
python main.py USDJPY 2024-01-01 2024-07-01 --format parquet
# 出力先ディレクトリを指定
python main.py XAUUSD 2024-01-01 2024-04-01 -o ./data# 同時接続数を 50 に増やす
python main.py EURUSD 2024-01-01 2024-12-31 --concurrent 50| オプション | 説明 | デフォルト |
|---|---|---|
--tick |
Tick データを取得 | 1分足 |
--ask |
ASK 価格を使用 (1分足のみ) | BID |
--format |
出力形式 (csv / parquet) |
csv |
--concurrent |
同時接続数 | 20 |
-o, --output-dir |
出力先ディレクトリ | ./output |
timestamp,open,high,low,close,volume
2024-01-02 00:00:00,1.10366,1.10376,1.10366,1.10374,102.370003
2024-01-02 00:01:00,1.10371,1.10375,1.10368,1.10375,74.550003
timestamp,ask,bid,ask_volume,bid_volume
2024-01-02 00:00:01.340,1.1037,1.10366,3.6,0.9
2024-01-02 00:00:01.546,1.10371,1.10366,6.3,0.9
- データソース: Dukascopy Historical Data Feed
- タイムゾーン: UTC
- Tick データは BBO (Best Bid/Offer) の更新を表します
- 主要通貨ペアは 2003年5月頃からデータが利用可能です
- 週末・祝日はデータが存在しない場合があります