mcpField
C
canslim-screener

canslim-screener

github.com/nicepkgデータ・データベース28888 回インストール41 週間前に更新
リポジトリ

canslim-screener について

6項目の CANSLIM 指標(利益、成長、新高値、需給、機関投資家の保有、市場方向)で米国成長株を選別するスキルです。総合スコアで候補を順位付けし、レポートを作成します。

主な機能

  1. 016項目の CANSLIM 指標で米国株を選別
  2. 02出来高需給と機関投資家保有を分析
  3. 03機関データ不足時に Finviz を代替利用
  4. 04加重総合スコアを算出して順位付け
  5. 05JSON と Markdown のレポートを生成
  6. 06市場方向を弱気相場のフィルターに利用

活用シーン

  1. 01指定した銘柄群から成長株候補を抽出
  2. 02利益、成長、モメンタムの指標を比較
  3. 03候補銘柄のスコアと項目別分析を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nicepkg/ai-workflow --skill canslim-screener

インストール後、Claude Code で/canslim-screenerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
canslim_methodology.md
fmp_api_endpoints.md
interpretation_guide.md
scoring_system.md
scripts/
canslim_screener_2026-01-12_000442.json
finviz_stock_client.py
fmp_client.py
report_generator.py
scorer.py
screen_canslim.py
test_institutional_endpoint.py
scripts/calculators/
earnings_calculator.py
growth_calculator.py
institutional_calculator.py
leadership_calculator.py
market_calculator.py
new_highs_calculator.py
supply_demand_calculator.py

詳細

CANSLIM 株式スクリーナー - フェーズ 2

概要

このスキルは、William O'Neil が確立した実績ある CANSLIM 手法を使用して米国株をスクリーニングします。これは、強固なファンダメンタルズと株価モメンタムを備えた成長株を特定するための体系的なアプローチです。CANSLIM では、7 つの主要な要素を分析します。Current Earnings(直近の利益)、Annual Growth(年間成長率)、Newness/New Highs(新規性/新高値)、Supply/Demand(需給)、Leadership/RS Rank(リーダーシップ/RS ランク)、Institutional Sponsorship(機関投資家の保有)、Market Direction(市場の方向性)です。

フェーズ 2 では、7 つの要素のうち 6 つ(C、A、N、S、I、M)を実装し、手法全体の 80% をカバーします。このフェーズでは、フェーズ 1 の基盤に重要な出来高分析(S)と機関投資家の保有状況の追跡(I)を追加します。

2 段階のアプローチ:

  1. ステージ 1(FMP API + Finviz):6 つの CANSLIM 要素を使用して株式ユニバースを分析します
  2. ステージ 2(レポート作成):複合スコアで順位付けし、実行可能なレポートを生成します

主な機能:

  • 加重要素を使用した複合スコア(0~100 点)
  • 機関投資家の保有データを取得するための Finviz フォールバック(FMP データが不完全な場合に自動実行)
  • API の使用を最適化する段階的なフィルタリング
  • JSON + Markdown の出力形式
  • 評価区分:特に優れている+(90 以上)、特に優れている(80~89)、強い(70~79)、平均以上(60~69)
  • 弱気相場への対策(M 要素によるゲーティング)

フェーズ 2 の要素の配分(6 要素に合わせて再調整):

  • C(直近の利益):19%
  • A(年間成長率):25%
  • N(新規性):19%
  • S(需給):19% ← 新規
  • I(機関投資家):13% ← 新規
  • M(市場の方向性):6%

今後のフェーズ:

  • フェーズ 3:L(リーダーシップ/RS ランク)を追加 → 100% をカバー(CANSLIM 全体)
  • フェーズ 4:FINVIZ Elite との統合 → 実行速度を 10 倍に向上

このスキルを使用する場面

明示的なトリガー:

  • 「CANSLIM 株を探して」
  • 「O'Neil の手法で成長株をスクリーニングして」
  • 「利益とモメンタムが強い株はどれ?」
  • 「利益が加速し、52 週高値に近い株を特定して」
  • 「[セクター/ユニバース] で CANSLIM スクリーナーを実行して」

暗黙的なトリガー:

  • ユーザーが大化け候補の特定を希望している
  • ユーザーが実績のあるファンダメンタルズを備えた成長株を探している
  • ユーザーが過去の勝ち組を基に、体系的に株式を選定したいと考えている
  • ユーザーが O'Neil の基準を満たす株式のランキングを必要としている

使用しない場面:

  • バリュー投資を重視する場合(代わりに value-dividend-screener を使用)
  • インカム/配当を重視する場合(代わりに dividend-growth-pullback-screener を使用)
  • 弱気相場の場合(M 要素が警告を示します。現金比率を高めることを検討してください)

ワークフロー

ステップ 1:API アクセスと要件を確認する

ユーザーに FMP API キーが設定されているか確認します:

# Check environment variable
echo $FMP_API_KEY

# If not set, prompt user to provide it

要件:

  • FMP API キー(無料プラン:1 日あたり 250 回の呼び出し。40 銘柄に十分です)
  • Python 3.7+ と以下のライブラリ:
    • requests(FMP API 呼び出し)
    • beautifulsoup4(Finviz のウェブスクレイピング)
    • lxml(HTML パース)

インストール:

pip install requests beautifulsoup4 lxml

API キーが設定されていない場合は、ユーザーに次の手順を案内します:

  1. https://site.financialmodelingprep.com/developer/docs でサインアップする
  2. 無料の API キーを取得する(1 日あたり 250 回の呼び出し)
  3. 環境変数を設定する:export FMP_API_KEY=your_key_here
ステップ 2:株式ユニバースを決定する

オプション A:デフォルトのユニバース(推奨) スクリプトにあらかじめ定義された、時価総額上位 40 銘柄の S&P 500 株を使用します:

python3 skills/canslim-screener/scripts/screen_canslim.py

オプション B:カスタムユニバース ユーザーが特定の銘柄シンボルまたはセクターを指定します:

python3 skills/canslim-screener/scripts/screen_canslim.py \
  --universe AAPL MSFT GOOGL AMZN NVDA META TSLA

オプション C:セクター別 ユーザーはセクターに特化したリスト(テクノロジー、ヘルスケアなど)を指定できます

API 使用量の考慮事項(フェーズ 2):

  • 40 銘柄 × 1 銘柄あたり約 5.1 回の呼び出し = 約 203 回の API 呼び出し(無料プランの範囲内)
    • FMP:1 銘柄あたり約 3.3 回の呼び出し(損益計算書、株価、価格、機関投資家の保有者)
    • Finviz:1 銘柄あたり約 1.8 回の呼び出し(機関投資家の保有データのフォールバック、2 秒のレート制限)
  • 市場データ(S&P 500、VIX):3 回の呼び出し
  • 合計:スクリーニング 1 回あたり約 206 回の呼び出し
ステップ 3:CANSLIM スクリーニングスクリプトを実行する

適切なパラメーターを指定して、メインのスクリーニングスクリプトを実行します。

cd /Users/takueisaotome/PycharmProjects/claude-trading-skills/skills/canslim-screener/scripts

# Basic run (40 stocks, top 20 in report)
python3 screen_canslim.py --api-key $FMP_API_KEY

# Custom parameters
python3 screen_canslim.py \
  --api-key $FMP_API_KEY \
  --max-candidates 40 \
  --top 20 \
  --output-dir ../../../

スクリプトのワークフロー(フェーズ 2):

  1. 市場の方向性(M):S&P 500 のトレンドと 50 日 EMA を分析します
    • 弱気相場が検出された場合(M=0)、現金比率を引き上げるようユーザーに警告します
  2. 株式分析:各銘柄について、以下を算出します。
    • C コンポーネント:四半期 EPS/売上高の成長率(前年同期比)
    • A コンポーネント:3 年間の EPS CAGR と安定性
    • N コンポーネント:52 週高値からの距離、ブレイクアウトの検出
    • S コンポーネント:出来高に基づく蓄積/分配(上昇日の出来高と下落日の出来高)← 新規
    • I コンポーネント:機関投資家の保有者数と保有率(Finviz によるフォールバックあり)← 新規
  3. 総合スコアリング:コンポーネント別の内訳を含む加重平均
  4. ランキング:総合スコアの高い順に並べ替えます
  5. レポート作成:JSON と Markdown の出力を生成します

予想実行時間(フェーズ 2):

  • 40 銘柄:約 1 分 40 秒(テスト結果:101.42 秒)
  • Finviz へのフォールバックにより、銘柄ごとに約 2 秒追加されます(レート制限)
  • API 呼び出しの最適化により、フェーズ 1 より大幅に高速です

Finviz フォールバックの動作:

  • FMP の sharesOutstanding が利用できない場合に自動的に実行されます
  • Finviz.com から機関投資家の保有率をスクレイピングします(無料、API キー不要)
  • I コンポーネントの精度が 35/100(部分データ)から 60~100/100(完全データ)に向上します
  • ユーザーには次のように表示されます:✅ Using Finviz institutional ownership for NVDA: 68.3%
ステップ 4:スクリーニング結果を読み込んで解析する

スクリプトは 2 つの出力ファイルを生成します。

  • canslim_screener_YYYY-MM-DD_HHMMSS.json - 構造化データ
  • canslim_screener_YYYY-MM-DD_HHMMSS.md - 人が読みやすいレポート

Markdown レポートを読み込み、有望な候補銘柄を特定します。

# Find the latest report
ls -lt canslim_screener_*.md | head -1

# Read the report
cat canslim_screener_YYYY-MM-DD_HHMMSS.md

レポートの構成(フェーズ 2):

  • 市場状況の概要(トレンド、M スコア、警告)
  • CANSLIM 候補銘柄トップ 20(ランキング順)
  • 各銘柄について:
    • 総合スコアと評価(Exceptional+/Exceptional/Strong など)
    • コンポーネントの内訳(C、A、N、S、I、M の各スコアと詳細)← S と I を追加
    • 解釈(評価の説明、指針、最も弱いコンポーネント)
    • 警告(品質上の問題、市場状況、データソースに関する注記)
  • 統計の概要(評価の分布)
  • 方法論に関する注記(フェーズ 2:6 コンポーネント)

レポートの新しいコンポーネントの詳細:

  • S コンポーネント:「上昇日/下落日出来高比:1.06 ✓ 蓄積」
  • I コンポーネント:「保有者 6199 人、保有率 68.3% ⭐ スーパー投資家」
ステップ 5:有力候補を分析し、推奨事項を提示する

上位にランクされた銘柄を確認し、ナレッジベースと照合します。

参照するドキュメント:

  1. references/interpretation_guide.md - 評価区分とポートフォリオの配分を理解します
  2. references/canslim_methodology.md - 各要素の意味を詳しく確認します(S と I を追加しました)
  3. references/scoring_system.md - スコアの計算式を理解します(フェーズ 2 の重み付け)

分析フレームワーク:

Exceptional+ の銘柄(90~100 点):

  • すべての要素がほぼ完璧です(C≥85、A≥85、N≥85、S≥80、I≥80、M≥80)
  • 推奨:即時購入、積極的なポジション配分(ポートフォリオの 15~20%)
  • 例:「NVDA のスコアは 97.2 です。四半期利益は急増(100)、3 年間の成長は堅調(95)、新高値を更新(98)、出来高を伴う買い集め(85)、機関投資家の強い支持(90)、市場は上昇トレンド(100)」

Exceptional の銘柄(80~89 点):

  • 卓越したファンダメンタルズと強いモメンタム
  • 推奨:強く買い、標準的なポジション配分(ポートフォリオの 10~15%)

Strong の銘柄(70~79 点):

  • すべての要素が堅調で、弱点は軽微です
  • 推奨:買い、標準的なポジション配分(ポートフォリオの 8~12%)
  • フェーズ 2 の例:「NVDA のスコアは 77.5 です。利益は急増(100)、成長は堅調(90)、高値に近い(60)、買い集め(60)、機関投資家の評価は良好(60)、市場は上昇トレンド(90)」

Above Average の銘柄(60~69 点):

  • 基準を満たしており、1 つの要素が弱いです
  • 推奨:押し目で買い、保守的なポジション配分(ポートフォリオの 5~8%)

弱気相場での例外ルール:

  • M の要素が 0 の場合(弱気相場が検出された場合)、他のスコアに関係なく、購入しないでください
  • 推奨:資金の 80~100%を現金にして、市場の回復を待ちます
  • 弱気相場では CANSLIM は機能しません(4 銘柄中 3 銘柄は市場のトレンドに従います)
ステップ 6:ユーザー向けレポートを作成する

簡潔で、具体的な行動につながる要約をユーザー向けに作成します。

レポート形式:

# CANSLIM Stock Screening Results (Phase 2)
**Date:** YYYY-MM-DD
**Market Condition:** [Trend] - M Score: [X]/100
**Stocks Analyzed:** [N]
**Components:** C, A, N, S, I, M (6 of 7)

## Market Summary
[2-3 sentences on current market environment based on M component]
[If bear market: WARNING - Consider raising cash allocation]

## Top 5 CANSLIM Candidates

### 1. [SYMBOL] - [Company Name] ⭐⭐⭐
**Score:** [X.X]/100 ([Rating])
**Price:** $[XXX.XX] | **Sector:** [Sector]

**Component Breakdown:**
- C (Earnings): [X]/100 - [EPS growth]% QoQ, [Revenue growth]% revenue
- A (Growth): [X]/100 - [CAGR]% 3yr EPS CAGR
- N (Newness): [X]/100 - [Distance]% from 52wk high
- S (Supply/Demand): [X]/100 - Up/Down Volume Ratio: [X.XX]
- I (Institutional): [X]/100 - [N] holders, [X.X]% ownership [⭐ Superinvestor if present]
- M (Market): [X]/100 - [Trend]

**Interpretation:** [Rating description and guidance]
**Weakest Component:** [X] ([score])
**Data Source Note:** [If Finviz used: "Institutional data from Finviz"]

[Repeat for top 5 stocks]

## Investment Recommendations

**Immediate Buy List (90+ score):**
- [List stocks with exceptional+ ratings]
- Position sizing: 15-20% each

**Strong Buy List (80-89 score):**
- [List stocks with exceptional ratings]
- Position sizing: 10-15% each

**Watchlist (70-79 score):**
- [List stocks with strong ratings]
- Buy on pullback

## Risk Factors
- [Identify any quality warnings from components]
- [Market condition warnings]
- [Sector concentration risks if applicable]
- [Data source reliability notes if Finviz heavily used]

## Next Steps
1. Conduct detailed fundamental analysis on top 3 candidates
2. Check earnings calendars for upcoming reports
3. Review technical charts for entry timing
4. [If bear market: Wait for market recovery before deploying capital]

---
**Note:** This is Phase 2 (C, A, N, S, I, M components - 80% coverage). Phase 3 will add L component for full 7-component CANSLIM.

リソース

Scripts ディレクトリ(scripts/)

主要なスクリプト:

  • screen_canslim.py - メインのオーケストレータースクリプト

    • スクリーニングワークフローのエントリーポイント
    • 引数の解析、API の調整、ランキング、レポート作成を処理します
    • 使用方法:python3 screen_canslim.py --api-key KEY [options]
  • fmp_client.py - FMP API クライアントのラッパー

    • レート制限(呼び出し間隔 0.3 秒)
    • 429 エラーの処理(60 秒後に再試行)
    • セッションベースのキャッシュ
    • メソッド:get_income_statement()、get_quote()、get_historical_prices()、get_institutional_holders()
  • finviz_stock_client.py - Finviz ウェブスクレイピングクライアント ← 新規

    • BeautifulSoup ベースの HTML 解析
    • Finviz.com から機関投資家の保有率を取得
    • レート制限(呼び出し間隔 2.0 秒)
    • API キー不要(無料のウェブスクレイピング)
    • メソッド:get_institutional_ownership()、get_stock_data()

計算モジュール(scripts/calculators/):

  • earnings_calculator.py - C コンポーネント(当期利益)

    • 四半期 EPS/売上高の成長率(前年同期比)
    • スコア:50%以上 = 100 点、30~49% = 80 点、18~29% = 60 点
  • growth_calculator.py - A コンポーネント(年間成長)

    • 3 年間の EPS CAGR を計算
    • 安定性チェック(マイナス成長の年がないこと)
    • スコア:40%以上 = 90 点、30~39% = 70 点、25~29% = 50 点
  • new_highs_calculator.py - N コンポーネント(新高値)

    • 52 週高値からの乖離
    • 出来高で確認されたブレイクアウトの検出
    • スコア:高値から 5%以内でブレイクアウト = 100 点、高値から 10%以内でブレイクアウト = 80 点
  • supply_demand_calculator.py - S コンポーネント(需給) ← 新規

    • 出来高に基づく買い集め/分配の分析
    • 上昇日の出来高と下落日の出来高の比率(過去 60 日間)
    • スコア:比率 ≥2.0 = 100 点、1.5~2.0 = 80 点、1.0~1.5 = 60 点
  • institutional_calculator.py - I コンポーネント(機関投資家) ← 新規

    • 機関投資家の保有者数(FMP から取得)
    • 保有率(FMP、または代替手段として Finviz から取得)
    • スーパーインベスターの検出(Berkshire Hathaway、Baupost など)
    • スコア:保有者数 50~100 人、保有率 30~60% = 100 点
  • market_calculator.py - M コンポーネント(市場の方向性)

    • S&P 500 と 50 日 EMA の比較
    • VIX 調整済みスコア
    • スコア:強い上昇トレンド = 100 点、上昇トレンド = 80 点、弱気相場 = 0 点

補助モジュール:

  • scorer.py - 合成スコアの計算

    • フェーズ 2 の加重平均:C×19% + A×25% + N×19% + S×19% + I×13% + M×6%
    • 評価の解釈(Exceptional+/Exceptional/Strong など)
    • 最低しきい値の検証(6 つすべてのコンポーネントが基準を満たす必要があります)
  • report_generator.py - 出力の生成

    • JSON エクスポート(プログラムでの利用向け)
    • Markdown エクスポート(人が読みやすい形式)
    • フェーズ 2 のコンポーネント内訳テーブル
    • 要約統計の計算
参考資料ディレクトリ(references/)

ナレッジベース:

  • canslim_methodology.md(27KB)- CANSLIM の完全な解説 ← Phase 2 向けに更新

    • O'Neil のオリジナルの基準値を含む、7 つの構成要素すべて
    • 新規:S 構成要素(出来高の蓄積/分配)の詳細な解説
    • 新規:I 構成要素(機関投資家の支援)の詳細な解説
    • 過去の事例(AAPL 2009、NFLX 2013、TSLA 2019、NVDA 2023)
    • Phase 2 の実装に関する注記
  • scoring_system.md(21KB)- テクニカルスコアの仕様 ← Phase 2 向けに更新

    • Phase 2 の構成要素ごとの重みと計算式
    • 評価の範囲(90-100、80-89 など)
    • 6 つの構成要素の最低基準
    • 複合スコアの計算例
  • fmp_api_endpoints.md(18KB)- API 統合ガイド ← Phase 2 向けに更新

    • 各構成要素に必要なエンドポイント
    • 新規:機関投資家保有者エンドポイントのドキュメント
    • 新規:Finviz フォールバック戦略の解説
    • レート制限の戦略
    • コスト分析(Phase 2:40 銘柄で約 203 回の呼び出し。無料プランの範囲内)
  • interpretation_guide.md(18KB)- ユーザー向けガイド

    • ポートフォリオ構築ルール
    • 評価に応じたポジションサイズ
    • エントリー/エグジット戦略
    • 弱気相場での保護ルール

参考資料の使い方:

  • まず canslim_methodology.md を読み、O'Neil のシステムを理解します(S と I を追加済み)
  • 分析結果を確認する際は interpretation_guide.md を参照します
  • スコアが予想と異なる場合は scoring_system.md を参照します
  • API のトラブルシューティングや Finviz のフォールバックに関する問題は fmp_api_endpoints.md を確認します

トラブルシューティング

問題 1:FMP API のレート制限を超過する

症状:

ERROR: 429 Too Many Requests - Rate limit exceeded
Retrying in 60 seconds...

原因:

  • 短時間に複数のスクリーニングを実行している
  • 1 日 250 回の呼び出し(無料プランの上限)を超過している
  • 他のアプリケーションが同じ API キーを使用している

解決策:

  1. 待機して再試行する:スクリプトは 60 秒後に自動で再試行します
  2. 対象銘柄を減らす:--max-candidates 30 を使用して API の使用量を抑えます
  3. 1 日の使用量を確認する:無料プランは UTC の午前 0 時にリセットされます
  4. プランをアップグレードする:FMP Starter(月額 $29.99)では 1 日 750 回の呼び出しが可能です
問題 2:必要なライブラリが不足している

症状:

ERROR: required libraries not found. Install with: pip install beautifulsoup4 requests lxml

解決策:

# Install all required libraries
pip install requests beautifulsoup4 lxml

# Or install individually
pip install beautifulsoup4
pip install requests
pip install lxml
問題 3:Finviz のフォールバック実行が遅い

症状:

Execution time: 2 minutes 30 seconds for 40 stocks (slower than expected)

原因:

  • Finviz のレート制限(リクエストごとに 2.0 秒)
  • FMP データの不足により、すべての銘柄でフォールバックが実行されている

解決策:

  1. 遅延を許容する:Finviz へのフォールバックを使う場合、40 銘柄で 1~2 分かかるのは通常です
  2. フォールバックの使用状況を監視する:「Using Finviz institutional ownership」メッセージがログにないか確認します
  3. レート制限を緩和する(上級者向け):finviz_stock_client.py を編集し、rate_limit_seconds=2.0 を 1.5 に変更します(リスク:IP が禁止される可能性があります)

**注:**Finviz へのフォールバックにより銘柄ごとに約 2 秒追加されますが、I 構成要素の精度は大幅に向上します(35 → 60~100 ポイント)。

問題 4:Finviz のウェブスクレイピングに失敗する

症状:

WARNING: Finviz request failed with status 403 for NVDA
⚠️ Using Finviz institutional ownership data - FMP shares outstanding unavailable. Finviz fallback also unavailable. Score reduced by 50%.

原因:

  • Finviz がスクレイピングのリクエストをブロックしている(User-Agent の検出)
  • レート制限を超過している(リクエストが多すぎる)
  • ネットワークの問題、または Finviz のサービス停止

解決策:

  1. 待機して再試行する:レート制限は数分後にリセットされます
  2. インターネット接続を確認する:finviz.com へのネットワークアクセスを確認します
  3. フォールバックを受け入れる:スクリプトは FMP の保有者数のみを使用して続行します(I スコアは 70/100 が上限です)
  4. 手動で確認する:IP がブロックされていないか Finviz のウェブサイトで確認します

縮退時の動作:

  • Finviz の問題が原因でスクリプトが失敗することはありません
  • FMP の保有者数のみを使用するフォールバックに切り替わります
  • レポートに品質に関する警告が表示されます
問題 5:最低基準を満たす銘柄がない

症状:

✓ Successfully analyzed 40 stocks
Top 5 Stocks:
  1. AAPL  -  58.3 (Average)
  2. MSFT  -  55.1 (Average)
  ...

原因:

  • 弱気相場の状況(M 構成要素が低い)
  • 選択した対象銘柄群に成長株が含まれていない
  • 市場で成長株から資金が移動している

解決策:

  1. M 構成要素を確認する:M=0(弱気相場)の場合は、CANSLIM のルールに従って現金比率を高めます
  2. 対象銘柄群を広げる:異なるセクターや時価総額の範囲を試します
  3. 期待値を下げる:市場が低調な場合でも、平均スコア(55~65)が投資判断に役立つことがあります
  4. より良い状況を待つ:CANSLIM は強気相場で最も効果を発揮します
Issue 6: データ品質に関する警告

症状:

⚠️ Revenue declining despite EPS growth (possible buyback distortion)
⚠️ Using Finviz institutional ownership data (68.3%) - FMP shares outstanding unavailable.

解釈:

  • これらはエラーではありません。計算ツールによる品質フラグです
  • 収益に関する警告:EPS の成長は、オーガニック成長ではなく自社株買いによる可能性があります
  • Finviz に関する警告:データソースが FMP から Finviz に切り替わりました(引き続き正確です)

対応:

  1. 完全なレポートで各コンポーネントの詳細を確認します
  2. ファンダメンタル分析と照合します
  3. リスクレベルに応じてポジションサイズを調整します
  4. Finviz のデータは信頼できるため、データソースに関する警告への対応は不要です

重要な注意事項

Phase 2 の実装状況

これは Phase 2 で、CANSLIM の 7 コンポーネントのうち 6 つを実装しています:

  • ✅ C(当期利益) - 実装済み
  • ✅ A(年間成長率) - 実装済み
  • ✅ N(新しさ) - 実装済み
  • ✅ S(需給) - 実装済み(Phase 2)← 新規
  • ❌ L(リーダーシップ/RS ランク) - 未実装(Phase 3)
  • ✅ I(機関投資家) - 実装済み(Phase 2)← 新規
  • ✅ M(市場の方向性) - 実装済み

影響:

  • 複合スコアは、完全な CANSLIM 手法の 80% を表します
  • 最高スコアは通常約 95 が上限です(完全な CANSLIM では 200 以上に達することがあります)
  • 欠けているコンポーネント:相対的強さランク(L コンポーネント)
  • Phase 2 では、出来高と機関投資家の分析による精度の高いスクリーニングを提供します

スコア換算:

  • Phase 2 スコア 85 以上 ≈ 完全な CANSLIM の 145~165(強い~非常に優秀)
  • Phase 2 スコア 70~84 ≈ 完全な CANSLIM の 125~144(平均以上~強い)
  • Phase 2 スコア 60~69 ≈ 完全な CANSLIM の 110~124(平均~平均以上)
Finviz 統合のメリット

自動フォールバックシステム:

  • FMP API が sharesOutstanding を提供しない場合、Finviz が自動的に有効になります
  • Finviz.com から機関投資家保有比率をスクレイピングします(無料、API キー不要)
  • I コンポーネントの精度が 35/100(一部データ)から 60~100/100(完全データ)に向上します

データソースの優先順位:

  1. FMP API(優先):機関投資家の保有者数と発行済み株式数による計算
  2. Finviz(フォールバック):ウェブページから直接取得した機関投資家保有比率
  3. 一部データ(最終手段):保有者数のみ。50% のペナルティが適用されます

テスト済みの信頼性:

  • 39/39 銘柄で Finviz 経由の保有比率取得に成功(成功率 100%)
  • 平均実行時間:1 銘柄あたり 2.54 秒
  • テスト中にエラーや IP ブロックは発生しませんでした
今後の拡張

Phase 3(予定):

  • L コンポーネントを追加:RS ランクの推定(52 週高値を代替指標として使用、精度 80%)
  • CANSLIM の 7 コンポーネントすべてに対応:C 15%、A 20%、N 15%、S 15%、L 20%、I 10%、M 5%
  • カバー率:完全な CANSLIM の 100%

Phase 4(予定):

  • スクリーニング前処理に FINVIZ Elite を統合
  • 実行時間:2 分 → 10~15 秒
  • FMP API の使用量を 90% 削減
  • より大規模なユニバースに対応可能(100 銘柄以上)
データソースの表記
  • FMP API:損益計算書、株価、過去の価格、主要指標、機関投資家の保有者情報
  • Finviz:機関投資家保有比率(フォールバック)、市場データ
  • 手法:William O'Neil 著『How to Make Money in Stocks』(第 4 版)
  • スコアリングシステム:IBD MarketSmith の独自システムをベースに採用
免責事項

このスクリーナーは、教育および情報提供のみを目的としています。

  • 投資助言ではありません
  • 過去の実績は将来の成果を保証するものではありません
  • CANSLIM 手法は強気相場で最も効果を発揮します(M コンポーネントで確認)
  • 投資判断を行う前に、ご自身で調査し、ファイナンシャルアドバイザーに相談してください
  • O'Neil が挙げた過去の成功銘柄には AAPL(2009年:+1,200%)、NFLX(2013年:+800%)がありますが、多くの銘柄は期待どおりの成果を上げられません

バージョン: Phase 2 最終更新日: 2026-01-12 API 要件: FMP API(無料プランで十分)+ Finviz 用の BeautifulSoup/requests/lxml 実行時間: 40 銘柄で約 1 分 40 秒 出力形式: JSON + Markdown 実装済みコンポーネント: C、A、N、S、I、M(7 つのうち 6 つ、カバー率 80%)

コメント