关于 scanner-pmcc
scanner-pmcc 是一款命令行技能,根据期权链质量及相关条件为 Poor Man's Covered Call 方案评分。它输出结构化 JSON 以便比较候选方案,也可读取 bullish scanner 的结果。
主要功能
- 01为 LEAPS 与短期期权组合评分
- 02评估 Delta、流动性、价差和 IV
- 03纳入趋势、财报及期权惩罚项
- 04将扫描结果保存为 JSON
- 05接受股票代码或 bullish scanner JSON
适用场景
- 01比较不同股票代码的 PMCC 候选方案
- 02查看期权链质量及评分因素
- 03将 bullish scanner 结果用于期权扫描
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ staskh/ trading_skills --skill scanner-pmcc安装后在 Claude Code 中输入/scanner-pmcc确认已加载。
附带文件scripts/scan.pytemplates/markdown-template.md
详细介绍
PMCC Scanner
根据期权链质量为标的评分,找出最佳的 Poor Man's Covered Call(穷人备兑看涨期权)组合。
什么是 PMCC?
买入深度实值 LEAPS 看涨期权(delta 约为 0.80),并以此为担保卖出短期虚值看涨期权(delta 约为 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 delta(默认值:0.80)--short-delta- 目标短期看涨期权 delta(默认值:0.20)--output- 将结果保存到 JSON 文件(请使用此选项;Claude 会根据 JSON 生成报告)--report- 将自动生成的 Markdown 保存到文件(仅作为程序生成的备用方案——优先使用 Claude 生成的报告)
评分系统(最高分:14,范围:-8 至 14)
| 类别 | 条件 | 分数 |
|---|---|---|
| Delta 准确度 | 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 > signal | +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 行业(若无则使用 sector),或 nulldescription- 一句话公司简介,或 nullhas_weeklies- 标的是否列有周度期权(bool)short_window- 实际使用的短期期权窗口:"7-21"或"5-30 (fallback)"dividend_yield- BS/IV 计算中使用的连续股息收益率(小数)leaps- 到期日、行权价、delta、iv(根据 bid/ask 计算)、last_price、bid/ask、价差%、成交量、OIshort- 到期日、行权价、delta、iv(根据 bid/ask 计算)、last_price、bid/ask、价差%、成交量、OIearnings_date- 下一次财报日期(YYYY-MM-DD)或 nullmetrics- net_debit、short_yield%(短期期权窗口内的期间收益率)、annual_yield%、capital_requiredscore_breakdown- 每个评分项均以<name>_delta(浮点数)和<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 始终根据市场价格数据通过 Black-Scholes 计算,绝不使用 Yahoo Finance 的 impliedVolatility 列:
- 交易时段内:根据买卖价中间价推导 IV
- 非交易时段(bid=ask=0):根据最新价格推导 IV,并使用期权的最近一笔交易时间作为定价时点(而非当前时刻)
这适用于 compute_atm_iv(用于扫描器基准 IV)和逐个期权的 delta 计算。
股息:Black-Scholes 反算会使用标的的连续股息收益率(Merton 模型)。忽略这一因素会导致股息支付型股票的看涨期权反算出的 IV 偏低——对高收益率股票影响尤其大(例如,收益率为 7% 的股票会显示约 12% 的 IV,而非约 24%)。收益率会根据 yfinance 中不一致的字段进行标准化(依次使用 dividendRate/price、trailingAnnualDividendYield、dividendYield),并在每个结果中以 dividend_yield(小数)形式报告。相同的收益率也用于行权价选择中的 delta 和最大利润重新定价。
关键约束
- 空头行权价必须高于 LEAPS 行权价
- 跳过 bid = 0 且没有最新价格的期权
- 中等 IV(25-50%)得分最高
结果解读
- 得分 > 12:绝佳候选(结构强劲 + 趋势看涨 + 盈利前景明朗)
- 得分 10-12:优质候选
- 得分 6-10:可以接受,但存在注意事项
- 得分 < 6:结构不佳、趋势看跌或存在盈利风险
max_possible_score始终为 14——使用pmcc_score / max_possible_score衡量候选项与满分的接近程度- 非交易时段的得分无法与交易时段的得分直接比较。 当买价和卖价并非都大于 0(非交易时段)时,
spread_pct会被强制设为 100%,这会使两个价差得分都归零(与实时扫描相比相差 −2 分)。候选项仅仅因为在非交易时段扫描,得分就可能低最多 2 分。仅在同一次扫描中比较候选项。
依赖项
numpypandasscipyyfinance
时区
所有时间戳和基于时间的计算都必须使用 America/New_York 时区。所有 JSON 输出都必须包含 generated_at(纽约时间字符串)和 data_delay 字段。