Python データ分析 株式投資

Pythonでfinvizみたいな株価ヒートマップを作ってみた

2022年11月19日

Pythonでfinvizみたいな株価ヒートマップを作ってみた

こんにちは。TATです。

今日のテーマは「株価ヒートマップ」です。

 

久しぶりのおふざけ企画です。

株価の騰落率をヒートマップで可視化してみます。

finvzにあるようなヒートマップを作るのが目標です。

 

最終的にこういうものが出来上がります。

PythonのPlotlyで作りました。

 

Pythonで必要なデータを収集して上記のようなヒートマップを作っていきます。

 

株価ヒートマップを使うとマーケットの動向が1発でわかる

まずは株価ヒートマップについて紹介します。

 

finvizの株価ヒートマップが有名です

ヒートマップは、データを数字によって色分けをして表現したチャートです。

finvizの株価ヒートマップが有名です。

引用元:https://finviz.com/map.ashx?t=sec

 

四角の大きさは時価総額を示しています。騰落率によって色が変化していることがわかります。

時価総額が最も大きいAppleが最大です。GAFAMはMeta以外どれも大きいですね。

 

全体のマーケット動向がわかる

株価ヒートマップを見ると、全体的なマーケット動向がすぐにわかります。

finvizの場合、騰落率がプラスならグリーン、マイナスならレッドになります。

全体を見てグリーンが多ければプラス、レッドが多ければマイナスと判断できます。

 

全体的に真っ赤な日には「おはぎゃー」と叫ばれながら株クラが賑やかになったりします。

関連記事【Pythonでデータ分析】株クラで目にする「おはぎゃー」のプロセスを自動化してみた!

 

セクター別の動向も簡単にわかる

finvizの株価ヒートマップは、セクター別にグルーピングされています。

よって、このグループ別に見れば、どのセクターが強いのか、同セクター内で違う動きをしている銘柄などを簡単に発見することができます。

 

上記の例(2022年10月11日時点)でいうと、OIL&GAS INTEGRATEDが特段マイナスが強いことが一目でわかります。

 

日本株でfinvizのような株価ヒートマップを作ってみたい

finvizのような株価ヒートマップを自力で作成することが本記事の目標です。

米国株のものはfinvizを見ればOKなので、ここでは日本株で作ってみようと思います。

 

必要なデータを整理する

まずは必要なデータを整理していきます。

株価ヒートマップを作成するために必要なデータは次の通りです。

 

必要なデータ

  • 上場銘柄リスト(ここでは日経225を採用)
  • 業種区分のリスト
  • 各銘柄の株価と前日比騰落率
  • 各銘柄の時価総額

 

上記のデータが必要になってきます。

全銘柄を株価ヒートマップにしてもカオスになるだけなので、今回は銘柄は日経225採用銘柄に絞っていきます。

市場ごとに時価総額の大きい銘柄トップ100とかに絞って作っても面白いかもですね。

 

データの準備

それではデータの準備をしていきます。

使用したコードはできる限り公開していきます。

 

サクッとスクレイピングで収集

日経225の情報がまとめられたサイトはいろいろあります。

今回はこちらのサイトからデータを取得しました。(スクレイピングのしやすさを考慮しました)

https://www.traders.co.jp/market_jp/nikkei225

 

Pythonでサクッとスクレイピングします。

 

 

 

これで銘柄リスト、業種区分、前日比騰落率の情報が用意できました。

残すは時価総額のみです。

 

時価総額データはXBRLから収集

時価総額のデータについてはXBRLから収集しました。

実際には時価総額のデータではなくて、発行済株式数のデータを収集してます。

これに株価をかけると時価総額になります。

 

こちらは僕が運営している「投資でニート生活」で日々収集しているものです。

DBから直接引っ張ってきたのでコードは公開できません。

関連記事PythonでTDNETとEDINETからXBRLデータを集めたら地獄だった話。

 

一応調べてみると、時価総額をまとめてくれているサイト(こことか)があるので、そこから収集しても同じチャートを作ることができます。

発行済株式数のデータが用意できれば、日々の株価をかければ最新の時価総額が計算できるので便利です。

 

データを結合して準備完了

次に、スクレイピングして収集したデータと発行済株式数のデータを結合します。

 

最後に時価総額を計算すれば準備OKです。

 

これでデータの用意は完了です。

 

株価ヒートマップで可視化してみる

ようやく本番です。

用意したデータを使って株価ヒートマップを作っていきます。

 

Plotlyのtreemapを使います

チャートの作成にはPlotlyのtreemapを使います。

 

これを使えば、データをグルーピングして、データに基づいて大きさや色を変化させることができます。

業種でグルーピングして、大きさを時価総額、色を騰落率に設定すればOKです。

 

株価ヒートマップを作成する

株価ヒートマップを作ってみます。

Plotlyを使うと数行でできてしまいます。

 

 

valuesを時価総額にしているので、四角の大きさが時価総額になります。

色(color)は騰落率です。

 

カラースケールはRdBuを選択しました。

マイナスならレッド、プラスならブルーになります。

 

ポイントはcolor_continuous_midpointを0にすることです。

こうすることで、プラスとマイナスで綺麗に色分けすることができます。

 

また、時価総額にNullがあって変な結果になってしまったので、これを除きました。

調べたら静岡銀行の発行済株式数のデータがありませんでしたw

 

とりあえず、これで株価ヒートマップが無事に完成しました。

 

業種別の動向が一目瞭然

上記のチャートは、2022年10月11日時点の株価データで作成しました。

全体的に赤色が目立つので、マーケット全体的には下がっていることがわかります。

 

そして業種別に見ると違いがよくわかります。

特に電気機器や精密機器の下げ方がひどいですね。

 

中でも日本電産が爆下がりしていることがわかります。

 

株価ヒートマップを使えば、マーケット全体はもちろん、業種別の動向もすぐに把握できるのでとても便利です。

 

時価総額を株価に変更してみる

最後におまけですが、四角の大きさを時価総額ではなくて直近の株価に変更してみます。

これで、時価総額関係なしに、株価の大きい銘柄が目立つようになります。

 

だいぶ見え方が変わりました。

電気機器は株価の高い銘柄が多いんですね。

小売業ではファーストリテイリングがずば抜けています。

 

いろいろとデータを変えながら見ていくと楽しそうです。

 

まとめ

本記事では、PythonのPlotlyを使って、finvizにあるような株価ヒートマップを日本株で作ってみました。

 

PythonのPlotlyを使うと、株価ヒートマップのような複雑なチャートでみ数行のコードで描くことができてしまいます。

特にPlotlyは便利です。インタラクティブな綺麗なチャートが簡単に描けます。便利すぎますね。

 

株価ヒートマップを使えば、マーケットの動向が一目でわかるのでとても便利です。

全体の動きも分かりますし、業種別の動きも簡単に把握できます。

急騰、急落している銘柄も簡単に見つかります。

 

本記事では、日経225銘柄を対象に株価ヒートマップを作ってみました。

これ以外にも、例えば市場別で時価総額の大きい銘柄トップ100とかを集めて株価ヒートマップを作ったりしても面白そうです。

 

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

 

Pythonおすすめ学習法

Udemy

Udemyの特徴

  • 高品質の動画教材がリーズナブルに購入できる
  • セール中なら定価の90%オフなどの価格破壊が起こる
  • 講師に直接掲示板から質問ができ、疑問を解消しながらスムーズに学習できる
  • 動画はダウンロード可能で、隙間時間に効率的に学習できる
  •  30日間の返金保証、一度購入すれば視聴期限なく受講可能

\30日返金保証/

Udemy 公式サイトへ

セール中なら90%オフとかで購入可能です!

キカガク

キカガクの特徴

  • Pythonだけでなく、数学の基礎から、環境構築、AIアプリケーション開発まで一気通貫で学べる
  • 自走できるAI・DX人材を育成
  • オンデマンドの講義 + プロの講師に質問し放題、定期的なメンタリング付き
  • 今後増える動画コンテンツを含め、全ての動画コンテンツが一生見放題
  • 専門実践教育訓練給付金制度を利用すると最大で受講料の70%が還元される

\Pythonだけでなく、機械学習やAIの基礎から学べる/

キカガクを詳しく見る

企業の研修材料にも採用される実績と信頼のあるスクールです!

データミックス

データミックスの特徴

  • データサイエンティストが開発・監修した体系的かつ実践的に学べるカリキュラム
  • 「スキル」のみでなく、データサイエンスの本質である「理論」や「思考」が学べる
  • エンジニアに限らず、多様なキャリアを形成・構築できる
  • オンラインチャットツールによる質問対応やコミュニティなどの充実したフォロー体制
  • 専門実践教育訓練給付金の対象講座で授業料の最大70%還付

\データサイエンスとビジネスが学べる/

データミックス(datamix)を詳しく見る!

エンジニア転職だけでなく起業やフリーランスなど多様なキャリア形成・構築に繋がる

「Python」×「株式投資」

Pythonで株式データを扱う記事はこちらでまとめています。

収集・管理しているデータの販売もしています。

Pythonで株価データを扱う方法まとめ【データの取得・分析・可視化等、なんでもできます】

オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータを販売します!


-Python, データ分析, 株式投資
-, , ,

© 2022 気ままなブログ