MPEx and the HFT problem
Being that MPEx is online and based on computers and all that, obviously it will have to face the same apparently unresolvable problems that are driving its underdog competitors (NYSE, LFE etc) into the ground : High Frequency Trading. Someone will sooner or later ask about this, and so in keeping with our tradition of answering questions before anyone has managed to ask them, allow me.
The problem :
I was trying to buy 500 shares of a preferred stock this morning, Principal Financial Group Inc. series B (NYSE:PFG-B). It is such a challenge to trade any type of illiquid issue as the execution of orders is nearly impossible in this HFT world. Here is the sequence of events.
At 09:39:08, the stock is offered on EDGX at $26.29.
I place an order to lift the offer. The shares trade but I get filled on zero shares. Knowing that my bid will cause a bunch of HFT programs to penny-jump me (step ahead of my order by a penny - which they immediately do), I cancel the order. The HFT penny jumper cancels their order as well.
At 09:39:29, the stock is offered on EDGX again at $26.32. I place an order to lift the offer. The stock trades at the exact same second. Again, I get filled on zero shares. I cancel the order.
At 09:39:41, the stock is offered on PCSE at $26.29. I place an order to lift the offer. The stock trades at the exact same second again, but I get filled on zero shares. I cancel the order.
At 09:39:50, I place a hidden order to buy the stock at $26.32. Five second later the stock prints in front of me at $26.33 (Obviously these hidden orders aren’t as hidden as they should be). I leave the hidden order to buy at $26.32.
At 09:40:05, the stock prints right through my hidden order on another exchange at $26.30. So despite my bid being higher at $26.32, thanks to the fragmentation in the market, I get filled on zero shares again (and the seller gets a worse price!)
At 09:40:20, the stock prints through my hidden order again at $26.30. Again, no execution for me. Frustrated, I cancel my order.
A few seconds later, at 09:40:36 a couple of HFT programs battle out for the top of the order queue, and the bid changes rapidly, as you can see below:
via Dennis Dick (premarketinfo.com)
The solution : MPEx does not allow instantaneous cancellation of orders.
Wow. That wasn't so hard now was it. Currently the delays are both rare and short, mostly to do with the fact that MPEx isn't much plagued by this nefarious form of HFTi, mostly due to the fact that it doesn't go about pretending like "there's nothing that can be done".
There's plenty to be done, and in fact the solution for the problem is quite simple to explain and quite simple to implement. Why aren't the underdogs implementing it ? Your guess is as good as mine.
Maybe they just don't want to beat the top dog.
———- HFT in and of itself is just a name. Some specific practices that fall under the heading are intolerable on any sane exchange, but not anything and everything which could conceivably be categorised as HFT is a bad thing. [↩]
Sunday, 16 December 2012
Hahaha, I can attest that wannabe-MPEx-HFT's life is quite difficult, despite there is almost no competition. Not just the cancellation, but whole order lifetime entails dealing with fuzzy quantum phenomena, one has to wait after placing the order it till it can be observed in STAT. I think I have seen balances updated first, then in next stat appeared the transaction itself (although this happens very rarely). Oh and entangled pairs of phantom orders/transactions, too. Only thing missing so far is is superposition of states , but I presume calling STAT is akin to observing the system, whereupon the state collapses into one single result. Maybe MPEx should offer end-to-end quantum access to the engine, enabling users to submit orders with precisely defined wavefunction, instead of pretending above behavior is a bug and trying to fix it in vain or rationalize it backwardly.
Sunday, 16 December 2012
This :D
Friday, 21 December 2012
I place my orders in all possible universes at once, thus avoiding the problem :D