UJP - Pythonで株価を取得する yfinance

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

ブログ - Pythonで株価を取得する yfinance

Pythonで株価を取得する yfinance

カテゴリ : 
ハウツー
ブロガー : 
ujpblog 2025/10/5 3:17
 yfinanceというライブラリを使うと日本の株価が取得できるというのでやってみた.

 まず,yfinanceライブラリをインストール.
$ pip3 install yfinance🆑

 トヨタ自動車の株価を取得してみる.
$ cat toyota.py🆑
import yfinance as yf

data = yf.download("7203.T", start="2025-08-29", end="2025-09-05")
print(data["Close"])

$
 実行してみる.
$ python3 toyota.py🆑
toyota.py:3: FutureWarning: YF.download() has changed argument auto_adjust default to True
  data = yf.download("7203.T", start="2025-08-29", end="2025-09-05")
[*********************100%***********************]  1 of 1 completed
Ticker           7203.T
Date
2025-08-29  2829.462402
2025-09-01  2815.182129
2025-09-02  2825.522949
2025-09-03  2808.288086
2025-09-04  2860.977539
$
「引数 auto_adjust のデフォルトを True に変更しました」というワーニングが出たけど,株価は取得できている模様.

 汎用化するために,銘柄コードと開始・終了年月日をパラメータ化した.
$ cat GetStockData.py🆑
import sys
import yfinance as yf
from datetime import datetime

# 引数チェック
if len(sys.argv) != 4:
    print("使い方: python get_stock.py <銘柄コード> <開始日> <終了日>")
    print("例: python get_stock.py 7203.T 2025-08-29 2025-09-05")
    sys.exit(1)

# 引数取得
symbol = sys.argv[1]
start_date = sys.argv[2]
end_date = sys.argv[3]

# 日付フォーマット確認
try:
    datetime.strptime(start_date, "%Y-%m-%d")
    datetime.strptime(end_date, "%Y-%m-%d")
except ValueError:
    print("日付は YYYY-MM-DD 形式で指定してください")
    sys.exit(1)

# 株価取得
data = yf.download(symbol, start=start_date, end=end_date, auto_adjust=True)

# 結果表示
if data.empty:
    print(f"{symbol} の株価データが見つかりませんでした")
else:
    print(data[["Close"]])

$
 実行してみる.
$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-01🆑
[*********************100%***********************]  1 of 1 completed

1 Failed download:
['7203.T']: YFPricesMissingError('possibly delisted; no price data found  (1d 2025-10-1 -> 2025-10-01)')
7203.T の株価データが見つかりませんでした
$
 なんかデータが取得できない.色々やっていたらわかってきた.

$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-02🆑
[*********************100%***********************]  1 of 1 completed
Price        Close
Ticker      7203.T
Date
2025-10-01  2821.5🈁
$
 この場合,10月1日 00:00amから10月2日 00:00amまでの時間の範囲で取得しているのではないか.

#10月3日まで指定した. この日は金曜日.

$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-03🆑
[*********************100%***********************]  1 of 1 completed
Price        Close
Ticker      7203.T
Date
2025-10-01  2821.5
2025-10-02  2805.0🈁 木曜日分までしかデータが取れてない.
$

#10月4日まで指定した.この日は土曜日.

$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-04🆑
[*********************100%***********************]  1 of 1 completed
Price        Close
Ticker      7203.T
Date
2025-10-01  2821.5
2025-10-02  2805.0
2025-10-03  2839.50🈁 金曜日分まで取れている
$

#10月5日まで指定した.(この日は日曜日)

$ python3 GetStockData.py 7203.T 2025-10-1 2025-10-05🆑
[*********************100%***********************]  1 of 1 completed
Price        Close
Ticker      7203.T
Date
2025-10-01  2821.5
2025-10-02  2805.0
2025-10-03  2839.5🈁 金曜日分まで取れている
$

 今日は日曜日なので,相場が開いている時にこれを実行したら,どれくらいの遅延で取得できるのか確認できるね.

python3 GetStockData.py 7203.T 2025-10-1 2025-10-02

トラックバック


広告スペース
Google