Author Topic: 二元预测市场举例  (Read 3574 times)

0 Members and 1 Guest are viewing this topic.

Offline cat-ch

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
  • BitShares: cat-ch
太感谢你啦,我又要好好研究一下啦~~~

Offline wuxuqiang

  • Sr. Member
  • ****
  • Posts: 377
    • View Profile
    • 比特股中文网
  • BitShares: web1024
我是"比特股中文网"站长:吴序强  欢迎光临我们大家的网站:http://www.BtsABC.org   比特股网页钱包(帝国版):https://bit.btsabc.org

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
telegram:ebit521
https://weibo.com/ebiter

Offline wuyanren

  • Hero Member
  • *****
  • Posts: 589
    • View Profile
其实应该是可以自动裁决好点,你下注的。就必须把下注的资产扣在系统里,开奖了,然后系统自动分配

Offline Musewhale

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

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
注:本文原文描述有误,尾部有更新。

举个例子。
现在新建一个预测市场,假设名字为SH1607313K,预测7月31日上证指数收盘是否在3000以上,抵押品为btsabc负责承兑的IOU.CNY。
裁决规则设计:7月31号上证市场收盘后进行裁决;届时如果上证指数低于3000,裁决结果为SH1607313K价值等于0;如果高于3000,裁决结果为SH1607313K价值等于1 IOU.CNY。

裁决前,参与人可以1:1抵押IOU.CNY借入SH1607313K在市场上挂单出售,或者用IOU.CNY在市场上挂单买入SH1607313K。

裁决后,
* 如果结果是1,那么参与人手里拥有SH1607313K资产自动1:1兑成IOU.CNY,抵押的IOU.CNY全部用于兑现资产
* 如果结果是0,那么参与人手里拥有的SH1607313K资产自动销毁,抵押的IOU.CNY全部释放

实际就是赌大小。市场价格就是赔率。
* 如果认为100%会超过3000,也就是预期资产最终价值=1,那么只要低于1买入就会赚。
* 如果认为100%会低于3000,也就是预期资产最终价值=0,那么只要高于0卖出就会赚。
* 如果当前市场价格(最新成交价)是0.6,说明60%的参与者(资金)认为最终会超过3000点。
* 基本来说,参与者预期股市会涨就买,预期股市会跌就卖
* 如果某时间点,你认为最终超过3000的概率是80%,也就是认为资产当前价值是0.8;如果当前市场价与你的预测不同,那么就有获利机会,可以选择参与。


其实这里有几个技术问题
1. 资产创建人可以手工裁决。我还不知道能不能自动裁决。
2. BTS里面的裁决,不是强制执行的。
如果持有人赌赢了,裁决后,可以1:1兑现。如果持有人赌输了,手头持有0的资产,一般不会去主动兑现,就导致抵押借出资产出售的人无法平仓,这时就需要发行者来强制收回,然后发送给赢的人进行平仓,来解除抵押。
为了鼓励赌输的人也主动平仓,规则设计时,可以不用0-1价,而是采用 “基础价+(0~1)” 的方式,即资产有底价。如果不主动平仓,等强制回收,就有额外损失。相应的,抵押借出时,需要多抵押一点。不过这样也不太方便。是否采用这个模式,取决于资产创建者。个人推荐这么做。
3. 裁决后资产名作废,不能再用了。

4. 如何确定最低抵押价。
也就是如何保证没人可以用1块钱抵押出资产,然后马上卖100块套利。
理想算法应该是按市价经过某种计算后得出最低抵押价。如果市场波动,导致抵押不足,就产生自动爆仓。
如果抵押品价值高于资产规则设计的最高价值,就永远不会爆仓。

现在的算法,可能是按喂价确定最低抵押价和爆仓价(不知道我说的对不对,最近没时间看代码)。
这样的话,喂价就比较重要了。比较懒的做法,就是喂价设为规则上限,这样保证没人爆仓,但是相对来说,做空的人参与门槛会高一点(相同仓位的收益/风险不变,但是资金限制导致仓位限制)。

5. 强制清算问题。
(同样,不知道我说的对不对,最近没时间看代码)。
如果按智能资产的做法,强制清算也是喂价相关。如果喂价设为规则上限,那么在裁决前要禁用强制清算,否则可以即时套利,市场没人做空了。
如果允许强制清算,那么喂价就有讲究了,这个留给市场开发者去研究。
(本来BM的爆仓算法是不需要喂价,后来被大家强烈要求下改回喂价了)


资产创建者的收益模式:手续费。
每笔成交,资产创建人可以收取一定百分比的手续费,这个手续费是以资产形式付给创建者的。基于这个模式,资产必须有底价,否则如果裁决结果为0,创建者收到的手续费也等于0。

还有个注意事项:手续费池。
为避免损失,手续费池可以在创建资产后清空;或者规则设计时,保证手续费池被偷了也不会亏,比如设置资产底价为1BTS。


本人不是专家,难免有疏漏,写错的地方欢迎指正。
希望抛砖引玉。

更新(2017-11-05):
1. 理论上,应该可以指定一组喂价人,根据喂价进行裁决,这样可以无需发行人裁决。(我需要再看看代码才知道这个功能是否已经实现)
2. 裁决时,所有抵押仓会被强制关闭,也就是说是强制执行。
  * 如果裁决结果是0,则仓位关闭时抵押物全部返还。所以不存在无法平仓的问题。
  * 如果裁决结果是1,则仓位关闭时抵押物全部被收走,等待资产持有人进行清算/兑现。
4. 抵押价是规则上限;不应存在爆仓情况。(但现在有BUG导致会爆仓)
5. 只有裁决后才能清算。清算即兑现。
« Last Edit: November 04, 2017, 11:43:33 pm by abit »
BitShares committee member: abit
BitShares witness: in.abit