Author [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] Topic: 讨论下bts成交撮合算法  (Read 1281 times)

0 Members and 1 Guest are viewing this topic.

Offline alt

讨论下bts成交撮合算法
« on: January 24, 2014, 06:47:59 AM »

假定现在的市场是这样的:
1. A拿出 10bts,以 100 usd/bts 价格发行 1000个usd
2. B拿出 10bts,以 10 usd/bts 价格下单买 100 个usd

按现有算法成交结果:B 交出 10 bts,获得 100 usd;
A卖出 100个usd,对应抵押11(1+10)个BTS,剩下的 9bts 继续挂 100usd/bts发行价。

我认为合理的算法应该是:
B 应该按A的发行价100usd/bts,拿出 1 bts获得 100 usd,剩下9个 bts应保留。
A卖出的 100个usd,对应抵押应为 2(1+1)个BTS


Offline HackFisher

  • Hero Member
  • *****
  • Posts: 883
    • View Profile
Re: 讨论下bts成交撮合算法
« Reply #1 on: January 24, 2014, 07:14:46 AM »
你说的有一定道理,挂单应该有时间先后顺序,应该以时间早的价格为准。
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline ebit

  • Hero Member
  • *****
  • Posts: 1670
    • View Profile
    • 推荐链接
  • BTS: ebit
Re: 讨论下bts成交撮合算法
« Reply #2 on: January 24, 2014, 07:37:51 AM »
B为什么不以100usd/bts买usd?

Offline alt

Re: 讨论下bts成交撮合算法
« Reply #3 on: January 24, 2014, 08:11:35 AM »
或者以最新成交价为最优结果,买卖双方都有利。
在最新成交价不满足本单成交的情况下,以先下单的价为准。
你说的有一定道理,挂单应该有时间先后顺序,应该以时间早的价格为准。

Offline crazybit

  • Sr. Member
  • ****
  • Posts: 416
    • View Profile
Re: 讨论下bts成交撮合算法
« Reply #4 on: January 24, 2014, 08:12:28 AM »
这个例子里A以0.01bts的价格发行了usd,而b以0.1bts的价格买入,此时usd以0.1bts的价格成交,倘若此时b在以1bts的价格微量买入use会不会导致a瞬间暴仓呢?


Sent from my iPhone using Tapatalk

Offline alt

Re: 讨论下bts成交撮合算法
« Reply #5 on: January 24, 2014, 08:18:19 AM »
一种可能是他手误,输错了,这是很有可能的。

还有就是他的下单量大,一单单买显然不可能,比如当前卖单: 100usd/bts * 20, 99 usd/bts * 10, 98 usd/bts *10 .....
B的心里价位是90,他可以直接按 90 价位下单买 1000 usd

B为什么不以100usd/bts买usd?

Offline crazybit

  • Sr. Member
  • ****
  • Posts: 416
    • View Profile
Re: 讨论下bts成交撮合算法
« Reply #6 on: January 24, 2014, 08:52:10 AM »

这个例子里A以0.01bts的价格发行了usd,而b以0.1bts的价格买入,此时usd以0.1bts的价格成交,倘若此时b在以1bts的价格微量买入use会不会导致a瞬间暴仓呢?


Sent from my iPhone using Tapatalk
自己的问题刚刚想明白了,刚开始没有市场深度的时候这情况有可能发生的,市场深度跟量出来了就不太可能发生以上情况了。


Sent from my iPhone using Tapatalk

Offline alt

Re: 讨论下bts成交撮合算法
« Reply #7 on: January 24, 2014, 12:55:48 PM »
还有几点想讨论下:
1. 如果采用 Maker-Taker 机制,对价格稳定,刺激交易积极性有帮助吗?
2. 挂单时最好能支持两种,比如我要买 bitusd,挂单价格为 100bitusd/bts,我可以设定买 100 bitusd,或者也可以设置为拿 1bts买。注意这两种实际上是不同的。
« Last Edit: January 24, 2014, 12:59:14 PM by alt »

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2850
  • 丑,实在是太丑了 !
    • View Profile
Re: 讨论下bts成交撮合算法
« Reply #8 on: January 24, 2014, 03:16:28 PM »
对我来说有点复杂,慢慢看  慢慢领会一下
MUSE witness:mygoodfriend     vote for me

Offline alt

Re: 讨论下bts成交撮合算法
« Reply #9 on: January 25, 2014, 01:26:37 AM »
撮合时成交排序也有问题,限价但应该是优先撮合最低卖价和最高买价,其次才按下单时间优先
现在的撮合算法没考虑价格优先
比如现
1. A以 10usd/bts发行 usd
2. B以100usd/bts发行 usd
3. C以 1usd/bts 买 usd
我认为应该是撮合 B、C的单子,价格为 100usd/bts。现在的结果是撮合了 A、C的单子,价格为 1usd/bts


假定现在的市场是这样的:
1. A拿出 10bts,以 100 usd/bts 价格发行 1000个usd
2. B拿出 10bts,以 10 usd/bts 价格下单买 100 个usd

按现有算法成交结果:B 交出 10 bts,获得 100 usd;
A卖出 100个usd,对应抵押11(1+10)个BTS,剩下的 9bts 继续挂 100usd/bts发行价。

我认为合理的算法应该是:
B 应该按A的发行价100usd/bts,拿出 1 bts获得 100 usd,剩下9个 bts应保留。
A卖出的 100个usd,对应抵押应为 2(1+1)个BTS

Offline alt

Re: 讨论下bts成交撮合算法
« Reply #10 on: January 25, 2014, 01:30:53 AM »
谁英文好的,发帖到bts板讨论一下吧
成交算法对一个交易市场的影响是很大的,希望3I能对此充分展开讨论,确定算法后再开发代码。
如果确实是代码bug,我们也好动手帮忙修改。

 

Google+