日本株投資で成果を安定させるうえで、最も差がつきやすい作業の一つが「銘柄を探す仕組み」です。多くの個人投資家は、ニュース、SNS、ランキング、掲示板、証券会社のおすすめ、株主優待特集などを見て銘柄を知ります。それ自体は悪くありません。しかし、その方法だけでは情報の入口が他人任せになります。すでに注目された銘柄を後追いしやすく、買う理由も曖昧になりがちです。
そこで有効なのが、ChatGPTとPythonを組み合わせた日本株スクリーニングの自動化です。Pythonは大量のデータを機械的に処理する道具、ChatGPTは条件設計やコード作成、結果の解釈を補助する道具として使います。つまり、人間が「どういう銘柄を探したいか」を決め、Pythonが「条件に合う銘柄を漏れなく抽出」し、ChatGPTが「条件の抜け、改善点、分析視点」を補うという分業です。
この記事では、単なるツール紹介ではなく、個人投資家が実際に使えるスクリーニングの考え方を具体化します。狙うのは、派手な一発予想ではありません。日々の銘柄探索を省力化し、同じ基準で比較し、投資候補の質を上げる仕組みです。最終的には、毎週同じ条件で日本株を抽出し、候補リストを更新し、注目銘柄の変化を追える状態を目指します。
- スクリーニング自動化の本質は「作業削減」ではなく「判断基準の固定化」
- ChatGPTとPythonの役割を分ける
- 最初に作るべきスクリーニング条件
- Pythonで扱うデータの基本形
- 実践例:成長株候補を抽出する条件設計
- 実践例:割安成長株を抽出する条件設計
- ChatGPTに依頼するプロンプトの作り方
- スコア化すると候補銘柄の比較が楽になる
- 自動化しても最後は必ず目視確認する
- 週次ルーティンに落とし込む
- ありがちな失敗と対策
- スクリーニング結果を投資ノートに残す
- 個人投資家向けの実用的な運用フロー
- ChatGPTを分析レビュー担当として使う
- 最初のゴールは「毎週30分で候補銘柄を更新できる状態」
- まとめ:自動化は個人投資家の情報格差を縮める武器になる
スクリーニング自動化の本質は「作業削減」ではなく「判断基準の固定化」
投資家がスクリーニングを自動化する最大のメリットは、作業時間の短縮だけではありません。より重要なのは、判断基準を固定できることです。人間は相場が上がっていると楽観的になり、下がっていると必要以上に悲観的になります。同じ銘柄でも、地合いが良い日は魅力的に見え、地合いが悪い日は危険に見えます。
一方、プログラムは感情を持ちません。売上成長率が何%以上、営業利益率が何%以上、出来高が何倍以上、株価が移動平均線を上回っている、といった条件を決めれば、毎回同じ基準で銘柄を拾います。これにより、「今日はなんとなく良さそう」「SNSで話題だから買いたい」という判断を減らせます。
たとえば、成長株を探す場合に「売上高が前年比10%以上増加」「営業利益が前年比20%以上増加」「自己資本比率30%以上」「直近20営業日の平均出来高が過去60営業日平均より増加」「株価が75日移動平均線を上回る」という条件を設定したとします。この条件で毎週スクリーニングすれば、少なくとも自分の投資テーマに合う銘柄だけが候補に残ります。そこから決算短信、事業内容、チャート、需給を確認すればよいのです。
ChatGPTとPythonの役割を分ける
ChatGPTとPythonを混同すると失敗します。ChatGPTは便利ですが、銘柄データを常に正確に持っているわけではありません。最新の株価、出来高、財務数値、発行済株式数、信用残などは、証券会社、取引所、企業開示、データサービスなどの一次情報または信頼できるデータソースから取得する必要があります。
Pythonの役割は、取得したデータを読み込み、計算し、条件で絞り込み、ランキング化することです。ChatGPTの役割は、スクリーニング条件の設計、Pythonコードの作成補助、エラー修正、抽出結果の読み解き、改善案の提案です。つまり、ChatGPTに「有望銘柄を教えて」と丸投げするのではなく、「この条件で候補を抽出するPython処理を作る」「抽出結果のどこに注意すべきかを整理する」ために使います。
この分業を守るだけで、精度は大きく変わります。ChatGPTは投資判断の代行者ではなく、分析業務の補助者です。データ処理はPython、判断は投資家、補助はChatGPT。この三者の役割を明確にすると、自動化は実用レベルになります。
最初に作るべきスクリーニング条件
最初から複雑なモデルを作る必要はありません。むしろ、最初は単純な条件のほうが使いやすいです。おすすめは、財務、株価、出来高、流動性、リスク除外の五つに分けて条件を作ることです。
財務条件
財務条件では、企業の収益力と安全性を見ます。たとえば、売上高成長率、営業利益成長率、営業利益率、自己資本比率、営業キャッシュフロー、フリーキャッシュフローなどです。成長株を探すなら売上と利益の伸びを重視し、割安株を探すならPER、PBR、配当利回り、ネットキャッシュ比率などを重視します。
初心者がよく失敗するのは、PERだけで安いと判断することです。PERが低い企業には、成長鈍化、業績悪化、構造不況、特別利益による一時的な利益増加など、低評価になる理由があります。そこで、PERを見る場合も「低PERかつ営業利益が増加」「低PERかつ営業キャッシュフローが黒字」「低PERかつ自己資本比率が一定以上」のように複数条件で確認します。
株価条件
株価条件では、トレンドを見ます。代表的なのは、5日、25日、75日、200日移動平均線との位置関係です。成長株の順張りなら、株価が75日移動平均線を上回り、25日移動平均線も上向きである銘柄を優先します。逆張り型なら、PBR1倍割れやネットキャッシュ比率が高い銘柄のうち、株価が底練りから反転し始めたものを探す設計もあります。
ただし、株価条件だけで銘柄を選ぶと、仕手性の高い銘柄や一時的な材料株を拾いやすくなります。株価の勢いは重要ですが、必ず財務や出来高と組み合わせるべきです。
出来高条件
出来高は、機関投資家や大口投資家の関心が高まっているかを見るうえで有効です。たとえば、直近5日平均出来高が過去60日平均出来高の2倍以上になっている銘柄は、何らかの変化が起きている可能性があります。決算、上方修正、材料、テーマ化、需給改善など、理由はさまざまです。
出来高急増だけでは危険ですが、業績改善と同時に出来高が増えている場合は注目に値します。特に小型株では、出来高が増え始めた初期段階で気づけるかどうかが重要です。流動性が低すぎる銘柄は売買が難しいため、最低限の売買代金条件も入れておくと実用的です。
Pythonで扱うデータの基本形
スクリーニング用データは、CSV形式で管理すると始めやすいです。最初は、証券会社のスクリーニング機能や各種データサービスから取得したデータをCSVで保存し、Pythonで読み込む形で十分です。慣れてきたら、APIやスクレイピングではなく、利用規約に沿った正規のデータ取得方法へ拡張します。
基本的な列は、証券コード、銘柄名、市場、業種、時価総額、売上高成長率、営業利益成長率、営業利益率、PER、PBR、配当利回り、自己資本比率、営業キャッシュフロー、株価、25日移動平均線、75日移動平均線、出来高、平均出来高、売買代金などです。これらがあれば、かなり実用的な一次スクリーニングができます。
データは完璧である必要はありません。最初の目的は、全銘柄を完璧に分析することではなく、候補銘柄を数千社から数十社に絞ることです。その後の最終判断は、決算短信、有価証券報告書、適時開示、会社説明資料、チャート確認で行います。
実践例:成長株候補を抽出する条件設計
具体例として、成長株候補を抽出する条件を考えます。狙うのは、業績が伸びており、株価も上昇トレンドに入り、出来高も増えている銘柄です。条件は次のように設計できます。
売上高成長率が10%以上、営業利益成長率が20%以上、営業利益率が5%以上、自己資本比率が30%以上、株価が75日移動平均線を上回る、直近出来高が平均出来高の1.5倍以上、売買代金が一定以上。この条件により、成長性、収益性、安全性、株価トレンド、需給を同時に確認できます。
たとえば、A社とB社があるとします。A社は売上高成長率25%、営業利益成長率40%、営業利益率12%、自己資本比率55%、株価は75日線上、出来高も増加しています。B社は売上高成長率30%ですが、営業赤字で自己資本比率も低く、出来高も薄い状態です。この場合、単純な売上成長だけならB社も魅力的に見えますが、スクリーニングではA社を優先します。投資では「伸びている」だけでなく「継続できるか」「市場が反応し始めているか」まで見る必要があります。
実践例:割安成長株を抽出する条件設計
次に、割安成長株を探す条件です。これは、単なる低PER銘柄ではなく、業績成長があるのに市場評価が低い銘柄を探す方法です。条件例は、PER15倍以下、PBR1.5倍以下、売上高成長率5%以上、営業利益成長率10%以上、営業キャッシュフロー黒字、自己資本比率40%以上、配当利回り1%以上などです。
この条件では、派手なテーマ株よりも、地味なBtoB企業、部品メーカー、専門商社、ソフトウェア会社、インフラ周辺企業などが出てくることがあります。市場から見落とされやすい企業を拾うには、人気ランキングではなく数値条件で機械的に探すほうが有利です。
ただし、割安成長株には「いつ評価されるかわからない」という弱点があります。そのため、株価が25日線または75日線を上回り始めた、出来高が増えた、上方修正が出た、増配が発表された、自社株買いが出た、といった評価見直しのきっかけを追加条件にすると実戦向きになります。
ChatGPTに依頼するプロンプトの作り方
ChatGPTを使うときは、依頼文を具体的にするほど実用的な回答になります。悪い依頼例は「日本株のスクリーニングコードを書いて」です。これでは、どのデータを使うのか、どんな銘柄を探すのか、出力形式は何かが曖昧です。
良い依頼例は、「stock_data.csvにはcode、name、market_cap、sales_growth、operating_profit_growth、operating_margin、equity_ratio、per、pbr、price、ma75、volume、avg_volume_60、trading_valueの列があります。売上成長率10%以上、営業利益成長率20%以上、営業利益率5%以上、自己資本比率30%以上、株価が75日移動平均線以上、出来高が60日平均の1.5倍以上、売買代金1億円以上の銘柄を抽出し、スコア順にCSV出力するPythonコードを書いてください」という形です。
ここまで具体化すると、ChatGPTはかなり使いやすいコードを返しやすくなります。さらに、「欠損値がある場合は除外」「数値列にカンマが入っていたら除去」「結果には条件ごとの判定列も出す」「スコア計算式をコメントで説明する」と追加すれば、実務に近づきます。
スコア化すると候補銘柄の比較が楽になる
条件に合う銘柄を抽出するだけでも有効ですが、候補が多く出た場合は優先順位を決める必要があります。そこで役立つのがスコア化です。たとえば、売上成長率、営業利益成長率、営業利益率、出来高増加率、株価トレンド、自己資本比率に点数をつけ、合計点でランキングします。
重要なのは、スコアを絶対視しないことです。スコアは銘柄を並べ替えるための補助線です。1位だから必ず良い、30位だから悪い、という意味ではありません。むしろ、上位に出てきた銘柄を効率よく調べるための入口と考えるべきです。
スコア設計の例として、売上高成長率を20点、営業利益成長率を25点、営業利益率を15点、出来高増加率を15点、株価トレンドを15点、財務安全性を10点にします。成長株を探すなら利益成長の配点を高くし、高配当株を探すなら配当利回り、配当性向、営業キャッシュフローの配点を高くします。このように、スコアは投資戦略ごとに変える必要があります。
自動化しても最後は必ず目視確認する
スクリーニングで抽出された銘柄を、そのまま買うのは危険です。自動化は候補抽出のための仕組みであり、最終判断ではありません。必ず目視確認を行います。
確認すべきポイントは、事業内容、業績の継続性、一過性利益の有無、受注残、原価率、為替感応度、主要顧客依存、株主構成、信用残、決算説明資料、今期会社予想、過去の下方修正癖、株価位置、出来高、流動性です。特に小型株では、数字だけ良く見えても流動性が低すぎて売買しにくいことがあります。
たとえば、営業利益成長率が100%を超えている企業が抽出されたとしても、前年が極端に悪かっただけかもしれません。特別利益や補助金で利益が押し上げられている可能性もあります。反対に、スコアが少し低くても、継続課金モデルで売上が積み上がる企業や、価格転嫁力が強い企業は長期的に魅力的な場合があります。機械抽出と人間の読み解きを組み合わせることで、精度が上がります。
週次ルーティンに落とし込む
スクリーニングは、一度作って終わりではありません。投資成果につなげるには、週次ルーティンに落とし込む必要があります。おすすめは、週末にデータを更新し、Pythonで候補銘柄を抽出し、前週との変化を確認する流れです。
具体的には、まず全銘柄データを更新します。次に、成長株、割安成長株、高配当株、出来高急増株、トレンド転換株など複数の条件でスクリーニングします。その後、各リストの上位20銘柄を確認し、重複して出てくる銘柄を重点チェックします。複数の条件に引っかかる銘柄は、何らかの変化が起きている可能性があります。
さらに、前週は出ていなかったのに今週初めて出てきた銘柄を「新規候補」として管理します。投資では、すでに人気化した銘柄よりも、条件を満たし始めた初期段階の銘柄を見つけるほうが有利です。新規候補リストを作るだけで、銘柄発掘の質は大きく変わります。
ありがちな失敗と対策
スクリーニング自動化でよくある失敗は、条件を厳しくしすぎることです。理想的な銘柄だけを探そうとして、候補がほとんど出なくなります。売上成長率30%以上、営業利益成長率50%以上、PER10倍以下、PBR1倍以下、自己資本比率70%以上、出来高急増、株価上昇トレンド、という条件を同時に満たす銘柄は多くありません。条件は、最初は広めに設定し、抽出結果を見ながら調整するほうが実用的です。
次に、過去データに過剰適合する失敗があります。過去にうまくいった条件を細かく調整しすぎると、過去相場では良く見えても将来の相場では機能しにくくなります。スクリーニング条件は、相場の偶然に合わせるのではなく、企業価値や需給の変化を捉える普遍的な考え方に基づくべきです。
もう一つの失敗は、データの欠損や異常値を無視することです。財務データが未入力、分割調整前の株価、出来高の異常値、一時的な特別利益などが混じると、スクリーニング結果が歪みます。Python側で欠損値の扱い、異常値の除外、単位の統一を行うことが重要です。
スクリーニング結果を投資ノートに残す
自動化の効果を高めるには、抽出結果を投資ノートとして蓄積することが重要です。毎週の候補銘柄、抽出条件、当時の株価、気づいた点、見送った理由、後日の値動きを記録します。これを続けると、自分の条件が機能しているかを検証できます。
たとえば、出来高急増条件で抽出された銘柄が、その後どのくらい上昇したのか。営業利益率改善条件で抽出された銘柄は、次の決算でも改善が続いたのか。割安成長株条件で抽出された銘柄は、評価見直しまで何週間かかったのか。こうした記録を残せば、自分だけの検証データになります。
投資ノートは、ExcelやGoogleスプレッドシートでも十分です。Pythonで抽出したCSVを保存し、手動コメントを追加するだけでも価値があります。重要なのは、買った銘柄だけでなく、見送った銘柄も記録することです。見送った銘柄が上がった理由、買った銘柄が下がった理由を比較すると、スクリーニング条件の改善点が見えてきます。
個人投資家向けの実用的な運用フロー
最も現実的な運用フローは、次のような形です。週末にデータを更新し、Pythonで複数条件のスクリーニングを実行します。抽出結果をCSVで保存し、上位銘柄を確認します。気になる銘柄だけ決算短信と会社資料を読みます。候補銘柄を監視リストに入れ、買う条件と見送る条件を事前に決めます。
買う条件の例は、決算後に株価が高値圏を維持する、出来高を伴って直近高値を上抜ける、25日線まで押して反発する、会社予想が保守的で上方修正余地がある、などです。見送る条件の例は、出来高が急減する、決算内容に一過性要因が多い、株価が急騰しすぎてリスクリワードが悪い、信用買い残が急増している、などです。
このように、スクリーニングは「買う銘柄を決める道具」ではなく、「調べる価値のある銘柄を効率的に発見する道具」です。この認識を持つと、過信を避けながら実戦に活用できます。
ChatGPTを分析レビュー担当として使う
ChatGPTは、抽出結果をレビューする用途でも使えます。たとえば、候補銘柄の一覧に財務指標やチャート条件を添えて、「このスクリーニング条件の弱点を指摘してください」「過剰に成長率へ偏っていないか確認してください」「高配当株向けに条件を改善してください」と依頼します。
また、スクリーニング条件の説明文を作る用途にも向いています。自分がなぜその条件を使っているのかを文章化すると、投資判断が整理されます。条件の意味を説明できない場合、その条件は不要かもしれません。たとえば、営業利益率を入れる理由は、売上成長だけでなく収益性を確認するためです。出来高増加率を入れる理由は、市場参加者の関心変化を確認するためです。株価が75日線を上回る条件を入れる理由は、中期トレンドが悪化している銘柄を避けるためです。
このように、ChatGPTはコード作成だけでなく、投資ロジックの言語化にも使えます。言語化できた戦略は改善しやすく、言語化できない戦略は感情に流されやすくなります。
最初のゴールは「毎週30分で候補銘柄を更新できる状態」
日本株スクリーニングの自動化で、最初から完全なシステムを作る必要はありません。最初のゴールは、毎週30分で候補銘柄を更新できる状態です。データ取得に10分、Python実行に1分、結果確認に19分。この程度でも、手作業で数百銘柄を眺めるより圧倒的に効率的です。
慣れてきたら、条件を増やせばよいです。決算発表後のギャップアップ銘柄、出来高急増銘柄、PBR1倍割れ改善銘柄、ROIC改善銘柄、フリーキャッシュフロー急増銘柄、信用倍率改善銘柄など、自分の投資スタイルに合わせてスクリーニングを追加します。
重要なのは、派手な機能より継続できる仕組みです。毎週同じタイミングでデータを更新し、同じ条件で抽出し、変化を記録する。この地味な作業が、銘柄発掘力を高めます。
まとめ:自動化は個人投資家の情報格差を縮める武器になる
ChatGPTとPythonを使えば、個人投資家でも日本株の銘柄探索をかなり効率化できます。重要なのは、最新情報を丸投げで聞くのではなく、自分で定義した条件に基づいてデータを処理することです。Pythonで候補を抽出し、ChatGPTで条件設計やコード改善を補助し、最終判断は自分で行う。この形が最も実用的です。
投資で差がつくのは、派手な予想よりも、良い候補に早く気づく仕組みです。スクリーニングを自動化すれば、ニュースやSNSに振り回される割合を減らし、自分の基準で市場を見ることができます。条件に合う銘柄を毎週抽出し、変化を記録し、検証を続ければ、少しずつ自分だけの投資データベースが育ちます。
まずは、成長株、割安成長株、高配当株の三つだけでも十分です。CSVでデータを用意し、Pythonで条件抽出し、結果を投資ノートに残す。これを数カ月続けるだけで、銘柄を見る目は大きく変わります。自動化は、投資判断を機械に任せるためのものではありません。人間がより良い判断をするために、余計な作業と感情のブレを減らすためのものです。


コメント