たなブログ 教養を高めて生涯資産を増やすブログ(`・ω・´)

【Python Coding】pythonで株価データを取得する方法を紹介

PR Pythonを学ぶ

こんにちは、ちくたっく(@tictak_py)です。

今回は、pythonを使って「株価データ」を取得する方法を紹介していきたいと思います。

具体的には、pandasから派生した機能「pandas_datareader」という方法を用いて、Yahoo Financeから米国企業の株価データを取得することを目的とした記事です。

【こんな人に読んで欲しい記事です】

● pythonを使って米国企業の株価データを取得する方法を知りたい方

● Yahoo Financeから市場データを取得する方法を知りたい方

今回は、
・ 前半部分で「Yahoo Financeから株価データを取得する基本的な方法」
・ 後半部分で「Yahoo Financeから複数企業の株価データを取得する方法」

を紹介していきます。

いずれも、「株価データの取得⇒グラフ化」の流れでシンプルに進めていきますね。

ちなみに、以前紹介した「為替レートの取得」に関する以下の記事を読んで頂いた方は、基本的な流れやコーディングは同じなので 取得データの指定方法の違いを中心に見て頂ければOKです。

必要ライブラリのインポート

今回使うライブラリのインポート

まず最初に、今回使うライブラリをインポートしておきます。
冒頭でお伝えしたように、「pandas_datareader」をメインに扱っていきますが、可視化もしていくので関連ライブラリもインポートしておきます。

「pandas_datareaderは今まで一度も使ったことない」という方は、pipコマンドなどでインストールしておく必要がありますので、セッティングしておいてください。

株価データの取得①|基本的な操作

では実際にYahoo Financeから株価データを取得するためのコードを見ていきましょう。
以下2つのどちらの方法でも同じ結果が取得出来るので、好きな方法を選んでみてください。
(方法①:get_data_yahooを用いる方法|方法②:DataReaderを用いる方法)

ちなみに、以下例では「Amazon」の直近株価を取得しています。

方法① get_data_yahooを用いて株価データを取得する方法
方法② DataReaderを用いて株価データを取得する方法

どちらが優れているというわけではないですが、Yahoo Financeから株価データを取得するだけの目的であれば、方法①で足りると思います。株価データをYahoo Finance以外の場所やその他経済指標を取得したいという場合には、方法②を知っておいた方が汎用性が効いて便利かなといった印象です。

コードの内容やポイントを簡単にまとめたものが以下となります。

方法①:get_data_yahooを用いた場合

● 引数として、「ティッカーシンボル(※)」と「期間」を指定する必要がある

● Amazonの株価データを取得する場合には、「AMZN」と指定する

※ ティッカーシンボルとは、4ケタ以内のアルファベットで示される米国株の証券コードです。

方法②:DataReaderを用いた場合

● 引数として、「ティッカーシンボル」「データソース」「期間」を指定する必要がある

● データソースとしては、Yahoo Finance以外にも、TiingoやAlpha Vantageなど色々なデータソースが存在しているが、API_Keyの追加指定や、アクセス出来なくなるケースもあるため、常に最新の状況を確認しておく必要がある

データをDataFrame形式で取得出来ているので、以下のようにそのままグラフ化することも可能です。
以下では、不要なカラムを削除してグラフ化しています。

取得したAmazon株価の推移グラフ

株価データの取得②|有名企業(GAFA+α)

先ほどは「Amazon」のみデータを取得してグラフ化しましたが、今度はより多くの有名企業の株価データを取得していきたいと思います。株価データの取得に「方法①(get_data_yahoo)」を用いつつ、株価を取得出来る関数を組み合わたコードが以下となります。

株価データとしては「GAFA、Netflix、Zoom、Delta、Alibaba」の合計8社分を取得しています。
また、期間は「2020年1月から6月初旬まで」の約5ヶ月分を対象としています。

米国有名企業の株価データを取得する自作関数

取得したデータの内容を確認してみます。

取得した株価データの内容を確認

各企業の株価データが取得出来たので、各社の「高値」推移をグラフ化してみます。

取得した株価データの「高値」の推移グラフ

すると、上記のように8社分の株価の推移グラフを一覧で見ることが出来ました。
対象期間が2020年1月から6月初旬なので、ちょうどコロナウイルスの影響が反映されています。

特徴的な点としては、世界中で在宅ワークの流れが進んだことで、オンラインビデオ会議ツール「Zoom」を提供するZoom Video Communicationsの株価が右肩上がりになっている(上図の下段左から2番目)点や、各国で感染拡大傾向にある国からの渡航禁止を背景に、デルタ航空の株価が右下がりになりつつあったものの、5月頃からの経済活動再開で再度上昇傾向にある(上図の下段左から3番目)点などが挙げられます。

このように市場データを取得して可視化出来ると、様々なことに応用できるのでオススメです。

さいごに

今回は、pythonを使って「米国企業の株価データ」を取得する方法を紹介してきました。

株取引をしている方だけでなく、機械学習用のデータセット作成に使ってみたり、ビジネスで国内外の株価市場を把握しておくことは非常に重要となるので、必要に応じて使い分けてみてください。

では今回はこのへんで。