1. Fleeting Liquidity
Markets have become so volatile and sensitive that even a relatively small market order, say 500 shares, in most assets will not be executed at the current best price and is very likely to trigger a price move.
2. Trading Complexity
It used to be that when choosing to make a trade you could either take it at the best price with a market order and pay the spread, or you could post it as a limit order and wait for another trader to pick it up. Nowadays, there is a myriad of order types with all kinds of bells and whistles and they even vary by exchange. And you never know if you’ve missed a subtle nuance of the order type you’ve programmed into your algo that will get you stuck with all the toxic order flow.
The market is divided into the haves who are colocated, get all the information first, and will beat you to a price every time, and the have-nots who trade outside the big colocation centers.
4. Fragmented Markets
There was a time where if you wanted to trade an NYSE stock you went to the NYSE and if you wanted to trade a NASDAQ stock you went to NASDAQ. When you programme your trades now you have about a dozen exchanges to worry about, and that is without counting all the dark pools and crossing networks. So not only do you have to worry about all the little nuances of each exchange, but with so many places to go, liquidity is spread real thin.
5. Mini Crashes
The Flash Crash of 2010 made it clear that with so much computerised trading and so many exchanges, you run the risk of sudden price drops which rapidly spread to other exchanges and markets. These unpredictable price collapses make trading a much riskier activity and you worry about whether at some point the whole system is going to collapse in the blink of an eye.
Disclaimer: This list is intentionally one-sided and somewhat exaggerated. It is intended for discussion purposes and should be viewed together with the accompanying list: The top 5 reasons people give for why they love to trade in today’s equity markets