Author Topic: 内盘交易说明(利率,成交限价,空单成交条件,平仓,爆仓,到期平仓)  (Read 10201 times)

0 Members and 1 Guest are viewing this topic.

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2881
  • 丑,实在是太丑了 !
    • View Profile
MUSE witness:mygoodfriend     vote for me

Offline ssjpts

  • Hero Member
  • *****
  • Posts: 538
    • View Profile
    • 中国BTC
  • BitShares: coolman
新浪微博:剑指未来BTS
BTC:1Bc7gRGotktBmnNFr3BUUM22HFXCCTyxor
BTSX ID:loves,集大众之爱,待到BTS 500刀,10%回退给捐赠者,10%用于运营,剩余80%用于爱心事业和BTS宣传推广。

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
还不确认,我在英文版问

来自我的 HUAWEI P7-L00 上的 Tapatalk


Offline logxing

如果这不是bug,他的出发点应该是以喂价问分界线,喂价之下抑制卖空,喂价之上鼓励卖空。
在喂价以外的位置,概率上一般不会有巨额实盘卖单和巨额卖空单同时堆积在同一个位置。
从逻辑上,应该是实盘卖单优先,但基于以上理由,是不是就可以认为目前这种方式几乎没什么影响?
如果实盘卖单优先,代码处理会比较复杂吗?
BTS Account:logxing

Offline 乌鸦

  • Full Member
  • ***
  • Posts: 140
    • View Profile

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
bts软件里不自带详细说明,特别是历次重大规则修改不自带说明 changlog  太坑爹了

Offline logxing

如果这不是bug,他的出发点应该是以喂价问分界线,喂价之下抑制卖空,喂价之上鼓励卖空。
BTS Account:logxing

Offline logxing

当所有卖空单都检查完毕之后,才开始检查剩下的实盘卖单是否能成交。对这一点我表示很不理解。
这里是与原先理解有微小歧义的地方,就是对买1来说,同价位下,卖空单比实盘优先成交。
BTS Account:logxing

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
我们来梳理一下空单成交条件。
空单成交的第一条件是“低于喂价的实盘BitCNY卖单都已被吃光”。
此时说明市场对BitCNY有很强的需求,因此BitCNY的卖空单可以成交了。

达到第一条件后,首先成交的空单是那些没有设定限价的以及设定的限价低于当前喂价的空单,这些空单全部会以当前喂价挂单并成交。这些空单的成交优先顺序是以设定的利率为依据的,利率高的优先成交,而与设定的成交限价无关。

如果上述的这些空单被吃光,那么高于喂价的BitCNY实盘卖单和卖空单(都是成交限价大于喂价的空单)会陆续成交。对同一价位的卖空单,仍然是利率高的优先成交。
对于成交规则我又看了一遍代码,发现之前我的理解竟然是错的,可能是后面的某次升级修改规则了。
log 的理解好像也不准确,相关代码如下
Code: [Select]
  bool market_engine::get_next_bid()
  { try {
      if( _current_bid && _current_bid->get_quantity().amount > 0 )
        return _current_bid.valid();

      ++_orders_filled;
      _current_bid.reset();

      if( _bid_itr.valid() )
      {
        auto bid = market_order( bid_order, _bid_itr.key(), _bid_itr.value() );
        if( bid.get_price().quote_asset_id == _quote_id &&
            bid.get_price().base_asset_id == _base_id )
        {
            if( _feed_price.valid() && bid.get_price() < *_feed_price && get_next_short() )
                return _current_bid.valid();

            _current_bid = bid;
            --_bid_itr;
            return _current_bid.valid();
        }
      }
如果当前实盘卖1价低于 feed price,short 肯定没机会成交。
如果低于 feed price 的实盘卖单已经没有了,那么就开始检查卖空单,优先级以设定的利率从高到低排序,
相关代码为:
Code: [Select]
                // Always execute shorts at the feed price
                mtrx.bid_price = *_feed_price;

                // Skip shorts that are over the price limit.
                if( _current_bid->state.short_price_limit.valid() )
                {
                  if( *_current_bid->state.short_price_limit < mtrx.ask_price )
                  {
                      _current_bid.reset(); continue;
                  }
                  mtrx.bid_price = std::min( *_current_bid->state.short_price_limit, mtrx.bid_price );
                }
            }
具体成交规则如下:
1.  卖空单有设定最低限价,取它和 feed price中较大的一个作为卖空价。
2. 卖空价如果低于买一价则成交,否则取下一个卖空单继续检查。

当所有卖空单都检查完毕之后,才开始检查剩下的实盘卖单是否能成交。对这一点我表示很不理解。

Offline wuyanren

  • Hero Member
  • *****
  • Posts: 589
    • View Profile
我来举个例子吧:假如当前喂价为0.1bitCNY/BTS,你想开一个卖空bitcny的空单,你钱包里有50000个BTS,要全部抵押的话,因为是2倍抵押,所以你按当前价格 ,最多抵押2500bitCNY。因为空单都是按喂价开的,所以成交条件就会考虑利率,也就是年化利息。你想优先成交的话,就把利率开大一点,比如10%,15%。限价什么意思呢?限价的意思就是你不希望以高于那个价成交你的空单,因为喂价是会变的,你不开限价的话,暴涨暴跌,开空单就很危险。比如你填了限价0.12bitCNY/BTS.那么意思就是当喂价高于0.12bitCNY/BTS时,你的空单是不会成交的。所以限价是把控风险,防止暴涨暴跌,对卖空者产生伤害。

Offline 天籁

  • Hero Member
  • *****
  • Posts: 744
    • View Profile
当那些没有设定成交限价的空单以及成交限价低于你的成交限价的空单,以及那些低于你的成交限价的实盘卖单都被吃掉时,你的空单才会成交

这些空单成交顺序是以利率高低排序的,而不是以设定限价。

Offline Overthetop

个人微博账号: Overthetop_万里晴空
“块链创新与创业”交流群: 330378613

Offline mtang

  • Sr. Member
  • ****
  • Posts: 366
  • BTSX id:mtang
    • View Profile
BTSX:wallet_approve_delegate btsx.outofcontrol true
DNS :wallet_account_set_approval mtang true
感谢给我们的受托人团队“失控”btsx.outofcontro以及she.bitrose投票。请关注FUND数字资产运作计划//立足兢兢业业的standby delegate//weibo ID:汤O包


Offline gordonhucn

  • Full Member
  • ***
  • Posts: 66
    • View Profile
 +5% 很清晰, 非常同意 log 说的 “建议大家使用默认的内盘显示方式”
注意,本文是我的个人理解,可能有不正确的地方,并非官方说明。本文不作为操作手册或投资指南。也希望大家可以集思广益,将交易规则越辩越明,让更多的人可以无障碍的参与内盘交易。

首先说明,在内盘的各个市场,BTS是作为基础货币存在的,而bitusd,bitcny可以视为商品。因此默认的显示方式是BitCNY/BTS,这与外盘如btc38的bts/CNY之类的显示方式相反。虽然可以点击左上方BitCNY:BTS右侧的小按钮来反转内盘的显示方式,但还是建议大家使用默认的内盘显示方式,因为后续的许多概念,如做空,高于,低于等描述都是基于默认的显示方式的。反转市场后容易混淆,等熟悉操作后,再按照自己的习惯改变比较好。下文的描述全部基于内盘默认的BitCNY/BTS显示方式。

主界面点击市场,BitCNY:BTS后可进入BitCNY的交易市场界面。
我们首先看到的是一个价格K线和成交量图,可以参考。
再向下,左侧是三个tab,分别是买入BitCNY,卖出BitCNY和卖空BitCNY。
右侧是当前的市场挂单深度。

买入BitCNY,卖出BitCNY是实盘交易,是很容易理解的,只需要填入数量和价格就可以挂单了。需要注意的是,成交会按照你的挂单价格成交。这一点与一般的中心化交易网站的成交规则不同。
例如当前的bitCNY的卖一价是8.1675,而此时你挂单价格是8.2买入BitCNY的话,那么实际上你是以8.2买入的,但是卖一仍然是以8.1675卖出的,中间的差价归BTS系统所有。在一般的中心化交易网站上,双方是按照先挂的单子,也就是8.1675成交的。

在重点讲解卖空BitCNY之前,我们先看看下方的几个信息栏。向下的四个区域是:我的买单(我的尚未成交的BitCNY买入单),我的卖单(我的尚未成交的BitCNY卖出单),我的卖空单(我的尚未成交的BitCNY卖空单),我的平仓单(我的已经成交的卖空单,等待平仓)。

再向下是买单BitCNY(市场上现存的BitCNY买入单),卖单(市场上现存的BitCNY卖出单,注意这里的量包含了实盘卖单和卖空单),空头仓位(市场上现存的已成交的卖空单,等待平仓中),卖空单(尚未成交的卖空单,实际上这部分量已包含进卖单中)。

再向下是交易记录,就不多解释了。

==============分界线:下面才是主题===================

下面我们重点说卖空BitCNY的操作以及空单的成交条件。

在卖空BitCNY界面,首先你可以输入想要抵押的BTS数量。下面自动生成的数量等于“抵押冻结/2/喂价”。这里2指的是2倍抵押,再除以喂价指的是:如果你以当前喂价成交空单的话,你会卖空多少BitCNY。但是喂价是会变动的,所以此时你并不知道抵押这些BTS可以卖空出去BitCNY的精确数量。

利率:你卖空BitCNY相当于你从系统中借出BitCNY,因此要向系统支付BitCNY的利息,此处是年化利息,当你平仓时你需要支付这部分利息。同价位的空单成交是以利率为优先成交标准的。

成交限价:如果你设定为零,意味着你认可“当低于喂价的实盘BitCNY卖单被吃光时,你愿意以当前的喂价卖空BitCNY,即使你现在并不知道那时的喂价是多少”。当你设定一个成交限价时,意味着“当低于喂价的实盘BitCNY卖单被吃光时,如果此时喂价高于你的成交限价的话,你愿意立即成交(此时你的成交价就是限价,你不会吃亏)。如果此时的喂价低于你的成交限价的话,你希望以你的成交限价成交,也就是相当于你挂了一个卖单,例如挂在了卖五的位置。当那些没有设定成交限价的空单以及成交限价低于你的成交限价的空单,以及那些低于你的成交限价的实盘卖单都被吃掉时,你的空单才会成交”。

我们来梳理一下空单成交条件。
空单成交的第一条件是“低于喂价的实盘BitCNY卖单都已被吃光”。
此时说明市场对BitCNY有很强的需求,因此BitCNY的卖空单可以成交了。

达到第一条件后,首先成交的空单是那些没有设定限价的以及设定的限价低于当前喂价的空单,这些空单全部会以当前喂价挂单并成交。这些空单的成交优先顺序是以你设定的利率为依据的,利率高的优先成交,而与你设定的成交限价无关。

如果上述的这些空单被吃光,那么高于喂价的BitCNY实盘卖单和卖空单(都是成交限价大于喂价的空单)会陆续成交。对同一价位的卖空单,仍然是利率高的优先成交。

成交后的空单你需要在一个月内手动平仓,如果你不手动平仓,一个月后系统自动执行平仓。

后面我们来说说平仓,爆仓,到期强制平仓的问题。待续