Takeaways
- DPM is slow to update the bet price since changing the price requires bets proportional to the pool size
- Assuming price is the ratio of the yes and no pools
- To move from 50:50 to 90:10 requires adding 4x the total previous size of both pools to the yes side
- As a consequence, bettors reacting to news events can take a majority of the profits simply by being first to recalibrate pricing
- E.g. moving the price from 60% to 90% before it resolves entitles you to ~66% of the profits in one simulation, though with some risk to yourself since you must put in a large bet
- Effectively means there's little reason to bet early because you never see much upside even if right
- There are a few promising ways to alleviate these problems
-
Switch to "DPM Squared" where the price is the ratio (Yes pool)^2 : (No pool)^2
- Quicker price movement when reacting to events
- Downside that traders cannot make as big bets as before because of price slippage
-
Charge a 1% fee for all transactions
- Prevents it being worth adding an arbitrarily large amount of money to a pool to capture all profits
-
Allow the market creator to retroactively end the market at a specified time
- They can end the market before the decisive news event. Subsequent bets get returned
- Profits go to those betting before the outcome is obvious
https://docs.google.com/spreadsheets/d/1UpnotS1tmjWct1YHriHsUQAt02DrM1uTajjyRUAKYVM/edit#gid=576707655
One of the advantages of our formulation of DPM is the way the price moves a bit slow in reaction to bets. Because the price is the ratio of the Yes and No pools, you have to make bets in proportion to the entire liquidity to move the price. This is good because you can accommodate more and larger bets from traders.
In contrast, LSMR's price is roughly the ratio of exp(yes pool) and exp(no pool), which moves very quickly. Traders don't like this because when they think they know something they can't make as much money since the price would move so quickly in the direction they bet.
Unfortunately, this advantage for DPM can also be a liability. When new information comes in, someone can make large bets to correct the price and capture a large share of the payout. That means other bettors earn less. With LSMR, the price moves so quickly that these large price corrections make a lesser amount of money. With an order book, the price can jump instantaneously, which is the best way for it to work.
This problem for DPM is compounded by a common scenario for how markets resolve. Often, there is a crucial news event that effectively resolves the market. Someone could then put in an arbitrarily large bet on the winning side, which allows them to take nearly all the profits if they bet high enough. (There is a slight risk that the market creator would resolve it differently of course.)
Charging a 1% fee on each transaction limits this attack a lot, but it doesn't solve the full problem. (In our simulation, you can bet $10k and come out ahead even with the 1% fee, while taking 83% of the No pot that could have compensated other bettors.)
Potential solutions
- Update our DPM to use a super-linear price function
- Price based on the ratio of the square of the Yes and No pools
- This seems to be the most practical solution and a middle ground between the linear system that's too slow to move and the exponential one that's too fast.
- Price based on the ratio of the exp of the Yes and No pools
- I think only an exponential converges in the sense that making an arbitrarily large bet couldn't take all the profits
- But, if you play around with this it feels like a toy — any significant bid moves the price a huge amount. Completely impractical.
- Let the market creator retroactively end the market at a given time.
- Any bets after that point would be returned. Kind of a useful feature generally.
- Solves the problem where an event jumps from 0.5 to near 1 on news, and the bettors who react to the news take most of the profit. The creator can resolve the market just before this event happened so those with good judgment earn their reward.
- Charge a 1% fee for all transactions
- Prevents it from being worth it to bid a huge amount when you are certain what the outcome would be, and thus take the profits from everyone else.
- Brainstorm: What if when placing a Yes bet for $x, we also forcibly sell say x * 0.25 from the No pool. That is, anyone with a No bet sells a fraction of their position until the No pool is has decreased by x * 0.25. In essence, we are forcing the No betters to sell a bit so that the ratio of the pools changes quicker.