From fatfingererr-macro-skills
把多個股票估值指標統一轉成在過去百年歷史中的分位數,再合成一個總分,判斷目前是否處於歷史極端高估區間,並用歷史類比(如 1929、1965、1999)給出風險解讀。
npx claudepluginhub joshuarweaver/cascade-code-general-misc-1 --plugin fatfingererr-macro-skillsThis skill uses the workspace's default tool permissions.
<essential_principles>
examples/sample_output.jsonmanifest.jsonreferences/data-sources.mdreferences/input-schema.mdreferences/methodology.mdreferences/valuation-metrics.mdscripts/fetch_valuation_data.pyscripts/valuation_percentile.pyscripts/visualize_valuation.pyskill.yamltemplates/output-json.mdtemplates/output-markdown.mdworkflows/execute-analysis.mdworkflows/historical-episodes.mdworkflows/visualize-analysis.mdCreates new Angular apps using Angular CLI with flags for routing, SSR, SCSS, prefixes, and AI config. Follows best practices for modern TypeScript/Angular development. Use when starting Angular projects.
Generates Angular code and provides architectural guidance for projects, components, services, reactivity with signals, forms, dependency injection, routing, SSR, ARIA accessibility, animations, Tailwind styling, testing, and CLI tooling.
Executes ctx7 CLI to fetch up-to-date library documentation, manage AI coding skills (install/search/generate/remove/suggest), and configure Context7 MCP. Useful for current API refs, skill handling, or agent setup.
<essential_principles>
**分位數標準化核心**將不同單位的估值指標(PE、PB、CAPE 等)統一成「0-100 的歷史分位數」:
合成公式:composite_percentile = 加權平均(各指標分位數)
支援三種合成方式:
| 方式 | 公式 | 適用場景 |
|---|---|---|
| mean | 算術平均 | 各指標同等重要 |
| median | 中位數 | 抵抗單一指標異常拉升 |
| trimmed_mean | 去極端平均 | 穩健估計 |
重要:各指標可能有不同歷史長度,預設使用「各自歷史」計算分位數再合成。
**極端高估偵測邏輯**if composite_percentile >= extreme_threshold (預設 95):
→ 判定「歷史極端高估」
→ 觸發風險解讀流程
歷史類比事件識別:
episode_min_gap_days 去重(預設 10 年內只保留最高點)「估值極端高」≠「明天崩盤」,但歷史特徵是:
輸出事後統計:
本 skill 使用公開替代資料,非彭博原始數據:
必須揭露:
</essential_principles>
偵測美股估值是否處於歷史極端區間:輸出:當前狀態、各指標分位數、歷史類比事件、風險解讀。
<quick_start>
最快的方式:執行視覺化分析
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 結果圖表特色:
快速檢查(純 JSON):
python scripts/valuation_percentile.py --quick
完整分析:
python scripts/valuation_percentile.py \
--as_of_date 2026-01-21 \
--universe "^GSPC" \
--metrics "cape,mktcap_to_gdp,trailing_pe,pb" \
--output result.json
</quick_start>
需要進行什麼操作?請選擇或直接提供分析參數。
| 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` 並使用參數執行 |路由後,閱讀對應文件並執行。
<directory_structure>
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 # 範例輸出
</directory_structure>
<reference_index>
方法論: references/methodology.md
資料來源: references/data-sources.md
估值指標: references/valuation-metrics.md
輸入參數: references/input-schema.md
</reference_index>
<workflows_index>
| Workflow | Purpose | 使用時機 |
|---|---|---|
| execute-analysis.md | 完整估值分析 | 需要完整報告時 |
| historical-episodes.md | 歷史事件深度分析 | 理解歷史類比與事後統計 |
| </workflows_index> |
<templates_index>
| Template | Purpose |
|---|---|
| output-json.md | JSON 輸出結構定義 |
| output-markdown.md | Markdown 報告模板 |
| </templates_index> |
<scripts_index>
| 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 | 抓取估值資料 |
| </scripts_index> |
<input_schema_summary>
核心參數
| 參數 | 類型 | 預設值 | 說明 |
|---|---|---|---|
| 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。
</input_schema_summary>
<output_schema_summary>
{
"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。
</output_schema_summary>
<success_criteria> 執行成功時應產出:
視覺化輸出(使用 visualize_valuation.py):
us_valuation_percentile_YYYY-MM-DD.png)
us_valuation_breakdown_YYYY-MM-DD.png)
us_valuation_analysis_YYYY-MM-DD.json)
</success_criteria>