🌡️ 市场温度计是什么

估值情绪流动性三类指标,统一换算到 0–100 的相对刻度上。0 = 这个市场历史上最冷的水平;100 = 历史上最热。GitHub Actions 在工作日 17:30(北京时间,覆盖中港收盘后)和每日 06:00(北京时间,覆盖美股收盘后)自动重算,所有数字都来自 silver 层、可在 git 历史里追溯。

1

第一步:把每个指标换成历史百分位

对每个指标(CAPE、VIX、社融、美元指数 …)取过去 10 年的滚动百分位作为基础信号。月频指标(CAPE、M2、社融)会先 forward-fill 到日度,避免窗口里只有十几条点。

2

第二步:按方向决定升降温

每个指标在 weights.yaml 里都标了一个方向:+ 表示分位高 → 温度高(如 CAPE 高 = 估值贵 = 热);- 表示分位高 → 温度低(如 VIX 高 = 恐慌 = 冷;DXY 强 = 全球流动性紧 = 冷)。

3

第三步:合成子温度

在每个子项(估值 / 情绪 / 流动性)下,按权重加权平均所有可用指标。缺失指标会自动按可用权重重归一——比如港股期权 PCR 没有免费源时,HK 情绪不会拉垮,而是把 100% 权重给到南向 5 日。

4

第四步:合成综合温度

三个子温度按市场各自的权重加权得到 综合温度(0–100)。区间:< 30 偏冷 · 30–70 中性 · ≥ 70 偏热

function 公式速览

indicator_pct = rolling_percentile(value, window=10y)
contribution = (direction == '+') ? indicator_pct : (100 − indicator_pct)
sub_temp = Σ (contributioni × indicator_weighti) / Σ available_weighti
overall = val × wval + sent × wsent + liq × wliq
// 0 ≤ overall ≤ 100  ·  < 30 cold · 30–70 mid · ≥ 70 hot

tune 各市场权重明细

实时从 config/weights.yaml 读取——改完它再跑 finsynapse transform run --layer temperature 立刻生效。

🇨🇳 CN
中国 A 股
CN
valuation 65% · sentiment 20% · liquidity 15%
子温度 占比 指标 指标权重 方向
估值 65%
沪深 300 PE-TTM 估值
csi300_pe_ttm
50% + 分位高 → 热
沪深 300 市净率
csi300_pb
50% + 分位高 → 热
情绪 20%
cn_north_5d
cn_north_5d
25% + 分位高 → 热
A 股 5 日换手率
cn_a_turnover_5d
25% + 分位高 → 热
cn_margin_balance
cn_margin_balance
35% + 分位高 → 热
cn_usdcny_pressure
cn_usdcny_pressure
15% − 分位高 → 冷
流动性 15%
cn_m2_yoy
cn_m2_yoy
25% + 分位高 → 热
中国社融 12 个月累计
cn_social_financing_12m
25% + 分位高 → 热
cn_credit_impulse
cn_credit_impulse
25% + 分位高 → 热
cn_dr007
cn_dr007
25% − 分位高 → 冷
🇭🇰 HK
香港
HK
valuation 60% · sentiment 25% · liquidity 15%
子温度 占比 指标 指标权重 方向
估值 60%
港股 ETF 滚动股息率
hk_ewh_yield_ttm
100% − 分位高 → 冷
情绪 25%
南向资金 5 日净流入
cn_south_5d
60% + 分位高 → 热
hk_vhsi
hk_vhsi
40% − 分位高 → 冷
流动性 15%
us10y_real_yield
us10y_real_yield
30% − 分位高 → 冷
美元指数
dxy
20% − 分位高 → 冷
hk_hibor_1m
hk_hibor_1m
50% − 分位高 → 冷
🇺🇸 US
美国
US
valuation 35% · sentiment 45% · liquidity 20%
子温度 占比 指标 指标权重 方向
估值 35%
美股 PE-TTM 估值
us_pe_ttm
35% + 分位高 → 热
美股 CAPE 估值(席勒市盈率)
us_cape
35% + 分位高 → 热
us_erp
us_erp
30% − 分位高 → 冷
情绪 45%
VIX 恐慌指数
vix
40% − 分位高 → 冷
us_hy_oas
us_hy_oas
35% − 分位高 → 冷
us_umich_sentiment
us_umich_sentiment
25% + 分位高 → 热
流动性 20%
us10y_real_yield
us10y_real_yield
25% − 分位高 → 冷
美元指数
dxy
15% − 分位高 → 冷
us_nfci
us_nfci
35% − 分位高 → 冷
us_walcl
us_walcl
25% + 分位高 → 热

history 历史极值与对应事件

下表展示每个市场综合温度的历史最热 / 最冷点,并匹配那段时间的代表性宏观事件。今天的「历史分位」就是当前温度在这条时间线里的位置。

「历史分位」= 当前综合温度在自身有数据以来全部交易日里的百分位排序。99% 表示比历史上 99% 的日子都热。

市场 类型 日期 温度 对应事件
🇨🇳 CN 中国 A 股 📍 今日水平 2026-05-14 79° (P79) (区间内无显著事件标记)
🇨🇳 CN 中国 A 股 🔥 历史最热 2013-01-16 100° (区间内无显著事件标记)
🇨🇳 CN 中国 A 股 🧊 历史最冷 2014-05-19 (区间内无显著事件标记)
🇭🇰 HK 香港 📍 今日水平 2026-05-14 14° (P15) (区间内无显著事件标记)
🇭🇰 HK 香港 🔥 历史最热 2021-02-23 97° 2021 南向资金井喷 / 科技股狂热
🇭🇰 HK 香港 🧊 历史最冷 2018-04-06 (区间内无显著事件标记)
🇺🇸 US 美国 📍 今日水平 2026-05-14 87° (P70) (区间内无显著事件标记)
🇺🇸 US 美国 🔥 历史最热 2018-01-30 100° (区间内无显著事件标记)
🇺🇸 US 美国 🧊 历史最冷 2022-03-07 2022 美联储激进加息周期

info 需要知道的几个细节

  • 权重不会随时间变化——一旦订就锁死,避免曲线拟合。一周温度变化的归因也是用这套固定权重做的。
  • 10 年滚动窗口意味着遇到从未有过的极端值会被压在 0 或 100。这是设计——温度计衡量的是「相对历史的位置」,不是绝对水平。
  • data_quality 字段会标 ok(三个子温度都齐)或 <sub>_unavailable(如 liquidity_unavailable,表示该子温度当天所有指标都缺数据)。子温度内单指标缺失会自动按可用权重重归一,不进 data_quality 字段。
  • 日报 (gold/brief) 是另一回事——LLM 或模板只是把上面这些 silver 数字串成一段叙事,不会引入新计算。