Thursday, November 20, 2008

About the iPredict Market Maker

When you look at a stock on the iPredict public site, you may have noticed the regular nature of some buy and sell orders apparent in the order book, which you can see in the Advanced trading interface or on the home page of any stock (provided you are logged in). Many orders are for the exact same number of stocks. You may have even noticed regularity in the order prices.
That is the iPredict market maker (arrowed instances of this in the image above). The market maker seeds the market with offers to buy and sell, so that the first trader into the market after it opens has somebody to trade with immediately. The purpose of the market maker is to constantly seed the market with buy and sell orders ready for human traders to come in and fill. The effect of this seeding is to increase the liquidity of the market. Higher liquidity means better prediction.

The market maker is effectively another trader, albeit a hyperactive one. Each contract on your prediction market has its own market maker, and each contract's market maker is explicitly funded. You give the market maker a budget, and when that budget expires the market maker will stop making orders.

What rules does the market maker use to seed the market?

When a stock is created, the market maker is set up at the same time. The market is told how densely to seed the market. Offers to buy and sell are priced along an S-curve that varies between $0 and $1. Establishing the market requires the administrator to decide how steep the S-curve is, and how densely offers will be made along the S-curve.

Setting up the market in effect puts "notches" in the S-curve. These notches are the places where all offers to buy and sell and placed by the market maker for as long as its current settings persist. The administrator can change settings mid-steam – but as long as the settings remain unchanged these 'notches' are where all offers to buy and sell are made.
When the market is established, the administrator defines an equilibrium starting price. The market maker will then seed the market with offers to buy and sell. All notches below the equilibrium price are seeded with buy offers, and all notches above the equilibrium price are seeded with sell offers. All offers have the same number of stocks in them, generally we set this to 25 stocks.

The first trader into the market may decide to accept one of the orders on offer, or she could make her own offer for other traders to fill. Let's say she accepts a buy offer and sells to the market maker, and the entire order is filled, leaving a notch on the S-curve vacant.

The market then fills that empty notch with a new sell order for 25 stocks. The rule the market maker follows is to fill empty notches with new orders on the other side of the double auction. Offers by human traders occupying the same price as a notch are ignored by the market maker – the market maker will fill an empty notch of its own regardless of offers by other traders.

The market maker loses money on average – it will seed the market with offers without foresight and it will not react to news, unlike human traders. If the market maker runs out of money then it will stop seeding on the side of the market where it must make further outlays – that is, if money runs out then the market maker will stop making further buy offers on stock it is long on, and it will stop making further sell orders on stock it has a short position on. that can produce price instability in markets when other traders are not making buy and sell orders that are not immediately filled.

Our decisions on market maker settings – the steepness of the S-curve, and the number of stocks offered at each notch – is guided by two goals, one to produce a liquid market, and two to minimise the risk that the market maker runs out of funds.


JC said...

so are you guys turning a profit?

Matt Burgess said...

Actually no - the market maker loses a small amount of money in each contract on average.

JC said...

i mean, the ipredict business as a whole. is it working out as a profitable enterprise?

Matt Burgess said...

I think it's fair to say we are exceeding our targets at the moment!

JC said...

ah, thats good to hear. live long and prosper

BroadArrow said...

Could the market maker slow movements in price, particularly in stocks with low trading volumes or where the 'notches' are too close together, by creating offers inbetween the last trade and the next human offer? Isn't there a chance that the next person wanting to make a small trade will simply pick up the market maker offer rather than be forced to meet the next human trader?

Matt Burgess said...

BroadArrow, that's pretty much what the market maker does right now, in effect. It ignores human offers entirely and just constantly checks to see its own notches are filled and refills them when empty. In our experience, traders are often happy to accept an existing offer rather than make offers and wait - the result being that the next offer is very often from the market maker rather than a human.

Not sure if I've answered your question. There are certainly ways to tweak the market maker - as you say, rather than defining notches the market maker could 'aim for the gaps' and reduce the distance to the next offer. Or it could actively look for arbitrage opportunities between contracts. Unlimited possibilities.

Anonymous said...

why don't you react to news?

Luke H said...

Hi Matt,

Can you let us know of the plans for iPredict's future? More stocks after Christmas?

plutoman said...

Matt, have you considered offering stock in commodity prices (eg. oil or gold), exchange rates or share indices?
Will you put up a stock for the December CPI?

Matt Burgess said...

Hi all,

First, Anon - we'd like to but to do it it would have to be automated e.g. look for large price movements and adjust accordingly. We could wait for news to come in and adjust accordingly, but that would be hard work and may well bias results. We have to be careful. We have no immediate plans to change the market maker.

Second, yes new stocks on their way, and lots of them. A provision list at this stage is CPI, unemployment and GDP for each of the next four quarters, OCR movements, Fonterra final payout in 2009, and possibly some stocks around box office movie revenues.

We've had a lot of suggestions nad welcome more. I am oddly excited about running a SETI contract - will ET be found in the next 2-5 years.

Other good suggestions are around the medium and long term oil prices, Transmission Gully, company profits, retail mortgage rates, weather rainfall totals, Cook Strait ferry strikes.

In fact I think I'll post a list of all the great ideas we've had. I intend to launch new contracts tomorrow and more later in the week.