vcp-screener について
vcp-screenerは、FMPのデータを使ってMinervini式のボラティリティ収縮パターン(VCP)を持つ銘柄を抽出するスキルです。銘柄範囲や厳格な条件、検出パラメーターを調整でき、候補や売買設定を確認するJSONとMarkdownのレポートを生成します。
主な機能
- 01VCPと第2ステージ銘柄のスクリーニング
- 02銘柄ユニバースの指定
- 03ブレイクアウト前と発生時の厳格な抽出
- 04検出・スコア設定の調整
- 05JSONとMarkdownレポートの生成
- 06候補銘柄と売買設定の分析
活用シーン
- 01VCPブレイクアウト候補の発見
- 02指定ティッカーから第2ステージ銘柄を抽出
- 03バックテスト用の条件調整
- 04ピボット、損切り、収縮状況の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mphinance/ alpha-skills --skill vcp-screenerインストール後、Claude Code で/vcp-screenerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/fmp_api_endpoints.mdscoring_system.mdvcp_methodology.mdscripts/fmp_client.pyreport_generator.pyscorer.pyscreen_vcp.pyscripts/calculators/__init__.pyexecution_state.pypattern_classifier.pypivot_proximity_calculator.pyrelative_strength_calculator.pytrend_template_calculator.pyvcp_pattern_calculator.pyvolume_pattern_calculator.pyscripts/tests/conftest.pytest_fmp_client_historical.pytest_vcp_screener.py詳細
VCP スクリーナー - Minervini のボラティリティ収縮パターン
S&P 500 銘柄を対象に Mark Minervini のボラティリティ収縮パターン(VCP)をスクリーニングし、ブレイクアウトのピボットポイント付近でボラティリティが収縮している Stage 2 上昇トレンド銘柄を特定します。
使用する場面
- VCP スクリーニングや Minervini スタイルのセットアップを依頼された場合
- タイトなベース/ボラティリティ収縮パターンを見つけたい場合
- Stage 2 モメンタム銘柄のスキャンを依頼された場合
- リスクが明確なブレイクアウト候補を探している場合
前提条件
- FMP API キー(
FMP_API_KEY環境変数を設定するか、--api-keyを渡してください) - 無料プラン(1 日 250 回の呼び出し)で、デフォルトのスクリーニング(上位 100 候補)には十分です
- S&P 500 全銘柄のスクリーニングには有料プランを推奨します(
--full-sp500)
ワークフロー
ステップ 1:スクリーニングの準備と実行
VCP スクリーナースクリプトを実行します。
# Default: S&P 500, top 100 candidates
python3 skills/vcp-screener/scripts/screen_vcp.py --output-dir skills/vcp-screener/scripts
# Custom universe
python3 skills/vcp-screener/scripts/screen_vcp.py --universe AAPL NVDA MSFT AMZN META --output-dir skills/vcp-screener/scripts
# Full S&P 500 (paid API tier)
python3 skills/vcp-screener/scripts/screen_vcp.py --full-sp500 --output-dir skills/vcp-screener/scripts
厳格モード(Minervini の純粋なセットアップ)
valid_vcp=True かつ execution_state が (Pre-breakout, Breakout) の銘柄のみを返します。
python3 skills/vcp-screener/scripts/screen_vcp.py --strict --output-dir reports/
詳細な調整(バックテスト用)
調査やバックテスト用に、VCP 検出パラメーターを調整します。
python3 skills/vcp-screener/scripts/screen_vcp.py \
--min-contractions 3 \
--t1-depth-min 12.0 \
--breakout-volume-ratio 2.0 \
--trend-min-score 90 \
--atr-multiplier 1.5 \
--output-dir reports/
| パラメーター | デフォルト | 範囲 | 効果 |
|---|---|---|---|
--min-contractions | 2 | 2-4 | 値を大きくすると、数は少なくなりますが、パターンの品質が高まります |
--t1-depth-min | 10.0% | 1-50 | 値を大きくすると、最初の調整幅が浅い銘柄を除外します |
--breakout-volume-ratio | 1.5x | 0.5-10 | 値を大きくすると、出来高確認の条件が厳しくなります |
--trend-min-score | 85 | 0-100 | 値を大きくすると、Stage 2 のフィルターが厳しくなります |
--atr-multiplier | 1.5 | 0.5-5 | 値を小さくすると、スイングの検出感度が高まります |
--contraction-ratio | 0.70 | 0.1-1 | 値を小さくすると、よりタイトな収縮が必要になります |
--min-contraction-days | 5 | 1-30 | 値を大きくすると、収縮の最小期間が長くなります |
--lookback-days | 120 | 30-365 | 値を大きくすると、より古いパターンも見つかります |
--max-sma200-extension | 50.0% | — | Overextended 状態の判定とペナルティに使用する SMA200 からの距離のしきい値 |
--wide-and-loose-threshold | 15.0% | — | 最終収縮の深さがこの値を上回ると、wide-and-loose フラグが有効になります |
--strict | off | — | Minervini 厳格モード:有効な VCP を持つ Pre-breakout または Breakout のみ |
ステップ 2:結果を確認する
- 生成された JSON レポートと Markdown レポートを読みます
- パターンの解釈に関する背景情報として
references/vcp_methodology.mdを読み込みます - スコアのしきい値に関するガイダンスとして
references/scoring_system.mdを読み込みます
ステップ 3:分析結果を提示する
上位候補ごとに、次の情報を提示します。
- 品質(
composite_score/評価)— VCP パターンの形成度 - 実行状態(
execution_state)— 現時点で買える状態かどうか(Pre-breakout/Breakout は売買可能) - パターンタイプ(
pattern_type)— 教科書的な VCP/VCP に近いパターン/ブレイクアウト後/上昇しすぎた主導銘柄/損傷あり - State Cap が適用された場合(生スコアが引き下げられた場合)の
★マーカー - 収縮の詳細(T1/T2/T3 の深さと比率)
- 取引のセットアップ:ピボット価格、損切り価格、リスク率
- 出来高減少率と breakout_volume_score
- 相対力ランキング
ステップ 4:具体的なガイダンスを提示する
実行状態別(主なフィルター):
- Pre-breakout/Breakout: パターンは有効なエントリー期間内です。評価に応じてポジションサイズを決めてください
- Early-post-breakout: ブレイクアウトが進行中ですが、理想的なエントリー価格を上回っています。サイズを小さくするか、押し目を待ってください
- Extended/Overextended: 取引の機会を逃しています。次のベース形成に備えてウォッチリストに追加してください
- Damaged/Invalid: セットアップは無効です。エントリーしないでください
評価別(アクション可能であることを状態で確認した後の補助判断):
- 教科書的な VCP(90 以上): ピボットで買い、積極的なポジションサイズ(1.5~2 倍)
- 強い VCP(80~89): ピボットで買い、標準的なポジションサイズ(1 倍)
- 良好な VCP(70~79): ピボットを上回る価格で、出来高確認後に買い(0.75 倍)
- 形成中(60~69): ウォッチリストに追加し、よりタイトな収縮を待つ
- 弱い VCP/VCP なし(60 未満): 監視のみ、または見送る
3段階のパイプライン
- 事前フィルター - 株価情報に基づくスクリーニング(価格、出来高、52週の位置)約101回のAPI呼び出し
- トレンドテンプレート - 260日分の履歴を使った7項目のステージ2フィルター 約100回のAPI呼び出し
- VCPの検出 - パターン分析、スコアリング、レポート生成(追加のAPI呼び出しなし)
出力
vcp_screener_YYYY-MM-DD_HHMMSS.json- 構造化された結果vcp_screener_YYYY-MM-DD_HHMMSS.md- 人が読みやすいレポート
リソース
references/vcp_methodology.md- VCP理論とトレンドテンプレートの説明references/scoring_system.md- スコアリングのしきい値と各要素の重みreferences/fmp_api_endpoints.md- APIエンドポイントとレート制限
コメント
Markdown 対応