该技能用于侦测商品 ETF/信托持仓与商品价格之间的背离现象,即「商品价格上涨、但对应实物 ETF/信托持仓却下滑」,并据此评估是否存在实物供给紧张或交割压力风险。
用途与核心逻辑: 背离事件的定义为在相同视窗期(默认 180 天)内同时满足两个条件:价格上涨(price_return >= min_price_return_pct,默认 +15%)与库存下滑(inventory_change <= -min_inventory_drawdown_pct,默认 -10%)。当价格与库存同向(同涨同跌)时视为正常;逆向(价涨库跌)时才需要警觉。技能强调不能直接把「库存下降」解读为「实物被抢」,需要交叉验证,并输出两种解释(实物紧张、资金流/赎回)让用户判断哪个更符合当前数据。
主要能力:
- 侦测背离:识别价格上涨但 ETF 库存下滑的情形。
- 评估严重度:计算背离程度、十年低点、比值极端;压力分数公式为 stress_score = 100 × min(1.0, 0.6 × divergence_severity + 0.2 × decade_low_bonus + 0.2 × ratio_extreme_bonus)。分数区间解读:0-30 正常无背离,30-60 轻度背离值得关注,60-80 中度背离建议深入验证,80-100 重度背离高度警戒。
- 交叉验证:使用 COMEX、期货结构、零售溢价等指标,支持条件与反驳条件对照(如实物紧张假设的支持条件为 COMEX/LBMA 下降、backwardation、lease rates 上升、零售溢价扩大,反驳条件为其他库存稳定、contango、溢价平稳)。
- 产出洞察:提供两种对立假设,避免单一叙事偏误;输出背离状态、压力分数、交叉验证结果、下一步检查建议。
数据来源与抓取方式: 优先使用 ETF 官网库存,通过 Selenium 模拟人类浏览器行为抓取(避免 API 限制);使用 Yahoo Finance 的 yfinance 套件取得现货/期货价格;并交叉验证 COMEX 库存、期货结构等公开数据。脚本位于 scripts/ 目录,遵循 references/data-sources.md 的反侦测策略。
使用方式(命令与脚本): 最快方式是检查 SLV 背离状态: cd skills/monitor-etf-holdings-drawdown-risk pip install pandas numpy yfinance selenium webdriver-manager beautifulsoup4 matplotlib # 首次使用 python scripts/divergence_detector.py --etf SLV --quick 快速检查输出范例: { "asof": "2026-01-20", "divergence": false, "price_return_window": 1.92, "inventory_change_window": 0.15, "inventory_decade_low": false, "stress_score_0_100": 20.0, "interpretations": ["Physical Tightness", "ETF Flow Hypothesis"] } 完整分析 + 可视化报告:
1. 执行背离侦测
python scripts/divergence_detector.py
--etf SLV
--start 2010-01-01
--end 2026-01-20
--output result.json
2. 生成可视化报告
python scripts/visualize_divergence.py
--result result.json
--output ../../../output/
输出包括:JSON 分析结果 result.json、可视化报告 output/SLV_divergence_report_20260120.png、PDF 报告 output/SLV_divergence_report_20260120.pdf。
工作流与功能入口包括:快速检查(查看指定 ETF 目前背离状态与压力分数)、完整分析(执行完整历史背离分析)、交叉验证(使用多指标验证背离讯号真实性)、监控模式(设定持续监控与背离警报)、方法论学习(了解背离侦测与双重假设逻辑)。采用路由后阅读对应文件并执行的方式。
目录结构包含 SKILL.md(路由器)、skill.yaml、manifest.json、workflows/(analyze.md、monitor.md、cross-validate.md)、references/(data-sources.md、methodology.md、input-schema.md)、templates/(output-json.md、output-markdown.md)、scripts/(divergence_detector.py、fetch_etf_holdings.py、fetch_prices.py)。
关键输入参数: 核心参数:etf_ticker(string,必填,如 SLV)、commodity_price_symbol(string,必填,如 XAGUSD)、start_date(string,默认 10Y 前)、end_date(string,默认 today)。 背离参数:divergence_window_days(int,默认 180)、decade_low_window_days(int,默认 3650)、min_price_return_pct(float,默认 0.15)、min_inventory_drawdown_pct(float,默认 0.10)。完整参数定义见 references/input-schema.md。
输出结构摘要: 包含 skill、asof、inputs(etf_ticker、commodity_price_symbol)、result(divergence、price_return_window、inventory_change_window、inventory_decade_low、inventory_to_price_ratio_z、stress_score_0_100)、interpretations、next_checks。完整输出结构见 templates/output-json.md。
成功标准:执行成功时应产出背离状态判定(divergence: true/false)、价格变化与库存变化数值、十年低点判定、库存/价格比值 Z 分数、压力分数(0-100)、两种对立假设解释、下一步验证建议清单。
适用场景:适合需要完整历史背离分析、日常监控或警报、以及确认背离真实性时使用。
限制:资料中未提供具体收费、价格、平台支持范围、实时性保证及准确率等信息。