> You're drastically overstating the costs. I can put a server at the Nasdaq data center using Lightspeed Trading as my broker for $1,000.

Prices have dropped then. When NASDAQ bought INET, my payment came up for $400/month to $6000/month without any change in the service I was receiving (and it did come with onerous reporting requirements that I didn't factor into the $6000 above). I've been out of the game for a while.
(But these $6000 was just payment to nasdaq -- hosting and comm line to my office was a few grands more; and that's just NASDAQ. each of the other exchanges had similar costs)

> Go read about why many of the high-frequency firms pulled out of the market. They pulled out because the exchange's data feeds themselves were starting to fall behind. Their data was suspect, just as was everyone elses. If your data feed is lagged 4 times out of the last 6 months then you might want to go look at DTN's NxCore product. It doesn't lag and it's costs are quite reasonable for anyone who might need data at that level of fidelity.

I have actually been out of the game myself recently, so I didn't actually experience the flash crash. But friends still in the industry told me that the ITCH feeds (and the other exchange direct high-speed feeds) weren't lagging, only the CQS and NBBO feeds were.

The point is, if you don't have the ITCH/ARCABOOK/MDP/EBS data today, you are already at a disadvantage. 10 years ago, a $1500/month Bloomberg or Reuters terminal gave you the same info as everyone else. Today, if you're looking at multiple markets, you need to spend $50000/month to not be disadvantages. Those are real numbers as of a few years ago. I'm surprised prices have dropped, because they were constantly going up all the time.

> Where? Please cite a specific exchange and point me to the specific order type in their documentation. I've read the specs of nearly every major futures and equities liquidity venue in the US, so I doubt this is a true statement.

Flashes are done by brokers, not by exchanges!

A broker gets your order; they are allowed 1 full second before they must fill it at the NBBO at that time. EXCHANGE ORDERS ARE NEVER FLASHED.

at time 0ms, you send a "BUY 100 INTL, LIMIT 110.13" to your broker. The broker must fill that at the NBBO if possible at 1000ms at the latest. So at 1ms, they say to all their "flash" partners "WOULD YOU LIKE TO FILL 100 INTL AT 110.13 OR LOWER?". Now, theoretically, those partners should just check their own book and reply. But practically, these partners also rush out to buy 110.13 at the Philadelphia Stock Exchange (where the NBBO is), so now the NBBO is no longer at 110.13. They do offer to sell it at 110.14 on ARCA. But at 1000ms (1 second later), the original client order which WOULD have been filled if the broker just went to PSE and NOT flashed it, CANNOT BE FILLED.

What the average client will do is probably say, "well, ok then -- I want Intel at 110.14". The broker now flashes this order, and our flashee guy from earlier is happy to fill the order -- locking a profit of 0.01 with essentially zero risk.
And if the client doesn't come back for 110.14? They'll just update the ARCA order to be 110.13; They're almost guaranteed to sell it to the same guy.

So, with some (small in practice) probability, the flashee pays a small commission; with large probability, they get free profit minus a small commission.

> Wrong, the purpose is to provide incentive for participants to trade at a specific exchange by giving them an opportunity to trade before the broader market does. For this they must improve the NBBO to match the flashed order.

That's theory. Practice of flashing is different. Note that exchanges DON'T wait this whole flashing second -- they either fill it locally immediately or route it to the NBBO. But brokers are allowed to do it.