龙空技术网

解读BTS4月份交易引擎的「硬分叉」

区块链卡咩 168

前言:

现在咱们对“php撮合交易”大约比较关切,看官们都需要剖析一些“php撮合交易”的相关资讯。那么小编同时在网络上网罗了一些对于“php撮合交易””的相关资讯,希望小伙伴们能喜欢,我们快快来学习一下吧!

abit,BTS理事会成员,BTS见证人、BTS核心开发者,在比特股论坛发布了3月份对比特股交易引擎的一个修改

(传送门:)

以下是我个人的解读。解读之前,需要先了解一下基本知识

1、BTS抵押和强平

抵押BTS数量*喂价/抵押倍数=借出的Bitcny

即当抵押倍数=1.75时,喂价为你的强平触发价,当触发时,系统低于市场喂价的10%挂单卖出等值的BTS。

例子:我有100BTS,喂价为1块/BTS,用50BTS抵押,最多只能借出≈28Bitcny

50*1/1.75=28.57Bitcby

如果我借出的金额为10Bitcny,那么我的强平触发价,既系统挂单卖出价格为0.35块/BTS

抵押BTS数量*喂价/抵押倍数=借出的Bitcny

10*1.75/50=0.35

当平仓价格触发,即喂价从1块下跌到0.35时,系统以0.35/1.1=0.318挂单卖出我的BTS

这个过程中,有3个因素会变化,1是喂价,2是抵押BTS数量,3是借出的Bitcny

可操作

行情

操作

未成交BTS

已成交BTS

喂价

继续下跌

系统喂价提高

刷新挂单价格,继续挂单

还系统对应的Bitcny

抵押BTS数量

继续下跌

增加数量(抵押率>1.75)

取消挂单

还系统对应的Bitcny

借出Bitcny

继续下跌

还回系统

取消挂单

还系统对应的Bitcny

3个可操作项目往往是多重效果的,而且行情在变动,就会出现挂单的价格会不断变化,喂价增长,卖出的BTS少,喂价降低,卖出的BTS多。

最极端的情况是喂加变成0,无人买卖,BTS一文不值。

2、交易撮合引擎

下跌行情中,爆仓的挂单买卖撮合由BTS的交易引擎执行,撮合情况有多种。市场下跌时,如果市场是:

买方市场,当买1>卖1,交易引擎撮合,以卖1价格成交

卖方市场,当卖1>买1,无法撮合,买卖双方价格博弈,直到买1=卖1撮合

接上的买方市场,增加爆仓价因素会出现以下三种情况

买1>卖1>爆仓价,买的人比卖的人出价高,但以买1先成交爆仓单,最常见的爆仓

买1>爆仓价>卖1,以买1先成交爆仓单,市场开始恐慌,卖家着急出筹码

爆仓价>买1>卖1,不会出现,出现则是系统bug

如果卖1>爆仓价>买1,市场恐慌,爆仓单没人吃,如果买1下降和卖1继续降低,会使系统向黑天鹅演变

喂价在此关系链中,直接影响爆仓价,间接影响买1和卖1。喂价下降,爆仓价下降,买1卖1下降,反之都上升。另外因为喂加是witness手动添加,所以会有延迟,内盘和外盘的价格会不一样。

另外。多个爆仓单,以抵押率低的爆仓单先成交,成交完后,才能成交后续爆仓

相同抵押率的爆仓单,没找到系统怎么处理(谁先谁后?这个作者没搞清)

理解完上面的逻辑后,我们再来看看abit的修改

1. 已经是爆仓状态但没成交的债仓,调整抵押必须调整到不爆仓(即爆仓单低于喂价),而不能稍微增加抵押率但仍然是爆仓状态。

修改方案:改为可以调整,但爆仓状态的债仓只能增加抵押率,不能降低抵押率

解读:爆仓单不断增加,没有买家出价的情况,喂价继续走低,我的抵押率可能就低于规定的175%了,如160%,此时我能调整未被交易的BTS抵押率,以前调整只能调整到不爆仓,即抵押率>175%,现在修改为,抵押率可调整,但不一定>175%,如从160%调整到164%

结论:调高抵押率对系统总是好的,特别在爆仓踩踏的情况下,。去处限制后让有点筹码的人还有操作空间提高抵押率

2. 已经有爆仓卖单时,新下的买单价格如果在爆仓单的【爆仓价,最低卖价】区间,会优先匹配爆仓单成交,而不会先匹配价格更低的限价卖单(普通卖单)。

当然,如果买单价低于爆仓单最低卖价,会匹配卖单成交,这是正常情况。

修改方案:改为优先匹配价格低的卖单,不管是限价卖单还是爆仓卖单

解读:以前

当 卖1>买1>爆仓价,以爆仓价成交

当 买1>爆仓价>卖1,以爆仓价成交

现在

上第2条修改为 当 买1>爆仓价>卖1,以卖1成交

结论:爆仓堆积的时候,先卖爆仓单是为了保证锚定,卖家卖不出筹码,体验极差。始终与最低卖价成交,保证最大自由。但是这个会出现一个问题,大家看到大爆单的时候,都提前卖了,因为知道没人能吃大爆单,会不会引发更疯狂的踩踏?

3. 已经有爆仓卖单时,新下的买单如果可以和爆仓单匹配,即价格在爆仓单的【爆仓价,最低卖价】区间时,成交价会是买单设定的最高价,而不是爆仓单最低卖价。

另外,如果已经有买单,新出现爆仓卖单时,成交价是买单设定的价格,这是正常情况。

修改方案:新下买单的话,按爆仓单最低卖价成交;新出现爆仓卖单时,按买单价成交

解读:以前

当 卖1>买1>爆仓价,新下的买1成交价为买1,而不是爆仓价,已有的买1,新出的爆仓单,以买1成交。

现在:

当 卖1>买1>爆仓价,新下的买1成交价为爆仓价;已有的买1,新出的爆仓单,以买1成交。

结论:市场上爆仓单4块,最低卖单5块,我出6块买,以6块成交不是有点扯吗?点错了怎么办,肯定以4块成交买单啊。先成交爆仓单都是为了更稳定的锚定系统,这么修改,对买家是好的。

4. 已经有爆仓卖单时,新下的买单如果比爆仓价(不是指当前最低卖价)高,会不成交

同样的,如果盘面上同时有爆仓单和高于爆仓单的买单,新下的任何买单都不会和爆仓单匹配成交

同样的,如果有高于爆仓价的买单,当喂价下降产生新的爆仓单时,会显示爆仓但不成交

修改方案:买单价如果比爆仓价高,也会成交。成交价按照上面问题 3 里指定的规则。

结论:看3的解读和结论

5. 如果盘面上突然出现多笔可以成交的爆仓单,包含几种情况:

* 没有价格比爆仓价高的买单,喂价突然下降到多个债仓的爆仓价以下时

* 有价格比爆仓价高的买单,也有显示爆仓但没有成交的债仓,有大单把比爆仓价高的买单砸掉之后

* 有价格比爆仓价高的买单,也有显示爆仓但没有成交的债仓,买单主动撤单后(但买单过期导致的自动撤单不会触发这个问题)

这时,爆仓单可能会“砸穿买墙”,即不和价格最高的买单成交,而是和价格更低的买单成交。这种情况只会在爆仓价最低的债仓完全成交后,以及价格最高的买单完全成交后,才会触发。

修改方案:

* 喂价下降导致有新爆仓单的情况,总是优先匹配价格最高的买单

* 另外两种情况,在问题 4 修正后自动解决,不需要独立修改

结论:看3和4再了解5基本不难了。

6. 如果在一个买单过期自动撤单后,盘面上突然出现多笔可以成交的爆仓单,不会成交。

修改方案:问题 4 修正后,这个问题自动解决,不需要独立修改

结论:韭菜自动这个问题,直接看3

7. 爆仓单部分成交后,实际抵押率提高了,但爆仓价不变。

修改方案:

爆仓价按抵押率实时调整。

也就是说,如果债仓部分成交,剩余部分抵押率会上升,同时爆仓价会下降,就有可能不再爆仓;

同样的,一个债仓部分成交后,新的爆仓价可能低于其他债仓的爆仓价,这时优先爆其他债仓。

解读:这个不需要解读了,abit说的很清楚了

abit说这个修改,BTS的撮合引擎和中心化交易所就很像了,因为去掉了很多优先撮合爆仓单的逻辑以及撮合爆仓单的时候的成交价格。

这种修改,其实没有绝对的优劣,只能说BTS还是个年轻的孩子,它需要在大风大浪中成长,不要着急,它还需要点时间。

标签: #php撮合交易 #php撮合引擎