2024年から新NISAが始まりますがみなさん準備はできていますでしょうか?私ですか?何もしてないですよ。でもとりあえず何かやらなきゃということで、気になる企業の株価推移だけでも取得・チェックできるようになっておきましょう。
今回株価取得・チャート化にあたって、以下のステップで実施していきたいと思います。
株価を取得するための方法についていろいろ調べてみましたが、「yahoo_finance_api2」と「pandas-datareader」とAPIが利用できそうです。今回は前者を使わせていただきましょう。なお、pandas-datareaderについてはpandasという名前がついているように、元はpandasの一部だったようです。公式ドキュメントはそれぞれ以下の通りです。 ・yahoo_finance_api2:URL ・pandas-datareader:URLです。
yahoo_finance_api2を利用するためのライブラリと、表への変換のために利用するpandasをインストールします。
pip install yahoo_finance_api2
pip install pandas
データ取得、表形式の変換は以下の通りです。公式のコードを参考にしております。
yahoo-finance-api2
のshare
モジュールをインポートします。share
モジュールは
(l.17) で使用されますが株価データを取得するためのメソッドが含まれます。また、yahoo-finance-api2
のYahooFinanceError
モジュールはエラー表示を可能にします。share
のShare
クラスでインスタンス化します。.get_historical()
メソッドを利用して実際に株価データを取得していきます。.get_historical()
メソッドの引数としてshare.PERIOD_TYPE_YEAR
を記述し年次データを取得します。今回は"5"とあるように5年分のデータを取得します。.get_historical()
メソッドの引数としてshare.FREQUENCY_TYPE_MONTH
を記述しデータの取得間隔を指定します。今回は"1"とあるように1ヶ月間隔でデータを取得します。len()
メソッドでデータの数量を確認します。stock_data
の最終列に追加するという記述です。stock_data
を (l.13) のstock_data_list
リストに一旦格納します。これを残り2社分for文を回して実施します。YahooFinanceError
を利用します。sys.exit(1)
メソッドで処理を終了します。stock_data_list
リストに格納されているので、これを一つずつDataFrame化していきます。unit="ms"
とすることでミリ秒まで正確に取得可能です。stock_data
に追加します。上記の通り3社(JR東日本・JR西日本・JR東海)の5年分の株価データを取得できたところで、続いてチャート化していきましょう。
株価データのチャート化には「matplotlib」というライブラリを利用します。公式のHPはこちらです。
下の通りmatplotlibをインストールします。
pip install matplotlib
それでは表形式にした株価データをチャート化していきます。
matplotlib
のpyplot
モジュールをインポートします。pyplot
モジュールによってチャートの描画が可能になります。stock_data
の月の列と終値の列を抜き出して変数に入れていきましょう。pyplot
モジュールのplot
メソッドでパラメータを設定していきます。(l5.8) のデータとともにmarker
(プロットする点の形式)、linestyle
(線の種類)、color
(色)、label
(凡例(legend)に表示されるラベル)を設定します。今回はお試しなので色々変えてみました。label
をチャート内に表示します。すると下図のようにチャートを描画することができました。下図内下方の赤枠にセーブボタンと思しきボタンがありますが、これを押下すると画像を保存できるようになります。
以上で、株価データの取得とチャート化がPythonでできました。matplotlib公式にチートシートも用意されているので、これを参考にパラメータを設定してチャートをいじってみると面白いと思います。なお、これができたからと言って株に詳しくなるわけではないので悪しからず。
よろしければこちらの記事も参考にしてみてください。
Loading...