玩币族移动版

玩币族首页 > 区块链资产 >

Bitshares X的交易引擎撮合算法

  交易引擎撮合算法

  传统的证券交易市场有股票交易市场和期货交易市场,而且这两种市场在传统的证券交易系统里是两个分开的交易市场。而Bitshares X比较复杂的原因,是因为将这两个交易市场集成在一个交易市场里,要清晰的理解还是有一定的难度的,我也是看了几遍白皮书并反复查看代码来帮助理解,也才基本理解他的运行原理。交易引擎撮合算法也算是系统的核心逻辑,涉及Bitshare X的基本原理和证券市场操作的理论,我会试图用简单的语言描述。但是要做到通俗易懂还是比较难的。同时因为系统也在不停的改进中,如果系统更新,我也会更新文章,当然如果理解有误差,也欢迎指出。

  Bitshares X的交易撮合算法涉及几种操作,要清晰理解其运行原理和撮合算法必须先理解一下以下几个基本操作。

  买(bid)卖(ask)操作,这是股票市场里最基本的操作,比如在A股市场里,你用人民币买入股票,或者卖出手中的股票换得人民币,这两个操作很好理解。应该没有人不知道吧 ^_^

  做空(Short Sell),平仓(cover),强制平仓,和增加保证金(add collateral)操作,则是期货市场里的基本操作。做空:你预期某资产将贬值,则你可向市场借入此资产然后卖出。平仓:则是在期货交割之前从市场里买入你做空的资产平掉之前的做空仓位。而在期货市场做空资产会有两种可能,一是市场按你的预期运行,你可以在交割之前用比之前更低的价格买回做空的资产进行平仓,这样你将获利。二是市场按你预期的相反方向运行,则你将亏损,为了避免亏损进一步扩大,你可以主动买入资产平掉你的做空仓位,或者任由价格继续上涨到你的自动平仓价,系统将自动买入资产进行平仓称为强制平仓。当然为了避免系统强制平仓,你也可以增加保证金,从而提高自动平仓价避免被系统强制平仓。

  在Bitshares X里也有以上这五种基本操作,而且是在同一个系统,同一个交易引擎里完成的。

  在Bitshares X里,你可以卖出比特股(BTSX)从而得到比特股资产(BTA,比如USD),当然也可以用比特股资产来购买比特股。这跟以上的股票交易市场的基本操作是一样的。上面也提及,Bitshare X里将传统的股票交易和期货交易两个市场集成在一个系统里,所以在Bitshares X系统里,除了可以完成股票交易的操作,还可以完成期货交易的操作。如果你预期某比特股资产(比如USD)相对于比特股将贬值,或者说看多比特股,则可以做空你看空的比特股资产。只是与传统期货交易市场不同的是,在Bitshare X里做空比特股资产是通过向系统抵押比特股来产生比特股资产然后卖出的。还有一点需要注意的是在Bitshares X系统的买和卖都是相对的,你卖出抵押产生的比特股资产其实就是等于买入比特股,所以当你下一个做空单(short sell)卖出比特股资产时是被当作买入比特股放在买入单(bid)队列里的。而平仓操作向市场买入比特股资产进行进仓时,则是被当做卖出比特股放入到卖出(ask)队列里的。并且以上的操作都是比特股本位的,即是说,以上的几种操作的价格都以一比特股值得多少比特股资产的形式来定价的。比如说买单和卖单中价格0.01 USD就是指1BTSX等于0.01USD的意思。

  系统要触发交易引擎进行撮合交易是有一定的前提条件,其条件如下:

  1.买入队列和卖出队列每边必须有2百万比特股的深度。

  2.24小时内提供指导价的受托人数目必须大于101/32=3

  3.最高的做空价不能高于平均指导价的4/3,最低的卖出价比不能能低于平均指导价的2/3.

  4.买入价格大于或者等于卖出价格

  根据以上的前提条件和买入及卖出队列的情况,交易引擎可以发生以下四种撮合交易。

  一. 普通的买入单匹配普通的卖出单。买入方得到卖出方的比特股,卖出方得到买入方的比特股资产。

  二. 做空单匹配普通的卖出单,卖出方得到比特股资产,而卖出方卖出的比特股将和做空方抵押的比特股相加和为两倍的比特股形成一个抵押单存入系统数据库,并且根据产生的比特股资产和抵押的2倍比特股计算出这个抵押单的自动平仓价。其价格为产生的比特股资产/((2倍抵押的比特股*3)/4),其价格大约等于BTS成交价的2/3,系统在撮合每一单交易时都会检查系统数据库中是否有符合自动平仓的抵押单,就是说当比特股相对于被做空的比特股资产贬值至原来的2/3者说被做空的比特股资产相对于比特股升值至原来的3/2,则会触发一个强制平仓操作,系统会卖出这个抵押单所抵押的比特股来买入比特股资产试图进行强制平仓。强制平仓会额外产生5%的手续费。而强制平仓的过程即是以下三和四的撮合交易。

  三. 普通的买入单匹配平仓单、买入方得到平仓方卖出的比特股,而平仓方获得买入方的比特股资产试图平掉抵押单。

  四. 做空单匹配平仓单,做空方得到平仓方卖出抵押的比特股,加上自己的抵押的比特股形成一个新的抵押单存入系统,并同时根据以上交易2中的算法计算出这个抵押单的自动平仓价格。而平仓方将得到做空方的比特股资产平掉自己的抵押单。如果未能完全平仓,则重复三和四。(打赏:BTSX帐号 crazybit

知识: Bitshares X