【Python】(2026年最新版)ドル円の時間足データを取得する方法
Pythonの yfinance ライブラリを使って、ドル円(USD/JPY)の4時間足データを取得し、CSVファイルに保存する方法を紹介します。(2026年6月現在)
必要なライブラリ
pip install yfinance pandas
コード
yfinance の download() 関数でドル円の1時間足データを取得します。
import yfinance as yf
import pandas as pd
# 1hデータを最大期間で取得
df = yf.download("USDJPY=X", period="730d", interval="1h")
df.columns = df.columns.get_level_values(0)
# 4時間足にリサンプリング
df_4h = df.resample("4h").agg({
"Open": "first",
"High": "max",
"Low": "min",
"Close": "last",
"Volume": "sum"
}).dropna()
df_4h.to_csv("usdjpy_4h.csv")
print(f"データ数: {len(df_4h)}")
print(df_4h.tail(10))
- “USDJPY=X” ― Yahoo Finance におけるドル円のティッカーシンボルです
- period=”730d” ― 過去730日分(約2年)を指定しています。yfinance で1時間足が取得できる最大期間です
- interval=”1h” ― 1時間足を指定しています。yfinance は4時間足を直接サポートしていないため、後の手順でリサンプリングして4時間足に変換します
- yfinance の新しいバージョンでは、取得したデータのカラムが MultiIndex 形式になっています。
- “Open”: “first” ― 4時間の最初の値を始値とする
- “High”: “max” ― 4時間の最高値を高値とする
- “Low”: “min” ― 4時間の最安値を安値とする
- “Close”: “last” ― 4時間の最後の値を終値とする
- “Volume”: “sum” ― 4時間の出来高を合計する
- .dropna() ― データが欠けている行を除去する
df_4h = df.resample(“4h”).agg(…) で、1時間足のデータを4時間ごとにまとめて、ローソク足の形式に集計します。
最後にリサンプリングしたデータをCSVファイルに保存します。ファイルはスクリプトと同じディレクトリに作成されます。
【注意事項】yfinanceの取得制限
yfinance はインターバルごとに取得できる期間に上限があります。
| インターバル | 最大取得期間 |
|---|---|
| 1分足 | 7日 |
| 5分足 / 15分足 | 60日 |
| 1時間足 | 730日(約2年) |
| 日足 | 無制限 |
スポンサーリンク