It’s come time to code the dark market for CASTrader II, so I’ve been thinking about market structures. The more I think about the Continuous Double Auction (CDA) market, the more I think there’s something better, even though it’s been the basis for virtually every securities market around since replacing the call market in 1871 to 1885. Specifically, I don’t like the bid-ask spread, the simplicity of order types, and the complexity of automating trading with it. Because of these deficiencies, I think CDAs are inherently inefficient, albeit big, modern CDAs with decimal pricing and electronic arbitrage are a lot more efficient than they were even a few years ago. There is a sense of fairness to consider as well: some sophisticated trading strategies rely on location near the exchange to mint money (via scalping) on a millisecond timeframe, fueling low-latency arms races among the powerful players - few little guys stand a chance against such bad boys of Wall Street and elsewhere. Average Joe investors don’t stand much chance against such crooked shenanigans such as front-running mutual funds, either. Insider information is not required to front-run orders, however. Even little guys can front-run orders showing up in the market, which has led to another arms race of algorithmic trading where the big mutual and pension funds try to disguise their intentions as much as possible. But even a cagey little guy better make sure he’s not being front-run behind his back.
The biggest knock against CDA markets, in my opinion, is the relative complexity involved to come up with a good automated execution strategy. In the CDA markets, you are either a price-taker (market orders) or price-maker (limit orders). As a price-taker, you have to be conscious of liquidity available and be careful not to trade too large. Even the smallest of traders in the thinnest of markets can move prices to their detriment. You can be a price-maker to avoid all this, but then you have to hope you set your limit order at just the right price, or you have opportunity costs. If you don’t execute well, you lose. Writing computer code to execute well in a CDA isn’t exactly easy. Thus, a lot of the traders currently existing and envisioned for CASTrader need a substantial amount of code to interface with a CDA. The problem is that a market filled with traders that don’t execute well is an inefficient market. If CASTrader algorithms don’t execute well, they’ll likely leak money to the real market. I’ll spend more time writing code to try to make an internal dark CDA market competitively efficient than I will trying to beat the real markets. For all these reasons, I’m scrapping my previous decision to use CDA.
Part II examines some existing alternatives to Continuous Double Auctions. (Part II is posted at Midas Oracle to give people who think about market designs more than I do a chance to rip this post series to shreds).