The stock market as a single, very big piece of multithreaded software
arstechnica.com
arstechnica.com
If only all multithreaded programs behaved that well.
[edit: added parenthetical "(at the time)", thanks chr15.]
Report of SEC finding [PDF]: http://www.sec.gov/news/studies/2010/marketevents-report.pdf
75,000 e-mini contracts is not an astronomical amount. Orders of this size are not uncommon.
To really understand what happened one must answer the question: what are the market conditions we have created such that a normal sized order can cause such a dislocation?
A lot of this has to do with the practices of the HFT 'liquidity providers.' This is a complex topic, but the flash crash demonstrated what a lot of people have been saying for years: volume != liquidity, the HFT shops generate volume, not liquidity and engage in some practices (quote-stuffing, sub-pennying etc) which serve to systemically destabilize the markets. (and overload the market infrastructure)
http://www.zerohedge.com/article/refuting-secs-lies-core-fla...
The blog here is zerohedge, but the data is from nanex.
"Between 2:45:13 and 2:45:27, HFTs traded over 27,000 contracts, which accounted for about 49 percent of the total trading volume, while buying only about 200 additional contracts net... "
While buying only 200 additional contracts...HFT algo's pinging the market with orders never placed :D
A) You can't ping the market with "orders never placed." You can place orders which may or may not be filled. In this case, they were filled.
B) They are talking about trade volume, not order volume. Further, "200 additional contracts net". Thus means the HFTs immediately purchased 27,000 contracts and later resold 26,800 of them to someone else. Lastly, your laptop can probably process 27,000 trades in less than one second.
This is why the market tends to correct errors quickly. Fixing things == making money, breaking things == losing money.
...stop-loss orders to lock in profits...
Go learn what a stop loss order is. I blame the retail investor for placing an order he doesn't understand.
So all those people that wanted to protect their hard earned investments (incl. 401k's) at a reasonable level "broke" things and HFT "corrected" them!? In my world that's actually called stealing.
If you placed stop limit orders, you didn't lose a bundle and you also didn't harm the market very much. If you placed a stop limit on Accenture at 40, you lost $1/share. That's a hit, but not a ridiculous one. That's the penalty for telling the market that Accenture should be priced at $40 when it should really be priced at $41.
A lot of retail investors actually did place stop loss orders. That's why Accenture traded at $0.01 (note: those trades were broken). Bargain seeking HFT's and daytraders bought at $0.01, sold at $0.05, and quickly pushed the price of Accenture back up to $40.0 or so.
The market will hurt you if you give it bad information. The worse the information, the more you lose. If you don't understand this you should not trade.
We are not slaves of the Market, we shouldn't give it any information, it should give us information. That's the utility of the market you know.
When the game becomes "who has the fastest program to rip off this stupid risk-averse 401k guy trying to make few basis points above CD" Mr. Market totally defied it's purpose. That's when we should call the butcher and rip some tentacles off.
When we're buying or selling, we have to give the market information as to our buy or sell price. We have to give information to the market in order to participate in it. The information coming out of the market, after all, is merely the aggregation of the information we put into it.
If the information you give to the market is "sell at any price" when what you actually meant was "sell at $40 or more", you messed up. Don't blame the market when you give it the wrong information and it takes advantage of your mistake; if you offer a ridiculous bargain, the job of the market is to allow others a chance to jump at that bargain, which is exactly what they did.
First of all, very elitist from you (even though I suppose you're one of them too).
And second, actually not true. As I said, no (or almost no if you like) retail investor is stupid. All they wanted to do is to protect their positions at a reasonable level depending on variety of factors like entry price, relation of the price to some moving average etc. etc. So calling that stupid and being equal to "offering a bargain" or giving Mr. Market "wrong information" is itself stupid at best.
I believe some retail investors attempted to "protect their positions at a reasonable level" by using the wrong tool, namely, a "stop loss" order (which provides a sale at any price) rather than, say, a "stop limit" order (which provides a sale with a price floor.) This was a bad decision on their part, which in the case of the "flash crash" led to them offering their stocks at bargain prices (like Accenture for a penny.) Simply using the right tool would have protected these investors from taking such severe portfolio hits.
Hopefully, some good came out of this and people became more careful.
A stock market with round the clock, instantaneous transactions is one of the most efficient markets that exist. Instability would suggest that it frequently allows for inefficient outcomes. A stock market's prices are determined exactly by buyer demand and seller supply. It corrects itself in the event of freak transactions (like the flash crash) and if it doesn't correct itself, that means the supply and demand have changed and the price of stocks nearly instantly reflect those changes.
It's probably an analogy with limited applicability, but I do think it might be interesting to examine the computational properties of financial markets, try to see to what extent arbitrary programs can be encoded in them, etc.
http://dpennock.com/publications.html
One very popular result (major media attention) along these lines is this paper, which proves that pricing a certain type of CDO is an NP-complete problem:
http://www.cs.princeton.edu/~rongge/derivative.pdf
(Side note: this paper really pisses me off because they did not cite ANY of the prediction market literature. It's hard to believe this was not on purpose.)
A couple of things:
1. E-mini futures don't give rebates
2. He seems to suggest that different algos from different companies were knowingly trying to collude with each other to get these nonexistent rebates. This seems pretty far-fetched.
My favorite theory is a purely technical one. I don't have much supporting evidence beyond the linked site though:
"""In summary, quotes from NYSE began to queue, but because they were time stamped after exiting the queue, the delay was undetectable to systems processing those quotes. The delay was small enough to cause the NYSE bid to be just slightly higher than the lowest offer price from competing exchanges. This caused sell order flow to route to NYSE -- thus removing any buying power that existed on other exchanges. When these sell orders arrived at NYSE, the actual bid price was lower because new lower quotes were still waiting to exit a queue for dissemination."""
Original report: http://www.nanex.net/20100506/FlashCrashAnalysis_Intro.html More news from the same company: http://www.nanex.net/FlashCrash/FlashCrashAnalysis.html
In addition to the crash itself, they also have interesting charts from various algorithms behaving strangely.
Now, you might ask, what is the higher purpose of all this trading, if all of it is profit seeking? That's pretty simple also. These trades help to determine the fair market price of a contract. The algos that consistently make the "right" trade survive ("right" defined as predicting future market price), and the ones that don't eventually get shut down. So even when the trading is non-utilitarian, there still is a greater purpose. That purpose is price discovery.
Minds are processes, reality is shared memory. Crashes happen under suitably bad conditions (e.g. WWII).
I don't see how this per se offers any real insight. You can apply the analogy to almost anything.
In HHGG, the Earth is just a massive computer for calculating the question to the answer of life the universe and everything.
All the biological components are merely instances and sub-processes spawned by the main program.
It's basically saying the stock market is a giant distributed system with a bunch of independent agents, which erm it is...
this analogy to threading just doesn't add anything, it's just the author's model for agents acting concurrently, threading is a low level OS thing not the fundamentals of concurrent action.