指数价格
Dederi 指数价格
Dederi 使用的指数价格 (index price) 包括 BTC 指数和 ETH 指数,具体通过对 Bitstamp、Gemini、Bitfinex、Coinbase 、Binance 五家交易所的最新现货价格进行以下计算和校验得到。如果存在 3 分钟以上延迟的情况,这个交易所数据将被剔除,只将其余交易所数据纳入指数计算。指数价格每秒更新,具体算法如下:
步骤1:计算指数价格
P=2Bid+Ask
将这些价格的中位数作为基准价格
BenchmarkPrice:
BenchmarkPrice=median(P1,P2,…,Pn)
将所有价格限定在基准价
±0.5% 的区间内,得到调整后的样本价格
P~k:
P~k=clamp(Pk,BenchmarkPrice⋅99.5%,BenchmarkPrice⋅100.5%)
计算等权重平均值得到未经校验指数价格
IndexPrice:
IndexPrice=n1k=1∑nP~k
步骤2:链上校验
将计算出的未经校验指数价格与 Chainlink 和 Uniswap 的指数价格进行价差比较:
min(IndexPrice∣IndexPrice−ChainlinkPrice∣,IndexPrice∣IndexPrice−UniswapPrice∣)≤MaxIndexDiscrepancy
若两组比较的价差中有至少一组比例不超过限定范围
MaxIndexDiscrepancy 时,本次计算的
IndexPrice 有效,作为最终指数价格取用; 反之则提示异 常,并根据以下公式计算作为最终的指数价格:
IndexPrice=⎩⎨⎧min(LastIndexPrice⋅(1+MaxIndexDiscrepancy),MedianPrice),max(LastIndexPrice⋅(1−MaxIndexDiscrepancy),MedianPrice),LastIndexPrice<MedianPriceLastIndexPrice>MedianPrice
其中,
LastIndexPrice 为上一刻发布的
IndexPrice,
MedianPrice 计算方法如下:
MedianPrice=median{IndexPrice,ChainlinkPrice,UniswapPrice}
示例
在2024年1月9日下午3:22,我们从五个交易所收集了如下市场数据。假设上一秒指数价格为46,212.56。已知 Chainlink 和 Uniswap 提供的价格分别为46,725.12和46,334.29。 Dederi 指数价格算法如下:
价格/交易所 | Bitstamp | Gemini | Bitfinex | Coinbase | Binance |
---|
Ask | 46869.52 | 46873.84 | 46849 | 46862.39 | 46838.09 |
Bid | 46869.21 | 46867.88 | 46848 | 46860.61 | 46838.08 |
P | 46869.37 | 46870.86 | 46849 | 46861.50 | 46838.09 |
BenchmarkPrice | 46861.50 |
P~k | 46869.37 | 46870.86 | 46849 | 46861.50 | 46838.09 |
未经校验指数价格 | 46857.66 |
价格校验 | (IndexPrice - ChainlinkPrice) / IndexPrice = 0.28% (范围内) (IndexPrice - UniswapPrice) / IndexPrice = 1.12% (范围外) 通过校验,取用 |
IndexPrice | 46858 |
时间加权平均指数价格
时间加权平均指数价格 (IndexTWAP) 是用于计算平滑标记价格的指数算术平均价格。
步骤1:计算时间加权平均指数价格
该值先由链下计算,每 5 秒对标的指数价格进行采样,计算最近 10 分钟采样数据的算术平均值。
步骤2:链上校对
将计算出的时间加权平均指数价格与 Chainlink 和 Uniswap 对应 10 分钟的时间加权平均指数价格进行再校对。若两组比较的价差中有至少一组比例超过限定范围
MaxIndexDiscrepancy 时,提示异常:
max(IndexTWAP∣IndexTWAP−ChainlinkTWAP∣,IndexTWAP∣IndexTWAP−UniswapTWAP∣)>MaxIndexDiscrepancy
时间加权平均结算价格
时间加权平均结算价格 (SettleTWAP) 是期货和期权到期结算时使用的指数算术平均价格。
步骤1:计算时间加权平均结算价格
该值先由链下计算,在期货或期权合约到期前 30 分钟内,每 5 秒对标的指数价格进行采样,计算最近 30 分钟采样数据的算术平均值。
步骤2:链上校对
将计算出的时间加权平均结算价格与 Chainlink 和 Uniswap 对应 30 分钟的时间加权平均结算价格进行再校对。若两组比较的价差中有至少一组比例超过限定范围
MaxIndexDiscrepancy 时,提示异常:
max(SettleTWAP∣SettleTWAP−ChainlinkTWAP∣,SettleTWAP∣SettleTWAP−UniswapTWAP∣)>MaxIndexDiscrepancy