yfinanceとyahoo_finance_api2に株価取得数の上限があるか検証する

Python
スポンサーリンク

皆さんこんにちは!SEふじたけです。

以前から記事にしようとずっと思っていた、APIによる株価取得の制限について調べてみました。

[AI]BOTさん
[AI]BOTさん

遂に調べたのね!

今回は、yfinanceとyahoo_finance_api2によって株価取得数の上限があるのか?

東証上場銘柄を一括で取得する事はできるのか?

制限かかって今後使用できなくなったらどうしよう。。。

でもそんなの関係ねぇ!という事で早速検証していきます。

スポンサーリンク

株価を一括取得する為に

今回はAPIで取得した銘柄をpostgresに追加していく事にします。

APIで1銘柄をpostgresに追加する内容については前回の記事をご参照ください。

東証上場企業の一覧を保存しておく

東証上場企業を確認するには、JPXのページからcsvファイルをダウンロードする事ができます。

その他統計資料 | 日本取引所グループ
日本取引所グループは、東京証券取引所、大阪取引所、東京商品取引所等を運営する取引所グループです。

ただ月1回の更新となる為、月の合間で上場廃止となった銘柄はcsvファイル内に反映されていないので気を付けましょう。

また、Pro Marketは一般市場には公開されていない為、API取得では注意する必要があります。

Pro Marketとは何か?と思う方もおられると思います。(僕もその一人です。)

Pro Marketとは特定の投資家だけが取引可能な銘柄のようです。

概要 | 日本取引所グループ
日本取引所グループは、東京証券取引所、大阪取引所、東京商品取引所等を運営する取引所グループです。

LINE証券とかで調べても「銘柄一覧の銘柄見れないもの沢山あるじゃないか!」と思いましたが、

どうやらPro Marketのようです。

[AI]BOTさん
[AI]BOTさん

色んな市場を知れて良かったね!(プラス思考)

yahoo_finance_api2で一括取得してみる

yahoo_finance_api2は使用している方も多いかと思います。僕もこのAPIが非常に使いやすいと思っておりましたが、一括取得では色々と工夫が必要になってきます。

上場廃止等で株価が取得できない場合はNaNが返さたり制約が多い

上場銘柄一覧から取得した際に、銘柄が上場廃止の場合は廃止日以降の値は全てNaNで返されます。

つまり、Python上で除去する必要があります。

またyahoo_finance_api2では株価の最大取得期間が2か月ですが、それ以前に上場廃止になったものはNoneが返されます。

Pro Marketの場合は上場銘柄一覧には存在していますが、yahoo_finance_api2ではNoneで返される為、エラーにならないよう考慮が必要です。

後述しますがyfinanceでは上場廃止銘柄はそもそも取得されません。

好みが分かれる所ではありますが、個人的にはyfinanceの方が使いやすいと思いました。

[AI]BOTさん
[AI]BOTさん

使い勝手は人それぞれだね。

東証全銘柄に対してyahoo_finance_api2を実行してみる

結論から申しますと、全件取得できました!

巷では「1時間あたり2000件程の制限がある」との記事も見ましたが。。。

自分で試した所、銘柄一覧を全件取得する事ができました。

途中で失敗した事を含めると特に制限は無さそうです。

yfinanceで一括取得してみる

最近個人的にオススメしたいyfinanceでも取得してみます。

一括で取得する点についてはyfinanceの方が非常に便利だと思います。

上場廃止銘柄はそもそも取得されない

yfinanceで取得する際に上場廃止銘柄はエラーが返され取得されません。

yahoo_finance_api2のようにNaN値を除去する等の処理を追加する必要はないです。

上場廃止やPro Market銘柄に怯えず取得した銘柄一覧をそのまま流せば良いです!

[AI]BOTさん
[AI]BOTさん

とても簡単でいいね!

東証全銘柄に対してyfinanceを実行してみる

yfinanceについても東証全銘柄を取得する事ができました!

こちらも複数回実行しても取得できたので、特に件数によって制限は無さそうです。

yahoo_finance_api2とyfinanceの違いをまとめた

今回の検証から違いが結構分かったと思います。

  • yahoo_finance_api2
    • 過去2か月まで遡って銘柄を取得できる
    • 2か月以前の上場廃止銘柄を指定するとNoneが返される
    • 直近で上場廃止になった銘柄は廃止日以降の株価はNaNで返される
  • yfinance
    • 当分過去まで遡れる(おおよそ西暦2000年まで)
    • 上場廃止となった銘柄を取り込んでもエラー終了しない
    • Pro Marketの銘柄も株価取得期間内に一般市場に存在していれば取得できる

上の事から取得期間が長い事と、使いやすさからyfinanceを個人的にはオススメしたいです。

最後に

今回はyahoo_finance_api2とyfinanceで東証上場銘柄を一括取得してみました。

結果的にはどちらでも一括で取得する事ができました。

個人的には取得期間が長い等、yfinanceの方が使い勝手が良いと思います。

今後はyfinanceをメインに使用していきます。

※個人的に検証した結果ですので、APIの連続実行はあくまで自己責任でお願いします。

最後まで読んで頂きありがとうございました。

コメント

タイトルとURLをコピーしました