礦業股/金屬價格比率可分解為四大基本面因子:
R_t ≈ K × M_t × (1-L_t) × C_t × D_t
其中:
- K: 校準常數(由觀測值估計)
- M_t: 倍數因子(EV/EBITDA)
- (1-L_t): 槓桿因子(1 - NetDebt/EV)
- C_t: 成本因子(1 - AISC/S_t)
- D_t: 稀釋因子(Shares_base / Shares_t)
此拆解讓「比率變動」有可歸因的量化解釋。
全維持成本(AISC)是礦業股估值的核心驅動:
| 優先級 |
來源 |
方法 |
| 1 |
MD&A / 財報附註 |
關鍵字抽取:「AISC」「all-in sustaining」 |
| 2 |
年報簡報 PDF |
解析表格:$/oz 或 $/ounce |
| 3 |
Proxy 回算 |
(OpCost + SustCapex + G&A - Byproduct) / Oz |
當直接揭露不可得時,以 proxy 回算補缺;記錄 aisc_method 以標註來源。
目標:給定目標比率 R*(如歷史頂部 1.7),反推需要哪些因子條件。
單因子反推:假設其他因子不變,只調整單一因子
M* = M_now × (R*/R_now) # 需要的倍數
(1-L*) = (1-L_now) × (R*/R_now) # 需要的去槓桿
C* = C_now × (R*/R_now) # 需要的成本改善 → 反推 AISC*
D* = D_now × (R*/R_now) # 需要的稀釋折扣
雙因子組合:以網格列舉可行組合(如倍數 +20% + 白銀 -15%)。
識別「比率落入底部分位」的歷史事件,回看事件當期的四大因子狀態:
- AISC 是否上升:成本壓力
- NetDebt/EV 是否惡化:槓桿壓力
- EV/EBITDA 是否壓縮:倍數壓力
- Shares 是否上升:稀釋壓力
排名「哪個因子貢獻最大」,識別驅動底部的主因。
遵循「結構化優先」原則:
- SEC XBRL (10-K/10-Q):直接取欄位(債務、現金、股數、CFO、Capex)
- SEDAR+ (加拿大):銀礦公司常在加拿大上市
- 公司 IR 年報/MD&A:補齊 AISC、產量等非標準欄位
- ETF Holdings:官方 CSV 或 SEC N-PORT
抓取時使用 Selenium 模擬人類行為,避免被封鎖。
- 數據整合:抓取價格、ETF 持股、財務報表、營運揭露
- 因子計算:計算 AISC、槓桿、倍數、稀釋四大因子
- 比率拆解:建立 R_t ≈ K × M × (1-L) × C × D 近似式
- 門檻反推:給定目標比率,反推需要的因子組合
- 事件研究:歷史底部事件的因子驅動分析
- 輸出報告:結構化 JSON 與可讀 Markdown
目標用戶:看到 SIL/白銀比率極端時,想用「真實財報」驗證驅動因素。
最快的方式:使用預設參數分析
cd skills/backsolve-miner-vs-metal-ratio-with-fundamentals
pip install pandas numpy yfinance matplotlib # 首次使用
python scripts/fundamental_analyzer.py --quick
完整分析(含財報抓取)
python scripts/fundamental_analyzer.py \
--metal-symbol SI=F \
--miner-universe etf:SIL \
--region-profile us_sec \
--start-date 2015-01-01 \
--output result.json
生成視覺化儀表板
python scripts/visualize_factors.py --quick --output output/
# 輸出: output/sil_silver_factor_analysis_YYYY-MM-DD.png
視覺化儀表板包含四個面板:
- 比率時間序列:歷史走勢 + 分位數區間(底部/頂部)
- 因子雷達圖:四大因子健康度一覽
- 因子評分長條圖:成本、槓桿、倍數、稀釋各項評分
- 情境熱力圖:倍數擴張 × 白銀變動的組合分析
共同上漲情境模擬
python scripts/scenario_path_simulator.py --quick --output output/
# 輸出: output/scenario_path_YYYY-MM-DD.png + return_heatmap_YYYY-MM-DD.png
核心公式:礦業股漲幅 = (1 + 銀價漲幅) × (R₁/R₀) - 1
自訂參數:
python scripts/scenario_path_simulator.py \
--silver-monthly 5 \ # 銀價每月漲幅 5%
--ratio-start 1.10 \ # 比率起點
--ratio-end 1.20 \ # 比率終點
--months 6 \ # 模擬 6 個月
--heatmap # 同時生成熱力圖
輸出範例:
{
"now": {
"metal_price": 94.4,
"miner_price": 103.4,
"ratio": 1.13,
"ratio_percentile": 0.111
},
"thresholds": {
"bottom_ratio": 1.20,
"top_ratio": 1.70,
"median_ratio": 1.51
},
"fundamentals_weighted": {
"aisc_usd_per_oz": 28.0,
"net_debt_to_ev": 0.25,
"ev_to_ebitda": 6.4,
"shares_yoy_change": 0.12
},
"factors_now": {
"cost_factor_C": 0.7034,
"leverage_factor_1_minus_L": 0.75,
"multiple_M": 6.4,
"dilution_discount_D": 0.89
},
"backsolve_to_top": {
"multiple_only_need": 9.1,
"deleverage_only_need_1_minus_L": 1.12,
"cost_only_implied_aisc": 15.6,
"dilution_only_need_D": 1.26
}
}
- 快速分析 - 使用預設參數(SIL / SI=F)計算當前因子狀態
- 完整分析 - 抓取財報、計算因子、反推門檻
- 因子拆解 - 深入了解四大因子的計算邏輯
- 門檻反推 - 給定目標比率,計算需要的因子組合
- 事件研究 - 歷史底部事件的因子驅動排名
- 方法論學習 - 了解回算邏輯與數據來源
- 視覺化 - 生成四面板儀表板圖表
- 共同上漲情境 - 模擬銀價與礦業股同漲時的比例關係與路徑
請選擇或直接提供分析參數。
路由後,閱讀對應文件並執行。
輸入參數: references/input-schema.md
數據來源: references/data-sources.md
- 價格數據(yfinance / stooq / alphavantage)
- 財報數據(SEC EDGAR / SEDAR+ / 公司 IR)
- ETF 持股(官方 CSV / N-PORT / 手動 URL)
因子計算: references/fundamental-factors.md
反推數學: references/backsolve-math.md
| Script |
Command |
Purpose |
| fundamental_analyzer.py |
--quick |
快速分析 SIL/SI=F |
| fundamental_analyzer.py |
--miner-universe etf:SILJ |
自訂礦業股 ETF |
| fundamental_analyzer.py |
--backsolve-target 1.7 |
指定反推目標比率 |
| fundamental_analyzer.py |
--event-study --min-separation 180 |
執行事件研究 |
| visualize_factors.py |
--quick --output output/ |
生成四面板視覺化儀表板 |
| visualize_factors.py |
--input result.json |
從 JSON 結果生成圖表 |
| scenario_path_simulator.py |
--quick |
共同上漲情境路徑模擬 |
| scenario_path_simulator.py |
--silver-monthly 5 --months 6 |
自訂銀價月漲幅與模擬月數 |
| scenario_path_simulator.py |
--ratio-start 1.10 --ratio-end 1.20 |
自訂比率起終點 |
| scenario_path_simulator.py |
--heatmap |
同時生成收益率熱力圖 |
|
|
|
核心參數
| 參數 |
類型 |
預設值 |
說明 |
| metal_symbol |
string |
SI=F |
金屬價格代碼(SI=F 白銀、GC=F 黃金) |
| miner_universe |
object |
etf:SIL |
礦業股/ETF 定義 |
| region_profile |
string |
us_sec |
監管與揭露來源(us_sec / canada_sedar) |
| time_range.start |
string |
5 年前 |
分析起點(YYYY-MM-DD) |
| time_range.end |
string |
today |
分析終點 |
| time_range.frequency |
string |
weekly |
取樣頻率(daily/weekly/monthly) |
因子方法選擇
| 參數 |
類型 |
預設值 |
說明 |
| fundamental_methods.aisc |
string |
hybrid |
AISC 抽取方法 |
| fundamental_methods.leverage |
string |
net_debt_to_ev |
槓桿計算方法 |
| fundamental_methods.multiple |
string |
ev_to_ebitda |
倍數計算方法 |
| fundamental_methods.dilution |
string |
weighted_avg_shares |
稀釋計算方法 |
分位門檻
| 參數 |
類型 |
預設值 |
說明 |
| ratio_thresholds.bottom |
float |
0.20 |
底部分位數門檻 |
| ratio_thresholds.top |
float |
0.80 |
頂部分位數門檻 |
完整參數定義見 references/input-schema.md。
完整輸出結構見 templates/output-json.md。
1---2name: backsolve-miner-vs-metal-ratio-with-fundamentals3description: 從網路自動抓取礦業公司財務報表與營運揭露(產量、成本、資本支出),回算「礦業股/金屬本體比率」的基本面解釋與區間門檻(如 1.2/1.7),並輸出可重現的估值拆解(成本因子 / 槓桿因子 / 倍數因子 / 稀釋因子)。4---5
6<essential_principles>
7
8<principle name="ratio_decomposition">
9**比率拆解核心公式**
10
11礦業股/金屬價格比率可分解為四大基本面因子:
12
13```
14R_t ≈ K × M_t × (1-L_t) × C_t × D_t
15```
16
17其中:
18- **K**: 校準常數(由觀測值估計)
19- **M_t**: 倍數因子(EV/EBITDA)
20- **(1-L_t)**: 槓桿因子(1 - NetDebt/EV)
21- **C_t**: 成本因子(1 - AISC/S_t)
22- **D_t**: 稀釋因子(Shares_base / Shares_t)
23
24此拆解讓「比率變動」有可歸因的量化解釋。
25</principle>
26
27<principle name="aisc_extraction">
28**AISC 抽取優先順序**
29
30全維持成本(AISC)是礦業股估值的核心驅動:
31
32| 優先級 | 來源 | 方法 |
33|--------|-----------------|---------------------------------------------|
34| 1 | MD&A / 財報附註 | 關鍵字抽取:「AISC」「all-in sustaining」 |
35| 2 | 年報簡報 PDF | 解析表格:$/oz 或 $/ounce |
36| 3 | Proxy 回算 | (OpCost + SustCapex + G&A - Byproduct) / Oz |
37
38當直接揭露不可得時,以 proxy 回算補缺;記錄 `aisc_method` 以標註來源。
39</principle>
40
41<principle name="backsolve_logic">
42**反推邏輯(Backsolve)**
43
44目標:給定目標比率 R*(如歷史頂部 1.7),反推需要哪些因子條件。
45
46**單因子反推**:假設其他因子不變,只調整單一因子
47
48```
49M* = M_now × (R*/R_now) # 需要的倍數
50(1-L*) = (1-L_now) × (R*/R_now) # 需要的去槓桿
51C* = C_now × (R*/R_now) # 需要的成本改善 → 反推 AISC*
52D* = D_now × (R*/R_now) # 需要的稀釋折扣
53```
54
55**雙因子組合**:以網格列舉可行組合(如倍數 +20% + 白銀 -15%)。
56</principle>
57
58<principle name="event_study">
59**事件研究方法**
60
61識別「比率落入底部分位」的歷史事件,回看事件當期的四大因子狀態:
62
631. **AISC 是否上升**:成本壓力
642. **NetDebt/EV 是否惡化**:槓桿壓力
653. **EV/EBITDA 是否壓縮**:倍數壓力
664. **Shares 是否上升**:稀釋壓力
67
68排名「哪個因子貢獻最大」,識別驅動底部的主因。
69</principle>
70
71<principle name="data_priority">
72**數據來源優先順序**
73
74遵循「結構化優先」原則:
75
761. **SEC XBRL (10-K/10-Q)**:直接取欄位(債務、現金、股數、CFO、Capex)
772. **SEDAR+ (加拿大)**:銀礦公司常在加拿大上市
783. **公司 IR 年報/MD&A**:補齊 AISC、產量等非標準欄位
794. **ETF Holdings**:官方 CSV 或 SEC N-PORT
80
81抓取時使用 Selenium 模擬人類行為,避免被封鎖。
82</principle>
83
84</essential_principles>
85
86<objective>
87實作「礦業股/金屬價格比率」基本面回算系統:
88
891. **數據整合**:抓取價格、ETF 持股、財務報表、營運揭露
902. **因子計算**:計算 AISC、槓桿、倍數、稀釋四大因子
913. **比率拆解**:建立 R_t ≈ K × M × (1-L) × C × D 近似式
924. **門檻反推**:給定目標比率,反推需要的因子組合
935. **事件研究**:歷史底部事件的因子驅動分析
946. **輸出報告**:結構化 JSON 與可讀 Markdown
95
96目標用戶:看到 SIL/白銀比率極端時,想用「真實財報」驗證驅動因素。
97</objective>
98
99<quick_start>
100
101**最快的方式:使用預設參數分析**
102
103```bash
104cd skills/backsolve-miner-vs-metal-ratio-with-fundamentals
105pip install pandas numpy yfinance matplotlib # 首次使用
106python scripts/fundamental_analyzer.py --quick
107```
108
109**完整分析(含財報抓取)**
110
111```bash
112python scripts/fundamental_analyzer.py \
113 --metal-symbol SI=F \
114 --miner-universe etf:SIL \
115 --region-profile us_sec \
116 --start-date 2015-01-01 \
117 --output result.json
118```
119
120**生成視覺化儀表板**
121
122```bash
123python scripts/visualize_factors.py --quick --output output/
124# 輸出: output/sil_silver_factor_analysis_YYYY-MM-DD.png
125```
126
127視覺化儀表板包含四個面板:
1281. **比率時間序列**:歷史走勢 + 分位數區間(底部/頂部)
1292. **因子雷達圖**:四大因子健康度一覽
1303. **因子評分長條圖**:成本、槓桿、倍數、稀釋各項評分
1314. **情境熱力圖**:倍數擴張 × 白銀變動的組合分析
132
133**共同上漲情境模擬**
134
135```bash
136python scripts/scenario_path_simulator.py --quick --output output/
137# 輸出: output/scenario_path_YYYY-MM-DD.png + return_heatmap_YYYY-MM-DD.png
138```
139
140核心公式:**礦業股漲幅 = (1 + 銀價漲幅) × (R₁/R₀) - 1**
141
142自訂參數:
143```bash
144python scripts/scenario_path_simulator.py \
145 --silver-monthly 5 \ # 銀價每月漲幅 5%
146 --ratio-start 1.10 \ # 比率起點
147 --ratio-end 1.20 \ # 比率終點
148 --months 6 \ # 模擬 6 個月
149 --heatmap # 同時生成熱力圖
150```
151
152**輸出範例**:
153
154```json
155{
156 "now": {
157 "metal_price": 94.4,
158 "miner_price": 103.4,
159 "ratio": 1.13,
160 "ratio_percentile": 0.111
161 },
162 "thresholds": {
163 "bottom_ratio": 1.20,
164 "top_ratio": 1.70,
165 "median_ratio": 1.51
166 },
167 "fundamentals_weighted": {
168 "aisc_usd_per_oz": 28.0,
169 "net_debt_to_ev": 0.25,
170 "ev_to_ebitda": 6.4,
171 "shares_yoy_change": 0.12
172 },
173 "factors_now": {
174 "cost_factor_C": 0.7034,
175 "leverage_factor_1_minus_L": 0.75,
176 "multiple_M": 6.4,
177 "dilution_discount_D": 0.89
178 },
179 "backsolve_to_top": {
180 "multiple_only_need": 9.1,
181 "deleverage_only_need_1_minus_L": 1.12,
182 "cost_only_implied_aisc": 15.6,
183 "dilution_only_need_D": 1.26
184 }
185}
186```
187
188</quick_start>
189
190<intake>
191需要進行什麼操作?
192
1931. **快速分析** - 使用預設參數(SIL / SI=F)計算當前因子狀態
1942. **完整分析** - 抓取財報、計算因子、反推門檻
1953. **因子拆解** - 深入了解四大因子的計算邏輯
1964. **門檻反推** - 給定目標比率,計算需要的因子組合
1975. **事件研究** - 歷史底部事件的因子驅動排名
1986. **方法論學習** - 了解回算邏輯與數據來源
1997. **視覺化** - 生成四面板儀表板圖表
2008. **共同上漲情境** - 模擬銀價與礦業股同漲時的比例關係與路徑
201
202**請選擇或直接提供分析參數。**
203</intake>
204
205<routing>
206| Response | Action |
207|--------------------------------|----------------------------------------------------------------|
208| 1, "快速", "quick", "分析" | 執行 `python scripts/fundamental_analyzer.py --quick` |
209| 2, "完整", "full", "財報" | 閱讀 `workflows/analyze.md` 並執行 |
210| 3, "因子", "factor", "拆解" | 閱讀 `references/fundamental-factors.md` |
211| 4, "反推", "backsolve", "門檻" | 閱讀 `references/backsolve-math.md` 並執行反推分析 |
212| 5, "事件", "event", "底部" | 閱讀 `workflows/analyze.md` 並聚焦事件研究 |
213| 6, "學習", "方法論", "why" | 閱讀 `references/fundamental-factors.md` + `backsolve-math.md` |
214| 7, "視覺化", "圖", "chart" | 執行 `python scripts/visualize_factors.py --quick` |
215| 8, "共同上漲", "情境", "路徑" | 執行 `python scripts/scenario_path_simulator.py --quick` |
216| "比例關係", "漲幅", "要漲多少" | 執行 `python scripts/scenario_path_simulator.py --quick` |
217| 提供參數 (如 ETF/金屬代理) | 閱讀 `workflows/analyze.md` 並使用參數執行 |
218
219**路由後,閱讀對應文件並執行。**
220</routing>
221
222<directory_structure>
223```
224backsolve-miner-vs-metal-ratio-with-fundamentals/
225├── SKILL.md # 本文件(路由器)
226├── skill.yaml # 前端展示元數據
227├── manifest.json # 技能元數據
228├── workflows/
229│ ├── analyze.md # 完整分析工作流
230│ └── data-fetch.md # 數據抓取工作流
231├── references/
232│ ├── input-schema.md # 完整輸入參數定義
233│ ├── data-sources.md # 數據來源說明
234│ ├── fundamental-factors.md # 四大因子計算邏輯
235│ └── backsolve-math.md # 反推數學公式
236├── templates/
237│ ├── output-json.md # JSON 輸出模板
238│ └── output-markdown.md # Markdown 報告模板
239├── scripts/
240│ ├── fundamental_analyzer.py # 主計算腳本
241│ ├── visualize_factors.py # 視覺化儀表板腳本
242│ └── scenario_path_simulator.py # 共同上漲情境模擬器
243└── examples/
244 └── sample-output.json # 範例輸出
245```
246</directory_structure>
247
248<reference_index>
249
250**輸入參數**: references/input-schema.md
251- 完整參數定義
252- 預設值與建議範圍
253- 各方法選項說明
254
255**數據來源**: references/data-sources.md
256- 價格數據(yfinance / stooq / alphavantage)
257- 財報數據(SEC EDGAR / SEDAR+ / 公司 IR)
258- ETF 持股(官方 CSV / N-PORT / 手動 URL)
259
260**因子計算**: references/fundamental-factors.md
261- AISC 成本因子
262- 槓桿因子
263- 倍數因子
264- 稀釋因子
265
266**反推數學**: references/backsolve-math.md
267- 單因子反推公式
268- 雙因子組合網格
269- 校準常數估計
270
271</reference_index>
272
273<workflows_index>
274| Workflow | Purpose | 使用時機 |
275|---------------|----------|-----------------------------|
276| analyze.md | 完整分析 | 需要抓取財報並計算因子 |
277| data-fetch.md | 數據抓取 | 了解如何抓取 ETF 持股與財報 |
278</workflows_index>
279
280<templates_index>
281| Template | Purpose |
282|--------------------|-------------------|
283| output-json.md | JSON 輸出結構定義 |
284| output-markdown.md | Markdown 報告模板 |
285</templates_index>
286
287<scripts_index>
288| Script | Command | Purpose |
289|----------------------------|--------------------------------------|----------------------------|
290| fundamental_analyzer.py | `--quick` | 快速分析 SIL/SI=F |
291| fundamental_analyzer.py | `--miner-universe etf:SILJ` | 自訂礦業股 ETF |
292| fundamental_analyzer.py | `--backsolve-target 1.7` | 指定反推目標比率 |
293| fundamental_analyzer.py | `--event-study --min-separation 180` | 執行事件研究 |
294| visualize_factors.py | `--quick --output output/` | 生成四面板視覺化儀表板 |
295| visualize_factors.py | `--input result.json` | 從 JSON 結果生成圖表 |
296| scenario_path_simulator.py | `--quick` | 共同上漲情境路徑模擬 |
297| scenario_path_simulator.py | `--silver-monthly 5 --months 6` | 自訂銀價月漲幅與模擬月數 |
298| scenario_path_simulator.py | `--ratio-start 1.10 --ratio-end 1.20`| 自訂比率起終點 |
299| scenario_path_simulator.py | `--heatmap` | 同時生成收益率熱力圖 |
300</scripts_index>
301
302<input_schema_summary>
303
304**核心參數**
305
306| 參數 | 類型 | 預設值 | 說明 |
307|----------------------|--------|---------|-----------------------------------------|
308| metal_symbol | string | SI=F | 金屬價格代碼(SI=F 白銀、GC=F 黃金) |
309| miner_universe | object | etf:SIL | 礦業股/ETF 定義 |
310| region_profile | string | us_sec | 監管與揭露來源(us_sec / canada_sedar) |
311| time_range.start | string | 5 年前 | 分析起點(YYYY-MM-DD) |
312| time_range.end | string | today | 分析終點 |
313| time_range.frequency | string | weekly | 取樣頻率(daily/weekly/monthly) |
314
315**因子方法選擇**
316
317| 參數 | 類型 | 預設值 | 說明 |
318|------------------------------|--------|---------------------|---------------|
319| fundamental_methods.aisc | string | hybrid | AISC 抽取方法 |
320| fundamental_methods.leverage | string | net_debt_to_ev | 槓桿計算方法 |
321| fundamental_methods.multiple | string | ev_to_ebitda | 倍數計算方法 |
322| fundamental_methods.dilution | string | weighted_avg_shares | 稀釋計算方法 |
323
324**分位門檻**
325
326| 參數 | 類型 | 預設值 | 說明 |
327|-------------------------|-------|--------|----------------|
328| ratio_thresholds.bottom | float | 0.20 | 底部分位數門檻 |
329| ratio_thresholds.top | float | 0.80 | 頂部分位數門檻 |
330
331完整參數定義見 `references/input-schema.md`。
332
333</input_schema_summary>
334
335<output_schema_summary>
336```json
337{
338 "skill": "backsolve_miner_vs_metal_ratio_with_fundamentals",
339 "inputs": {
340 "metal_symbol": "SI=F",
341 "miner_universe": {"type": "etf_holdings", "etf_ticker": "SIL"},
342 "region_profile": "us_sec"
343 },
344 "now": {
345 "metal_price": 94.4,
346 "miner_price": 103.4,
347 "ratio": 1.13,
348 "ratio_percentile": 0.111
349 },
350 "thresholds": {
351 "bottom_ratio": 1.20,
352 "top_ratio": 1.70,
353 "median_ratio": 1.51
354 },
355 "fundamentals_weighted": {
356 "aisc_usd_per_oz": 28.0,
357 "net_debt_to_ev": 0.25,
358 "ev_to_ebitda": 6.4,
359 "shares_yoy_change": 0.12
360 },
361 "factors_now": {
362 "cost_factor_C": 0.7034,
363 "leverage_factor_1_minus_L": 0.75,
364 "multiple_M": 6.4,
365 "dilution_discount_D": 0.89
366 },
367 "backsolve_to_top": {
368 "multiple_only_need": 9.1,
369 "deleverage_only_need_1_minus_L": 1.12,
370 "cost_only_implied_aisc": 15.6,
371 "dilution_only_need_D": 1.26,
372 "two_factor_grid_examples": [
373 {"multiple_up": 1.20, "metal_down": -0.15, "hits_top": true},
374 {"deleverage": -0.10, "multiple_up": 1.15, "hits_top": true}
375 ]
376 },
377 "event_study": {
378 "bottom_events": [
379 {
380 "date": "2026-01-02",
381 "ratio": 1.13,
382 "aisc": 29.1,
383 "net_debt_to_ev": 0.27,
384 "ev_to_ebitda": 5.8,
385 "shares_yoy": 0.14,
386 "dominant_driver": "multiple_compression"
387 }
388 ]
389 },
390 "summary": "比率處於歷史底部,主要驅動為倍數壓縮...",
391 "notes": [
392 "AISC 使用 hybrid 方法回算,部分公司為 proxy 值",
393 "建議交叉驗證:COT 持倉、ETF 流量、美元/實質利率"
394 ]
395}
396```
397
398完整輸出結構見 `templates/output-json.md`。
399</output_schema_summary>
400
401<success_criteria>
402執行成功時應產出:
403
404- [ ] 當前比率與歷史分位數
405- [ ] 四大基本面因子(AISC、槓桿、倍數、稀釋)
406- [ ] 權重加總後的組合因子
407- [ ] 門檻反推結果(單因子 + 雙因子組合)
408- [ ] 歷史底部事件的因子驅動排名
409- [ ] 結果輸出為指定格式(JSON 或 Markdown)
410- [ ] 數據來源與方法標註(aisc_method 等)
411- [ ] 風險提示與後續研究建議
412- [ ] 視覺化儀表板(PNG 格式,檔名含日期)
413</success_criteria>