We use LMSR for pricing and cost calculation, thus there is no need to wait for someone to buy. The LMSR model offers a spot price. Predyx is still considered a play money market due to the micro bets nature, not sure if that will be a taxable event, but our legal team is actively looking into any kinda regulations that we need to follow.
Our twitter post on LMSR:
100 sats \ 3 replies \ @ek OP 16h
Thanks for the credit! I assume @itsTomekK mentioned it to you?
Do you have plans to add an order book? My first MVP had one but now I think an automated market maker is more important at the beginning. But with an order book anyone can add liquidity so ideally one would have both just like exchanges with their market vs limit orders.
Do you have plans to add ecash? I’ve been thinking about using ecash to avoid the problem of the price becoming stale between invoice generation and invoice payment. You could use HODL invoices but I suspect the UX would suck.
reply
Yes @itsTomekK mentioned about you and delphi.market in early January I guess.
Yes, we'll be adding order book in releases 2. Actually we did plan to launch the beta with order book, but after some internal testing, we realized that it was not ready for the release yet (our order book is slightly different and still based on lmsr pricing, it just gives you the ability to limit buy/sell at certain price point). Yes I agree in the early stage with thinly traded markets AMM is a better choice I guess. I'm pretty sure manifold uses LMSR, we compared our dynamic pricing with manifold and the results were same. With due respect to Kalshi, I've also heard that their orderbook/liquidity is not up-to the mark at least for some traders.
Enough said about our order book, I'm very curious to learn about how you built your orderbook. Would love to see the code snippet, I promise I won't steal :)
I don't have much idea about ecash. Perhaps you can teach me more about it and I would love to explore. And yes, we've thought about the same (stale price) problem too. In such events our approach has been to create a limit order for the price that was quoted. Don't try it out but it does happens now, Its shows as "Active Orders" which never gets fulfilled. And if you can cancel the order, the sats go back to your internal wallet, however there is still a major bug and doesn't work at all :)
reply
100 sats \ 1 reply \ @ek OP 3h
I'm pretty sure manifold uses LMSR, we compared our dynamic pricing with manifold and the results were same.
Oh, interesting!
I'm very curious to learn about how you built your orderbook. Would love to see the code snippet, I promise I won't steal :)
No worries, happy to share! The matchmaking is in this commit. I linked to the query that I think you'll be the most interested in.
The main problem with that code was that orders required a 1:1 match. So it wasn't possible to match orders partially. If you wanted to sell X shares, another user had to buy all of them at once, it couldn't be multiple users with smaller orders. I wanted to add that later.
Don't try it out but it does happens now, Its shows as "Active Orders" which never gets fulfilled.
Oh, so that's what these active orders are about. I must admit, I did try to see if and how you handled this problem. You have to trust me that I would have reported it if I saw some way for infinite arbitrage 👀
reply
Just checked your SQL query, very complex 🤓 and you wrote everything in GO, that's really dope. I will explore your code in more details. Thank you sharing! Very helpful. We will definitely need independent order match at some point of time if we grow big. So we better start thinking about it now.
Yes please do report any infinite arbitrage, I would very much expect that from you :) BTW if you or anyone lost sats due to "Active Orders" issue, please me know. Happy to refund it.
reply