Python

【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

2021年3月28日

【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

こんにちは。TATです。

今日のテーマは「yahoo_finance_api2で日本株の株価データを取得する」です。

 

以前にPythonで株価を取得する方法についてご紹介しました。

こちらの記事ではスクレイピングやライブラリーを使った株価の取得方法について解説しています。

関連記事
【コード解説】Pythonで株価データを取得する!【3つの方法を解説】

続きを見る

 

今回はこれの進化版です。

Yahooファイナンスから株価を取得できるライブラリーを発見したのでご紹介します。

 

結論から言いますと、過去記事でご紹介した方法は不要になりますw

この記事で紹介する方法1つを理解しておけばOKです。

圧倒的に短いコードで簡単に株価データが取得できます。

日本株にも対応しているので無敵です。

 

なんで今まで気づかなかったのか、めちゃくちゃ後悔しています。。。w

この記事ではyahoo_finance_api2を使って株価データを取得する方法について解説していきます。

 

また、Pythonで株価データを扱う記事については記事が散在しているのでこちらにまとめました!

テクニカル分析の計算方法や可視化についてはこちらからどうぞ。

関連記事
【まとめ】Pythonで株価データを扱う
【まとめ】Pythonで株価データを扱う

続きを見る

 

【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

yahoo_finance_api2の基本的な使い方

まずはyahoo_finance_api2の基本的な使い方を見ていきます。

ライブラリーページへ行くと、基本的な使い方を確認できます。(英語ページ)

pipにも対応しているので、"pip install yahoo_finance_api2"で簡単にインストールできます。

 

とりあえず走らせてみる

とりあえずライブラリーページにあるデータをそのまま走らせてみます。

ちなみにMSFTはマイクロソフトです。

 

 

上記のコードを走らせるとこうなります。

 

返り値は辞書型になっています。

それぞれの値はリストになっていますね。

そして時間はタイムスタンプになっているので、このままだと不便です。

ゆえに少し整形します。

 

DataFrameに変換してtimestampを整形する

まずはこの辞書型のデータをDataFrameに変換します。

 

1行で完了です。

実行結果がこちら。

 

次にtimestampを変換します。

pandasにはtimestampを変換してくれるto_datetimeという関数があるので、これを利用すれば1行で完了します。

変換したデータをDatetimeというカラムに格納します。

 

実行結果がこちらです。

 

timestampがきちんと変換されていることが確認できました。

ここまできたらデータ分析に問題なく使えます。

 

コードまとめ

基本的な使い方はこれで完了です。

流れとしては次の通りです。

  1. yahoo_finance_api2でデータを取得する
  2. DataFrameに変換する
  3. timestampを変換する

 

ここまでのコードをまとめるとこうなります。

 

こちらのコードはご自由にコピペしちゃってください。

 

60分足・日足・週足・月足なども指定可能

次に設定周りを見ていきます。

 

まずは頻度の設定です。

先ほどのコードでいうところのshare.FREQUENCY_TYPE_MINUTE, 5が該当します。

これは5分おきのデータを取得しています。

 

FREQUENCYは次のような設定が可能です。

  • 分足:share.FREQUENCY_TYPE_MINUTE
  • 時間足:share.FREQUENCY_TYPE_HOUR
  • 日足:share.FREQUENCY_TYPE_DAY
  • 週足:share.FREQUENCY_TYPE_WEEK
  • 月足:share.FREQUENCY_TYPE_MONTH

 

4時間足の場合はshare.FREQUENCY_TYPE_HOUR, 4となります。

使うことはないと思いますが、2日足とか3週間足なども設定できます。

 

日足にする場合はこんな感じ。share.FREQUENCY_TYPE_DAY, 1とすればOKです。

 

引数を設定するだけで完了するのでとても使い勝手がいいですね。

みた感じ、日足以上ならVolume(出来高)も取得できるようです。

 

取得するデータの期間もある程度なら指定可能

次に期間の設定です。

先ほどのコードでいうところのshare.PERIOD_TYPE_DAY, 10になります。

これは10日間という意味になります。

 

設定できる期間は次の通りです。

  • 日で指定:share.PERIOD_TYPE_DAY
  • 週で指定:share.PERIOD_TYPE_WEEK
  • 月で指定:share.PERIOD_TYPE_MONTH
  • 年で指定:share.PERIOD_TYPE_YEAR

 

例えば、日足で過去30日分のデータを取得する場合にはこうなります。

 

期間を指定する際の注意点

ここで一点だけ注意すべきことがあります。

期間を指定する際には、それぞれ上限があります。

正直なところ、正確な上限はわかりません。

しかし僕なりに見た感じだと、例えば日で100日分指定しても42日分しか取得できません。

この場合は週や月で指定する必要があります。

 

よって、指定する期間が大きい場合には気をつけてください。

過去1000週間と指定しても無理です。

こういった場合はさらに大きい単位(月や年)で指定するようにすれば大丈夫です

 

ちなみにマクロソフトで過去100年分の日足データを取得したら、一番古いデータで1986年3月13日でした。

 

これで、yahoo_finance_api2でできることは一通り網羅できたかなと思います。

 

【朗報】日本株も取得できます

次にお待ちかねの日本株についてみていきます。

大変ありがたいことにyahoo_finance_api2では日本株の株価データも取得可能です。

このライブラリーを作ってくれた方、データを提供してくれているYahoo様にこの場を借りて御礼申し上げます。

ありがとうございます。

 

証券コード4桁+.Tで日本株を指定できます

日本株のデータを取得する際には、証券コードの後に.TをつければOKです。

 

例としてトヨタ自動車の株価データを取得してみます。

トヨタ自動車の証券コードは7203なので、yahoo_finance_api2で指定する場合には7203.Tとなります。

過去100年分を指定してみたところ、一番古いデータで1999年5月6日でした。

 

日本株も取得が可能ということで、もはや過去記事で紹介したPythonによる株価を取得する方法は不要になりそうです。

頑張ってまとめたのに・・・(涙)

関連記事
【コード解説】Pythonで株価データを取得する!【3つの方法を解説】

続きを見る

 

(念のため)注意点

最後に注意点です。

正直なところ、ここでお伝えする注意点については一部確信はないです。

  • アクセス制限があるのか謎
  • DatetimeはUTCなので日本時間への変換が必要
  • データの遅延がどれくらいあるのか謎

 

順番に簡単に解説します。

アクセス制限があるのか謎

まず、アクセス制限が謎です。

ライブラリーページには制限の記述はありません。

yahoo_finance_apiでは1時間に2000アクセスまでみたいな制限がありました。(うる覚えw)

しかし、yahoo_finance_api2にはそういった制限に関する記述がないんです。

もしかしたら使いまくっていたら制限が出てくるかもしれないので、利用する際には少し意識しておいたほうがいいかもです。

 

DatetimeはUTCなので日本時間への変換が必要

2つ目は、DatetimeはUTCであるという点です。

ゆえに日本時間で利用するには変換が必要です。

9時間足せば完了です。

 

参考がてらコードの一例をご紹介しておきます。

トヨタの株価データを60分足で過去30日分のデータを取得しています。

 

追加したのは最後の1行だけです。

結果はこうなります。

 

きちんと日本時間に変換されていることがわかります。

 

ただここでも追加で注意点があります。

時間をよく見ると、9時からスタートして最後は14時になっています。

日本の株式市場は9時から15時に取引可能です。

となると15時のデータが足りないように見えますが、これは見方が少し違います。

 

例えば、9時のデータは9:00~9:59までのデータを示しています。

14時のデータは14:00~14:59のデータです。

ゆえに15時のデータは存在しません。

ここの解釈だけ理解しておけば問題ないかと思います。

 

データの遅延がどれくらいあるのか謎

3つ目として、データの遅延がどれくらいあるのか謎です。

もともとYahooファイナンスで表示されている株価データは20分の遅延があります。

yahoo_finance_api2はこれと同じ遅延なのか、あるいはこれよりもさらに遅延があるのかについては正直なところわかりません。

わかる方いたら教えてください。

 

よって、リアルタイムトレードとかに利用するのは厳しいかと思います。

とはいっても、僕がチェックした感じでは、18時の時点で当日の株価データは取得できたので、日足でデータを収集するには十分利用可能と思います。

 

株価データを扱うにはPythonが最適です!

ここまで紹介してきたコードは、全てPythonを使って書かれています。

 

Pythonを使えば、短いコードで複雑な処理を実装することができます。

データ分析やスクレイピングなどを得意とするプログラミング言語で、さらにAI関連のライブラリーが豊富なので、昨今のAIブームで需要が爆発しています。

おすすめ
【いますぐ始められます】データ分析をするならPythonが最適です。【学習方法もご紹介します!】
おすすめ
【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】

 

また、Pythonは、僕自身も独学で習得できたくらい学びやすい言語なので、スキルを身に付けたい方などにもオススメです。

僕の場合は社会人になってから独学でPythonを習得して転職にも成功しました。Pythonをきっかけに人生が大きく変わりました。

おすすめ
【実体験】ゼロからのPython独学を決意してから転職を掴み取るまでのお話。
【実体験】ゼロからのPython独学を決意してから転職を掴み取るまでのお話。

続きを見る

 

僕自身の独学の経験をベースに、Python独学ロードマップをまとめたので、もしご興味があればご覧ください。

おすすめ
【決定版】Python独学ロードマップ【完全初心者からでもOKです】
【決定版】Python独学ロードマップ【完全初心者からでもOKです】

続きを見る

 

僕自身はUdemyでPythonを独学しました。

おすすめ
プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】
おすすめ
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

 

まとめ

いかがでしたでしょうか。

ここではyahoo_finance_api2を利用した株価データの取得方法について解説しました。

日本株のデータも取得可能なので、かなり万能な感じがします。

短いコードで実装できて、取得データも自由にカスタマイズできるので使い勝手も抜群です。

ただし、使う際には、使いまくってたら制限などをかけられる可能性はゼロではないということだけは頭に入れておいてください。(現状、制限に関する記述はないです)

 

yahoo_finance_api2を使えば、過去に紹介したPythonで株価データを取得する方法については不要になりそうです。

関連記事
【コード解説】Pythonで株価データを取得する!【3つの方法を解説】

続きを見る

 

また、Pythonで株価データを扱う記事については記事が散在しているのでこちらにまとめました!

テクニカル分析の計算方法や可視化についてはこちらからどうぞ。

関連記事
【まとめ】Pythonで株価データを扱う
【まとめ】Pythonで株価データを扱う

続きを見る

 

ここまで読んでくださってありがとうございました。

おすすめ
【決定版】Python独学ロードマップ【完全初心者からでもOKです】
【決定版】Python独学ロードマップ【完全初心者からでもOKです】

続きを見る

おすすめ
プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】
おすすめ
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

note始めました


noteでは、株式投資やプログラミングにのノウハウなどについて発信しています。

特にオニールやミネルヴィニの投資手法に基づいてスクリーニングした銘柄を発表しています。

投資でニート生活で管理している監視銘柄をさらに細かくスクリーニングした銘柄を発表していきます。

TATのnoteを見る


Pythonは世界中で人気上昇中の言語です!


需要が上昇しています


Pythonの需要はここ最近で急拡大しています。

特にAIやデータ分析を得意とする言語なので、データサイエンス分野で需要が爆発しています。

おすすめ
【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】



初心者も学びやすい


Pythonは初心者にも学びやすい言語です。

僕自身も社会人になってからPythonを独学して習得しました。

おすすめ
【決定版】Python独学ロードマップ【完全初心者からでもOKです】
【決定版】Python独学ロードマップ【完全初心者からでもOKです】

おすすめ
【Python独学法】初心者におすすめのPython勉強法まとめ
【Python独学法】初心者におすすめのPython勉強法まとめ


転職の武器になる!


Pythonは転職する際の武器にもなります。

僕はPythonを独学して転職に成功しました。

おかげさまで年収も大きく上がりました。

おすすめ
【実体験】ゼロからのPython独学を決意してから転職を掴み取るまでのお話。
【実体験】ゼロからのPython独学を決意してから転職を掴み取るまでのお話。

おすすめ
【副業は神です】2度の転職において副業が内定の決め手になったお話。



おすすめのプログラミング学習方法


Udemy


圧倒的な安さ(セール時)で上質な動画学習素材が手に入る!







Udemyを詳しく見る!



 

TECH::CAMP


いつでも講師に質問できるチャットシステムが最強です!







TECH::CAMPを詳しく見る!



 

CodeCamp


講師とのマンツーマンレッスンで挫折しない!







CodeCampを詳しく見る!



 

-Python
-, , , ,

© 2021 気ままなブログ