定义
一边是买价,也就是买入的报价,另一边是卖价,也就是卖出的报价。最高的买价和最低的卖价是可得的最优价格,它们之间那段距离是价差,而每个价位上挂着的数量是深度。HyperCore 的状态里为每一个资产都包含一个订单簿:文档说它的运作基本上和所有中心化交易所一样,但完全在链上,价格是最小变动价位的整数倍,数量是最小交易单位的整数倍,而订单按价格优先、时间优先撮合,所以同一个价位上更早的那笔先成交。
有两个细节是一个同时也是区块链状态的订单簿才有的。保证金核查发生在一笔新订单开出时,以及每笔订单撮合时对挂着的那一边,这让保证金机制在预言机价格已经在一笔挂单之下移动过以后仍然自洽。而链知道一笔订单是什么:在一个区块的每一个共识批次里(通常是一个或者两个),动作被排成三组,先是不向任何订单簿发出 GTC 或者 IOC 订单的那些,然后是撤单,然后是至少发出一笔的那些,每一组内部都保持区块提议者给出的顺序。价格最多 5 位有效数字,而且最多 MAX_DECIMALS - szDecimals 位小数,MAX_DECIMALS 在永续合约上是 6、在现货上是 8。
有好几个大家当成固定的数字,其实都由订单簿来定。它定下一笔市价单付的滑点,它决定一笔订单算挂单还是吃单,而它还喂着资金费率:溢价部分读的是那些冲击价格,也就是资金冲击名义金额在订单簿每一侧成交时的平均成交价(BTC 和 ETH 是 20,000 USDC,其他资产是 6,000 USDC)。一个市场可以带着很大的未平仓合约,同时却只有一本清淡的订单簿,而那恰恰就是一次强平会推动价格的时候。
例子
一个例子,数字取整。一本订单簿显示 $99,990 上买 3 BTC,$100,010 上卖 2 BTC。价差是 $20,也就是 $100,000 中间价的 2 个基点。1 BTC 的一笔市价买单吃掉卖价,付一笔吃单手续费;而在 $99,990 买 1 BTC 的一笔订单加入买方,排在那个价位上已有的订单后面,如果真有卖方走过来,它付一笔挂单手续费。