【Python】底値からの反転銘柄を発掘!東証プライム全銘柄スクリーニングアプリを作ってみた

アプリ

記事本文

最近は好景気の影響もあって株に興味をお持ちの方も多いのではないでしょうか。かくいう私も趣味程度に少額で個別銘柄を買って楽しんでいます。ただ、少額とはいえ損をしたくないので、できる限り購入する銘柄を絞って購入したいという思いがありました。

世の中には無料のスクリーニングアプリもありますし、証券会社のアプリでもスクリーニングはできます。ただ、意外とスクリーニングアプリを使っても自分の理想とするテクニカル状況の銘柄を見つけられないですよね。ということもあり今回はPythonを使って「底打ち反転」の兆候がある銘柄を全自動でピックアップするWebアプリを作ってみました。

作成したアプリはStreamlit Community Cloudにて公開しておりますのでご興味のある方は試してみて下さい!

プライム全銘柄スキャナー(グリッド版) · Streamlit

🔎 作成したアプリ「プライム市場 全銘柄スキャナー」

今回作成したのは、Streamlit というPythonフレームワークを使ったWebアプリです。ボタン一つで東証プライム全銘柄の過去5年分の株価データを取得・分析し、条件に合致する銘柄をカード形式で表示します。
Streamlitは非常に簡単に比較的モダンなGUIを持つWebアプリを作成することができ、徐々にその活躍の場面が増えています。また、冒頭でもふれたようにStreamlit Community Cloudへ参加することでサーバを持たない個人開発者でも自身が作成したアプリを無料で公開することができます。こういった点も私のようなかけだし個人開発者に多く使用されている理由になっているのではないでしょうか。

💡 このアプリの「スクリーニング条件」

このアプリでは、単に下がった銘柄を探すのではなく、以下の3つの条件をすべて満たす銘柄だけを抽出するようにロジックを組みました。

  1. 長期的な下落(割安感)
    • 過去5年間の最高値から、大幅に(デフォルト50%以上)下落していること。
  2. 底打ちの確認(下げ止まり)
    • 直近1年間の最安値から、少し(デフォルト10%以上)リバウンドしていること。
  3. トレンドの転換(初動)
    • 週足の移動平均線(13週線)が「上向き」に転じ、かつ現在の株価がその平均線の上にいること。

つまり、「かつての人気銘柄が、長い冬の時代を終えて、ようやく春の芽を出し始めた瞬間」を狙い撃ちするツールです。常に保有する銘柄の状況を監視して購買判断をするというのは普段サラリーマンとして仕事をしている人では時間的制約から困難だと思っていて、このアプリでは5年のスパンかつ週足ベースでのテクニカル判断をするという長期的な戦略をとっています。

🛠 技術スタック

エンジニア向けに、使っている技術についても少し触れておきます。すべてPythonのライブラリで完結しています。

  • Python: 言語本体
  • Streamlit: フロントエンド(HTML/CSSを書かずにWebアプリ化)
  • yfinance: 株価データの取得(Yahoo! Finance API)
  • Pandas: データの加工・フィルタリング
  • Plotly: インタラクティブなチャート描画

特にこだわったのは、「銘柄コードだけでなく企業名も表示する」点です。JPX(日本取引所グループ)の公式サイトから最新の銘柄リストをExcelで動的に取得し、コードと社名を紐付ける処理を入れています。これにより「7203.T」と出るより「トヨタ自動車」と出たほうが直感的に分かりやすくなりました。

📊 実際に使ってみた感想

実際にこのツールを回してみると、「あ、この大手企業もこんなに下がっていたんだ」「そろそろ反転しそうだな」という気づきが短時間で得られます。

特にグリッド表示にしているため、複数のチャート形状をパッと見で比較できるのが便利です。週末にこのツールで銘柄を洗い出し、気になったものを詳しく分析する、というルーティンで活用できそうです。

興味がある方はぜひ使ってみてください!


⚠️ 免責事項 本ツールは投資判断の参考となる情報の提供を目的としており、投資勧誘を目的とするものではありません。本ツールで取得したデータの正確性については保証できません。投資は自己責任で行ってください。

コメント

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