> ## Documentation Index
> Fetch the complete documentation index at: https://www.worldmonitor.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 实物贵金属背离指数方法

> WorldMonitor 如何用稳健历史、明确数据状态和仅限转换的信号，对上海实物金银溢价相对 COMEX 期货进行分类。

## 用途

实物贵金属背离指数衡量上海黄金交易所实物基准价与对应 COMEX 期货快照之间的压力。它是市场结构指标，不是交易建议。

每日原始溢价来自 `GET /api/market/v1/get-physical-premiums`。派生结果通过 `GET /api/market/v1/get-physical-divergence-index` 和 MCP `get_market_data` 提供。

## 历史和稳健归一化

Seeder 按实物公布日期把黄金和白银分别写入 `market:physical-premium-history:v1:gold` 与 `market:physical-premium-history:v1:silver`。同一日期会替换旧点。写入、去重和截断在一个 Redis 操作中完成。每个列表最多保留 750 点，分类器使用最新 250 点，至少需要 60 个有效点。

每个点和响应都声明 `methodologyVersion: physical-divergence-v2`。

```text theme={null}
稳健 z = 0.67448975 * (当前值 - 中位数) / MAD
MAD = median(abs(历史值 - 中位数))
```

当 MAD 为零时，如果当前值等于中位数，z 值为 `0`；否则不提供 z 值。百分位是小于或等于当前溢价的窗口值占比，范围为 0 到 100。

## 混合状态

系统分别计算绝对状态和相对状态，并选择较高者。

相对阈值仅在溢价达到该金属 `elevated` 阈值的一半时才生效：黄金为 0.5%，白银为 2.5%。仅判断正负是不够的——当前印价本身属于其滚动窗口，且百分位为闭区间，因此任何创窗口新高的取值都会得到 100，与幅度无关。若没有这道幅度下限，一个极小的正溢价只因高于一段平静窗口就会被判为 `extreme`。下限取在 `elevated` 阈值之下而非阈值本身，是为了让第 80 百分位这一档仍然可达。若按完整 `elevated` 阈值设限，相对判定并不会完全失效——第 95 与第 99 百分位仍可把绝对判定为 `elevated` 的溢价提升为 `stressed` 或 `extreme`——但第 80 百分位这一档将不可达，因为任何越过该下限的溢价在绝对幅度上本就已经是 `elevated`。取一半是该区间内的选定取值，并非唯一满足该约束的取值。

| 金属 | elevated | stressed | extreme |
| -- | -------: | -------: | ------: |
| 黄金 |       1% |       3% |      5% |
| 白银 |       5% |      10% |     20% |

相对百分位阈值为 80、95 和 99，分别进入 `elevated`、`stressed` 和 `extreme`。因此，黄金溢价达到 3% 时至少为 `stressed`，即使历史窗口中还有更高值。

单金属压力指数范围为 0 到 100。绝对幅度在压缩后的分段顶点 45（elevated）、70（stressed）、以及略低于 90（接近 extreme；stressed 分段故意不到 90，避免两位小数舍入顶到 extreme 下限）之间插值；只有突破绝对 extreme 溢价阈值（黄金 5%、白银 20%）才发布 `100`。

当相对阶梯超过绝对幅度时，`index` 仍表示**带状态有序下限的压力幅度**，不是百分位的副本：

| 状态       | 指数下限 |
| -------- | ---: |
| normal   |    0 |
| elevated |   45 |
| stressed |   70 |
| extreme  |   90 |

`index = max(absoluteStressIndex, regimeFloor)`。仅由相对阶梯触发的 extreme 下限为 90，不会顶满 100，从而把刻度顶端留给绝对 extreme，并保证指数对状态等级单调：任何 `stressed` 读数的指数都不会高于任何 `extreme` 读数。`regime` 仍承载混合分类（绝对与相对取较高者）；百分位作为独立字段发布。

综合指数为 `70% 黄金 + 30% 白银`，且只在两个金属状态均为 `ok` 时发布。

## 趋势和数据状态

5 日和 20 日变化是当前溢价减去 5 或 20 个观测点之前的溢价。变化大于 `0.01` 个百分点为 `widening`，小于 `-0.01` 为 `narrowing`，其他为 `stable`。

状态按以下顺序判定：

1. `missing_input`：没有当前实物溢价输入。
2. `stale_input`：实物公布日期超过 12 个日历日、COMEX 快照超过 36 小时，或外汇快照超过 60 小时。实物阈值容忍中国市场的长假休市；纸面价格和外汇阈值与各自的数据源健康预算一致。
3. `insufficient_history`：有效历史点少于 60。
4. `ok`：输入未过期且历史充分。

市场休市时可接受 9 日前的延续数据，13 日前的数据会判为过期。非 `ok` 状态不提供数值指数。任一金属不是 `ok` 时，综合指数也不发布。

## 转换信号和来源

只有前后状态均为 `ok`、状态等级发生变化，并且同一金属在 48 小时内没有发过转换信号时，系统才生成跨源信号。48 小时正好是每日 cadence 的两倍。缺失、过期或历史不足的数据不会生成信号。向下转换也会保留。

响应包含实物基准来源、代码、实物公布日期、COMEX 快照时间、汇率快照时间、历史 key、样本数、窗口大小和方法版本。`/api/health` 使用独立 seed metadata 和 activation marker 监控 `market:physical-divergence:v1`。

## 版本记录

| 版本                       | 日期         | 变更                                                                                                                        |
| ------------------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| `physical-divergence-v1` | 2026-08-30 | 首次发布有界历史、混合状态、明确数据状态、综合指数、趋势和转换信号。                                                                                        |
| `physical-divergence-v2` | 2026-08-30 | 指数下限压缩为 0 / 45 / 70 / 90；绝对分段顶点嵌在这些下限之下；`100` 留给绝对 extreme，避免仅相对 extreme 顶满刻度（#7423）。固定 `methodologyVersion` 的客户端应重新建立基线。 |
