scanner-pmcc
Scannednpx machina-cli add skill staskh/trading_skills/scanner-pmcc --openclawPMCC Scanner
Finds optimal Poor Man's Covered Call setups by scoring symbols on option chain quality.
What is PMCC?
Buy deep ITM LEAPS call (delta ~0.80) + Sell short-term OTM call (delta ~0.20) against it. Cheaper alternative to covered calls.
Instructions
Note: If
uvis not installed orpyproject.tomlis not found, replaceuv run pythonwithpythonin all commands below.
uv run python scripts/scan.py SYMBOLS [options]
Arguments
SYMBOLS- Comma-separated tickers or path to JSON file from bullish scanner--min-leaps-days- Minimum LEAPS expiration in days (default: 270 = 9 months)--leaps-delta- Target LEAPS delta (default: 0.80)--short-delta- Target short call delta (default: 0.20)--output- Save results to JSON file
Scoring System (max ~11 points)
| Category | Condition | Points |
|---|---|---|
| Delta Accuracy | LEAPS within ±0.05 | +2 |
| LEAPS within ±0.10 | +1 | |
| Short within ±0.05 | +1 | |
| Short within ±0.10 | +0.5 | |
| Liquidity | LEAPS vol+OI > 100 | +1 |
| LEAPS vol+OI > 20 | +0.5 | |
| Short vol+OI > 500 | +1 | |
| Short vol+OI > 100 | +0.5 | |
| Spread | LEAPS spread < 5% | +1 |
| LEAPS spread < 10% | +0.5 | |
| Short spread < 10% | +1 | |
| Short spread < 20% | +0.5 | |
| IV Level | 25-50% (ideal) | +2 |
| 20-60% | +1 | |
| Yield | Annual > 50% | +2 |
| Annual > 30% | +1 |
Output
Returns JSON with:
criteria- Scan parameters usedresults- Array sorted by score:symbol,price,iv_pct,pmcc_scoreleaps- expiry, strike, delta, bid/ask, spread%, volume, OIshort- expiry, strike, delta, bid/ask, spread%, volume, OImetrics- net_debit, short_yield%, annual_yield%, capital_required
errors- Symbols that failed (no options, insufficient data)
Examples
# Scan specific symbols
uv run python scripts/scan.py AAPL,MSFT,GOOGL,NVDA
# 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
# Save results
uv run python scripts/scan.py AAPL,MSFT,GOOGL --output pmcc_results.json
Key Constraints
- Short strike must be above LEAPS strike
- Options with bid = 0 (illiquid) are skipped
- Moderate IV (25-50%) scores highest
Interpretation
- Score > 9: Excellent candidate
- Score 7-9: Good candidate
- Score 5-7: Acceptable with caveats
- Score < 5: Poor liquidity or structure
Dependencies
numpypandasscipyyfinance
Source
git clone https://github.com/staskh/trading_skills/blob/main/.claude/skills/scanner-pmcc/SKILL.mdView on GitHub Overview
This tool scans symbols to assess Poor Man's Covered Call (PMCC) suitability by evaluating LEAPS and short calls across delta accuracy, liquidity, spread, IV, and yield. It ranks candidates with a score and outputs structured data to guide PMCC or diagonal-spread exploration.
How This Skill Works
It targets LEAPS delta around 0.80 and short call delta around 0.20, then scores each symbol across Delta Accuracy, Liquidity, Spread, IV Level, and Yield. The output includes criteria, a sorted results array, and any errors, with constraints such as short strike above LEAPS strike and skipping illiquid bids. Moderate IV (25–50%) is favored to maximize PMCC viability.
When to Use It
- When you want PMCC candidates for a given set of symbols or a watchlist.
- When exploring diagonal spreads or LEAPS-based strategies that pair a long call with a near-term short call.
- When you need a data-driven ranking of PMCC setups across multiple symbols.
- When evaluating liquidity, spreads, and IV to filter out illiquid or poorly structured opportunities.
- When you want to validate data quality and identify symbols with insufficient option-chain data.
Quick Start
- Step 1: uv run python scripts/scan.py AAPL,MSFT
- Step 2: uv run python scripts/scan.py AAPL,MSFT --min-leaps-days 270 --leaps-delta 0.80 --short-delta 0.20
- Step 3: Review the output JSON (criteria, results, errors) and select high-scoring PMCC candidates for deeper analysis
Best Practices
- Set explicit delta targets (LEAPS ~0.80, short ~0.20) and use the defaults or adjust as needed for your risk tolerance.
- Require minimum LEAPS days (default 270) to ensure a true long-dated leg.
- Ensure the short strike is above the LEAPS strike and that both legs have non-zero bid to indicate liquidity.
- Prioritize IV in the 25–50% range to maximize scoring while avoiding extreme IV extremes.
- Sort results by pmcc_score and review any symbols in the 5–9 range for caveats before trading.
Example Use Cases
- AAPL: LEAPS 9–12 months delta ~0.80 and short call delta ~0.20, high liquidity, IV ~30–45%, pmcc_score > 9.
- MSFT: Strong PMCC candidate with tight LEAPS spread and short call spread under 10%.
- GOOGL: PMCC candidate with favorable yield and IV; short strike remains above LEAPS strike.
- TSLA: Data gaps or bid=0 in some series cause errors; scanner filters these out for clean results.
- NVDA: IV around 30–40% and yields above threshold, resulting in a high pmcc_score.