見出し画像

yfinanceでは無配当のdividendsを取得できないという話

久々の投稿です。

ある投資戦略を検証するためにyfinanceから配当金に関する情報を収集しようとしていましたが、yfinanceでは無配当に関する情報が取得できないという落とし穴に気づいたので投稿します。

yfinanceの配当情報の取得

yfinanceはPythonで株式関連情報を取得できるライブラリです。
https://github.com/ranaroussi/yfinance
コードの詳細は省きますが、銘柄コードを指定したクラスを作成後、dividendsを指定することで配当情報をPandasのSeriesオブジェクトで取得できます。

yfinanceでは無配当の情報が取得できない

本題です。yfinanceはdividendsを取得できますが、yahoo financeに無配当という情報そのものが記録されていないみたいです。

例 2021年3月期 日産自動車

日産自動車の2021年3月期(2020年4月1日~2021年3月31日)の配当の状況は、0円と記載があります。

出典:日産自動車HP IR資料室 2025年1月16日に確認

yfinanceで実際に2020年の配当情報を確認すると

2020年あたりの記録がない

Yahoo finance (US) には無配当の記録がない

Yahoo finance(US)はyfinanceのデータ取得元になっていると筆者は考えていますが、そこには2020年の配当情報が丸々欠損しています。つまり配当金が0円という情報が記載されていません。

Yahoo Finance (Nissan Mortor Co., Ltd.) Historical Data > Dividends Onlyでチェック。
2025年1月16日に確認

配当カレンダー的な要素はyfinanceからは取得できない

コーポレートアクションに関するデータを取得できないか調べてみましたが、直近の配当落ち日などが取得できるのみで、ヒストリカルな配当権利付き日のようなものは取得できませんでした。

calendarの取得はできるが、そもそもlist要素ではない。複数日を応答する仕様ではなさそう

頑張って無配当に関する情報を取得するならば

1. 同じ配当日カレンダーを持つ企業を突合させる

複数企業のデータを取得する前提です。同じ配当日傾向のある企業のdividendsのDatetimeIndexを突合させて、無配になっている企業とデータを結合する、という方法がありそうです。(→決算期変更などを考慮する必要がある?)が、まだ実践はせず。

2. Cashflow Statementsから、Dividends Paidが欠損していないか確認する

キャッシュフロー計算書から、配当金の支払い額が0円になっているケースを探すという方法もあるかと思います。こちらのほうがまだ現実的ですが、決算日と配当金のex-dividends-dateを結合する作業が別途必要です。

yfinanceを使っていて、無配当という情報がないことに気付いていない方のために参考になればと思います。


いいなと思ったら応援しよう!