非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【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年)
日足 無制限

スポンサーリンク

 - Python