关于 market-top-detector
Market Top Detector 是一项 skill,通过六项量化指标评估近期市场见顶的概率。它结合价格、成交量、市场广度、板块轮动和情绪信号,评估未来 2–8 周的战术风险。
主要功能
- 01六项指标合成 0–100 分
- 02结合 O’Neil、Minervini 和 Monty 信号
- 03采集 FMP 市场数据
- 04映射风险区间
- 05生成 JSON 和 Markdown 报告
- 06历史比较与假设分析
适用场景
- 01评估未来 2–8 周的回调风险
- 02调整股票敞口前检查预警信号
- 03将当前信号模式与历史市场顶部对照
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mphinance/ alpha-skills --skill market-top-detector安装后在 Claude Code 中输入/market-top-detector确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/distribution_day_guide.mdhistorical_tops.mdmarket_top_methodology.mdscripts/breadth_csv_client.pyfmp_client.pyhistorical_comparator.pymarket_top_detector.pyreport_generator.pyscenario_engine.pyscorer.pyscripts/calculators/__init__.pybreadth_calculator.pydefensive_rotation_calculator.pydistribution_day_calculator.pyindex_technical_calculator.pyleading_stock_calculator.pymath_utils.pysentiment_calculator.pyscripts/tests/conftest.pyhelpers.pytest_breadth_csv_client.pytest_breadth.pytest_defensive_rotation.pytest_delta.pytest_distribution_day.pytest_fmp_client.pytest_freshness.pytest_historical_comparator.pytest_index_technical.py详细介绍
市场顶部检测技能
用途
使用量化的 6 项评分系统(0-100),检测市场形成顶部的概率。整合三种经过验证的市场顶部检测方法:
- O'Neil - 派发日累积(机构抛售)
- Minervini - 领涨股恶化模式
- Monty - 防御性板块轮动信号
与 Bubble Detector(宏观/数月周期评估)不同,本技能侧重于战术性的 2-8 周择时信号,这些信号通常先于 10-20% 的市场回调出现。
何时使用此技能
英语:
- 用户询问“市场是否正在筑顶?”或“市场顶部是否将近?”
- 用户注意到派发日正在累积
- 用户观察到防御性板块表现优于成长板块
- 用户看到领涨股走弱,而指数仍然坚挺
- 用户询问何时应降低股票敞口
- 用户想评估未来 2-8 周的回调概率
日语:
- 「天井が近い?」「今は利確すべき?」
- 担心派发日累积
- 防御性板块表现优于成长板块
- 领涨股开始走弱,但指数仍然坚挺
- 判断缩减敞口的时机
- 想评估未来 2〜8 周的回调概率
前提条件
必需:
- **FMP API Key:**设置
$FMP_API_KEY环境变量或传入--api-key。免费套餐即可满足需求(每次执行约调用 33 次 API)。 - **WebSearch 访问权限:**收集标普 500 市场广度(50DMA 百分比)和 CBOE 看跌/看涨期权比率数据时必需。
可选:
- **保证金债务数据:**可提升情绪评分,但通常会滞后 1-2 个月。
- **VIX 期限结构:**如果 FMP API 中有 VIX3M 报价,则会自动检测;也可通过
--vix-term手动覆盖。
**数据时效性:**为确保分析准确,所有人工收集的数据都应来自最近 3 个交易日。
与 Bubble Detector 的区别
| 方面 | 市场顶部检测器 | Bubble Detector |
|---|---|---|
| 时间范围 | 2-8 周 | 数月至数年 |
| 目标 | 10-20% 回调 | 泡沫破裂(30% 以上) |
| 方法 | O'Neil/Minervini/Monty | Minsky/Kindleberger |
| 数据 | 价格/成交量 + 市场广度 | 估值 + 情绪 + 社交数据 |
| 评分范围 | 0-100 综合评分 | 0-15 分 |
执行工作流
阶段 1:通过 WebSearch 收集数据
运行 Python 脚本前,使用 WebSearch 收集以下数据。 **数据时效性要求:**所有数据都必须来自最近 3 个交易日。过时数据会降低分析质量。
1. S&P 500 Breadth (200DMA above %)
AUTO-FETCHED from TraderMonty CSV (no WebSearch needed)
The script fetches this automatically from GitHub Pages CSV data.
Override: --breadth-200dma [VALUE] to use a manual value instead.
Disable: --no-auto-breadth to skip auto-fetch entirely.
2. [REQUIRED] S&P 500 Breadth (50DMA above %)
Valid range: 20-100
Primary search: "S&P 500 percent stocks above 50 day moving average"
Fallback: "market breadth 50dma site:barchart.com"
Record the data date
3. [REQUIRED] CBOE Equity Put/Call Ratio
Valid range: 0.30-1.50
Primary search: "CBOE equity put call ratio today"
Fallback: "CBOE total put call ratio current"
Fallback: "put call ratio site:cboe.com"
Record the data date
4. [OPTIONAL] VIX Term Structure
Values: steep_contango / contango / flat / backwardation
Primary search: "VIX VIX3M ratio term structure today"
Fallback: "VIX futures term structure contango backwardation"
Note: Auto-detected from FMP API if VIX3M quote available.
CLI --vix-term overrides auto-detection.
5. [OPTIONAL] Margin Debt YoY %
Primary search: "FINRA margin debt latest year over year percent"
Fallback: "NYSE margin debt monthly"
Note: Typically 1-2 months lagged. Record the reporting month.
阶段 2:执行 Python 脚本
将收集到的数据作为 CLI 参数运行脚本:
python3 skills/market-top-detector/scripts/market_top_detector.py \
--api-key $FMP_API_KEY \
--breadth-50dma [VALUE] --breadth-50dma-date [YYYY-MM-DD] \
--put-call [VALUE] --put-call-date [YYYY-MM-DD] \
--vix-term [steep_contango|contango|flat|backwardation] \
--margin-debt-yoy [VALUE] --margin-debt-date [YYYY-MM-DD] \
--output-dir reports/ \
--context "Consumer Confidence=[VALUE]" "Gold Price=[VALUE]"
# 200DMA breadth is auto-fetched from TraderMonty CSV.
# Override with --breadth-200dma [VALUE] if needed.
# Disable with --no-auto-breadth to skip auto-fetch.
脚本将:
- 从 FMP API 获取标普 500、QQQ、VIX 的报价和历史数据
- 获取领涨 ETF(ARKK、WCLD、IGV、XBI、SOXX、SMH、KWEB、TAN)数据
- 获取板块 ETF(XLU、XLP、XLV、VNQ、XLK、XLC、XLY)数据
- 计算全部 6 项指标
- 生成综合评分和报告
阶段 3:呈现结果
向用户展示生成的 Markdown 报告,并重点说明:
- 综合评分和风险区间
- 数据时效性警告(如有数据早于 3 天)
- 最强警告信号(分数最高的指标)
- 历史对比(最接近的过往顶部模式)
- 假设情景(对关键变化的敏感度)
- 根据风险区间提出的建议
- Follow-Through Day 状态(如适用)
- 与上次运行结果的差值(如有先前报告)
6 项评分系统
| # | 指标 | 权重 | 数据来源 | 关键信号 |
|---|---|---|---|---|
| 1 | 派发日计数 | 25% | FMP API | 最近 25 个交易日内的机构抛售 |
| 2 | 领涨股健康状况 | 20% | FMP API | 成长型 ETF 组合恶化 |
| 3 | 防御性板块轮动 | 15% | FMP API | 防御性板块相对成长板块的表现 |
| 4 | 市场广度背离 | 15% | 自动(CSV)+ WebSearch | 200DMA(自动)/50DMA(WebSearch)市场广度与指数水平的对比 |
| 5 | 指数技术状况 | 15% | FMP API | 均线结构、反弹失败、更低的高点 |
| 6 | 情绪与投机 | 10% | FMP + WebSearch | VIX、看跌/看涨期权比率、期限结构 |
风险区域划分
| 分数 | 区域 | 风险预算 | 操作 |
|---|---|---|---|
| 0-20 | 绿色(正常) | 100% | 正常操作 |
| 21-40 | 黄色(早期预警) | 80-90% | 收紧止损,减少新的入场操作 |
| 41-60 | 橙色(风险升高) | 60-75% | 对表现较弱的持仓止盈 |
| 61-80 | 红色(顶部概率较高) | 40-55% | 积极止盈 |
| 81-100 | 危急(顶部形成) | 20-35% | 全面防御,对冲 |
API 要求
必需: FMP API 密钥(免费套餐即可:每次执行约 33 次调用) 可选: WebSearch 数据,用于市场宽度和情绪分析(提高准确性)
输出文件
- JSON:
market_top_YYYY-MM-DD_HHMMSS.json - Markdown:
market_top_YYYY-MM-DD_HHMMSS.md
参考文档
references/market_top_methodology.md
- O'Neil、Minervini 和 Monty 框架的完整方法论
- 各组成部分的评分详情和阈值
- 历史验证说明
references/distribution_day_guide.md
- O'Neil 派发日规则详解
- 停滞日识别
- 跟进日(FTD)机制
references/historical_tops.md
- 对 2000、2007、2018、2022 年市场顶部的分析
- 历史顶部期间各组成部分的分数模式
- 经验教训和校准数据
何时加载参考文档
- 首次使用: 加载
market_top_methodology.md,全面了解框架 - 有关派发日的问题: 加载
distribution_day_guide.md - 了解历史背景: 加载
historical_tops.md - 常规执行: 无需参考文档,脚本会处理评分
评论
支持 Markdown