・pandas_datareaderとは
株価、経済指標、財務諸表、国の統計データなどを取得できるライブラリーです。事前準備
事前準備として今回の記事は下記をインストールした環境で作業します。Windows環境でanacondaをインストール後にpandas_datareaderのライブラリをインストールした環境
・anaconda
anacondaは下記HPから環境に合わせてダウンロードしてインストールお願いします。
(インストール方法は割愛します。)
https://www.anaconda.com/
・pandas_datareader pandas_datareaderはanacondaインストール後に下記コマンドでインストールします。
1 |
pip install pandas_datareader |
株価取得方法について
株価取得は簡単です。元データの種類、対象期間、銘柄コードを指定するだけで取得することができます。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での取得方法は下記になります。後々分析に使いづらいので銘柄コードを追加してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import os import datetime as dt import pandas_datareader.data as web #銘柄コード入力(7177はGMO-APです。) ticker_symbol="7177" ticker_symbol_dr=ticker_symbol + ".JP" #2022-01-01以降の株価取得 start='2022-01-01' end = dt.date.today() #データ取得 df = web.DataReader(ticker_symbol_dr, data_source='stooq', start=start,end=end) #2列目に銘柄コード追加 df.insert(0, "code", ticker_symbol, allow_duplicates=False) #csv保存 df.to_csv( os.path.dirname(__file__) + '\s_stock_data_'+ ticker_symbol + '.csv') |
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での取得方法は下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import os import datetime as dt import pandas_datareader.data as web #銘柄コード入力(7177はGMO-APです。) ticker_symbol="7177" ticker_symbol_dr=ticker_symbol + ".T" #2022-01-01以降の株価取得 start='2022-01-01' end = dt.date.today() #データ取得 df = web.DataReader(ticker_symbol_dr, data_source='yahoo', start=start,end=end) #2列目に銘柄コード追加 df.insert(0, "code", ticker_symbol, allow_duplicates=False) #csv保存 df.to_csv( os.path.dirname(__file__) + '\y_stock_data_'+ ticker_symbol + '.csv') |
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
次回書くことがありましたら簡単なファンダメンタルズ分析での使用方法を紹介したいと思います。