标记价格
标记价格是系统为了防止市场操纵而计算出的更公允价格。它用于计算未实现盈亏和强平触发价格,也能降低单笔大额成交导致瞬间爆仓的风险。
标记价格 = Median(价格 1, 价格 2, 合约价格)价格 1
价格 1 = 价格指数 × (1 + 最新资金费率 × 距下一次资金费率收取的时间 / 资金费率收取周期)资金费率收取周期是平台向用户收取资金费率的时间间隔,单位为小时。距下一次资金费率收取的时间,是下一次结算前剩余的小时数。
原表示例:价格指数 1,000,000,资金费率 0.0001,剩余时间 6 小时,周期 8 小时,价格 1 = 1,000,075。
价格 2
价格 2 = 价格指数 + 移动平均值(30 秒基差)移动平均值为 30 秒内 30 个数据点的平均值。每秒计算一次,取买一价和卖一价的平均值后减去价格指数。
移动平均值(30 秒基差) = Sum[(Bid1_i + Ask1_i) / 2 - PI_i] / 30标记价格取值规则
- 如果价格 1 < 价格 2 < 合约价格,则价格 2 用作标记价格。
- 在极端市场情况或价格来源偏差下,标记价格可能偏离现货价格,此时可采取额外防护,使用价格 2 作为标记价格。
- 系统升级或停机期间,交易活动暂停,仍继续使用标记价格公式,但价格 2 中的 30 秒基差移动平均值设置为 0,直至系统恢复。
示例:正常行情下取中间值
假设 BTCUSDT 当前价格指数为 60,000 USDT,最新资金费率为 0.01%,距离下一次资金费率收取还有 6 小时,资金费率收取周期为 8 小时。
| 项目 | 数值 | 说明 |
|---|---|---|
| 价格指数 | 60,000 | 外部来源计算后的指数价格。 |
| 最新资金费率 | 0.0001 | 0.01%。 |
| 剩余时间 | 6 小时 | 距离下一次资金费率收取的时间。 |
| 资金费率周期 | 8 小时 | 平台资金费率收取周期。 |
| 30 秒基差移动平均值 | +20 | 最近 30 秒买一卖一中间价相对价格指数的平均基差。 |
| 合约价格 | 60,050 | 当前合约最新成交价。 |
在这个例子中,价格 2 处在价格 1 和合约价格之间,因此系统使用 60,020 USDT 作为标记价格。
示例:合约最新成交价异常偏离
仍以上面的价格 1 和价格 2 为基础。如果短时间内出现单笔大额成交,导致合约最新成交价被打到 61,500 USDT,标记价格不会直接跟随该异常成交价。
价格 1 = 60,004.5 价格 2 = 60,020 合约价格 = 61,500 标记价格 = Median(60,004.5, 60,020, 61,500) = 60,020这里使用 60,020 USDT 作为标记价格,可以避免用户因为一笔短时异常成交被错误计算未实现盈亏或触发强平。
示例:系统升级或停机期间
如果系统升级或停机导致交易活动暂停,价格 2 中的 30 秒基差移动平均值按 0 处理。
价格指数 = 60,000 30 秒基差移动平均值 = 0 价格 2 = 60,000 + 0 = 60,000恢复交易前,系统仍保留标记价格计算逻辑,但不再使用停机期间失真的短期基差。