官方 Chainlink TWAP60 与现货的基差有多大
一句话:中位约 −2.72 bp,而 60 秒里真实位移的中位数只有 1.83 bp。 也就是说,这两个数之间的系统性偏差,比行情本身的波动还大。
一、先把两个量分清楚
| 量 | 是什么 | 接口字段 |
|---|---|---|
| 官方 TWAP60 | Chainlink 数据流给出的 60 秒时间加权均价(结算用的就是这个) | official / official_bp |
| 现货中位 | 多家交易所(binance / okx / bybit / kraken / bitget / coinbase)的现货中位价 | spot_composite / spot_bp |
| 自算 TWAP60 | 用上面那些现货价自己算出来的 TWAP60 | computed_twap60 / computed_bp |
三者存在两个不同来源的偏差:现货 vs 官方流(交易所与预言机口径不同), 以及自算均值 vs 官方均值(采样时刻与加权方式不同)。
二、实测基差
- 官方 − 自算 = 中位 −2.72 bp(区间约 −3.37 ~ −1.26 bp)
- 60 秒位移的中位数 = 1.83 bp
- 约 3% 的窗口,两种口径给出的方向相反
关键点不是「有偏差」,而是偏差是系统性的、有方向的,不是噪声。
噪声可以靠样本量摊平,系统性偏差不会 —— 它会让某一侧的信号永久性地更容易成立。
三、为什么 TWAP60 在开盘时会「贴着 beat」
TWAP60 是滚动 60 秒均值。窗口刚开盘的头几十秒里, 这个均值的大部分权重还落在开盘之前的数据上。
所以「官方现值 − 开盘官方值」在窗口前半段天然接近 0 —— 不是行情没动,而是这个指标天生滞后。 任何「开盘前 10 秒判断方向」的想法,都要先接受这一点。
四、一个真实的翻车案例
我们自己的一个策略早期用「现货中位 vs 官方 TWAP60」当方向裁判: 现货高于 TWAP 就买 UP,反之买 DOWN。听起来很合理,实际结果:
- 两个价格源之间有 +13 ~ +20 美元的系统性基差(BTC 上)
- 于是「现货 > 当前 TWAP」这一条在 74% ~ 84% 的时间里成立
- 三天 148 个触发点里,裁判给 DOWN 的次数是 0
- 「顺势」实际上退化成了恒买 UP
- 更糟的是:34 次 DOWN 腿触发里,有 23 次裁判给了 UP —— 等于反着信号做
教训:比较必须在同类量之间做。要判「官方会不会跟过来」,
应该比
official_bp(官方现值距 beat)和 spot_bp(现货距 beat)
—— 两者都以同一个 beat 为基准;而不是拿一个现货绝对价去跟一个 TWAP 绝对价比。
五、接口里可以直接用的字段
| 字段 | 含义 |
|---|---|
official_bp | 官方 TWAP60 现值距 beat 的 bp —— 结算方向的直接输入 |
spot_bp | 现货中位距 beat 的 bp —— 用来判断「官方会不会跟过来」 |
momentum_bp | TWAP60 的 60 秒动量距 beat 的 bp |
leading_side | 官方现值相对 beat 偏向 UP / DOWN / FLAT |
spot_basis_bp | 现货与官方流之间的基差 —— 就是本文在讲的那个量 |
venue_bp | 各家交易所分别距 beat 的 bp(能看出是不是某一家在带节奏) |