@openfinclaw/findoo-datahub-plugin 2026.3.2 → 2026.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/DESIGN.md +492 -151
  2. package/_vendor/claude-skills-finance/SKILL.md +192 -0
  3. package/_vendor/claude-skills-finance/assets/dcf_analysis_template.md +184 -0
  4. package/_vendor/claude-skills-finance/assets/expected_output.json +161 -0
  5. package/_vendor/claude-skills-finance/assets/forecast_report_template.md +177 -0
  6. package/_vendor/claude-skills-finance/assets/sample_financial_data.json +219 -0
  7. package/_vendor/claude-skills-finance/assets/variance_report_template.md +122 -0
  8. package/_vendor/claude-skills-finance/references/financial-ratios-guide.md +396 -0
  9. package/_vendor/claude-skills-finance/references/forecasting-best-practices.md +294 -0
  10. package/_vendor/claude-skills-finance/references/valuation-methodology.md +255 -0
  11. package/_vendor/claude-skills-finance/scripts/budget_variance_analyzer.py +406 -0
  12. package/_vendor/claude-skills-finance/scripts/dcf_valuation.py +449 -0
  13. package/_vendor/claude-skills-finance/scripts/forecast_builder.py +494 -0
  14. package/_vendor/claude-skills-finance/scripts/ratio_calculator.py +432 -0
  15. package/index.ts +332 -14
  16. package/openclaw.plugin.json +2 -2
  17. package/package.json +1 -1
  18. package/references/cn-market-specifics.md +165 -0
  19. package/references/crypto-analysis.md +635 -0
  20. package/references/financial-ratios-cn.md +452 -0
  21. package/references/hk-market-specifics.md +166 -0
  22. package/references/macro-cycle-cn.md +409 -0
  23. package/references/valuation-cn.md +427 -0
  24. package/skills/README.md +294 -0
  25. package/skills/a-concept-cycle/skill.md +200 -0
  26. package/skills/a-convertible-arb/skill.md +294 -0
  27. package/skills/a-dividend-king/skill.md +187 -0
  28. package/skills/a-earnings-season/skill.md +221 -0
  29. package/skills/a-index-timer/skill.md +192 -0
  30. package/skills/a-ipo-new/skill.md +297 -0
  31. package/skills/a-northbound-decoder/skill.md +185 -0
  32. package/skills/a-quant-board/skill.md +286 -0
  33. package/skills/a-share/skill.md +347 -0
  34. package/skills/a-share-radar/skill.md +185 -0
  35. package/skills/cross-asset/skill.md +202 -0
  36. package/skills/crypto/skill.md +269 -0
  37. package/skills/crypto-altseason/skill.md +208 -0
  38. package/skills/crypto-btc-cycle/skill.md +231 -0
  39. package/skills/crypto-defi-yield/skill.md +181 -0
  40. package/skills/crypto-funding-arb/skill.md +158 -0
  41. package/skills/crypto-stablecoin-flow/skill.md +149 -0
  42. package/skills/data-query/skill.md +124 -30
  43. package/skills/derivatives/skill.md +188 -35
  44. package/skills/etf-fund/skill.md +216 -0
  45. package/skills/factor-screen/skill.md +186 -0
  46. package/skills/hk-china-internet/skill.md +190 -0
  47. package/skills/hk-dividend-harvest/skill.md +192 -0
  48. package/skills/hk-hsi-pulse/skill.md +154 -0
  49. package/skills/hk-southbound-alpha/skill.md +163 -0
  50. package/skills/hk-stock/skill.md +295 -0
  51. package/skills/macro/skill.md +244 -53
  52. package/skills/risk-monitor/skill.md +171 -0
  53. package/skills/us-dividend/skill.md +162 -0
  54. package/skills/us-earnings/skill.md +149 -0
  55. package/skills/us-equity/skill.md +235 -0
  56. package/skills/us-etf/skill.md +261 -0
  57. package/skills/us-sector-rotation/skill.md +223 -0
  58. package/src/config.ts +4 -5
  59. package/src/datahub-client.test.ts +4 -7
  60. package/src/datahub-client.ts +6 -1
  61. package/src/register-tools.ts +720 -0
  62. package/src/tool-helpers.ts +89 -0
  63. package/test/e2e/l3-gateway-bootstrap.live.test.ts +339 -0
  64. package/test/e2e/l4-skill-tool-chain.live.test.ts +465 -0
  65. package/skills/crypto-defi/skill.md +0 -69
  66. package/skills/equity/skill.md +0 -64
  67. package/skills/market-radar/skill.md +0 -47
@@ -0,0 +1,221 @@
1
+ ---
2
+ name: fin-a-earnings-season
3
+ description: "A-share earnings season analysis — earnings calendar, consensus surprise, earnings-mine detection (goodwill/receivables/cash flow), post-earnings quick review. Use when: user asks about A-share earnings reports, earnings season, performance forecasts, earnings mines, or quarterly financial disclosure schedule. NOT for: individual stock deep analysis (use fin-a-share), market-wide scan (use fin-a-share-radar), factor screening (use fin-factor-screen)."
4
+ metadata: { "openclaw": { "emoji": "📅", "requires": { "extensions": ["findoo-datahub-plugin"] } } }
5
+ ---
6
+
7
+ # A-Share Earnings Season Analysis
8
+
9
+ A 股财报季专项分析:财报日历、预期差、地雷排查、财报后快评。覆盖年报(4月)、中报(8月)、三季报(10月)和业绩预告(1月底截止)。
10
+
11
+ ## When to Use
12
+
13
+ - "哪些股票要出年报了" / "upcoming annual reports"
14
+ - "业绩预告雷区怎么排" / "earnings mine detection"
15
+ - "财报季该关注什么" / "what to watch this earnings season"
16
+ - "宁德时代年报预期" / "CATL earnings consensus"
17
+ - "帮我排查商誉地雷" / "goodwill impairment risk scan"
18
+ - "这只股票会不会业绩暴雷" / "earnings surprise risk"
19
+ - "年报公布后分析一下" / "post-earnings review"
20
+
21
+ ## When NOT to Use
22
+
23
+ - 个股全景深度分析 (基本面+筹码+技术面) → use `/fin-a-share`
24
+ - 市场整体异常检测/盘后复盘 → use `/fin-a-share-radar`
25
+ - 量化因子选股 → use `/fin-factor-screen`
26
+ - 宏观经济数据 (GDP/CPI/利率) → use `/fin-macro`
27
+ - 加密货币 → use `/fin-crypto`
28
+
29
+ ## Tools & Parameters
30
+
31
+ ### fin_stock — 个股财务数据
32
+
33
+ | Parameter | Type | Required | Format | Default | Example |
34
+ | --------- | ------ | -------- | ------------------ | ------- | ------------------ |
35
+ | symbol | string | Yes | `{code}.SH/SZ` | — | 600519.SH |
36
+ | endpoint | string | Yes | see endpoint table | — | fundamental/income |
37
+ | limit | number | No | 1-5000 | 200 | 8 |
38
+
39
+ #### Key Endpoints
40
+
41
+ | endpoint | Description | Example |
42
+ | ------------------------------- | ------------------------ | ------------------------------------------------------------------------- |
43
+ | `fundamental/income` | Income statement | `fin_stock(symbol="600519.SH", endpoint="fundamental/income", limit=8)` |
44
+ | `fundamental/earnings_forecast` | Analyst consensus | `fin_stock(symbol="600519.SH", endpoint="fundamental/earnings_forecast")` |
45
+ | `fundamental/ratios` | PE/PB/ROE | `fin_stock(symbol="600519.SH", endpoint="fundamental/ratios")` |
46
+ | `fundamental/balance` | Balance sheet (goodwill) | `fin_stock(symbol="600519.SH", endpoint="fundamental/balance", limit=4)` |
47
+ | `fundamental/cash` | Cash flow statement | `fin_stock(symbol="600519.SH", endpoint="fundamental/cash", limit=4)` |
48
+ | `fundamental/metrics` | EV/EBITDA/deducted NI | `fin_stock(symbol="600519.SH", endpoint="fundamental/metrics")` |
49
+ | `price/historical` | OHLCV (post-earnings) | `fin_stock(symbol="600519.SH", endpoint="price/historical", limit=30)` |
50
+
51
+ ### fin_market — 市场级财报反应
52
+
53
+ | endpoint | Description | Example |
54
+ | ------------------- | ------------------- | ------------------------------------------------------------------- |
55
+ | `market/limit_list` | Limit-up/down stats | `fin_market(endpoint="market/limit_list", trade_date="2026-04-28")` |
56
+
57
+ ### fin_index — 行业景气度
58
+
59
+ | endpoint | Description | Example |
60
+ | -------------------- | ---------------- | ------------------------------------------ |
61
+ | `thematic/ths_index` | THS concept list | `fin_index(endpoint="thematic/ths_index")` |
62
+
63
+ ## Earnings Calendar
64
+
65
+ A 股财报披露时间表 (硬编码知识):
66
+
67
+ | 报告类型 | 披露窗口 | 重点关注 |
68
+ | -------- | ------------- | ----------------- |
69
+ | 年报 | 1月-4月30日 | 4月最密集 |
70
+ | 一季报 | 4月-4月30日 | 与年报同步披露 |
71
+ | 中报 | 7月-8月31日 | 8月最密集 |
72
+ | 三季报 | 10月-10月31日 | 10月最密集 |
73
+ | 业绩预告 | 各期截止日前 | 1月底年报预告截止 |
74
+ | 业绩快报 | 各期截止日前 | 先于正式报告 |
75
+
76
+ ## Earnings Season Analysis Pattern
77
+
78
+ ### 1. Consensus Surprise Analysis (预期差分析)
79
+
80
+ ```
81
+ Step 1: fin_stock(fundamental/income, symbol=X, limit=8) → 近 8 季度净利润/营收
82
+ Step 2: fin_stock(fundamental/earnings_forecast, symbol=X) → 分析师一致预期
83
+ Step 3: 计算历史 beat/miss 记录
84
+
85
+ Surprise 计算:
86
+ actual_NI = income 最新季度净利润
87
+ consensus_NI = earnings_forecast 一致预期净利润
88
+ surprise = (actual - consensus) / |consensus| × 100%
89
+
90
+ ├─ surprise > +10% → 大幅超预期 (强烈利好)
91
+ ├─ +3% ~ +10% → 小幅超预期 (温和利好)
92
+ ├─ -3% ~ +3% → 符合预期 (中性)
93
+ ├─ -10% ~ -3% → 小幅不及预期 (温和利空)
94
+ └─ < -10% → 大幅低于预期 (暴雷)
95
+
96
+ ⚠️ 如果连续 2 季度 miss → 盈利趋势恶化,高风险
97
+ ⚠️ 如果扣非净利 vs 净利差异 >20% → 非经常损益依赖,quality 存疑
98
+ 💡 结合 fundamental/ratios 的 PE — 低 PE + 超预期 = 高弹性; 高 PE + miss = 双杀
99
+ ```
100
+
101
+ ### 2. Earnings Mine Detection (地雷排查)
102
+
103
+ ```
104
+ Step 1: fin_stock(fundamental/balance, symbol=X, limit=4) → 近 4 季度资产负债表
105
+ Step 2: fin_stock(fundamental/cash, symbol=X, limit=4) → 近 4 季度现金流
106
+ Step 3: fin_stock(fundamental/income, symbol=X, limit=4) → 配合验证
107
+
108
+ 四维地雷评分 (0-100, 越高越危险):
109
+
110
+ Dim 1 — 商誉风险 (0-25):
111
+ goodwill / net_assets 比值
112
+ ├─ < 10% → 0 分
113
+ ├─ 10-20% → 8 分
114
+ ├─ 20-30% → 15 分
115
+ ├─ 30-50% → 20 分
116
+ └─ > 50% → 25 分
117
+ ⚠️ Q4 年报 + 商誉 >30% = 减值高发期
118
+
119
+ Dim 2 — 应收风险 (0-25):
120
+ accounts_receivable / revenue 比值
121
+ ├─ < 20% → 0 分
122
+ ├─ 20-35% → 8 分
123
+ ├─ 35-50% → 15 分
124
+ └─ > 50% → 25 分
125
+ ⚠️ 应收连续 3 季增速 > 营收增速 → 回款恶化
126
+
127
+ Dim 3 — 现金流风险 (0-25):
128
+ OCF / net_income 比值
129
+ ├─ > 1.0 → 0 分
130
+ ├─ 0.8-1.0 → 5 分
131
+ ├─ 0.5-0.8 → 12 分
132
+ ├─ 0-0.5 → 20 分
133
+ └─ < 0 (OCF 为负) → 25 分
134
+ ⚠️ 连续 2 季 OCF 为负 → 经营活动不产生现金
135
+
136
+ Dim 4 — 非经常损益依赖 (0-25):
137
+ (net_income - deducted_net_income) / |net_income|
138
+ ├─ < 10% → 0 分
139
+ ├─ 10-20% → 5 分
140
+ ├─ 20-40% → 12 分
141
+ ├─ 40-70% → 20 分
142
+ └─ > 70% 或扣非为负 → 25 分
143
+
144
+ 地雷等级:
145
+ ├─ 0-20 → 安全 (绿灯)
146
+ ├─ 20-40 → 关注 (黄灯)
147
+ ├─ 40-60 → 警惕 (橙灯)
148
+ ├─ 60-80 → 高危 (红灯)
149
+ └─ 80-100 → 极度危险 (黑灯)
150
+
151
+ 💡 地雷评分 >60 的公司,建议交叉验证同行业其他公司(行业性风险 vs 个体风险)
152
+ ```
153
+
154
+ ### 3. Post-Earnings Quick Review (财报后快评)
155
+
156
+ ```
157
+ Step 1: fin_stock(fundamental/income, symbol=X, limit=2) → 最新 vs 前期
158
+ Step 2: fin_stock(fundamental/earnings_forecast, symbol=X) → consensus
159
+ Step 3: fin_stock(price/historical, symbol=X, limit=5) → 财报后价格反应
160
+
161
+ 快评框架:
162
+ 1. 关键科目变动: 营收/净利/扣非/毛利率 — 同比 + 环比
163
+ 2. Surprise: actual vs consensus → beat/miss 及幅度
164
+ 3. 质量验证: OCF 是否同步增长 → 真实盈利 vs 纸面利润
165
+ 4. 价格反应: 公布后 1-3 日涨跌幅 → 市场是否已 price-in
166
+ 5. 估值重估: 新 EPS 下的 PE → 与行业对比
167
+
168
+ ⚠️ Beat + 股价跌 = "sell the news" / 利好出尽,前期涨幅过大
169
+ ⚠️ Miss + 股价不跌 = 利空已 price-in,可能是底部信号
170
+ 💡 结合 fin_market(market/limit_list) → 财报后涨停/跌停反应 = 情绪放大器
171
+ ```
172
+
173
+ ### 4. Batch Earnings Season Dashboard (财报季仪表盘)
174
+
175
+ ```
176
+ 对 watchlist 或目标板块的多只股票批量扫描:
177
+
178
+ Step 1: 逐一 fin_stock(fundamental/earnings_forecast, symbol=X)
179
+ Step 2: 逐一 fin_stock(fundamental/balance, symbol=X, limit=1) → 商誉快查
180
+ Step 3: 汇总为表格
181
+
182
+ 输出表格:
183
+ | 股票 | 预计披露 | Consensus NI | 商誉/净资产 | 地雷评分 | 关注等级 |
184
+ |------|---------|-------------|------------|---------|---------|
185
+
186
+ 排序: 地雷评分从高到低 → 优先关注高风险标的
187
+ 💡 如果板块整体地雷评分偏高 → 行业性风险(如传媒/游戏 商誉集中)
188
+ ```
189
+
190
+ ## Data Notes
191
+
192
+ - **财报数据**: 季度更新,年报 4 月、中报 8 月、三季报 10 月
193
+ - **分析师预期**: `earnings_forecast` 为卖方一致预期,小市值股覆盖可能不足
194
+ - **披露日历**: DataHub 无精确披露日期 API,需参考交易所公告或 tushare VIP
195
+ - **业绩预告/快报**: 结构化数据有限,以正式报告为准
196
+ - **A 股行情**: Tushare 提供,收盘后 ~18:00 更新,非实时
197
+ - **地雷评分**: 基于公开财务数据的量化指标,不代表确定性结论,需结合公告定性判断
198
+
199
+ ## Response Guidelines
200
+
201
+ ### 数字格式
202
+
203
+ - 净利润/营收: > 1 亿用"亿元",< 1 亿用"万元" (如 "净利润 480.2 亿元")
204
+ - 同比变化: +23.5% / -8.2% (始终带 +/- 符号)
205
+ - Surprise: +6.3% beat / -4.1% miss (明确标注方向)
206
+ - 地雷评分: XX/100 + 等级文字 (如 "72/100 高危")
207
+ - PE: 附带行业对比 (如 "PE 28.5x vs 行业 32.1x")
208
+
209
+ ### 必须包含
210
+
211
+ - 数据截止日期 ("财务数据截至 2025Q3")
212
+ - 财报季时间窗口提醒 ("当前处于年报密集披露期,4月30日截止")
213
+ - beat/miss 历史记录 ("过去 4 季 beat 3 次、miss 1 次")
214
+ - 地雷排查结果的四维拆解 (不只给总分,要给出哪个维度最危险)
215
+
216
+ ### 展示方式
217
+
218
+ - 单只股票预期差 → 分段叙述: consensus → actual/预期 → surprise → 估值影响
219
+ - 多只批量排查 → 表格 (columns: 股票/地雷评分/商誉风险/应收风险/现金流风险/关注等级)
220
+ - 历史 beat/miss → 季度时间线表格
221
+ - 财报后快评 → 先给结论(超预期/符合/不及), 再展开分析
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: fin-a-index-timer
3
+ description: "Index valuation timer for DCA — PE/PB percentile scoring, traffic-light signal system, dynamic dollar-cost averaging, multi-index comparison, equity-bond spread. Use when: user asks about index valuation, DCA timing, PE percentile, whether to invest in CSI 300/500, or index fund allocation. NOT for: individual stock analysis (use fin-a-share), market-wide radar/limit-up (use fin-a-share-radar), factor screening (use fin-factor-screen)."
4
+ metadata:
5
+ { "openclaw": { "emoji": "\U0001F6A6", "requires": { "extensions": ["findoo-datahub-plugin"] } } }
6
+ ---
7
+
8
+ # Index Valuation Timer (指数估值定投)
9
+
10
+ Smart DCA based on index valuation percentile — turn mechanical monthly investing into valuation-driven intelligent allocation. Use **fin_index** for valuation data, **fin_market** for macro context, **fin_data_regime** for market regime overlay.
11
+
12
+ ## When to Use
13
+
14
+ - "沪深300现在能定投吗" / "should I DCA into CSI 300 now"
15
+ - "指数估值分位多少" / "index PE percentile"
16
+ - "哪个指数最值得定投" / "which index is best for DCA"
17
+ - "沪深300贵不贵" / "is CSI 300 expensive"
18
+ - "创业板估值到什么位置了" / "ChiNext valuation level"
19
+ - "每月定投5000放哪个指数" / "monthly 5000 RMB which index"
20
+ - "股债利差多少" / "equity-bond spread"
21
+
22
+ ## When NOT to Use
23
+
24
+ - 个股分析/估值/财报 → use `/fin-a-share`
25
+ - 龙虎榜/涨停/大宗/融资融券 → use `/fin-a-share-radar`
26
+ - 量化选股/五因子筛选 → use `/fin-factor-screen`
27
+ - 北向资金流向/外资持仓 → use `/fin-a-northbound-decoder`
28
+ - ETF/基金净值/持仓查询 → use `/fin-etf-fund`
29
+ - 宏观数据 (GDP/CPI/利率) → use `/fin-macro`
30
+ - 期货/期权/可转债 → use `/fin-derivatives`
31
+
32
+ ## Tools & Parameters
33
+
34
+ ### fin_index — 指数估值数据
35
+
36
+ | Parameter | Type | Required | Format | Default | Example |
37
+ | ---------- | ------ | -------- | ------------------ | ------- | ----------- |
38
+ | symbol | string | Yes | index code | — | 000300.SH |
39
+ | endpoint | string | Yes | see endpoint table | — | daily_basic |
40
+ | start_date | string | No | YYYY-MM-DD | — | 2016-01-01 |
41
+ | end_date | string | No | YYYY-MM-DD | — | 2026-03-05 |
42
+ | limit | number | No | 1-5000 | 200 | 2500 |
43
+
44
+ ### Endpoints
45
+
46
+ | endpoint | Description | Key Params | Example |
47
+ | ------------------ | -------------------------- | ------------------ | -------------------------------------------------------------------------------------------- |
48
+ | `daily_basic` | Index PE/PB/dividend yield | symbol, start_date | `fin_index(symbol="000300.SH", endpoint="daily_basic", start_date="2016-01-01", limit=2500)` |
49
+ | `price/historical` | Index daily OHLCV | symbol, start_date | `fin_index(symbol="000300.SH", endpoint="price/historical", start_date="2026-01-01")` |
50
+ | `constituents` | Index constituent stocks | symbol | `fin_index(symbol="000300.SH", endpoint="constituents")` |
51
+
52
+ ### fin_data_regime — 市场体制 (辅助)
53
+
54
+ | Parameter | Type | Required | Format | Default | Example |
55
+ | --------- | ---- | -------- | ------ | ------- | ------------------- |
56
+ | (none) | — | — | — | — | `fin_data_regime()` |
57
+
58
+ ## Key Index Codes
59
+
60
+ | Index | Code | 特征 |
61
+ | --------- | --------- | -------------------- |
62
+ | 沪深 300 | 000300.SH | 大盘蓝筹,A 股核心锚 |
63
+ | 中证 500 | 000905.SH | 中盘成长,弹性大 |
64
+ | 中证 1000 | 000852.SH | 小盘,高波动高弹性 |
65
+ | 创业板指 | 399006.SZ | 科技成长,高 PE 正常 |
66
+ | 科创 50 | 000688.SH | 硬科技,需 50 万门槛 |
67
+ | 上证 50 | 000016.SH | 超大盘,低 PE 低波动 |
68
+ | 中证红利 | 000922.SH | 高股息,防御型 |
69
+ | 国证 2000 | 399303.SZ | 微盘,流动性风险高 |
70
+
71
+ ## Valuation Analysis Pattern
72
+
73
+ ### Pattern A: 单指数估值诊断 (Single Index Valuation)
74
+
75
+ 1. **获取长期估值** `fin_index(daily_basic, symbol=X, start_date=10年前, limit=2500)` — 拉取 10 年 PE/PB 数据
76
+ - 计算当前 PE(TTM) 在 10 年中的百分位: percentile = count(历史PE < 当前PE) / total
77
+ - 同时计算 PB 百分位
78
+ - ⚠️ 如果 `daily_basic` 返回数据不足 10 年 → 用可用最长区间,注明统计窗口
79
+ - ⚠️ 如果 PE 为负或异常高(>100x) → 可能指数成分大面积亏损,改用 PB 判断
80
+
81
+ 2. **信号灯判定** — 基于 PE 百分位输出投资信号
82
+ - PE 百分位 <20% → 深绿(重仓买入/加倍定投) — 历史性低估
83
+ - PE 百分位 20%-40% → 绿(加倍定投) — 低估区间
84
+ - PE 百分位 40%-60% → 黄(正常定投) — 合理估值
85
+ - PE 百分位 60%-80% → 橙(减半定投) — 偏高估
86
+ - PE 百分位 >80% → 红(暂停定投/考虑减仓) — 高估区间
87
+ - 💡 PB 百分位与 PE 百分位不一致时(如 PE 低但 PB 高),取两者平均值
88
+ - ⚠️ 创业板/科创板 PE 天然偏高,用各自历史区间比较(不跨指数比)
89
+
90
+ 3. **股债利差** — 估值的绝对参照系
91
+ - EP(盈利收益率) = 1/PE
92
+ - 股债利差 = EP - 10 年期国债收益率(约 2.0-2.5%)
93
+ - ⚠️ 股债利差 >3% → 股票极度便宜(历史底部区域)
94
+ - ⚠️ 股债利差 <0% → 债券更优(历史顶部区域)
95
+ - 💡 A 股 10 年国债收益率当前约 1.7-2.5%,无直接端点时用近期公开值估算
96
+
97
+ 4. **历史回测参照** — 当前分位对应的历史收益
98
+ - PE 在当前分位时,持有 1 年/3 年/5 年的历史中位收益率(经验值)
99
+ - <20% 分位买入 → 3 年中位收益 +50-80%
100
+ - 20-40% 分位买入 → 3 年中位收益 +30-50%
101
+ - 40-60% 分位买入 → 3 年中位收益 +10-25%
102
+ - 60-80% 分位买入 → 3 年中位收益 -5% ~ +15%
103
+ - > 80% 分位买入 → 3 年中位收益 -10% ~ +5%
104
+ - ⚠️ 历史回测不代表未来,但提供概率分布参考
105
+
106
+ ### Pattern B: 多指数横向对比 (Multi-Index Comparison)
107
+
108
+ 1. **批量估值** — 并行调用 `fin_index(daily_basic)` 查询多个指数
109
+ - 推荐对比组: 沪深300 + 中证500 + 创业板指 + 中证红利 + 科创50
110
+ - 计算各自 PE/PB 百分位 + 信号灯
111
+
112
+ 2. **性价比排名** — 按百分位从低到高排序
113
+ - 💡 百分位最低的指数 = 当前性价比最高
114
+ - ⚠️ 不能仅看百分位: 中证1000 百分位低但小盘流动性风险高
115
+ - ⚠️ 中证红利 PE 百分位需谨慎: 高股息股 PE 天然低,看 PB 更有意义
116
+
117
+ 3. **风格判断** — 大盘 vs 小盘 / 价值 vs 成长
118
+ - 沪深300 PE < 中证500 PE (差值缩小) → 大盘更便宜,风格可能切换
119
+ - 💡 结合 `fin_data_regime()` 的 bull/bear/sideways 判断 → 熊市末期小盘弹性大,牛市中期大盘更稳
120
+
121
+ ### Pattern C: 动态定投策略 (Dynamic DCA Strategy)
122
+
123
+ 1. **基础金额设定** — 用户给定月投金额 M
124
+ 2. **动态调整公式** — 实际投入 = M × (1 + (50% - 当前PE百分位) / 50%)
125
+ - PE 百分位 = 20% → 实际投入 = M × 1.6 (加仓 60%)
126
+ - PE 百分位 = 50% → 实际投入 = M × 1.0 (正常)
127
+ - PE 百分位 = 80% → 实际投入 = M × 0.4 (减仓 60%)
128
+ - PE 百分位 >90% → 暂停定投,考虑赎回部分仓位
129
+ - ⚠️ 动态定投在低估区间多投,高估区间少投,长期收益优于等额定投 20-40%
130
+
131
+ 3. **市场体制叠加** `fin_data_regime()` — 额外确认
132
+ - regime = bear + PE <30% 分位 → 最佳加仓窗口(恐慌时贪婪)
133
+ - regime = bull + PE >70% 分位 → 减仓信号加强
134
+ - 💡 体制检测提供额外信心,但不改变估值信号灯方向
135
+
136
+ ## Signal Quick-Reference
137
+
138
+ ### 信号灯速查表
139
+
140
+ | PE 百分位 | 信号灯 | 定投建议 | 历史 3 年中位收益 |
141
+ | --------- | ------ | ----------------- | ----------------- |
142
+ | <20% | 深绿 | 加倍(2x 基础金额) | +50% ~ +80% |
143
+ | 20%-40% | 绿 | 加仓(1.2-1.6x) | +30% ~ +50% |
144
+ | 40%-60% | 黄 | 正常(1x) | +10% ~ +25% |
145
+ | 60%-80% | 橙 | 减半(0.4-0.8x) | -5% ~ +15% |
146
+ | >80% | 红 | 暂停/减仓 | -10% ~ +5% |
147
+
148
+ ### 交叉验证信号
149
+
150
+ | PE 信号 | PB 信号 | Regime | 综合判断 |
151
+ | ------- | ------- | -------- | ---------------------- |
152
+ | 深绿 | 深绿 | bear | 最强买入(三重共振) |
153
+ | 绿 | 黄 | sideways | 偏低估,正常加仓 |
154
+ | 黄 | 橙 | bull | 合理但偏贵,观察 |
155
+ | 红 | 红 | bull | 过热信号,减仓/暂停 |
156
+ | 绿 | 红 | — | PE/PB 矛盾,用 PB 为主 |
157
+
158
+ ## Data Notes
159
+
160
+ - **指数估值 (daily_basic)**: Tushare 提供,收盘后 ~18:00 更新,PE 为 TTM (滚动 12 月)
161
+ - **PE 统计窗口**: 推荐用 10 年(2500 个交易日)计算百分位; 新指数(如科创50)可用上市以来全部数据
162
+ - **分位数精度**: 取决于历史数据量; <3 年数据的指数分位参考性较弱
163
+ - **股息率**: `daily_basic` 部分指数返回 `dividend_yield_ratio`,部分需从成分股计算
164
+ - **10 年期国债收益率**: DataHub 当前无直接端点,使用近期公开参考值(约 1.7-2.5%)进行股债利差估算
165
+ - **市场体制**: `fin_data_regime()` 基于技术面判断 bull/bear/sideways,作为辅助不作为唯一依据
166
+ - **指数差异**: 创业板 PE 中枢(~40x)远高于沪深300(~12x),不可跨指数比较绝对 PE 值
167
+
168
+ ## Response Guidelines
169
+
170
+ ### 数字格式
171
+
172
+ - PE/PB: 保留 1 位小数,附百分位 (如 "PE 12.8x, 10 年 32% 分位")
173
+ - 百分位: 用百分比表示,保留整数 (如 "32% 分位")
174
+ - 股息率: 保留 2 位小数 (如 "2.83%")
175
+ - 股债利差: 保留 2 位小数 (如 "+1.45%")
176
+ - 涨跌幅: +2.35% / -1.08% (始终带 +/- 符号)
177
+ - 定投金额: 整百元 (如 "建议月投 6,000 元")
178
+
179
+ ### 必须包含
180
+
181
+ - 数据截止日期 ("数据截至 2026-03-05")
182
+ - PE/PB 百分位的统计窗口 ("近 10 年分位")
183
+ - 信号灯结论 (深绿/绿/黄/橙/红)
184
+ - 具体定投建议 (金额调整倍数)
185
+ - PE 和 PB 双维度 (仅看 PE 不够全面)
186
+
187
+ ### 展示方式
188
+
189
+ - 单指数诊断 → 一段估值概述 + 信号灯 + 定投建议 + 历史收益参照
190
+ - 多指数对比 → 表格 (指数/PE/PE百分位/PB/PB百分位/信号灯/建议)
191
+ - 动态定投 → 公式说明 + 当前月份应投金额计算
192
+ - 趋势变化 → 最近 PE 百分位变化方向(如 "从上月 45% 降至 32%,信号灯从黄变绿")