Author Topic: Market making contest, stage one  (Read 24595 times)

0 Members and 1 Guest are viewing this topic.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3896
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: Planning a market making contest
« Reply #30 on: October 15, 2019, 09:26:13 am »
USDT from existing gateways on the DEX has no volume or market depth, not sure why this would be a focus rather than ETH. Depth on OPEN.USDT is 40 USDT on ask and 11085 BTS on the Bid. Depth on GDEX.USDT is 35 USDT on the ask and 6100 BTS on the Bid.

If the reason is "USDT is supported on many exchanges and we want to promote BTS trading against USDT which is the biggest stablecoin" then maybe there is merit in that but still, its not where the market is at currently. Probably USDT would be traded more actively if it were an included asset in this proposal however.
The goal is to make the market, and attract traders to the DEX, so we don't only put efforts on the markets where there is already SOME liquidity in the DEX. The real reason for me is that BTS/ETH pairs on CEX's have too little liquidity right now. I do agree that ETH is a better asset for trading since it requires less trust on one 3rd party. I think we can add ETH to the contest or a new contest at an appropriate time.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3896
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: Planning a market making contest
« Reply #31 on: October 15, 2019, 09:38:37 am »
For illustration purposes, let's say the market currently has a wide spread. And now the MM rewards program starts. Then a MM places a sizable sell order just below the best ask, and then also places a very small order on the bid side within 1% of his large order on the ask. Should he get full credit for the large order on the ask within 1% of the best bid? Personally, i think the order should have to be within 1% of equivalent liquidity on the opposite side. Or maybe not equivalent...but perhaps based on the 4:1 ratio. So an order on the ask would be compared (distance-wise) to 4x liquidity on the bid (some of it may be within 1%, some within 2%, etc). Likewise, orders on the bid would be compared distance-wise to 0.25x liquidity on the ask. See what i mean?

The small buy order would get quickly eaten as there will be many participants and only a few trading pairs.

Yes, ideally it would get eaten. But you really have no idea if it will or not. And even if it does, maybe then they will put up another small order. I'm just saying... under the current proposal, one could earn rewards by adding liquidity almost entirely to the sell side, for example. Yes, 4:1 ratio provides more incentive to add liquidity to the buy side (which I like), but that may not be enough to overcome bear market forces. So I'm proposing a way to ensure a little more balance. AT LEAST require there to be SOMEONE to be providing opposing liquidity, even if it's not the same MM. If I remember correctly, there were similar liquidity programs on traditional exchanges (equities, etc) that required EACH market maker to be on BOTH sides in order to qualify for rewards.
As long as all the gateways are operational, I think the arbitrage bots will balance the markets.

How to measure the performance of gateways is a bit hard though.
I got where the issue is.

BTS whales like alt can easily put huge sell walls on the market that nobody has that much money to buy and ruin the contest even the market, worse they would even get rewarded by doing so, that's something we don't want to see. This is not just an imagination but has happened in the past, in the beginning of this downtrend, alt has left a huge margin call wall on the BTS/bitUSD market which effectively helped the downtrend.

On the other hand, sell-side liquidity does have some value as it makes it easier for strong hands to buy in big trunks.

I think one solution is to make the sell-side reward as small as possible, currently the ratio is 1:4, so perhaps we need to change it to 1:9 or even 1:99.

Another solution is to do the sell-side reward only when "we are ready", that said, reward buy-side liquidity from the beginning, but only start rewarding sell-side liquidity after we have gain some buy-side liquidity, even postpone it forever.

Thoughts?
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Online chigbolu

  • Jr. Member
  • **
  • Posts: 20
    • View Profile
  • BitShares: vnc-7
Re: Planning a market making contest
« Reply #32 on: October 15, 2019, 12:52:26 pm »
USDT from existing gateways on the DEX has no volume or market depth, not sure why this would be a focus rather than ETH. Depth on OPEN.USDT is 40 USDT on ask and 11085 BTS on the Bid. Depth on GDEX.USDT is 35 USDT on the ask and 6100 BTS on the Bid.

If the reason is "USDT is supported on many exchanges and we want to promote BTS trading against USDT which is the biggest stablecoin" then maybe there is merit in that but still, its not where the market is at currently. Probably USDT would be traded more actively if it were an included asset in this proposal however.
The goal is to make the market, and attract traders to the DEX, so we don't only put efforts on the markets where there is already SOME liquidity in the DEX. The real reason for me is that BTS/ETH pairs on CEX's have too little liquidity right now. I do agree that ETH is a better asset for trading since it requires less trust on one 3rd party. I think we can add ETH to the contest or a new contest at an appropriate time.
ETH pairs should be there why USDT it should be ETH however this just my opinion... The contest is good for the Dex

Offline Crypto Kong

  • Full Member
  • ***
  • Posts: 99
    • View Profile
Re: Planning a market making contest
« Reply #33 on: October 15, 2019, 03:39:46 pm »
For illustration purposes, let's say the market currently has a wide spread. And now the MM rewards program starts. Then a MM places a sizable sell order just below the best ask, and then also places a very small order on the bid side within 1% of his large order on the ask. Should he get full credit for the large order on the ask within 1% of the best bid? Personally, i think the order should have to be within 1% of equivalent liquidity on the opposite side. Or maybe not equivalent...but perhaps based on the 4:1 ratio. So an order on the ask would be compared (distance-wise) to 4x liquidity on the bid (some of it may be within 1%, some within 2%, etc). Likewise, orders on the bid would be compared distance-wise to 0.25x liquidity on the ask. See what i mean?

The small buy order would get quickly eaten as there will be many participants and only a few trading pairs.

Yes, ideally it would get eaten. But you really have no idea if it will or not. And even if it does, maybe then they will put up another small order. I'm just saying... under the current proposal, one could earn rewards by adding liquidity almost entirely to the sell side, for example. Yes, 4:1 ratio provides more incentive to add liquidity to the buy side (which I like), but that may not be enough to overcome bear market forces. So I'm proposing a way to ensure a little more balance. AT LEAST require there to be SOMEONE to be providing opposing liquidity, even if it's not the same MM. If I remember correctly, there were similar liquidity programs on traditional exchanges (equities, etc) that required EACH market maker to be on BOTH sides in order to qualify for rewards.
As long as all the gateways are operational, I think the arbitrage bots will balance the markets.

How to measure the performance of gateways is a bit hard though.
I got where the issue is.

BTS whales like alt can easily put huge sell walls on the market that nobody has that much money to buy and ruin the contest even the market, worse they would even get rewarded by doing so, that's something we don't want to see. This is not just an imagination but has happened in the past, in the beginning of this downtrend, alt has left a huge margin call wall on the BTS/bitUSD market which effectively helped the downtrend.

On the other hand, sell-side liquidity does have some value as it makes it easier for strong hands to buy in big trunks.

I think one solution is to make the sell-side reward as small as possible, currently the ratio is 1:4, so perhaps we need to change it to 1:9 or even 1:99.

Another solution is to do the sell-side reward only when "we are ready", that said, reward buy-side liquidity from the beginning, but only start rewarding sell-side liquidity after we have gain some buy-side liquidity, even postpone it forever.

Thoughts?

I would be in favour of only rewarding buy orders that support BTS price, we should not create a situation where we are rewarding BTS holders for putting their BTS up for sale. Those who want to earn the most from this will place buy orders in the 1% bracket, some of those orders will get filled and they will instantly put BTS back up for sale at a price close to what they just paid so they can earn the reward again, this back and forth will create sell side liquidity. There is no need to reward sell orders.

Offline tbone

  • Hero Member
  • *****
  • Posts: 636
    • View Profile
  • BitShares: tbone2
Re: Planning a market making contest
« Reply #34 on: October 15, 2019, 06:58:45 pm »
For illustration purposes, let's say the market currently has a wide spread. And now the MM rewards program starts. Then a MM places a sizable sell order just below the best ask, and then also places a very small order on the bid side within 1% of his large order on the ask. Should he get full credit for the large order on the ask within 1% of the best bid? Personally, i think the order should have to be within 1% of equivalent liquidity on the opposite side. Or maybe not equivalent...but perhaps based on the 4:1 ratio. So an order on the ask would be compared (distance-wise) to 4x liquidity on the bid (some of it may be within 1%, some within 2%, etc). Likewise, orders on the bid would be compared distance-wise to 0.25x liquidity on the ask. See what i mean?

The small buy order would get quickly eaten as there will be many participants and only a few trading pairs.

Yes, ideally it would get eaten. But you really have no idea if it will or not. And even if it does, maybe then they will put up another small order. I'm just saying... under the current proposal, one could earn rewards by adding liquidity almost entirely to the sell side, for example. Yes, 4:1 ratio provides more incentive to add liquidity to the buy side (which I like), but that may not be enough to overcome bear market forces. So I'm proposing a way to ensure a little more balance. AT LEAST require there to be SOMEONE to be providing opposing liquidity, even if it's not the same MM. If I remember correctly, there were similar liquidity programs on traditional exchanges (equities, etc) that required EACH market maker to be on BOTH sides in order to qualify for rewards.
As long as all the gateways are operational, I think the arbitrage bots will balance the markets.

How to measure the performance of gateways is a bit hard though.
I got where the issue is.

BTS whales like alt can easily put huge sell walls on the market that nobody has that much money to buy and ruin the contest even the market, worse they would even get rewarded by doing so, that's something we don't want to see. This is not just an imagination but has happened in the past, in the beginning of this downtrend, alt has left a huge margin call wall on the BTS/bitUSD market which effectively helped the downtrend.

On the other hand, sell-side liquidity does have some value as it makes it easier for strong hands to buy in big trunks.

I think one solution is to make the sell-side reward as small as possible, currently the ratio is 1:4, so perhaps we need to change it to 1:9 or even 1:99.

Another solution is to do the sell-side reward only when "we are ready", that said, reward buy-side liquidity from the beginning, but only start rewarding sell-side liquidity after we have gain some buy-side liquidity, even postpone it forever.

Thoughts?

Yes, I think you're right that this should be skewed MUCH further toward rewarding buy-side liquidity, and not so much sell-side. I like the idea of going with 99:1. This way it's coded to reward both sides (ofc starting with very skewed ratio), and later the rewards can easily be shifted IF/when necessary by simply adjusting a ratio parameter. Also, in terms of public perception, it doesn't sound right to only pay for buyers, so I think it's better to at least have symbolic rewards on sell-side.

By the way, I think it's best not to call this a "contest". That sounds too retail and short-lived (although do I think retail trader contests should also be conducted as a complementary effort). But I believe the type of market maker incentive/reward program we are discussing here should be viewed as something much more serious than periodic retail trader contests, and we should also probably expect something like this to be more ongoing, AT LEAST until markets become more mature.

For those that are not sold on the idea of this effort, they must understand a) this is an exchange, b) without liquidity, retail traders will NOT use this exchange (and in that case we might as well just give up), c) liquidity does not spontaneously appear and must be incentivized. These are the realities.


Offline tbone

  • Hero Member
  • *****
  • Posts: 636
    • View Profile
  • BitShares: tbone2
Re: Planning a market making contest
« Reply #35 on: October 15, 2019, 07:12:57 pm »
By the way @abit, I'm not sure how you planned to implement the ratio to begin with i.e. did you plan to use the ratio as a multiplying factor (e.g. 0.01x for sell side and 0.99x for buy side) in calculating % share of a single reward pool? Or did you plan to simply have 2 separate reward pools, one for buy side and one for sell side (sized according to the ratio)?  It occurred to me that the latter would probably be more preferable, that way there's no chance of sell-side orders earning much more than expected.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3896
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: Planning a market making contest
« Reply #36 on: October 15, 2019, 07:55:57 pm »
By the way @abit, I'm not sure how you planned to implement the ratio to begin with i.e. did you plan to use the ratio as a multiplying factor (e.g. 0.01x for sell side and 0.99x for buy side) in calculating % share of a single reward pool? Or did you plan to simply have 2 separate reward pools, one for buy side and one for sell side (sized according to the ratio)?  It occurred to me that the latter would probably be more preferable, that way there's no chance of sell-side orders earning much more than expected.
Yes, separate reward pools.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline Permie22

  • Jr. Member
  • **
  • Posts: 22
    • View Profile
  • BitShares: Permie
Re: Planning a market making contest
« Reply #37 on: October 15, 2019, 08:55:14 pm »
For illustration purposes, let's say the market currently has a wide spread. And now the MM rewards program starts. Then a MM places a sizable sell order just below the best ask, and then also places a very small order on the bid side within 1% of his large order on the ask. Should he get full credit for the large order on the ask within 1% of the best bid? Personally, i think the order should have to be within 1% of equivalent liquidity on the opposite side. Or maybe not equivalent...but perhaps based on the 4:1 ratio. So an order on the ask would be compared (distance-wise) to 4x liquidity on the bid (some of it may be within 1%, some within 2%, etc). Likewise, orders on the bid would be compared distance-wise to 0.25x liquidity on the ask. See what i mean?

The small buy order would get quickly eaten as there will be many participants and only a few trading pairs.

Yes, ideally it would get eaten. But you really have no idea if it will or not. And even if it does, maybe then they will put up another small order. I'm just saying... under the current proposal, one could earn rewards by adding liquidity almost entirely to the sell side, for example. Yes, 4:1 ratio provides more incentive to add liquidity to the buy side (which I like), but that may not be enough to overcome bear market forces. So I'm proposing a way to ensure a little more balance. AT LEAST require there to be SOMEONE to be providing opposing liquidity, even if it's not the same MM. If I remember correctly, there were similar liquidity programs on traditional exchanges (equities, etc) that required EACH market maker to be on BOTH sides in order to qualify for rewards.
As long as all the gateways are operational, I think the arbitrage bots will balance the markets.

How to measure the performance of gateways is a bit hard though.
I got where the issue is.

BTS whales like alt can easily put huge sell walls on the market that nobody has that much money to buy and ruin the contest even the market, worse they would even get rewarded by doing so, that's something we don't want to see. This is not just an imagination but has happened in the past, in the beginning of this downtrend, alt has left a huge margin call wall on the BTS/bitUSD market which effectively helped the downtrend.

On the other hand, sell-side liquidity does have some value as it makes it easier for strong hands to buy in big trunks.

I think one solution is to make the sell-side reward as small as possible, currently the ratio is 1:4, so perhaps we need to change it to 1:9 or even 1:99.

Another solution is to do the sell-side reward only when "we are ready", that said, reward buy-side liquidity from the beginning, but only start rewarding sell-side liquidity after we have gain some buy-side liquidity, even postpone it forever.

Thoughts?

This Market Making contest/reward is a great plan. Thanks abit.

DEXBot's CEX-DEX feature for cli (hopefilly GUI in time too) will have a beta release this month, being able to mirror (copy and paste) CEX orderbooks onto the DEX. This will be basic, and allow user testing and unit testing before more advanced refinement to enable full arbitrage afterwards.

This mirroring CEX orderbooks will add liquidity to the DEX for BTS/BTC and will help participants in this competition keep their orders with a low spread to target the maximum reward.


The CEX orderbook will be normalised so that DEXBot users with any amount of funds will be able to mirror the CEX orderbook depth onto the DEX. Adding a % offset so that orders placed on the DEX at a % higher/lower price than the CEX will come soon after the first beta release. So that when DEX limit-orders are taken DEXBot will be able to close the trade with a CEX market-order by taking an offer from the CEX for a % gain. In effect moving liquidity from the CEX onto the DEX.
Standard arbitrage that takes on the DEX and on the CEX will come afterwards.

CEX orderbook mirroring to add liquidity in the beta release this month.
%-offset for mirrored arbitrage soon after.
Standard arbitrage soon after that.

CEX orderbook mirroring is coming first because it's adds the most liquidity quickly, and because the code required to do so is important to for the more advanced parameters. Testing of this code needs to be done first else there will be problems in future.

Offline George_Bitspark

  • Full Member
  • ***
  • Posts: 67
  • Co-Founder and CEO of Bitspark
    • View Profile
    • Bitspark
Re: Planning a market making contest
« Reply #38 on: October 16, 2019, 01:57:13 am »
The weighting towards buyside is interesting, yes that should probably be something higher than 1:4, perhaps 1:10.
Bitspark- Cash to Cryptocurrency

Offline matle85

  • Full Member
  • ***
  • Posts: 134
    • View Profile
Re: Planning a market making contest
« Reply #39 on: October 17, 2019, 08:49:23 am »
Good initiative - I agree the ratio should be very heavily skewed in favour of the buyers.. Kong's suggestion that sellers arent rewarded isnt a bad one, I don't think that would discourage market makers but it would (hopefully?) discourage massive/obstructive sell walls.

Offline blockchained

Re: Planning a market making contest
« Reply #40 on: October 19, 2019, 02:43:42 pm »
Good initiative, count us in!
Please list your assets, and provide proofs that all your assets are fully backed.

https://audit.rudex.org

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3896
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: Planning a market making contest
« Reply #41 on: October 20, 2019, 10:29:25 am »
Good initiative, count us in!
Please list your assets, and provide proofs that all your assets are fully backed.

https://audit.rudex.org
Thanks a lot. Updated RUDEX.BTC to OP. Didn't see USDT in your list.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline bench

Re: Planning a market making contest
« Reply #42 on: October 20, 2019, 11:30:29 am »
https://audit.rudex.org

How can I withdraw and deposit BTC and ETH on rudex? The UI has no entries here?
Be part of the change and vote for the bitshares-vision proxy!

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3896
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: Planning a market making contest
« Reply #43 on: October 20, 2019, 11:39:11 pm »
Where would the snapshots be hosted so everyone can see openly the calcs?
Just got some data.

At block number 42002257, there are 4020 open orders in 9 markets: BTS/[OPEN, BRIDGE, RUDEX, GDEX, SPARKDEX, XBTSX].[BTC, USDT].

A snapshot file containing all orders in those markets at that block in JSON format is 1,116,597 bytes, around 1Mbyte.

This means we'll need around 30GB of disk space for the snapshots every day.

I can provide the program to generate the snapshots. Who would like to host the data?

To save disk space, perhaps better remove some unneeded data from the snapshot. Still tweaking the code.

UPDATE:
compacted snapshot files are around 60K each, which means around 2GB per day. Could be even smaller after compressed.

UPDATE:
Final size is about 10% after compressed.
« Last Edit: October 21, 2019, 04:10:54 pm by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3896
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: Planning a market making contest
« Reply #44 on: October 21, 2019, 01:44:30 am »
Sample reward statistics for 2019-10-20 (last 2794 blocks):
Reward ratio for sellers:buyers = 1:99

BTS/BTC pair, BTS sellers
group 1(depth 0%-1%), total reward 1.42619 BTS
group 2(depth 1%-2%), total reward 9.02762 BTS
group 3(depth 2%-3%), total reward 0.69030 BTS
group 4(depth 3%-5%), total reward 0.61074 BTS
group 5(depth 5%-7%), total reward 0.10692 BTS
group 6(depth 7%-10%), total reward 0.40895 BTS

BTS/BTC pair, BTS buyers
group 1(depth 0%-1%), total reward 30.93281 BTS
group 2(depth 1%-2%), total reward 134.15809 BTS
group 3(depth 2%-3%), total reward 162.62307 BTS
group 4(depth 3%-5%), total reward 271.09139 BTS
group 5(depth 5%-7%), total reward 86.63264 BTS
group 6(depth 7%-10%), total reward 114.14085 BTS

No reward for BTS/USDT pairs due to too poor liquidity.

Data source (snapshots): https://github.com/abitmore/bitshares-core/releases/download/2.0.170531-win/1020.tgz

Code: https://github.com/abitmore/bitshares-core/tree/ugly-3.0

Quote
{:BTC=>{:sells=>{1=>{:score=>(66341889478591/5000000000000), :reward=>142619}, 2=>{:score=>(33594790312037/400000000000), :reward=>902762}, 3=>{:score=>(8027693808477/1250000000000), :reward=>69030}, 4=>{:score=>(28409653240827/5000000000000), :reward=>61074}, 5=>{:score=>(9947639320371/10000000000000), :reward=>10692}, 6=>{:score=>(38046111205481/10000000000000), :reward=>40895}}, :buys=>{1=>{:score=>(2906851748571/1000000000000), :reward=>3093281}, 2=>{:score=>(2521449468611/200000000000), :reward=>13415809}, 3=>{:score=>(38205472718589/2500000000000), :reward=>16262307}, 4=>{:score=>(318441112347/12500000000), :reward=>27109139}, 5=>{:score=>(40705676444139/5000000000000), :reward=>8663264}, 6=>{:score=>(13407707343421/1250000000000), :reward=>11414085}}}, :USDT=>{:sells=>{}, :buys=>{}}}
« Last Edit: October 21, 2019, 03:31:54 am by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit