Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Cyberdyne on May 06, 2013, 02:16:43 AM



Title: Auto-generating volume in low-volume markets.
Post by: Cyberdyne on May 06, 2013, 02:16:43 AM
I was just thinking about how order books work and was considering how more obscure markets (eg. LTC/NMC) might be handy if volume on them could be made high enough to be useful.

Consider the following scenario:

User A:
Offering 1 XXX for 1 YYY      XXX/YYY

User B:
Offering 1 YYY for 1 XXX      YYY/XXX


In a normal order book, these two orders would balance each other and both get triggered and settled.

Now consider the following scenario:


User A:
Offering 1 XXX for 1 YYY      XXX/YYY

User B:
Offering 1 YYY for 1 ZZZ      YYY/ZZZ

User C:
Offering 1 ZZZ for 1 XXX      ZZZ/XXX


In a traditional exchange engine, none of the above orders would get triggered, despite the fact that everyone's desired currency and amount is on the table. A better system would allow this kind of situation to be triggered and settled for all three participants.

If we think of the above as BTC, LTC, NMC (and keep the inter-currency exchange rates at 1:1 to make the maths easier), then indeed the choice most exchanges seem to make, is to not offer a LTC/NMC market at all, and only let users choose BTC/LTC or BTC/NMC. If a user wants to change LTC to NMC, he has to go via BTC.

Even if an exchange makes an 'obscure' market available, lack of volume in that market (eg an LTC/NMC market) could make using it impractical anyway, and force users into doing two trades (via BTC) just because those two main markets have more volume.

What I propose, is a system where volume for the smaller market is automatically generated from orders in the first two, and orders in it are dynamically connected to the orders in the higher volume markets.

For example, consider again:

User A:
Offering 1 XXX for 1 YYY      XXX/YYY

User B:
Offering 1 YYY for 1 ZZZ      YYY/ZZZ

User C:
Offering 1 ZZZ for 1 XXX      ZZZ/XXX

Now, these would normally stay untriggered, but what if upon the first two orders coming in, the system automatically created a 'ghost' order:

System:
Offering 1 XXX for 1 ZZZ

This would not only satisfy User C's order when it came in, but would then have to be automatically connected to the original two orders in order to settle all three.

User A --> 1 XXX --> User C --> 1 ZZZ --> User B --> 1 YYY --> User A

The specific logic for this is yet to be worked out and obviously this will be incredibly more complicated when we take different rates and different order amounts into consideration, not to mention partial orders will need to work too.

Please discuss :)


Title: Re: Auto-generating volume in low-volume markets.
Post by: Zeilap on May 06, 2013, 02:26:03 AM
FYI this is already done (http://cross-matching.betfair.com.au/) at a very similar type of exchange for the same reason.


Title: Re: Auto-generating volume in low-volume markets.
Post by: Cyberdyne on May 06, 2013, 02:31:24 AM
FYI this is already done (http://cross-matching.betfair.com.au/) at a very similar type of exchange for the same reason.

Great, I guess I would have been surprised if it wasn't being done *somewhere* yet. I'd love to see some maths behind it.

Anyone in crypto currency doing it?

One other thought is that the exchange gets twice as much commission when they make people go NMC->BTC->LTC.



Title: Re: Auto-generating volume in low-volume markets.
Post by: Cyberdyne on May 06, 2013, 01:53:01 PM
I noticed today that Cryptonit has many many different small markets so I thought maybe just maybe they have implemented this idea, but no, there's practically nothing happening at all on them. Check NMC/FTC for example:

https://cryptonit.net/exchange/nmc/ftc