# Glassnode 历史指标回测：核对 PIT、UTC 区间和真实可用时间

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/glassnode-pit-time-availability-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

用已有脱敏指标文件和读取记录，区分区间开始、计算时间、API 发布及历史修订，避免把后来才知道的交易所标签带进过去的分析。

## 使用工具
- [Glassnode](https://lianxiaozhi.com/tools/glassnode) · [官方入口](https://glassnode.com/)

## 前置条件
- 准备既有指标 JSON、对应 metadata、参数和获取时间；api_key / X-Api-Key 已遮盖。先确定研究截止时刻，统一记 UTC。
- 没有原响应时，可按官方样本整理字段检查表；样本和今天读取的历史文件不能证明当年的 API 可用性。

## 1. 固定资产、指标与研究截止条件

记录 metric path、资产 a、计价 c、交易所 e、粒度 i 和研究截止 UTC 时刻。交易所余额、转移与现货成交量是不同口径；这里只核对已有公开分析数据，不把链上余额解释为全部储备或用户负债。

核对结果：同一比较组的资产、交易所、单位、粒度及截止时刻一致。
依据：[Glassnode：指标 metadata 与参数组合](https://docs.glassnode.com/basic-api/metadata.md)
依据：[Glassnode：交易所地址标签与储备范围](https://docs.glassnode.com/further-information/exchange-data-transparency-notice)

## 2. 检查具体参数组合和 PIT 身份

打开该文件对应的 metadata：核对 path、queried、timerange，以及可选 is_pit 和 refs。/v1/metadata/metrics 列出的只是指标部分路径；/v1/metadata/metric 仅传 path 得到的 parameters 是可能值并集，具体资产/交易所/粒度应对照带参数的元数据。PIT 文档列过 /distribution/balance_exchanges_pit，但不能只给普通路径加后缀就认定获得了可用且获授权的 PIT。

核对结果：文件身份与已处理参数可追溯；is_pit 缺失或具体组合未知时保留待核。
依据：[Glassnode：指标 metadata 与参数组合](https://docs.glassnode.com/basic-api/metadata.md)
依据：[Glassnode：Point-in-Time 格式与覆盖](https://docs.glassnode.com/data/point-in-time-metrics.md)

## 3. 把时间标签展开为 UTC 区间

读取每点 t 及请求粒度，按 UTC 记录区间开始和结束。日标签表示该 UTC 日，小时标签表示这一小时；状态类余额虽以区间开始作标签，值可代表区间末状态。不要在日标签出现的零点就将当天最终余额投入模型。频率与指标自身聚合窗口也要分开，小时输出不自动等于只统计一小时活动。

核对结果：每点都有区间、标签与指标值代表时点；没有混入本地时区。
依据：[Glassnode：UTC 时间标签与粒度](https://docs.glassnode.com/data/timestamps-and-resolutions)

## 4. 逐点保留 computed_at 与缺失状态

单序列保留 t/v/computed_at，多序列保留 t/o/computed_at；bulk 要检查每个子项自身的 computed_at，不能给全部资产套一个时间。缺失字段不填 t 或零：官方从 2024-09 开始记录此字段，早期可能没有。PIT 历史也只始于具体指标实际跟踪日期，2025-07 扩大覆盖不会产生此前未跟踪的 PIT。

核对结果：每个值与其时间字段对应，缺失/超出历史覆盖单独列出。
依据：[Glassnode：Point-in-Time 格式与覆盖](https://docs.glassnode.com/data/point-in-time-metrics.md)

## 5. 检查截止前是否已有计算和发布证据

若 computed_at 晚于研究截止，剔除该点；若不晚于截止，继续查已有 API 获取时间或当时保存的回执。computed_at 不是发布时刻，官方观察到计算后仍有发布延迟；其延迟分位数也不是每一点的保证。只持今天下载的历史文件，无法证明过去某一秒已能取到；缺记录的点标可用时间未知，敏感性分析应披露该限制。

核对结果：计算截止检查与真实发布/获取证据分开，未把 computed_at<=截止直接判为当时可见。
依据：[Glassnode：Point-in-Time 格式与覆盖](https://docs.glassnode.com/data/point-in-time-metrics.md)
依据：[Glassnode：数据到达与计算时段](https://docs.glassnode.com/data/data-availability)

## 6. 识别最新点补录与交易所历史标签修订

对照读取时间和区间结束时间，标出最新尚可能补录的数据。普通序列会受确认、延迟上报及数据处理影响；交易所发现新地址或内部搬运识别也可能改更早历史。近期 finalization 等待结束不能证明旧标签永久不变；今天普通序列与 PIT 不一致时，先核对版本、参数和标签范围，保留两份原值，不替换掉 PIT 来消除差异。

核对结果：最新补录、历史标签修订与参数不一致分为不同原因。
依据：[Glassnode：最终处理与历史修订](https://docs.glassnode.com/data/data-finalization.md)
依据：[Glassnode：交易所地址标签与储备范围](https://docs.glassnode.com/further-information/exchange-data-transparency-notice)

## 7. 整理可复查的数据使用清单

逐点输出指标、参数、UTC 区间、值、computed_at、原获取时间、纳入/剔除/未知及理由。若还需要补数据，先核对已有 API 权限：Advanced Light API 限 14 天日数据且无 bulk，不能按 Professional 示例承诺长历史。认证字段只保留位置和存在状态，避免把 key 放入共享研究记录。

核对结果：清单可解释每点为何可用；历史、发布及套餐缺口未被当成已验证结果。
依据：[Glassnode：API 认证、订阅与 Light API](https://docs.glassnode.com/basic-api/api.md)
依据：[Glassnode：指标 metadata 与参数组合](https://docs.glassnode.com/basic-api/metadata.md)

## 常见错误
- PIT 防止后见修订，不会把计算时间变成 API 发布回执。
- 交易所余额标签不完整且不包含负债；某次流入/流出也可能来自地址调整。
- 最新点等待处理完成与历史不再变化是两项不同条件。

## 完成检查
- 完成逐点时间/来源检查表，区分可纳入、需剔除和可用时间未知。
- 保留原文件、具体参数和读取记录；文档演示不能替代实际下载和历史发布证据。

## 相关知识
- [链上指标历史数值为什么会变？](https://lianxiaozhi.com/learn/point-in-time-metrics)
- [区块确认与最终性是什么？交易成功和充值到账为何不同步](https://lianxiaozhi.com/learn/confirmations-and-finality)
- [储备证明能证明什么？有资产不等于知道全部负债](https://lianxiaozhi.com/learn/proof-of-reserves)

## 官方依据
- [Glassnode：API 认证、订阅与 Light API](https://docs.glassnode.com/basic-api/api.md)
- [Glassnode：Point-in-Time 格式与覆盖](https://docs.glassnode.com/data/point-in-time-metrics.md)
- [Glassnode：UTC 时间标签与粒度](https://docs.glassnode.com/data/timestamps-and-resolutions)
- [Glassnode：数据到达与计算时段](https://docs.glassnode.com/data/data-availability)
- [Glassnode：最终处理与历史修订](https://docs.glassnode.com/data/data-finalization.md)
- [Glassnode：指标 metadata 与参数组合](https://docs.glassnode.com/basic-api/metadata.md)
- [Glassnode：交易所地址标签与储备范围](https://docs.glassnode.com/further-information/exchange-data-transparency-notice)
