HFTs are not Front-Running

Michael Lewis just wrote a book. It's the talk of the town! There's an FBI investigation, a trader from my little Canadian hometown is being hailed a hero, and a new exchange seems to be getting a lot of business as a result.

Unfortunately, the book's claim that HFTs are front-running honest traders is inaccurate. Here is the offending passage of an excerpt of the book published by the New York Times, and the cornerstone of Lewis' entire argument:

“Watch closely. I am about to buy 100,000 shares of AMD. I am willing to pay $15 a share. There are currently 100,000 shares of AMD being offered at $15 a share — 10,000 on BATS, 35,000 on the New York Stock Exchange, 30,000 on Nasdaq and 25,000 on Direct Edge.’ You could see it all on the screens. We’d all sit there and stare at the screen, and I’d have my finger over the Enter button. I’d count out loud to five....

One....

Two.... See, nothing’s happened.

Three.... Offers are still there at 15....

Four.... Still no movement....

Five. Then I’d hit the Enter button, and — boom! — all hell would break loose. The offerings would all disappear, and the stock would pop higher.”

At which point he turned to the developers behind him and said: “You see, I’m the event. I am the news.”

The market behaved exactly as it was supposed to! He just misinterpreted what actually happened.

Here's what actually happened, in order:

  1. Brad places his order on his computer screen saying "buy 100,000 AMD for $100/share".
  2. His computer shows 100,000 AMD available for purchase. However, no single exchange has 100,000 AMD for $15/share. The only way to get an order of that size filled it to break it up into multiple orders: one for each exchange. 10,000 on BATS, 35,000 on NYSE, 30,000 on NASDAQ, and 25,000 on Direct Edge. The orders are automatically broken up and distributed by RBC's in-house software.
  3. BATS sees its order first, because it happens to be closer to Brad than any other exchange. It's filled for all the AMD available at BATS at $15/share: 35,000 of them. Brad asked for 35,000 AMD at $15/share, he got 35,000 AMD at $15/share.
  4. To ensure transparency, everyone learns about this trade at the same time. It gets reported on the public BATS feed. Every single other market participant now knows that a large amount of AMD was just bought.
  5. Market making is the activity which tends to set the best offer of a security, and it's like picking up pennies in front of steamrollers. You win some pennies when the markets move for no good reason, and you get run over when it moves for good reason. It's very risky. To a market maker, a huge trade occuring on any one exchange is a good statistical indicator that the market is moving on real information. Confident people tend to bet big. Therefore, the intelligent thing for these market makers to do is to quickly back off their market, say, from $15/share offer to $15.04/share. They do this.
  6. Now Brad's other orders now arrive at the other exchanges. When they get there, the best offer is $15.04/share. Since he was looking for AMD at $15/share, his order is not filled.
  7. Brad's screen says he was only filled for 35,000 AMD.

There's nothing evil about this. There's no front-running. All that should have happened, happened. The problem is that Brad's screen displayed 100,000 AMD available for $15/share. It should have instead shown the best bids and offers, along with their size, of each individual exchange. Of course, there's this clever way of getting around these subtleties that I like to call "sending orders you intend to be simultaneous, simultaneously". Brad eventually figured this out, and delayed his trades on the faster exchanges so his intentions arrive at all exchanges at the same time. Like most software in finance, if you get order routing wrong you can lose a bunch of money. He did, and he did.

But instead of fixing this subtle bug and moving on to bigger and better things, he blames the market makers. Then, he starts a new exchange based on fear-mongering.

And now, he's got a 300 page ad for it.