用途
zeberg-salomon-rotator 用领先指标与同时指标建构景气模型,判读景气的两种阶段——景气扩张期(Risk-On)与景气收缩期(Risk-Off),并根据理论给出「撞冰山」与「下沉」事件信号,同时产生两种状态之间的切换事件。
模型逻辑
Zeberg–Salomon 模型将市场简化为两种状态:
- RISK_ON:持有股票(默认 SPY),对应景气扩张期。
- RISK_OFF:持有长债(默认 TLT),对应景气收缩期。
切换逻辑基于「领先指标先转弱,同时指标后确认」的景气循环规律。指标分为两类:Leading(预警,典型成分为殖利率曲线、新订单、房市许可,领先时间约 6-12 月);Coincident(确认,典型成分为就业、工业生产、实质收入,同步)。
合成方式:各序列做 transform(yoy/mom/diff)、统一方向(direction +1/-1)、Rolling z-score 标准化、EMA 平滑、加权合成。
事件定义:
- Iceberg Event:LeadingIndex < iceberg_threshold,属预警,表示景气开始转弱,可搭配「领先指标下降」与可选的「市场亢奋」滤镜。
- Sinking Event:CoincidentIndex < sinking_threshold,属确认,表示实体经济收缩,通常在 Iceberg 之后数月发生。
状态机逻辑:RISK_ON → RISK_OFF 需 Iceberg 连续确认且斜率为负;RISK_OFF → RISK_ON 需领先指标回升超过 (threshold + hysteresis)。
主要能力
- 建构指标:从 FRED 数据合成 LeadingIndex 与 CoincidentIndex。
- 侦测事件:识别「冰山」(领先转弱)与「下沉」(同时确认)。
- 切换信号:产生 RISK_ON ↔ RISK_OFF 切换事件。
- 回测绩效:计算累积报酬、MaxDD、CAGR,并与 benchmark 比较。
- 输出:切换事件清单、指标时间序列、回测摘要、诊断信息。
工作流包括 backtest(完整历史回测)、visualize(生成视觉化图表)、monitor(持续监控状态)、analyze(深度指标分析)。
数据来源
本 skill 使用无需 API key 的资料源:FRED CSV(https://fred.stlouisfed.org/graph/fredgraph.csv?id={SERIES_ID})与 Yahoo Finance(yfinance 套件抓取 SPY, TLT, VIX)。
使用方式
最快的方式是执行预设回测:
cd skills/zeberg-salomon-rotator
pip install pandas numpy yfinance pandas-datareader # 首次使用
python scripts/rotator.py --quick
输出范例:
{
"state": "RISK_ON",
"latest_indices": {"LeadingIndex": 0.41, "CoincidentIndex": 0.22},
"iceberg_event": false,
"sinking_event": false,
"last_switch": {"date": "2023-06-30", "action": "EXIT_LONG_BOND_ENTER_EQUITY"}
}
完整回测:
python scripts/rotator.py --start 2000-01-01 --end 2026-01-01 --output result.json
脚本包括 rotator.py(主轮动脚本,--quick 快速检查当前状态,--start DATE --end DATE 完整回测)、visualize.py(-i result.json -o chart.png 生成视觉化图表)、fetch_data.py(--series T10Y3M,PAYEMS 抓取 FRED 资料)。
核心参数
start_date 默认 2000-01-01;end_date 默认 today;freq 默认 M(月);equity_proxy 默认 SPY;bond_proxy 默认 TLT。门槛参数:iceberg_threshold 默认 -0.3;sinking_threshold 默认 -0.5;confirm_periods 默认 2;hysteresis 默认 0.15。
输出结构
输出包含 skill、as_of、state(RISK_ON 或 RISK_OFF)、latest_indices(LeadingIndex、CoincidentIndex、iceberg_event、sinking_event)、switch_events、backtest_summary(cagr、max_drawdown、turnovers)。
执行成功时应产出:当前状态、LeadingIndex 与 CoincidentIndex 数值、冰山/下沉事件判定、切换事件清单(含日期、原因)、回测绩效摘要(CAGR、MaxDD、换手次数)、与 benchmark 比较(买入持有、60/40)、诊断信息(各指标贡献),以及可选的可视化图表(输出至 output/ 目录)。
目录结构
zeberg-salomon-rotator/ 包含 SKILL.md、skill.yaml、manifest.json、workflows/(backtest.md、visualize.md、monitor.md、analyze.md)、references/(data-sources.md、methodology.md、input-schema.md)、templates/(output-json.md、output-markdown.md)、scripts/(rotator.py、visualize.py、fetch_data.py)。
适用场景与限制
适用于需要依据景气循环进行股票与长债之间轮动判断、并做历史回测与状态监控的场景。资料中未提供收费、价格、平台支持范围、实际投资绩效保证或使用限制的更多细节,暂未提供。