QUOTE (Karoline @ May 7 2010, 12:01 AM)
That seems a bit unlikely. I mean, if company A is 0.000001 seconds closer to the server than Company B... well, would that really matter when Company A and Company B still have to send the signal to do whatever from locations X and Y? And really, given the human reaction time of somewhere closer to half a second or so, does 0.000001 seconds really make any difference?
I'd be willing to bet they all have the same length cord connecting them anyway.
In short yes.
The long. That 0.000001 seconds does make a difference since a lot of trading is automated via triggers that a human creates. Let's say you bought a stock at $20 and you have a tolerance for 10% loss on that investment. That means when the stock price hits $18, you want to sell. Given that this was a matter of millions of stock (let's say 1,000,000 for the sake of argument) that was intended to be sold (instead of billions), each penny below $18 is a loss of $10,000 that you don't want. In the grand scheme it doesn't matter if you're the only person who is deciding to sell at $18, but if anyone else has a watch for $18, then you want to make sure you sell before he does, otherwise you will be selling below that $18. That's where the 0.000001 seconds come into play since all transactions are queued as a FIFO. If I get my transaction there at +0.001 seconds from when the stock price hit $18, and my opponent gets it there at +0.001001 seconds after it hits $18, I'll be sell at $18 and my opponent will be selling at a price below $18.
Also, that distance traveled has a double effect. If it takes 0.00001 seconds for something to travel from the server to switch, then it will take 0.00002 seconds just to receive notice of a stock price change and send the sell/buy transaction. So if my travel time is only 0.000005 seconds instead of 0.00001 seconds, then I can send and receive in the same amount of time that it takes someone to receive. The servers will also over tuned to over perform to minimize the amount of time taking to load data into memory and process something in the CPU. I'm pretty sure if I saw the specs on these servers and the load they handle, I would cry.