现货市场概念
定义
在现货市场中,AAA/BBB的交易对中,AAA是基础资产,BBB是报价资产。 例如,在ETH/USDT市场中:
ETH是基础资产
USDT是报价资产
现货市场的价格指的是购买一个单位ETH(基础资产)所需的USDT(报价资产)数量。对于所有现货市场,费用总是以报价资产支付,例如USDT。
借方与贷方
借方金额是指从账户中提取的资产数量。
贷方金额是指存入账户的资产数量。
退款 在我们的系统中,退款是指增加账户可用余额的操作。这种资金的释放发生在账户的负担解除时(例如取消限价单、将订单的应付费用调整为做市费用、使用较少的保证金来资助市场订单等)。
限价买单
限价买单旨在以指定数量的ETH(基础资产)交换指定数量 * 价格金额
的USDT(报价资产),并支付相应的费用,这些费用取决于限价单是否作为做市单(maker order)或吃单(taker order)执行。
限价卖单
限价卖单旨在以指定数量的ETH(基础资产)交换数量 * 价格金额
的USDT(报价资产),减去相应的费用,这些费用取决于限价单是否作为做市单(maker order)或吃单(taker order)执行。
市价买单
市场买单旨在以指定的最差价格(该价格位于当前卖价或其附近)购买指定数量的ETH(基础资产),并使用相应账户的报价资产余额(USDT)作为抵押(包含费用)。
因此,每个市场买单隐含地具有一个可接受的最高价格,因为如果市场单的成交价格超出该上限,将因资金不足而无法执行。
市价卖单
市场卖单旨在以指定的最差价格(该价格位于当前买价或其附近)卖出指定数量的ETH(基础资产),并换取市场上可用的任意数量的报价资产(USDT)。
因此,每个市场卖单隐含地具有一个零价格限制。
订单类型
BUY (1): 标准买单,可按当前市场价格或设定的限价购买资产。
SELL (2): 标准卖单,可按当前市场价格或设定的限价卖出资产。
STOP_BUY (3): 现货市场不支持此订单类型。
STOP_SELL (4): 现货市场不支持此订单类型。
TAKE_BUY (5): 现货市场不支持此订单类型。
TAKE_SELL (6): 现货市场不支持此订单类型。
BUY_PO (7): 仅挂单买单。此订单类型确保订单只会被添加到订单簿,而不会与已有订单匹配。它保证用户为市场的“做市商”(maker),而非“吃单者”(taker)。
SELL_PO (8): 仅挂单卖单。与BUY_PO类似,此订单确保卖单仅向订单簿提供流动性,而不会与已有订单匹配。
BUY_ATOMIC (9): 原子买单,该市场单会立即执行,绕过频繁批次拍卖(FBA)。此类型适用于需要即时执行交易的智能合约,并支付较高的费用,该费用由全球交易所参数定义。
SELL_ATOMIC (10): 原子卖单,类似于BUY_ATOMIC,会立即按当前市场价格执行,绕过FBA。
市场数据要求
除订单簿数据外,只要我们的链支持获取逐笔交易数据的基本能力,就可以通过聚合计算获得大多数必要的高阶数据,包括:
OHLCV 数据
账户交易历史
市场统计数据
现货市场生命周期
基于治理的现货市场创建
市场的创建方式有两种:通过 MsgInstantSpotMarketLaunch
创建市场,需支付额外费用,无需治理批准。或者通过 MsgSpotMarketLaunchProposal
提交提案,经治理批准后创建市场。
基于上架费用的现货市场创建
允许任何人通过燃烧预设的 SpotMarketInstantListingFee
(以INJ计)来创建自己选择的现货市场,无需治理批准。
不过,我们仍然需要检查该币种是否有效。
现货市场状态更新
现货市场可以处于四种不同的状态:
活动状态
暂停状态
挂起状态
销毁状态
活动状态 如果现货市场处于活动状态,则可以接受订单和交易。
暂停状态 如果现货市场处于暂停状态,它将不再接受订单和交易,也不允许用户在该市场上进行任何操作(如取消订单)。
挂起状态 如果现货市场处于挂起状态,它将不再接受订单和交易,只允许交易者取消其订单。
销毁状态
当市场进入销毁状态时,所有未完成的订单将被取消。
市场状态转换
有三个状态转换对应以下状态变化:
激活操作:从暂停或挂起状态 → 活动状态
暂停操作:从活动或挂起状态 → 暂停状态
挂起操作:从活动或暂停状态 → 挂起状态
销毁操作:从暂停或挂起状态 → 销毁状态
现货市场参数更新
现货市场有以下参数:
SpotMarketInstantListingFee
DefaultSpotMakerFeeRate
DefaultSpotTakerFeeRate
Last updated