Fat - Tailed Markets

Why do financial market data have fat tails?  The answer lies in part in human nature and in part in the structure of the auction process.  First consider a simple auction where an auctioneer, takes bids for an item that is for sale.  The entire market in this case is the audience.  The auctioneer has probably a limit below which the seller will keep the item, but otherwise he will take the best bid from the audience.  Now suppose you are a millionaire; an item comes up for sale that you would like to have.  If it is unique and you want it, you likely will be able to buy it, by out bidding anybody else in the audience.  But suppose there is a billionaire in the audience, who barely wants the item at all, but decides to buy it.  You don't have a chance of getting a good price for the item, and probably no chance of buying it at all.

Take a more mundane case.  You have found a house you want to buy, you make an offer, but you are told that there is another bidder who has made a better offer, with a deposit.  You are told how much.  What do you do?  If you are buying it with a mortgage, you may have some limit in mind of payments that you can afford--this will decide your upper limit.  The other bidder, probably has the same situation.  Suppose that you both have the same income, but that the other bidder has expenses of $100 a month less than you.  If he wants the house, he is probably going to get it, even if you want it more.

We have been supposing relatively unique items with situations of limited supply and demand.  Suppose there is a stock market, where shares of a company stock are traded--these are essentially identical.  The market is more or less run by a machine that is programmed with rules.  We know some of the rules, most markets run on a continuous double auction system, but we don't necessarily know exactly how it is programmed, so we will consider it a black box and try to make very few assumptions.

gr=GoldenRatio;

bbox=Graphics[Rectangle[{0,0},{gr,1}]];
a1=Graphics[Arrow[{{gr/5,1.45},{gr/5,1}}]];
a2=Graphics[Arrow[{{2gr/5,1.65},{2gr/5,1}}]];
a3=Graphics[Arrow[{{3gr/5,1.65},{3gr/5,1}}]];
a4=Graphics[Arrow[{{4gr/5,1.45},{4gr/5,1}}]];
a5=Graphics[Arrow[{{gr/2,0},{gr/2,-0.5}}]];
t1=Graphics[Text["Limit Buy Orders",{gr/5,1.5}]];
t2=Graphics[Text["Market\nBuy Orders",{2gr/5,1.75}]];
t3=Graphics[Text["Market\nSell Orders",{3gr/5,1.75}]];
t4=Graphics[Text["Limit Sell Orders",{4 gr/5,1.5}]];
t5=Graphics[Text["Market Transactions",{ gr/2,-0.6}]];
t6=Graphics[Text["Market Black Box",{gr+0.4,0.5}]];
Show[bbox,a1,a2,a3,a4,a5,t1,t2,t3,t4,t5,t6,ImageSize->350]

Orders are continually flowing into the system.  We have listed only four kinds, but there are some other variations on these that make things more complicated.  Suppose market buy and sell orders come into the market at a fairly slow and regular pace in roughly equal numbers.  The machine collects these over some very brief interval and matches them, if there are equal numbers of shares in each of the buy and sell categories, it matches them at some price between the highest price in the limit buy order book and the lowest price in the limit sell order book.  We presume that the machine is honest, but if the spread is large enough, it could easily be programmed to buy the market sell orders below the mid-point of the spread and then sell them above the mid-point, generating twice as many transactions and keeping some of the profit in the spread.  All the while the transaction occurs new orders are flowing into the limit order books and market orders are queuing up for the next matching period.

In the next period suppose there is a slight mismatch between buy and sell orders with a few extra sell orders.  The machine then matches up the first in line equal numbers of buy and sell market orders and executes them at the market price.  For the few extra sell orders it goes to the buy order book and matches them with the best offers.  When it outputs these prices, the records will show that the price has fallen.  If the order flows proceed at a rate that the machine can handle, there is little noise in the process.  But there may be lags in transmitting data that will create noise for the whole market system.  If everything were running on the same computer, the machine might easily keep up, but if orders are coming in from other computers on a network they will see the information with a lag due to the network; if some computers are not on the same network, but are linked via the internet the lags will be longer.  Price data generated by the machine will be delayed and orders may be entered as limit orders, but on arrival be in the range to be executed as market orders if the price has changed during the transmission time.

What might the structure of the order book look like?  It generally doesn't cost anything to place a limit order, so if you think that the stock might be a bargain at $10 below the current market price, there is nothing to stop you from placing that order.  And there will be others who will place orders at $8 below the market price and so on to those who place orders only a few pennies below the price.  Most of the time these extreme orders will never be executed and eventually expire, but suppose there is some unexpected news event, that affects the stock, then there may be a rush of market orders to sell the stock that far exceed the buy orders.  Some of the increase order flow will undoubtedly slow the machine matching a little and aggravate the lag times that exist in the system.  Suppose the price was trading at 50, at the time someone places a buy limit order of 48, but by the time that order arrives, the last price was 47, that buy order becomes a market order that is recorded at 47.  The buyer may be transiently happy, but others observing the output see a lower price than otherwise would have been recorded without the lag.  That increases selling pressure and new orders flow into the buy order book at ever lower prices.  Eventually your order to buy at 40 is executed and the market has dropped 20%.  

So far we have described a a deterministic system, and even though there is some noise, we might be able to predict what would come out of the system if we knew exactly what was going into it.  But it quickly gets complicated.  Very likely there is more than one market trading the same stock and imbalances can occur amongst the markets.  Another stock that is a supplier or a competitor to a company may have its price change in response to what happens to the stock that had an unusual event.  Then there will be speculators who have bought a stock on margin who will want to want to exit before they suffer huge losses.  Other speculators will borrow stock that might otherwise not ever be traded and sell it, planning to replace it at a lower price, thus making a profit.  In effect the amount of supply of stock in the market is increased by this activity and further cascade down the order book occurs.  These events can all occur faster than humans can absorb them, but they can have machines programmed to react quickly and with huge numbers of trades.

The two plots below show how quickly prices changed after the Federal Reserve meeting, with a decision released at 14:15 on October 31, 2007.

The following two charts show the changes in volume that occurred after the meeting.  It is not hard to imagine that large imbalances in market orders are likely to occur with such rapid change in volume.  On November 1, 332,923,200 shares were traded, the total number of shares outstanding was 471,130,000, it is very likely that the amongst shares traded, the same shares were bought and sold many times during the day on November 1.

A histogram shows that even at one minute intervals, log returns can have fat tails.

The stable distributions have fat tails; we will explore fitting financial data to stable distributions in the next section.  If you are not very familiar with statistical distributions, you may first want to take a side tutorial in the Real Estate Wing.  You can return at any point to the next section by selecting the financial tools button then the fitting market data button.

txcolor=RGBColor[181/255,18/255,27/255];
t1 = Graphics[Text[Hyperlink[Framed[Style["Financial Home", {txcolor, Bold, Larger}]], "../map/Overview.html"], {-5, 0}]];
t2 = Graphics[Text[Hyperlink[Framed[Style["Next", {txcolor, Bold, Larger}]],  "../r06/MarketData.html"], {0, -0.5}]];
t3 = Graphics[Text[Hyperlink[Framed[Style["Download Notebook", {txcolor, Bold, Larger}]], "../r05/FatTails.nb"], {5, 0}]];
t4 = Graphics[Text[Hyperlink[Framed[Style["Previous", {txcolor, Bold, Larger}]], "../r04/ReturnEvents.html"], {0, 0.5}]];

Show[ t1, t2, t3,t4, ImageSize -> 500]
CellPrint[TextCell["\n\n© Copyright " <>ToString[DateList[][[1]]]<>" mathestate    "<>DateString[DateList[],"DateShort"], "Text"]]

© Copyright 2010 mathestate    Mon 4 Jan 2010