Author Topic: 再问爆仓算法  (Read 6168 times)

0 Members and 1 Guest are viewing this topic.

Offline Fanya

  • Newbie
  • *
  • Posts: 14
    • View Profile
拿 bts /usd 市场看,假如现有很多买单了

10000 usd 0.01 bts/usd
800 usd 0.009 bts/usd
800 usd 0.008 bts/usd
.....

我先挂一个买单
100,000,000 usd 0.00000001 bts/usd
排在最末尾

然后我挂一个 short 操作
按 0.000000001 bts/usd 价格发行 1000,000,000 usd

是不是所有买单都能成交?大家都拿到了 bitusd,我自己也拿到了 100,000,000 bitusd。
然后下一次,我的 short 会被强制平仓,损失所有抵押的 1bts。

最终结果是 我会有1bts 抵押损失,留下大量 bitusd 空头,及 100,000,000 bitusd

你最后挂的0.000000001 bts/usd 价格的bitusd成交不了吧。假设按照挂单最高的0.01bts/usd先成交一个, 那这个bitusd的实际抵押资产是0.000000002bts,不足以支持0.01bts的市场价格,抵押不足。

Offline sdivenwujc

  • Full Member
  • ***
  • Posts: 107
    • View Profile
搞个熔断机制,停止交易,后台撮合,削掉垃圾单子~

Offline PTS中国

  • Sr. Member
  • ****
  • Posts: 416
    • View Profile
  • BitShares: ptschina
好,假设你的单子成交了,没有关系,一旦bitUSD的价格上涨,你就要追加足够的bts抵押给系统。如果你没有追加,就算你持有1亿的bitUSD,由于你的这些bitUSD抵押不足会被强制平仓卖掉的。资产叫什么名字不重要,是因为抵押bts值多少USD决定的。如果你持有1亿bitUSD你不会以为等你bitUSD涨到价值1美元的bts的时候你还有1亿?你早就因为bts不够抵押而被系统强制平仓了,你持有的bitUSD是仓位,持仓的价格是bts标记的,所以根本的波动原因除了投机以为就是bts价格的波动。 这个问题的根本是抵押不足造成的,2倍抵押如果固定就必须限制挂单的涨跌幅度,想挂更大幅度的单子需要更多倍数的抵押bts

赞同her0的看法,如果是类似期货运行,需要设定涨跌幅限制;这样机制的算法简洁高效
--------

PTS中国

Offline her0

  • Sr. Member
  • ****
  • Posts: 258
    • View Profile
好,假设你的单子成交了,没有关系,一旦bitUSD的价格上涨,你就要追加足够的bts抵押给系统。如果你没有追加,就算你持有1亿的bitUSD,由于你的这些bitUSD抵押不足会被强制平仓卖掉的。资产叫什么名字不重要,是因为抵押bts值多少USD决定的。如果你持有1亿bitUSD你不会以为等你bitUSD涨到价值1美元的bts的时候你还有1亿?你早就因为bts不够抵押而被系统强制平仓了,你持有的bitUSD是仓位,持仓的价格是bts标记的,所以根本的波动原因除了投机以为就是bts价格的波动。 这个问题的根本是抵押不足造成的,2倍抵押如果固定就必须限制挂单的涨跌幅度,想挂更大幅度的单子需要更多倍数的抵押bts
« Last Edit: February 17, 2014, 07:09:50 am by her0 »

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
这种极端条件大家容易疏忽
现在抓紧测试,来得及的,加油,还有奖励拿
这正是个很大的问题,但DAN好像没有考虑仔细,我真不知道28号的BTSXT会有多少类似的问题。 这是个几乎没有测试过的产品。。。。。很担心


Offline sfinder

  • Hero Member
  • *****
  • Posts: 1205
  • 4 Cores CPU+100GB SSD+anti-DDoS Pro
    • View Profile
这正是个很大的问题,但DAN好像没有考虑仔细,我真不知道28号的BTSXT会有多少类似的问题。 这是个几乎没有测试过的产品。。。。。很担心


Quote
current price is 1000usd/bts

here is the buy order:
buy 1000 usd with 1bts
buy 1001 usd with  1bts
buy 1002 usd with 1bts
.....
buy 1100 usd with 1bts

anytime I can give a buy order with
buy 1000000000 usd with 1bts
And I can give a short with
short 10000000000 usd with 1bts

So there is a line of people each wanting to buy about 1000 usd for 1 bts ....
And along comes someone who wants to sell 1000,0000 usd for 1 bts....

Assuming he actually had this usd (ie it was a long/long sale) then the market should match him against all of the buys (4103 usd), give the seller his .0001 bts and earn 3.999 bts in fees for the network because the seller was an idiot and sold way below market.   

Now in the event of a short position the result of this move should be...

Buyers get 4103 usd and the short seller ends up short -4103 with collateral of 4 bts (from buyers) + .0001 bts (from himself) which would seem to justify a margin call immediately... thus  I need to adjust the short-sell code to always use the price of the bids to determine required collateral (bts) or this kind of abuse could carry on.

Let me look into it a tad more and if it pans out I will send 25 PTS your way for finding this.

同意,我已经在更新贴里建议销毁无抵押品比特资产了

在系统刚运行,市场上没任何买单时,还是会有漏洞。
比如我自己做了唯一的买单是 1bts  1亿美金,唯一的 short 也是这个价。那我就是牺牲2个bts,拿到1亿美金。
程序可以限制 short 撮合算法必须在足够买单之后才能启动。
即使看起来有足够的市场深度,也可能被大户扫光后做同样的操作。

现在我看系统中就不应该有无抵押品的BTA存在,一旦BTS贬值过快导致平仓时抵押品不够,
应该以某种方式销毁那些无抵押品的BTA。持有BTA的人应该对此情形承担一定的“损失”,
与“爆仓”相反,持有BTA的人此时应该“吐利”以维护系统平衡。

微博:星在飘我在找|BTS X 受托人delegate ID:baidu
中国教育书店合作将20%收入捐献给贫困山区学生。
Cooperating with China Education Bookstore and will donate 20% of delegate income to the poor students

Offline yidaidaxia

  • Full Member
  • ***
  • Posts: 179
    • View Profile
同意,我已经在更新贴里建议销毁无抵押品比特资产了

在系统刚运行,市场上没任何买单时,还是会有漏洞。
比如我自己做了唯一的买单是 1bts  1亿美金,唯一的 short 也是这个价。那我就是牺牲2个bts,拿到1亿美金。
程序可以限制 short 撮合算法必须在足够买单之后才能启动。
即使看起来有足够的市场深度,也可能被大户扫光后做同样的操作。

现在我看系统中就不应该有无抵押品的BTA存在,一旦BTS贬值过快导致平仓时抵押品不够,
应该以某种方式销毁那些无抵押品的BTA。持有BTA的人应该对此情形承担一定的“损失”,
与“爆仓”相反,持有BTA的人此时应该“吐利”以维护系统平衡。

PTS: PmUT7H6e7Hvp9WtKtxphK8AMeRndnow2S8   /   BTC: 1KsJzs8zYppVHBp7CbyvQAYrEAWXEcNvmp   /   BTSX: yidaidaxia (暂用)
新浪微博: yidaidaxia_郝晓曦 QQ:36191175试手补天

Offline Sharp116

  • Newbie
  • *
  • Posts: 19
    • View Profile
同意,当前算法看上去是有这个漏洞...

Offline logxing

在系统刚运行,市场上没任何买单时,还是会有漏洞。
比如我自己做了唯一的买单是 1bts  1亿美金,唯一的 short 也是这个价。那我就是牺牲2个bts,拿到1亿美金。
程序可以限制 short 撮合算法必须在足够买单之后才能启动。
即使看起来有足够的市场深度,也可能被大户扫光后做同样的操作。

现在我看系统中就不应该有无抵押品的BTA存在,一旦BTS贬值过快导致平仓时抵押品不够,
应该以某种方式销毁那些无抵押品的BTA。持有BTA的人应该对此情形承担一定的“损失”,
与“爆仓”相反,持有BTA的人此时应该“吐利”以维护系统平衡。
BTS Account:logxing

Offline logxing

如果第一笔成交单是这样的一笔单,卖空者爆仓后抵押品不足,系统内部会有巨额的无抵押品的BitUSD。
必须有一个强制的方法销毁这些BitUSD,单靠市场的力量不能解决这个问题。
BTS Account:logxing

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
在系统刚运行,市场上没任何买单时,还是会有漏洞。
比如我自己做了唯一的买单是 1bts  1亿美金,唯一的 short 也是这个价。那我就是牺牲2个bts,拿到1亿美金。
程序可以限制 short 撮合算法必须在足够买单之后才能启动。

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
应该改撮合算法。
对short 撮合算法应该按 bts 数量判断是否完成。
比如我 1bts 发行 100000 usd,只要我收到 1bts 就结束,最终结果不一定能发行 100000 usd,可能 100 usd 就结束了。
结果是2 bts 抵押 100 usd。

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
拿 bts /usd 市场看,假如现有很多买单了

10000 usd 0.01 bts/usd
800 usd 0.009 bts/usd
800 usd 0.008 bts/usd
.....

我先挂一个买单
100,000,000 usd 0.00000001 bts/usd
排在最末尾

然后我挂一个 short 操作
按 0.000000001 bts/usd 价格发行 1000,000,000 usd

是不是所有买单都能成交?大家都拿到了 bitusd,我自己也拿到了 100,000,000 bitusd。
然后下一次,我的 short 会被强制平仓,损失所有抵押的 1bts。

最终结果是 我会有1bts 抵押损失,留下大量 bitusd 空头,及 100,000,000 bitusd