日本株3,700銘柄をAI2体で30銘柄まで絞る|2段階スクリーニングのプロンプト全公開
自作ツールで日本株ほぼ全銘柄(約3,700銘柄)のファンダメンタルデータが取れるようになりました。やったね。
……で、気づくわけです。3,700銘柄、多すぎて人間には読めないw
どうも、佐藤です。今回は、この全銘柄データからS株の長期保有候補を絞り込むために作った「2段階スクリーニング」の仕組みを全公開します。ChatGPT(チャッピー)とClaude(クロちゃん)の2体を工程で分けるのがミソです。プロンプトは原文そのまま載せるので、コピペで再現できます。
なぜ2段階に分けるのか
理由は2つあります。
理由1:トークン問題。 3,700銘柄のTSVをそのままClaudeに投げて「良いの選んで」とやると、読み込みだけでAIの処理量(トークン)が溶けます。なので、まず機械的な足切りで100銘柄まで減らしてから、精査に入る必要があります。
理由2:機械の言うことを鵜呑みにすると事故る。 当ブログでは過去に、機械的スクリーニングの結果を信じたら73円のボロ株がトップ評価になった事件がありましてw 数値の足切りは得意でも、「この業種でこのPERは普通なのか異常なのか」みたいな文脈判断は機械には無理なんです。
そこで役割分担です。
- Stage 1(チャッピー):計算マシン。フィルタとスコアリングで3,700→100銘柄。判断はさせない
- Stage 2(クロちゃん):アナリスト。業種の常識・ビジネスモデル・罠の検証で100→30銘柄
- 佐藤:最終判断。買うかどうかはAIに渡さない
スコア設計:品質は不変、時流は「順番」にだけ効かせる
このスクリーニングの一番のこだわりが2層スコアです。
- 基礎スコア(100点満点・不変):連続増配年数・配当利回り・配当性向・営業利益率・ROE・売上成長率・自己資本比率・FCFで採点。企業の体力は季節で変わらないので、ここは固定
- 時流ボーナス(±10点・可変):実行時にAIが金利・為替・地合いをweb検索で確認し、レジームに応じてセクター単位で加減点
つまり「良い会社の定義」は変えずに、「今どれから買うか」の順番だけ市況に合わせて動く設計です。同じデータでも夏と冬で顔ぶれの順番が変わります。利上げ局面なら銀行にプラス、直近1ヶ月で上がりすぎたセクターにはマイナス(高値掴み回避の逆張り仕様)、みたいな感じです。
株価の勢いは一切採点しません。その代わり「52週位置」(52週安値〜高値のどこにいるか%)を参考列として出して、高値圏か安値圏かは人間が目で見て判断します。
Stage 1:チャッピー用プロンプト(原文)
以下をChatGPTにコピペして、全銘柄TSVを添付するだけです。
あなたは株式スクリーニングの計算担当です。添付TSV(日本株約3,734銘柄・ファンダメンタルデータ)から、
長期保有・配当重視の候補を100銘柄抽出してください。
# 重要ルール
- 数値処理は必ずコード実行(Python)で行うこと。目視や推測で選ばない
- 市場環境の判定は下記Step0の指定項目のみをweb検索で確認。それ以外の相場観・予想は加えない
- 列名はTSVのヘッダーをそのまま使うこと
# Step0: 市場環境チェック(実行時にweb検索で確認)
以下の4項目を検索し、判定ログとして報告する:
A. 日銀政策金利:直近の変更と方向(利上げ局面 / 据え置き / 利下げ局面)
B. ドル円:現在水準と直近3ヶ月の方向(円安進行 / 横ばい±3円 / 円高進行)
C. 地合い:TOPIXの直近1ヶ月騰落率(+3%超=強気 / ±3%以内=中立 / -3%超=軟調)
D. 直近1ヶ月の東証セクター騰落:上位3業種と下位3業種
# Step1: ハードフィルタ(不変・全て満たすもののみ通過)
0. 【保有銘柄の除外】以下のコードの銘柄は候補から除外する(買い増し検討は別工程で行うため):
- (ここに自分の保有銘柄のコード・銘柄名を箇条書きで貼る)
1. 記事掲載区分 = 通常掲載可 かつ 配当ランキング利用可否 = OK
2. 時価総額(億円) >= 300
3. 営業利益率(%) > 0 かつ EPS(円) > 0
4. 配当利回り(%) >= 2.5
5. 配当性向(%) <= 70
6. 自己資本比率(%) >= 30
※33業種区分が「銀行業」「証券、商品先物取引業」「保険業」「その他金融業」は条件6を免除
# Step2: 基礎スコア(不変・100点満点)
- 連続増配(年):10年以上=25 / 7〜9年=20 / 5〜6年=15 / 3〜4年=10 / 1〜2年=5 / 0=0
- 配当利回り(%):3.5以上=10 / 3.0以上=8 / 2.5以上=5
- 配当性向(%):30〜50=10 / 50超〜60=7 / 30未満=5 / 60超〜70=3
- 営業利益率(%):15以上=15 / 10以上=10 / 5以上=5 / 5未満=2
- ROE(%):12以上=10 / 8以上=7 / 5以上=3 / それ未満=0
- 売上成長率_YoY(%):5以上=10 / 0以上=5 / マイナス=0
- 自己資本比率(%):50以上=10 / 40以上=7 / 30以上=4(金融免除銘柄は一律4)
- FCF(百万円):プラス=10 / マイナスまたは欠損=0
# Step3: 時流ボーナス(可変・-10〜+10点)
Step0の判定結果に応じて、該当33業種に加減点する。適用したルールを判定ログに明記する。
【金利】
- 利上げ局面:銀行業・保険業に+5 / 不動産業に-5
- 利下げ局面:不動産業・建設業に+5 / 銀行業に-3
【為替】
- 円安進行:輸送用機器・機械・電気機器に+5 / 小売業・食料品に-3
- 円高進行:小売業・食料品・空運業に+5 / 輸送用機器・機械に-3
【地合い】
- 軟調:食料品・医薬品・情報・通信業に+3(ディフェンシブ)、
さらに⚠安値圏フラグ銘柄のうち基礎スコア60点以上のものに「🛒買い場候補」マークを付ける
- 強気:加点なし(過熱時に順張りしない)
【セクター騰落】
- 直近1ヶ月の下位3業種に+3(逆張りDCA視点)/上位3業種に-3(高値掴み回避)
※合計は-10〜+10でクリップする
# Step4: 罠フラグ付与(除外はしない。印を付けるだけ)
- ⚠高利回り:配当利回り5%超
- ⚠割高:PER 25超
- ⚠超割安:PER 5未満 または PBR 0.5未満
- ⚠減収:売上成長率_YoY -10%以下
- ⚠安値圏:株価が52週安値の1.05倍以下
# Step5: セクター分散と選出(不変)
総合スコア(基礎+時流)降順で、33業種区分ごとに上位8銘柄まで。その上で全体上位100銘柄を選出。
# 出力形式
1. 判定ログ:Step0の4項目の確認結果と、適用した時流ボーナスルール一覧
2. 候補100銘柄TSV(ダウンロード可能な形で)。列は以下の順:
コード / 銘柄名 / 33業種区分 / 株価 / 52週位置(%) / 配当利回り(%) / 連続増配(年) / 配当性向(%) /
営業利益率(%) / ROE(%) / 自己資本比率(%) / PER / PBR / 時価総額(億円) /
基礎スコア / 時流ボーナス / 総合スコア / 罠フラグ / 買い場マーク / 選定理由
※52週位置(%) = (株価 − 52週安値) ÷ (52週高値 − 52週安値) × 100(小数1桁)。
0%に近いほど安値圏、100%に近いほど高値圏。参考列でありスコアには含めない。
3. 業種別の銘柄数分布と、フィルタ各段階の通過数(保有銘柄除外での減少数も報告)
【出力の重要ルール】上記1と3(判定ログ・通過数・業種分布)は、必ず1つのMarkdownコードブロック(```で囲む)にまとめてプレーンテキストで出力すること。
表UIやキャンバス機能は使わない(次工程のClaudeにそのままコピペするため)。
選定理由は各銘柄1行、データにある数値のみ使用(創作・推測禁止)。
長く見えますが、一度作れば毎回コピペするだけです。罠フラグ(利回り5%超・PER異常・減収・安値圏)は「除外せずに印だけ付ける」のがポイントで、これが次工程の検証リストになります。
Stage 2:クロちゃんへの依頼(こっちは3行w)
チャッピーの出力(候補100銘柄TSV+判定ログ)と元の全銘柄TSVを添付して、これだけ。
スクリーニングStage 2お願いします。
添付:①チャッピーの候補100銘柄TSV ②元の全銘柄TSV ③判定ログ
【今月の予算(省略時1万円)】
【気になってる銘柄・所感(あれば)】
短くて済むのは、Claudeのプロジェクト機能にワークフローの手順書を登録してあるからです。裏側でクロちゃんがやってるのは:
- 元の全銘柄TSVから保有銘柄をPythonで抽出し、同じスコア基準で採点(新規候補と買い増しを同じ土俵で比較するため)
- チャッピーのレジーム判定をweb検索で答え合わせ(機械の判定も検証する)
- 業種の常識との照合、ビジネスモデル評価、罠フラグの個別検証
- 過去の保有リストとの照合(10年前にも持ってた「再会銘柄」の発掘w)
- 新規候補30銘柄をTier1(カルテ候補)/Tier2(監視)/Tier3(条件待ち)に分類+買い増し推奨+「今月は銘柄の幅を広げるか、厚みを増すか」の所見
実際に回してみた(2026年7月・実データ)
※以下の数値はすべて2026年7月3日時点のデータに基づきます。すべて要確認(買う前は必ず証券会社の画面・IRで確認してください)。
今月のレジーム判定(チャッピーの判定ログより)
A. 日銀政策金利:6/15-16会合で1.0%へ利上げ → 利上げ局面
B. ドル円:161.38円、3ヶ月前比+1.72円 → 横ばい(±3円以内)
C. TOPIX直近1ヶ月:+2.85% → 中立
D. セクター騰落 上位:空運+13.1% 保険+10.5% サービス+9.5%
下位:鉱業-10.2% 非鉄-8.5% 石油・石炭-5.9%
適用ボーナス:銀行・保険+5/不動産-5/下位3業種+3/上位3業種-3
クロちゃん側の検証でも日銀利上げ(31年ぶりの1%)・円横ばいは確認済み。時流ボーナスがほぼ効かない月だったので、今回の顔ぶれは「純粋な品質順」に近い結果です。
絞り込みの経過
3,734銘柄 →(保有44銘柄除外)3,690 →(データ品質)3,042 →(時価総額300億円以上)1,507 →(黒字)1,368 →(利回り2.5%以上)810 →(配当性向70%以下)661 →(自己資本比率)609 →(スコア順+1業種8銘柄上限)100銘柄 →(クロちゃんの定性分析)30銘柄。
Tier1:カルテ作成候補10銘柄(数値はすべて要確認)
| 銘柄(コード) | 総合 | 52w位置 | クロちゃんの一言 |
|---|---|---|---|
| TKC(9746) | 88 | 13.6% | 税理士システム実質独占が52週安値圏。品質×位置の最良バランス |
| ショーボンドHD(1414) | 93 | 26.2% | インフラ補修の王者、増配17年 |
| アバントG(3836) | 95 | 13.5% | 連結会計ソフトのニッチ首位が安値圏。下落理由の確認が先 |
| フューチャー(4722) | 95 | 24.3% | ITコンサル高利益率・増配13年 |
| サンドラッグ(9989) | 85 | 21.7% | 増配19年。10年前にも持ってた再会銘柄w |
| 全国保証(7164) | 86 | 37.7% | 営業利益率70%+利上げボーナス |
| リンナイ(5947) | 82 | 31.1% | 増配23年・実質無借金の「壊れない」枠 |
| エレコム(6750) | 88 | 50.4% | 増配11年、位置は中立 |
| 中央自動車工業(8117) | 88 | 62.4% | 隠れ優良。やや上昇後なので買値は要検討 |
| 竹内製作所(6432) | 95 | 85.6% | スコア最上位だが高値圏。押し目待ち判断の練習台 |
Tier2:監視10銘柄
アイル(3854・90点)/フルキャストHD(4848・92点・⚠安値圏の理由確認が先)/インソース(6200・89点・同)/TOYO TIRE(5105・90点・関税注視)/ソフトクリエイトHD(3371・88点)/ベース(4481・87点)/コンドーテック(7438・87点)/図研(6947・85点)/日本駐車場開発(2353・81点・株価252円でS株と相性抜群)/TAKARA&CO(7921・85点)
Tier3:条件待ち10銘柄
イエローハット(9882・52週位置96%=ほぼ高値、待ち)/東計電算(9749・同83%)/北興化学工業(4992・同83%)/燦HD(9628・PER6.5の安さの理由検証)/アイカ工業(4206)/アサヒGHD(2502・ROE低下の確認)/協和キリン(4151)/グリムス(3150・⚠利回り5.3%の持続性)/FPG(7148・⚠位置7.7%+利回り6%=下落理由の特定必須)/日本信号(6741・これも2014年に持ってた再会銘柄w)
52週位置、初回から仕事した
Tier1の大半は位置13〜38%の「放置〜押し目ゾーン」にいて、高値掴みの不安は小さめ。一方でスコア87点勢のイエローハット・東計電算・北興化学は位置83〜96%の高値圏だったので、良い会社だけど急がない、としてTier3送りにしました。スコアと株価位置を別々に見る設計、正解でした。
買い増しとの比較と、今月の私の見立て
保有44銘柄も同じ基準で採点したところ、買い増し有力はTIS・SPK・MonotaRO(いずれも増配12年以上・取得値近辺)。ただ、PF全体を見ると配当クオリティ層(基礎80点以上)はまだ7銘柄と薄いので、今月は買い増し(厚み)より新規(幅)優先で、Tier1の安値圏組から拾っていくのが私の配分方針です。あくまで私の場合の話なので、真似せず自分の方針でどうぞw
ハマった点・失敗談(ここが本体w)
失敗①:候補100枠の半分が保有銘柄で埋まった。 最初のテスト走行で、上位候補を見たら見覚えのある顔ばかりw そりゃそうで、保有銘柄は「過去の自分が選んだ優良株」なのでフィルタを普通に通過して上位に居座るんです。対策として、Step1の最初に保有銘柄の除外リストを入れました。買い増しの検討は、クロちゃん側で別枠でやります。
失敗②:チャッピーが判定ログをコピペしにくい形式で出す。 表UIやらキャンバスやらで出してくるので、次工程のClaudeに渡すのが地味に面倒w プロンプトに「必ず1つのMarkdownコードブロックにまとめてプレーンテキストで出力」と明記して解決しました。AI同士のバケツリレーでは、出力形式まで指示しないと人間が運搬係で消耗します。
教訓:スコア上位=買い、ではない。 配当利回りは株価が下がるほど上がるので、スコア上位には「悪材料で売られて利回りが良く見えるだけの銘柄」が混ざります。ただ放置されてるだけなら買い場、市場が何かを知ってるならバリュートラップ。機械にはこの区別ができないから、2段階に分けてるわけです。
再現したい人向けまとめ
- 全銘柄のファンダメンタルTSVを用意する(私は自作のjapan-stock-radar.pyを使用。かぶたん等のスクリーナーCSVでも列名を合わせれば流用可)
- Stage 1プロンプトに自分の保有銘柄コードを貼って、ChatGPTにTSVごと投げる
- 出てきた100銘柄TSVと判定ログを、Claudeに渡して精査させる
- 最終判断は必ず自分でやる。AIの数値は間違うので、買う前に証券会社の画面・企業IRで要確認
ワークフローの手順書全文はGitHubリポジトリに置いてあります。スコアの点数配分は私の好み(増配重視)なので、自分の投資方針に合わせて改造してください。
頻度は月1回か四半期に1回で十分です。DCAは焦らないのが強みなのでw
関連記事
免責事項
当ブログは、運営者個人の投資記録・学習記録であり、特定の銘柄の売買を推奨するものではありません。本記事のスクリーニング条件・スコアは運営者個人の方針に基づくものです。掲載している株価・財務数値等の情報は正確性を保証するものではなく、投資判断はご自身の責任において行ってください。当ブログの情報に基づく損失について、運営者は一切の責任を負いません。

