mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
平台 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

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里做空比特股资产是通过向系统抵押比特股来产生比特股资产然后卖出的。还有一点需要注意的是Bitshare X里的任意两种资产都是可以交易的,而且Bitshares X系统的买和卖都是相对的。你买入一种资产就等于另卖出一种资产。以BTSX和USD的典型交易为例,你卖出USD实就是等于买入BTSX,虽然在交易引擎内部最终都是以比特股计价的,但是在操作界面里,当你下一个做空单(short sell)卖出比特股资产时,可以以BTSX/USD计价(1USD值多少BTSX)被放入卖出(aks)单队列或者以USD/BTSX计价(1BTSX值多少USD)被当作买入比特股放在买入单(bid)队列里。举个简单的例子,你想以每个BTSX等于0.5USD的价格买入BTSX,在操作界面里则可以以0.5 USD/BTSX计价方式挂买单队列,或者以2 BTSX/USD的计价方式挂入卖单队列。

为了防止人为操作市场,BitShares X里还有自己独特的一个成交算法,简单的讲就是,如果符合成交条件,买方和卖方都以他们下单的价格成交,是不是不太好理解?举个例子,买方A以1USD的价格买入1BTSX,卖方B以0.5USD的价格卖出1BTSX.在传统的交易市场里,最终会以0.5USD的价格成交1BTSX。即A收到以0.5USD价格成交的1BTSX,付出0.5USD给B,B完成交易,而A剩下的0.5USD继续与卖单成交。但是Bitshares X却不是这样的,而是双方都以他们的下单价格成交,即是A收到1BTSX,付出1USD,B收到0.5USD,付出1BTSX,在这里不难发现双方都完成了交易,A支付1USD,而B只收到0.5USD,中间有0.5USD的差额,在BitsharesX里,这0.5USD是被当作交易费收入交易费池子里的。

理解以上系统里的基本操作,才可以进一步探讨交易引擎的撮合算法,然而系统要触发交易引擎进行撮合交易是有一定的前提条件的,其条件如下:
1.买入队列和卖出队列每边必须有2百万比特股的深度。
2.市场的第一笔成交指导价由受托人从外部导入,且过去24小时提供指导价的受托人数目必须大于51,最高的做空价不能高于平均指导价的4/3,最低的卖出价比不能低平均指导价的2/3.
3.之后的平均指导价格则不需要受托人导入的价格,而是根据过去的成交价格进行加权平均,其公式为((过去的平均指导价*(60*60/10-1)+成交买单价格+成交卖单价格)/(60*60/10+1)
4.买入价格大于或者等于卖出价格

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

一. 普通的买入单匹配普通的卖出单。买入方得到卖出方的比特股,卖出方得到买入方的比特股资产。
二. 做空单匹配普通的卖出单,卖出方得到比特股资产,而卖出方卖出的比特股将和做空方抵押的比特股相加和为两倍的比特股形成一个抵押单存入系统数据库,并且根据产生的比特股资产和抵押的2倍比特股计算出这个抵押单的自动平仓价。其价格为做空价的4/3,系统在撮合每一单交易时都会检查系统数据库中是否有符合自动平仓的抵押单,就是说当比特股相对于被做空的比特股资产贬值至原来的3/4者说被做空的比特股资产相对于比特股升值至原来的4/3,则会触发一个强制平仓操作,系统会卖出这个抵押单所抵押的比特股来买入比特股资产试图进行强制平仓。强制平仓会额外产生5%的手续费。而强制平仓的过程即是以下三和四的撮合交易。
三. 普通的买入单匹配平仓单,正常情况下,买入方得到平仓方卖出的比特股,而平仓方获得买入方的比特股资产试图平掉抵押单。但是在这个匹配过程中,有可能出现买入单价格过高,导致抵押单的平仓操作用完所有的比特股都都无法平仓的情况,在这里,系统引入了网络版的联邦存款保险公司(FDIC),系统为了确保系统稳定运行,如果出现用完保证金也无法平仓的情况,则可以自动为这个抵押单增加保证金以确保这个抵押单可以用系统增加的比特股来买入比特股资产进行完全平仓。
四. 做空单匹配平仓单,做空方得到平仓方卖出抵押的比特股,加上自己的抵押的比特股形成一个新的抵押单存入系统,并同时根据以上交易2中的算法计算出这个抵押单的自动平仓价格。而平仓方将得到做空方的比特股资产平掉自己的抵押单。如果未能完全平仓,则重复三和四。

如果你觉得本文对你理解Bitsharesx的运行原理和交易引擎撮合算法有帮助,请考虑给我打赏我一杯咖啡或者给我的受托人点个赞 ^_^

BTS X 受托人 ID: dpos.crazybit , titan.crazybit , anchor.crazybit

首发: 比特股社区

文/crazybit

BTSX:crazybit

免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。
相关阅读