Pythonで日本の株価を取得する方法

こんにちは。GMO NIKKO エンジニアのN.I.です。 業務で使用することは全くないですが、pandas_datareaderというライブラリを使用したら、簡単に株価を取得出来ましたので今回はPythonで株価を取得する方法を紹介しようと思います。
・pandas_datareaderとは
株価、経済指標、財務諸表、国の統計データなどを取得できるライブラリーです。

事前準備

事前準備として今回の記事は下記をインストールした環境で作業します。
Windows環境でanacondaをインストール後にpandas_datareaderのライブラリをインストールした環境
・anaconda
anacondaは下記HPから環境に合わせてダウンロードしてインストールお願いします。
(インストール方法は割愛します。)
https://www.anaconda.com/
・pandas_datareader pandas_datareaderはanacondaインストール後に下記コマンドでインストールします。

株価取得方法について

株価取得は簡単です。元データの種類、対象期間、銘柄コードを指定するだけで取得することができます。
GMO アドパートナーズ (4784) の株価の今年分を取得してみようと思います。
日本の株価を取得出来る元データは2種類ありました。
・stooq
stooqはポーランドのサイトで下記サイトの情報を取得することが出来るようです。
https://stooq.com/q/d/?s=4784.jp
・yahoo(米国)
こちらは日本のYAHOO!(yahoo.co.jp)ではなくアメリカのYAHOO(finance.yahoo.com)の情報を取得することが出来るようです。
https://finance.yahoo.com/quote/4784.T/history?p=4784.T
両方のサイトともにホームページから無料でCSVダウンロードが出来るので、プログラムが書けない場合もホームページからダウンロードすればデータ取得出来ます。日本だと有料なことが多いのでこれは良心的だと思います。
では、両方のデータのpythonでの株価取得方法について記載します。取得出来る値は下記になります。
  • Date 日付
  • Open 始値
  • High 高値
  • Low 安値
  • Close 終値
  • Volume 出来高
  • Adj Close 調整後終値 (Yahoo Financeのみ)
それでは取得してみます。

stooqでの株価取得方法について

stooqでの取得方法は下記になります。後々分析に使いづらいので銘柄コードを追加してます。 stooqで取得すると下記の様なデータが取得できます。特にソートを指定しない場合日付が大きい順でソートされます。
Date code Open High Low Close Volume
2022/5/26 7177 755 766 755 759 140600
2022/5/25 7177 755 762 754 762 122900
2022/5/24 7177 771 772 758 758 192500
2022/5/23 7177 761 768 759 765 153400
2022/5/20 7177 747 758 742 754 348700

yahooでの株価取得方法について

yahoo financeでの取得方法は下記になります。 yahoo financeで取得すると下記の様なデータが取得できます。特にソートを指定しない場合日付が小さい順でソートされます。
Date code High Low Open Close Volume Adj Close
2022/1/4 7177 859 846 855 852 368600 839.3365
2022/1/5 7177 865 850 856 864 337800 851.1581
2022/1/6 7177 859 845 855 851 438000 838.3514
2022/1/7 7177 872 858 863 866 511200 853.1284
2022/1/11 7177 880 859 859 880 323400 866.9203

まとめ

ということで今回は株価データの取得方法を紹介させて頂きました。
今回は株価の取得でpandas_datareaderを使用しましたが、株価以外の経済指標、財務諸表、国の統計データ等も取得出来るみたいです。他の指標、統計データに興味がある場合は下記のpandas_datareader説明ページを参照してみてください。
https://pandas-datareader.readthedocs.io/en/latest/index.html
次回書くことがありましたら簡単なファンダメンタルズ分析での使用方法を紹介したいと思います。