What is happening here is really quite simple, and doesn't deserve an entire blog post.<p>There are two exchanges, A and B, and a market maker Jill is quoting (say) 10,000 shares on each of those two exchanges for $17.<p>Big institutional trader Jack sees the 20,000 shares and decides that he wants to buy 15,000 of them, so he sends two orders for 7,500 shares each to A and B. Because of various effects (network latencies, routing switching delays, whatever) his order arrives at exchange A first, and is immediately filled at $17.<p>Jill, who has her computer co-located at exchange A, sees that she has sold 7,500 shares for $17, and realizes that there is demand for shares. Because of this demand, she decides to raise her prices. She immediately cancels her remaining 2500 shares on exchange A and replaces them with 10,000 shares at $17.05 and sends an instruction to do the same thing at exchange B.<p>Because Jill has fast computers and low-latency connections, her cancellation arrives at exchange B before Jack's buy order, so Jack is told that there are no longer shares available on exchange B at $17.<p>RESULT: Jack is filled for 7500 shares at $17 (half of what he requested) and the new market best offer is $17.05. Jack is welcome to submit another order for $17.05 if he wants to buy at that price. Jill is now short 7500 shares at $17, and will try to buy them back at a lower price (she may or may not succeed - until she does, she is exposed to the risk of further price rises).<p>Jill was able to use her speed advantage to detect that there was additional demand to buy this stock, and raise the price at which she was willing to sell it before Jack had finished buying all that he wanted to. This is <i>exactly</i> the way that an efficient market is supposed to work - it reacts to fluctuating demand (and other information) to set appropriate prices.<p>I think there are several things that get glossed over while people are working themselves up about this -<p>1. Jack is upset because he couldn't buy 15,000 shares at the price he wanted to buy them. But Jack has no god-given right to be able to buy shares at the price he likes best. He is subject to the laws of the market, just like everyone else.<p>2. The <i>only</i> reason that Jill has a speed advantage over Jack is because she has paid for it! She has paid to co-locate her server at the exchange, and she has paid to use high-speed connections between exchanges. Are we going to declare that paying for a competitive advantage is suddenly immoral?<p>3. If Jack doesn't like this state of affairs, he has several options. He can invest in high-speed infrastructure as well. He can use smarter order-routing logic (e.g. adding delays to his orders so that they arrive at the exchanges approximately simultaneously, or splitting his large order up into multiple smaller orders). Or he can use a broker who will do these things for him. If Jack doesn't want to pay for any of these things, then he has to put up with lower quality execution. As much as he might wish it, the ability to buy as many shares as he wants at the price he wants them is not a universal human right.