--- name: detect-us-equity-valuation-percentile-extreme description: 把多個股票估值指標統一轉成在過去百年歷史中的分位數,再合成一個總分,判斷目前是否處於歷史極端高估區間,並用歷史類比(如 1929、1965、1999)給出風險解讀。 --- **分位數標準化核心** 將不同單位的估值指標(PE、PB、CAPE 等)統一成「0-100 的歷史分位數」: - **分位數 = 100 × (歷史中 ≤ 當前值的樣本數 / 總樣本數)** - 例:CAPE 位於歷史第 98 分位 → 過去 130 年只有 2% 的時間比現在更貴 - 統一單位後,可跨指標合成「綜合估值分位數」 **多指標合成邏輯** 合成公式:`composite_percentile = 加權平均(各指標分位數)` 支援三種合成方式: | 方式 | 公式 | 適用場景 | |------|------|----------| | mean | 算術平均 | 各指標同等重要 | | median | 中位數 | 抵抗單一指標異常拉升 | | trimmed_mean | 去極端平均 | 穩健估計 | **重要**:各指標可能有不同歷史長度,預設使用「各自歷史」計算分位數再合成。 **極端高估偵測邏輯** ``` if composite_percentile >= extreme_threshold (預設 95): → 判定「歷史極端高估」 → 觸發風險解讀流程 ``` 歷史類比事件識別: 1. 找出合成分位數超過門檻的峰值 2. 用 `episode_min_gap_days` 去重(預設 10 年內只保留最高點) 3. 輸出:1929、1965、1999、2021、當前... **風險解讀框架** 「估值極端高」≠「明天崩盤」,但歷史特徵是: - **風險分布不對稱**:下跌尾巴變厚 - **未來中期報酬壓縮**:估值均值回歸壓低長期報酬上限 - **波動先升後跌**:事件後 6-12 月波動率通常上升 輸出事後統計: - 未來 180/365/1095 天報酬分布 - 最大回撤中位數與尾部風險 - 波動率變化機率 **資料來源與限制揭露** 本 skill 使用**公開替代資料**,非彭博原始數據: - **Shiller CAPE**: Robert Shiller 公開資料集(可回溯至 1871 年) - **市值/GDP**: FRED 公開數據(可回溯至 1950 年代) - **PE/PB/PS**: 公開金融資料(歷史較短,約 30-50 年) **必須揭露**: - 各指標可得期間不同 - 合成分位數為「近似重建」,非精確複製 偵測美股估值是否處於歷史極端區間: 1. **收集估值指標**:從公開數據源取得 PE、CAPE、PB、PS、市值/GDP 等 2. **計算分位數**:將各指標轉換為歷史分位數(0-100) 3. **合成總分**:加權平均(或中位數)得到綜合估值分位數 4. **判定極端**:若總分 ≥ 門檻(預設 95),觸發極端高估警報 5. **歷史類比**:找出歷史上的類似事件(1929、1965、1999 等) 6. **事後統計**:計算這些事件後的報酬、回撤、波動變化 輸出:當前狀態、各指標分位數、歷史類比事件、風險解讀。 **最快的方式:執行視覺化分析** ```bash cd skills/detect-us-equity-valuation-percentile-extreme pip install pandas numpy yfinance requests matplotlib openpyxl xlrd # 首次使用 python scripts/visualize_valuation.py -o output ``` 輸出: - `output/us_valuation_percentile_YYYY-MM-DD.png` - 歷史走勢圖(類似 @ekwufinance 風格) - `output/us_valuation_breakdown_YYYY-MM-DD.png` - 各指標分位數分解圖 - `output/us_valuation_analysis_YYYY-MM-DD.json` - JSON 結果 **圖表特色**: - 多指標合成分位數的**歷史走勢**(非單一時間點) - **歷史峰值標記**:1929、1965、1999、2021 - S&P 500 指數疊加(對數刻度) - 當前「新高」標註 **快速檢查(純 JSON)**: ```bash python scripts/valuation_percentile.py --quick ``` **完整分析**: ```bash python scripts/valuation_percentile.py \ --as_of_date 2026-01-21 \ --universe "^GSPC" \ --metrics "cape,mktcap_to_gdp,trailing_pe,pb" \ --output result.json ``` 需要進行什麼操作? 1. **視覺化分析(推薦)** - 生成歷史走勢圖表,標記歷史峰值 2. **快速檢查** - 查看目前的估值分位數與極端狀態 3. **完整分析** - 執行完整的歷史分位數分析與風險解讀 4. **歷史類比** - 深入分析歷史極端高估事件與事後表現 5. **方法論學習** - 了解估值分位數模型的邏輯 6. **自訂參數** - 指定估值指標、門檻、合成方式等 **請選擇或直接提供分析參數。** | Response | Action | |----------------------------------|----------------------------------------------| | 1, "視覺化", "圖表", "chart" | 執行 `python scripts/visualize_valuation.py -o output` | | 2, "快速", "quick", "check" | 執行 `python scripts/valuation_percentile.py --quick` | | 3, "完整", "full", "analysis" | 閱讀 `workflows/execute-analysis.md` 並執行 | | 4, "歷史", "類比", "episodes" | 閱讀 `workflows/historical-episodes.md` 並執行 | | 5, "學習", "方法論", "why" | 閱讀 `references/methodology.md` | | 6, "自訂", "custom", 提供參數 | 閱讀 `workflows/execute-analysis.md` 並使用參數執行 | **路由後,閱讀對應文件並執行。** ``` detect-us-equity-valuation-percentile-extreme/ ├── SKILL.md # 本文件(路由器) ├── skill.yaml # 前端展示元數據 ├── manifest.json # 技能元數據 ├── workflows/ │ ├── execute-analysis.md # 完整分析工作流 │ ├── visualize-analysis.md # 視覺化分析工作流 │ └── historical-episodes.md # 歷史類比分析工作流 ├── references/ │ ├── methodology.md # 估值分位數方法論 │ ├── data-sources.md # 資料來源與代碼 │ ├── valuation-metrics.md # 估值指標定義 │ └── input-schema.md # 完整輸入參數定義 ├── templates/ │ ├── output-json.md # JSON 輸出模板 │ └── output-markdown.md # Markdown 報告模板 ├── scripts/ │ ├── valuation_percentile.py # 主分析腳本 │ ├── visualize_valuation.py # 視覺化腳本(歷史走勢圖) │ └── fetch_valuation_data.py # 資料抓取工具 └── examples/ └── sample_output.json # 範例輸出 ``` **方法論**: references/methodology.md - 分位數標準化原理 - 多指標合成邏輯 - 極端偵測與歷史類比 **資料來源**: references/data-sources.md - Shiller CAPE 資料集 - FRED 系列代碼 - 公開替代資料說明 **估值指標**: references/valuation-metrics.md - PE、Forward PE、CAPE 定義 - PB、PS、EV/EBITDA 定義 - Q Ratio、市值/GDP 定義 **輸入參數**: references/input-schema.md - 完整參數定義 - 預設值與建議範圍 | Workflow | Purpose | 使用時機 | |-------------------------|------------------|------------------------| | execute-analysis.md | 完整估值分析 | 需要完整報告時 | | historical-episodes.md | 歷史事件深度分析 | 理解歷史類比與事後統計 | | Template | Purpose | |--------------------|----------------------| | output-json.md | JSON 輸出結構定義 | | output-markdown.md | Markdown 報告模板 | | Script | Command | Purpose | |---------------------------|-----------------------------------|----------------------| | visualize_valuation.py | `-o output` | **視覺化分析(推薦)** | | valuation_percentile.py | `--quick` | 快速檢查當前狀態 | | valuation_percentile.py | `--as_of_date DATE --output FILE` | 完整分析 | | fetch_valuation_data.py | `--metrics cape,pe` | 抓取估值資料 | **核心參數** | 參數 | 類型 | 預設值 | 說明 | |----------------|--------|--------------|------------------| | as_of_date | string | today | 評估日期 | | universe | string | ^GSPC | 市場代碼 | | history_start | string | 1900-01-01 | 歷史起算日 | | metrics | array | [cape, ...] | 估值指標清單 | | aggregation | string | mean | 合成方法 | **門檻參數** | 參數 | 類型 | 預設值 | 說明 | |-----------------------|--------|--------|------------------------| | extreme_threshold | number | 95 | 極端高估門檻(分位數) | | episode_min_gap_days | int | 3650 | 歷史事件去重間隔 | | forward_windows_days | array | [180, 365, 1095] | 事後統計視窗 | 完整參數定義見 `references/input-schema.md`。 ```json { "skill": "detect-us-equity-valuation-percentile-extreme", "as_of_date": "2026-01-21", "universe": "^GSPC", "composite_percentile": 97.3, "extreme_threshold": 95, "is_extreme": true, "metric_percentiles": { "cape": 98.2, "mktcap_to_gdp": 96.5, "trailing_pe": 94.1 }, "historical_episodes": [ {"date": "1929-09-01", "composite_percentile": 97.8}, {"date": "1999-12-01", "composite_percentile": 98.5} ], "forward_stats": { "365d_forward_return": {"median": -8.2, "p25": -22.1, "p10": -38.5}, "1095d_max_drawdown": {"median": -28.4, "p75": -42.1} }, "data_quality_notes": [ "CAPE 資料可回溯至 1871 年", "市值/GDP 資料可回溯至 1950 年代", "合成分位數使用各指標自身歷史分布" ] } ``` 完整輸出結構見 `templates/output-json.md`。 執行成功時應產出: - [ ] 當前綜合估值分位數(0-100) - [ ] 各指標個別分位數 - [ ] 極端高估判定(是/否) - [ ] 歷史類比事件清單(日期、分位數) - [ ] 事後統計(報酬、回撤、波動) - [ ] 資料品質說明(各指標可得期間) - [ ] 風險解讀框架(可選,輸出至 Markdown) **視覺化輸出**(使用 visualize_valuation.py): - [ ] 歷史走勢圖(`us_valuation_percentile_YYYY-MM-DD.png`) - 多指標合成分位數時間序列 - 歷史峰值標記(1929、1965、1999、2021) - S&P 500 指數疊加(對數刻度) - 當前位置標註 - [ ] 指標分解圖(`us_valuation_breakdown_YYYY-MM-DD.png`) - 各指標分位數橫向條形圖 - 極端門檻參考線 - [ ] JSON 結果檔(`us_valuation_analysis_YYYY-MM-DD.json`)