scanner-pmcc

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

PMCC Scanner

PMCC扫描器

Finds optimal Poor Man's Covered Call setups by scoring symbols on option chain quality.
通过对期权链质量进行评分,找到最优的PMCC配置方案。

What is PMCC?

什么是PMCC?

Buy deep ITM LEAPS call (delta ~0.80) + Sell short-term OTM call (delta ~0.20) against it. Cheaper alternative to covered calls.
买入深度ITM LEAPS看涨期权(delta ~0.80)+ 对应卖出短期OTM看涨期权(delta ~0.20),是备兑看涨期权的低成本替代方案。

Instructions

使用说明

Note: If
uv
is not installed or
pyproject.toml
is not found, replace
uv run python
with
python
in all commands below.
bash
uv run python scripts/scan.py SYMBOLS [options]
注意: 如果未安装
uv
或找不到
pyproject.toml
,请将下方所有命令中的
uv run python
替换为
python
bash
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
  • SYMBOLS
    - 逗号分隔的股票代码,或来自看涨扫描器的JSON文件路径
  • --min-leaps-days
    - LEAPS的最小到期天数(默认:270 = 9个月)
  • --leaps-delta
    - 目标LEAPS delta值(默认:0.80)
  • --short-delta
    - 目标卖出看涨期权delta值(默认:0.20)
  • --output
    - 将结果保存到JSON文件

Scoring System (max ~11 points)

评分系统(满分约11分)

CategoryConditionPoints
Delta AccuracyLEAPS within ±0.05+2
LEAPS within ±0.10+1
Short within ±0.05+1
Short within ±0.10+0.5
LiquidityLEAPS vol+OI > 100+1
LEAPS vol+OI > 20+0.5
Short vol+OI > 500+1
Short vol+OI > 100+0.5
SpreadLEAPS spread < 5%+1
LEAPS spread < 10%+0.5
Short spread < 10%+1
Short spread < 20%+0.5
IV Level25-50% (ideal)+2
20-60%+1
YieldAnnual > 50%+2
Annual > 30%+1
分类条件得分
Delta准确度LEAPS在目标值±0.05范围内+2
LEAPS在目标值±0.10范围内+1
卖出期权在目标值±0.05范围内+1
卖出期权在目标值±0.10范围内+0.5
流动性LEAPS成交量+未平仓合约> 100+1
LEAPS成交量+未平仓合约> 20+0.5
卖出期权成交量+未平仓合约> 500+1
卖出期权成交量+未平仓合约> 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

Output

输出结果

Returns JSON with:
  • criteria
    - Scan parameters used
  • results
    - Array sorted by score:
    • symbol
      ,
      price
      ,
      iv_pct
      ,
      pmcc_score
    • leaps
      - expiry, strike, delta, bid/ask, spread%, volume, OI
    • short
      - expiry, strike, delta, bid/ask, spread%, volume, OI
    • metrics
      - net_debit, short_yield%, annual_yield%, capital_required
  • errors
    - Symbols that failed (no options, insufficient data)
返回JSON格式数据,包含:
  • criteria
    - 本次扫描使用的参数
  • results
    - 按得分排序的结果数组:
    • symbol
      ,
      price
      ,
      iv_pct
      ,
      pmcc_score
    • leaps
      - 到期日、行权价、delta、买价/卖价、价差百分比、成交量、未平仓合约
    • short
      - 到期日、行权价、delta、买价/卖价、价差百分比、成交量、未平仓合约
    • metrics
      - 净支出、短期收益率、年化收益率、所需资金
  • errors
    - 扫描失败的股票代码(无期权数据、数据不足)

Examples

示例

bash
undefined
bash
undefined

Scan specific symbols

扫描指定股票代码

uv run python scripts/scan.py AAPL,MSFT,GOOGL,NVDA
uv run python scripts/scan.py AAPL,MSFT,GOOGL,NVDA

Use output from bullish scanner

使用看涨扫描器的输出结果作为输入

uv run python scripts/scan.py bullish_results.json
uv run python scripts/scan.py bullish_results.json

Custom delta targets

自定义delta目标

uv run python scripts/scan.py AAPL,MSFT --leaps-delta 0.70 --short-delta 0.15
uv run python scripts/scan.py AAPL,MSFT --leaps-delta 0.70 --short-delta 0.15

Longer LEAPS (1 year minimum)

更长期限的LEAPS(最少1年到期)

uv run python scripts/scan.py AAPL,MSFT --min-leaps-days 365
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
undefined
uv run python scripts/scan.py AAPL,MSFT,GOOGL --output pmcc_results.json
undefined

Key Constraints

核心限制

  • Short strike must be above LEAPS strike
  • Options with bid = 0 (illiquid) are skipped
  • Moderate IV (25-50%) scores highest
  • 卖出期权行权价必须高于 LEAPS行权价
  • 买价为0的期权(流动性不足)会被跳过
  • 中等IV(25-50%)得分最高

Interpretation

结果解读

  • Score > 9: Excellent candidate
  • Score 7-9: Good candidate
  • Score 5-7: Acceptable with caveats
  • Score < 5: Poor liquidity or structure
  • 得分> 9:极佳候选标的
  • 得分7-9:良好候选标的
  • 得分5-7:可接受,但存在限制
  • 得分< 5:流动性差或结构不合理

Dependencies

依赖

  • numpy
  • pandas
  • scipy
  • yfinance
  • numpy
  • pandas
  • scipy
  • yfinance