scanner-pmcc について
scanner-pmccは、オプションチェーンの品質などを基にPoor Man's Covered Callの候補を採点するコマンドラインスキルです。比較用のJSONを出力し、bullish scannerの結果も入力として利用できます。
主な機能
- 01LEAPSと短期コールの構成を採点
- 02デルタ、流動性、スプレッド、IVを評価
- 03トレンド、決算、オプション関連の減点を反映
- 04スキャン結果をJSONで保存
- 05銘柄またはbullish scannerのJSONを入力
活用シーン
- 01複数銘柄のPMCC候補を比較
- 02オプションチェーンの品質と採点要素を確認
- 03bullish scannerの結果をオプションスキャンに利用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ staskh/ trading_skills --skill scanner-pmccインストール後、Claude Code で/scanner-pmccを入力して読み込まれたか確認します。
同梱ファイルscripts/scan.pytemplates/markdown-template.md
詳細
PMCC スキャナー
オプションチェーンの品質に基づいてシンボルをスコアリングし、最適なプア・マンズ・カバード・コールのセットアップを見つけます。
PMCC とは?
ディープ ITM の LEAPS コール(デルタ約 0.80)を買い、それに対して短期 OTM コール(デルタ約 0.20)を売ります。カバードコールよりも低コストな代替手段です。
手順
注記:
uvがインストールされていない場合、またはpyproject.tomlが見つからない場合は、以下のすべてのコマンドでuv run pythonをpythonに置き換えてください。
uv run python scripts/scan.py SYMBOLS [options]
引数
SYMBOLS- カンマ区切りのティッカー、またはブルリッシュスキャナーが出力した JSON ファイルへのパス--min-leaps-days- LEAPS の最短満期日数(デフォルト:270=9 か月)--leaps-delta- LEAPS の目標デルタ(デフォルト:0.80)--short-delta- ショートコールの目標デルタ(デフォルト:0.20)--output- 結果を JSON ファイルに保存します(これを使用してください。Claude は JSON からレポートを生成します)--report- 自動生成された Markdown をファイルに保存します(プログラムによるフォールバックのみ。Claude が生成するレポートを優先してください)
スコアリングシステム(最大スコア:14、範囲:-8~14)
| カテゴリ | 条件 | ポイント |
|---|---|---|
| デルタの精度 | LEAPS が ±0.05 以内 | +2 |
| LEAPS が ±0.10 以内 | +1 | |
| ショートが ±0.05 以内 | +1 | |
| ショートが ±0.10 以内 | +0.5 | |
| 流動性 | LEAPS の出来高+OI > 100 | +1 |
| LEAPS の出来高+OI > 20 | +0.5 | |
| ショートの出来高+OI > 500 | +1 | |
| ショートの出来高+OI > 100 | +0.5 | |
| スプレッド | LEAPS のスプレッド < 5% | +1 |
| LEAPS のスプレッド < 10% | +0.5 | |
| ショートのスプレッド < 10% | +1 | |
| ショートのスプレッド < 20% | +0.5 | |
| IV 水準 | 25~50%(理想的) | +2 |
| 20~60% | +1 | |
| 利回り | 年率 > 50% | +2 |
| 年率 > 30% | +1 | |
| 年率 > 15% | +0.5 | |
| トレンド | 価格 > SMA50 | +1 / -1 |
| RSI > 50 | +0.5 / -0.5 | |
| MACD > シグナル | +0.5 / -0.5 | |
| 決算 | 次回決算まで 45 日超 | +1.0 |
| 決算まで 45 日以内 | -1.0 | |
| ショートの満期までに決算 | -2.0 | |
| ウィークリーオプション | 上場されているウィークリーオプションがない | -1 |
| ストライク密度 | 現物価格からショートまでのストライクが 3 未満 | -2 |
| 現物価格からショートまでのストライクが 5 未満 | -1 | |
| ショートプレミアム | ショートのミッド価格 < $0.10 | -1 |
| ショートのミッド価格 < $0.50 | -0.5 |
ウィークリーオプション、ストライク密度、ショートプレミアムは減点のみ(最高でも 0 点)です。そのため、
max_possible_score は14のままで、理論上の最低点は**-8**です(基本スコア 0、
トレンド -2、決算 -2、ウィークリーオプション -1、ストライク -2、ショートプレミアム -1)。
出力
以下を含む JSON を返します。
criteria- 使用したスキャンパラメーターresults- スコア順に並べられた配列:symbol、price、iv_pct、pmcc_score、max_possible_score(常に 14)industry- GICS 業種(該当しない場合はセクター)、または nulldescription- 企業の説明(1 文)、または nullhas_weeklies- シンボルにウィークリーオプションが上場されているかどうか(bool)short_window- 実際に使用されたショート満期の期間:「7-21」または「5-30 (fallback)」dividend_yield- BS/IV 計算で使用された連続配当利回り(小数)leaps- 満期、ストライク、デルタ、iv(ビッド/アスクから計算)、last_price、ビッド/アスク、スプレッド%、出来高、OIshort- 満期、ストライク、デルタ、iv(ビッド/アスクから計算)、last_price、ビッド/アスク、スプレッド%、出来高、OIearnings_date- 次回決算日(YYYY-MM-DD)、または nullmetrics- net_debit、short_yield%(ショート期間における期間利回り)、annual_yield%、capital_requiredscore_breakdown- すべてのスコア構成要素を<name>_delta(float)+<name>(説明文字列)のペアとして表示:- 基本:
leaps_delta、short_delta、leaps_liquidity、short_liquidity、leaps_spread、short_spread、iv、yield - トレンド:
trend_delta、trend(指標ごとの辞書) - 決算:
earnings_delta、earnings - ウィークリーオプション:
weekly_options_delta、weekly_options - ストライク密度:
strike_density_delta、strike_density - ショートプレミアム:
short_premium_delta、short_premium - すべての
_delta値の合計がpmcc_scoreになります
- 基本:
errors- 失敗したシンボル(オプションがない、データ不足など)
レポートの生成
ユーザーがレポート、文章による分析、または保存するドキュメントを求めた場合:
-
--outputを指定してスキャナーを実行し、JSON データを取得します:uv run python scripts/scan.py SYMBOLS --output sandbox/PMCC_Scan_YYYY-MM-DD_HHmm.json -
JSON 出力を読み取ります。
-
templates/markdown-template.mdで定義されているテンプレートを使って、Markdown レポートを自分で生成します。--reportフラグは使用しないでください。このフラグでは機械的な文字列が出力されます。Claude が生成するレポートには、実際の分析、状況に応じた警告、トレーダーに役立つ説明が含まれます。 -
生成した Markdown を
sandbox/PMCC_Scan_YYYY-MM-DD_HHmm.mdに保存します(JSON のタイムスタンプに合わせてください)。 -
レポート全体をユーザーに表示します。
例
# Scan specific symbols
uv run python scripts/scan.py AAPL,MSFT,GOOGL,NVDA
# Scan and save JSON for report generation
uv run python scripts/scan.py AAPL,MSFT,GOOGL --output sandbox/PMCC_Scan_2026-01-15_1430.json
# Use output from bullish scanner
uv run python scripts/scan.py bullish_results.json
# Custom delta targets
uv run python scripts/scan.py AAPL,MSFT --leaps-delta 0.70 --short-delta 0.15
# Longer LEAPS (1 year minimum)
uv run python scripts/scan.py AAPL,MSFT --min-leaps-days 365
IV の計算
IV は、Yahoo Finance の impliedVolatility 列から取得するのではなく、常に Black-Scholes を使って市場価格データから算出します。
- 取引時間中:IV はビッド/アスクの仲値から算出します
- 取引時間外(bid=ask=0):IV は直近価格から算出し、価格計算の基準時点には現在の実時間ではなく、オプションの直近取引タイムスタンプを使用します
これは、スキャナーのベースライン IV に使われる compute_atm_iv と、オプションごとのデルタ計算の両方に適用されます。
配当:Black-Scholes の逆算では、原資産の連続配当利回り(Merton モデル)を使用します。これを無視すると、配当を支払う銘柄のコールでは、算出される IV が低く偏ります。高利回り銘柄では特に顕著です(たとえば、利回り 7% の銘柄では IV が約 24% ではなく約 12% と算出されます)。利回りは、yfinance の一貫性のないフィールド(dividendRate/price、次に trailingAnnualDividendYield、次に dividendYield)から標準化され、各結果では dividend_yield(小数)として報告されます。同じ利回りが、権利行使価格の選択に使うデルタと、最大利益の再評価にも使用されます。
主な制約
- ショートストライクは、必ず LEAPS ストライクより上でなければなりません
- ビッドが 0 で直近価格がないオプションはスキップされます
- IV が中程度(25~50%)の場合に最高スコアとなります
解釈
- スコア > 12:非常に有望な候補(優れた構造+強気トレンド+十分な決算までの期間)
- スコア 10~12:有望な候補
- スコア 6~10:注意点はあるものの許容できる候補
- スコア < 6:構造が不適切、弱気トレンド、または決算リスクあり
max_possible_scoreは常に 14 です。候補がどれだけ理想的な状態に近いかを判断するには、pmcc_score / max_possible_scoreを使用してください- 取引時間外のスコアは、取引時間中のスコアと比較できません。(取引時間外などで)ビッドとアスクがどちらも 0 より大きくない場合、
spread_pctは 100% に固定されるため、スプレッドスコアが両方とも 0 になります(リアルタイムスキャンより −2)。取引時間外にスキャンしただけで、候補のスコアが最大 2 ポイント低く見えることがあります。候補の比較は、同じスキャン内でのみ行ってください。
依存関係
numpypandasscipyyfinance
タイムゾーン
すべてのタイムスタンプと時間ベースの計算では、America/New_York タイムゾーンを使用する必要があります。すべての JSON 出力には、generated_at(NY 時刻の文字列)フィールドと data_delay フィールドを含める必要があります。