Pythonで株価データを取得する完全ガイド - yfinance入門
りく
はじめに
投資の自動化や分析を始めたいけど、株価データの取得方法がわからない…そんな悩みありませんか?
この記事では、yfinanceという無料のPythonライブラリを使って、Yahoo Financeから株価データを取得する方法を徹底解説します。
yfinanceとは?
yfinanceは、Yahoo Financeの株価データを簡単に取得できるPythonライブラリです。
メリット:
- ✅ 無料で使える
- ✅ APIキー不要
- ✅ コード数行でデータ取得可能
- ✅ 日本株(東証上場企業)にも対応
この記事で学べること
- yfinanceのインストール方法
- 株価データ(終値、始値、高値、安値、出来高)の取得
- 期間指定や複数銘柄の一括取得
- データのCSV保存方法
前提条件
- Python 3.8以上がインストールされていること
- pipまたはcondaが使えること
環境構築
Step 1: yfinanceのインストール
ターミナル(コマンドプロンプト)で以下を実行します:
| |
または、Anacondaを使っている場合:
| |
インストール確認:
| |
バージョン番号が表示されればOKです。
実装
基本的な株価データ取得
まずは、米国株の代表であるApple(AAPL)の株価を取得してみましょう。
| |
実行結果:
Open High Low Close Volume Dividends Stock Splits
Date
2024-03-21 171.919998 173.130005 170.779999 171.479996 53397000 0.0 0.0
2024-03-22 171.759995 173.050003 170.059998 172.279999 58589300 0.0 0.0
2024-03-25 170.589996 171.940002 169.449997 170.850006 54288900 0.0 0.0
2024-03-26 170.000000 171.419998 169.580002 170.119995 45469700 0.0 0.0
2024-03-27 169.410004 173.600006 169.410004 173.309998 71758700 0.0 0.0
取得できるデータの種類
| カラム名 | 説明 |
|---|---|
Open | 始値(その日の最初の取引価格) |
High | 高値(その日の最高取引価格) |
Low | 安値(その日の最低取引価格) |
Close | 終値(その日の最後の取引価格) |
Volume | 出来高(その日の取引株数) |
Dividends | 配当金 |
Stock Splits | 株式分割 |
期間の指定方法
periodパラメータで取得期間を指定できます:
| |
日本株の取得方法
日本株の場合は、東証コード.Tの形式で指定します。
| |
複数銘柄の一括取得
download()関数を使うと、複数銘柄を一度に取得できます。
| |
データのCSV保存
取得したデータをCSVファイルに保存する方法:
| |
読み込み時:
| |
応用例
例1: 終値の推移を簡単に可視化
| |
例2: 日次リターンの計算
| |
実行結果:
日次リターンの統計:
count 251.000000
mean 0.001234
std 0.018765
min -0.045678
25% -0.008901
50% 0.000123
75% 0.011234
max 0.056789
Name: Daily_Return, dtype: float64
よくあるエラーと解決法
エラー1: ImportError: No module named 'yfinance'
原因: yfinanceがインストールされていない
解決法:
| |
エラー2: データが取得できない(Empty DataFrame)
原因: ティッカーシンボルが間違っている、または取引時間外
解決法:
- ティッカーシンボルを確認(Yahoo Financeで検索)
- 日本株は
.Tを忘れずに
| |
エラー3: YFRateLimitError(レート制限)
原因: 短時間に大量のリクエストを送りすぎた
解決法:
- リクエスト間に待ち時間を入れる
| |
まとめ
この記事では、yfinanceを使った株価データの取得方法を解説しました。
キーポイント:
- yfinanceは無料で簡単に株価データを取得できるライブラリ
Ticker()で単一銘柄、download()で複数銘柄を取得- 日本株は東証コード.Tの形式で指定
history(period="期間")で柔軟に期間を指定可能
次のステップでは、取得したデータを使って移動平均線を計算し、バックテストを行う方法を解説します。
次のステップ
- 移動平均線クロスオーバーのバックテスト - 取得したデータを使った戦略検証
- Pythonでテクニカル指標を計算する - RSI、MACDなどの計算方法
参考リンク: