プログラミング初心者がyfinance APIで自分専用の上場企業ダッシュボードを作ってみた
こんにちは。桑原です。
今回はプログラミング初心者の私がyfinance APIで自分専用の上場企業ダッシュボードを作ってみた話をしようと思います。
なぜプログラミングの勉強を始めたか?
元々文系人間でプログラミングとは無縁の生活を送ってきましたが、縁あって今年の4月からTech0というコミュニティでプログラミングなどのテックの勉強をする機会を得ました。
振り返ると監査法人退職後にIT企業の経営企画部門に勤務していたにも関わらず、当時は全くITの勉強をしていませんでした。。。
勝手にエンジニアは自分とは全く違う人たちと思っていたのですね。今思い返しても本当に怠惰だったと昔の自分を強く𠮟りつけてやりたいです。
おそらく自分のキャリアの中でIT企業勤務時代が最もテックに近づいていたのですが、それを生かすこともせず、その後もテックに触れることなく(避けてた??)気づけば40代半ばになっていました。
そんな折、監査法人時代の後輩からTech0を勧められ、Biz×Techのコンセプトに惹かれて、プログラミングは出来ないと勝手に思い込んでいる自分とIT企業時代に全く勉強しなかった負い目に別れを告げるべく、プログラミングの勉強を始めることにしました。
yfinance API
Tech0の具体的な内容は長くなるので割愛しますが、講師・メンター・優秀な同期の人たちのおかげで何とか付いていくことが出来まして、受講開始から2ヶ月ほど経過したある日、yfinance APIを使用したアプリ作成の授業がありました。
私は財務アドバイザリーを業としているので、上場企業のTOBやMBOを仕掛ける時は時価総額・EVやEBITDA・株価推移・業績推移などをチェックするのですが、有料で使用しているツールやヤフーファイナンス、ネット証券のツール等では欲しい情報が一覧で取れなかったので少しストレスを感じていました。
色々調べてみるとyfinance APIを使えば企業の様々な情報を入手出来る!!
ということがわかったので、自分が欲しい情報だけを表示するダッシュボード作成にチャレンジしようと思い立ちました。
アプリの概要
フロントはStreamlitを使用し、言語はPythonです。コードはVS Codeで書きました。
以下のサイトも参考にしています。
https://pypi.org/project/yfinance/
https://datatechlog.com/how-to-retrieve-stock-price-and-other-info-using-yfinance/
また最初はティッカーを入力するだけで良いかと思っていましたが、ティッカーを覚えていない企業がほとんどなので、ティッカー+会社名をリスト化し検索性を高めるため東証ホームページから東証上場銘柄一覧を取得し、この一覧データをPythonで読みにいってティッカー・会社名をStreamlit上でリスト化しました。
ティッカーを知っていれば左上に数値を入力し、知らない場合はその下のリストからティッカー・会社名を参考に選択します。
会社サマリーでは株式市場や業種区分に加えて、EVやEBITDA、EBITDAマルチプル、事業内容等を取得出来るようにし、財務サマリーでPL・BS・CFで知りたい情報だけを表示しています。
1年間の株価・出来高推移も表示するようにしています。
課題
今回はStreamlitなのでフロント画面が洗練されていない、、、とここまで書きましたが、本当はもっとキレイに見せれるのかもしれません。。。
また会社サマリーや財務サマリーの項目名が会社によって違っているケースがあり、たまにエラーが出てしまいます。
他にも新規IPO銘柄は自動的に追加されないので、定期的に東証ホームページから東証上場銘柄一覧を取得しティッカー等を更新する必要があります。
東証上場銘柄一覧は月次でアップデートされるので月イチで定期実行すれば良いのかもしれないですが(やり方がわからない)。。。
最低限の欲しい情報が取れるようになったので満足していますが、時間が取れたらエラーを改善したり、見せ方を工夫していきたいですね。
もっと良い見せ方や改善方法があればお気軽にご連絡いただけると嬉しいです!
-------------------------------
アクアコーポレートアドバイザリー株式会社はスタートアップから上場企業、VCファンドからバイアウトファンドまで、会計・資金調達・M&A・PMI・事業承継まで幅広く支援するプロフェッショナルファームです。
株式取得、株式売却、他社との資本提携、IPOなどご検討の方は、お気軽にこちらよりご連絡下さい。