# 宏观景气打分方法论

## 核心思路

采用**历史百分位排名法 (Percentile Rank)**：每个指标当前值在其历史分布中的位置，映射为 0-100 的标准化得分。

## Step 1: 数据获取

通过 `mx-finance-data` skill 获取各指标历史数据（建议近5年日频/月频）。

### 数据年限窗口
- **日频指标**（指数收盘价、期货结算价、汇率等）：至少 4-5 年日线数据（≈1000-1260 个交易日）
- **月频指标**（PMI、CPI、社融等）：至少 5 年月度数据（60 个月）
- **周频指标**（猪肉价格等）：至少 3-5 年（≈150-260 周）

### 数据获取优先级
1. 并行调用 `mx-finance-data` 获取所有可获取的指标
2. 对于 mx-finance-data 无法覆盖的指标，依次尝试 web_search、web_fetch
3. 如部分指标确实无法获取，使用近似替代或标注 N/A

## Step 2: 百分位计算

### 滚动窗口法（推荐）
对每个指标，取过去 N 个交易日/月的数据作为样本窗口，计算当前值在窗口中的百分位排名：

```
percentile = rank(value, window) / len(window) × 100
```

其中 `rank` 为升序排名（最小值 rank=1）。

### 静态百分位法（备选）
使用固定历史窗口（如过去5年全部数据），一次性计算百分位。

### 建议窗口大小

| 数据类型 | 窗口大小 | 说明 |
|----------|----------|------|
| 日频 | 756 日（≈3年） | 覆盖一个完整库存周期 |
| 月频 | 60 个月（5年） | 覆盖一个完整经济周期 |
| 周频 | 156 周（≈3年） | |

## Step 3: 方向映射

不是所有指标都是"越高越好"。根据指标的经济含义确定方向：

### 正向指标（高值 → 高得分）
- 增长：恒生指数、CRB指数、沪铜指数、PMI、工业品指数
- 通胀：原油、猪肉、螺纹钢、农产品指数、CPI、PPI
- 汇率：CFETS指数、外汇储备、中美利差
- 利率：国债收益率、SHIBOR、逆回购利率、LPR
- 信用：社融、M2

### 反向指标（高值 → 低得分）
- 汇率：USD/CNY中间价、美元指数(DXY)
- 利率：中债国债总指数（价格指数）
- 信用：中债国债总指数(3-5Y)、中债企业债总指数(3-5Y)、信用利差、不良贷款率

### 反向处理公式
```
反向得分 = 100 - 正向百分位
```

## Step 4: 维度得分配总

### 等权平均（默认）
```
维度得分 = Σ(该维度各指标得分) / 该维度指标数量
```

### 缺失指标处理
如果某个维度中部分指标无法获取：
- 缺失 ≤ 50%：用已获取指标的均值填充
- 缺失 > 50%：标注该维度置信度为"低"，但仍计算可用指标均值

## Step 5: 宏观景气度

```
宏观景气度 = 增长×0.2 + (100−通胀)×0.2 + (100−利率)×0.2 + 汇率×0.2 + 信用×0.2
```
> 通胀和利率取反向：通胀得分越低=通缩压力越小→对景气度加分越多；利率得分越低=货币越宽松→对景气度加分越多。

得分区间：0-100

## Step 6: 置信度评估

每个维度标注置信度：
- **高**：所有核心指标 + ≥1个补充指标已获取
- **中**：所有核心指标已获取
- **低**：核心指标缺失 ≥1个
