日本株の自動売買でテクニカル指標だけに頼っていると、「テクニカル的には買いシグナルだが、企業が経営危機で株価が暴落」というリスクを見逃す。特に中小型株は倒産リスクが無視できない。
本記事では、J-Quants API(東証公式データAPI)から取得した財務データを使い、倒産リスクの高い銘柄を自動的にスクリーニングから除外する仕組みの設計を記録する。銘柄拡大(27→50銘柄)施策と合わせて、「安全な銘柄プール」を維持する方法論を解説する。
テクニカル分析の盲点
テクニカル指標は企業の健全性を測れない
RSI、MACD、ボリンジャーバンド——これらはすべて「価格と出来高の過去データ」から計算される。企業の財務状況(借入金の額、利益率、キャッシュフロー)は一切反映されない。
極端な例を挙げると、倒産直前の企業の株価がテクニカル的に「売られすぎ」と判定され、買いシグナルが出ることがある。RSIが10まで下がっている銘柄は確かに「売られすぎ」だが、倒産するなら0になる。
日本株ユニバースの安全性
この問題を軽減するために、投資対象の銘柄プール(ユニバース)を以下のように設計した。
Core30(日経Core30指数構成銘柄): 14銘柄
→ 時価総額上位30社。倒産リスクは極めて低い
Large70(日経Large70指数構成銘柄): 9銘柄
→ 大型株。倒産リスクは低い
Phase T8で追加された銘柄: 27銘柄
→ 流動性・財務健全性の基準をクリアした銘柄
合計: 50銘柄(JS-ADD-C3施策後)
銘柄拡大(27→50銘柄)の設計
スクリーニング基準
50銘柄への拡大時に、以下の定量的な基準でスクリーニングを実施した。
SCREENING_CRITERIA = {
"market_cap_min": 500_000_000_000, # 時価総額5,000億円以上
"avg_daily_volume_min": 500_000, # 20日平均出来高50万株以上
"debt_equity_ratio_max": 2.0, # D/Eレシオ2.0以下
"current_ratio_min": 1.0, # 流動比率1.0以上
"consecutive_loss_years_max": 2, # 連続赤字2年以下
"listing_years_min": 5, # 上場5年以上
}
各基準の意味:
| 基準 | 値 | 目的 |
|---|---|---|
| 時価総額 | ≥ 5,000億円 | 大型株に限定。突然の倒産リスクを排除 |
| 平均出来高 | ≥ 50万株/日 | 流動性確保。スリッページ(注文価格と約定価格の差)を抑制 |
| D/Eレシオ | ≤ 2.0 | 過剰債務を排除。D/Eレシオ = 有利子負債 ÷ 自己資本 |
| 流動比率 | ≥ 1.0 | 短期支払い能力の確認。流動資産 ÷ 流動負債 |
| 連続赤字 | ≤ 2年 | 構造的な収益問題のある企業を除外 |
| 上場年数 | ≥ 5年 | 実績のない新規上場銘柄を除外 |
J-Quants APIの活用
J-Quants(日本取引所グループの公式データAPI)から財務データを自動取得し、スクリーニング基準への適合を定期的にチェックする。
def fetch_financial_data(stock_code: str) -> dict:
"""J-Quants APIから財務データを取得"""
response = jquants_api.get_financial_statements(
code=stock_code,
date="latest",
)
return {
"market_cap": response["MarketCapitalization"],
"debt_equity_ratio": response["DebtEquityRatio"],
"current_ratio": response["CurrentRatio"],
"net_income": response["NetIncome"],
}
決算前後エントリー制限(NEW-02)
倒産リスク管理と関連して、決算発表前後のエントリーを制限するフィルター(earnings_filter)も実装した。
なぜ決算前後を制限するか
決算発表は、株価が大きく動くイベントだ。好決算なら+10%以上の急騰もあるが、悪決算なら-20%の急落もある。テクニカル分析では決算内容を予測できないため、「ギャンブル」になりやすい。
EARNINGS_FILTER_CONFIG = {
"days_before": 3, # 決算発表3日前からエントリー禁止
"days_after": 1, # 決算発表1日後まで禁止
}
決算日はJ-Quants APIから取得し、自動的にフィルタリングする。
PEAD戦略(NEW-04)
決算「前」はエントリーを制限するが、決算「後」には新たな戦略チャンスがある。PEAD(Post-Earnings Announcement Drift)は、「好決算の銘柄は発表後もしばらく上昇を続ける」というアノマリー(市場の非効率性)を利用した戦略だ。
PEAD_CONFIG = {
"eps_surprise_threshold": 0.10, # EPS(1株当たり利益)が予想比+10%以上
"drift_days": 5, # 決算発表後5日間が対象
"min_volume_ratio": 1.5, # 出来高が通常の1.5倍以上
}
- 決算発表でEPSが市場予想を10%以上上回った銘柄を検出
- 発表翌日〜5日間、通常のエントリー閾値を引き下げて積極的にエントリー
- 出来高が増加していることで、市場の関心が高いことを確認
PEADは学術研究で繰り返し確認されているアノマリーであり、個人投資家がアクセスしやすい数少ない「エッジ」の1つだ。
学んだこと
1. ユニバースの品質がシステム全体の品質を決める
どれだけ優秀なテクニカル分析を組んでも、投資対象に倒産リスクの高い銘柄が含まれていたら意味がない。ユニバースの選定は「戦略の設計」と同じかそれ以上に重要だ。
2. 財務データは「フィルター」として使う
ファンダメンタルズ分析で「買うべき銘柄を選ぶ」のは難しい。しかし「買ってはいけない銘柄を除外する」フィルターとしてなら、定量的な基準で自動化できる。
3. 決算は「リスク」と「チャンス」の両面がある
決算前は予測不能なリスクとして制限し、決算後は統計的なアノマリー(PEAD)としてチャンスにする。同じ「決算」というイベントを、前後で真逆に扱うのが合理的だ。
まとめ
日本株の倒産リスク管理で重要なのは以下の3点だ。
- 定量スクリーニング: 時価総額・出来高・D/Eレシオ・流動比率で安全な銘柄プールを構築
- 決算前後の分離管理: 決算前 = エントリー制限(リスク回避)、決算後 = PEAD戦略(チャンス活用)
- J-Quants APIの自動化: 財務データの取得と基準チェックを自動化し、メンテナンスフリーを実現
テクニカル分析だけでは見えない企業の健全性を、定量的なフィルターで補完する。これが「安全な自動売買」の基盤だ。