First In Queue

Discussion in 'Order Execution' started by NY0BScalper, Feb 19, 2011.

  1. Let's take Citibank, the thickest and highest volume stock on the NYSE, and also (one of) the slowest. Citi is 4.89 x 4.90. They start paying the 4.90s and it takes out all but EDGX, NSDQ, and ARCA. Then, it's just NSDQ showing 2500 (250,000 shares), and then, the next instant, it it now 4.90 BID and 4.91 offer. At the 4.90 bid, all the major ECNs have at least a million shares. The 4.90 bid on NSDQ is showing 17345 (1,734,500 shares).

    Someone is first in line on NSDQ, let's say with an order of 200k shares. I'm using NSDQ here to illustrate my question because NSDQ was the last ECN to be on the offer at 4.90, so being first on the bid at 4.90 entails reacting fully to the change in the NBBO.

    If you have a program that constantly puts in 200k on a rollover in C and manages to be first in the queue, I'd estimate one would make no less than $30k/day. Probably significantly higher; if the guy gets filled at 4.90 for all 200k and hits out on NSDQBX at 4.90, he'll make $840 on the trade after rebates... this is a flat(!) trade.

    Is the same guy always first in line? OK, so he's co-located, but so is everyone else - why is he first in line? Is his cable slightly shorter than everyone else? Is it that he has the best hardware and the most efficient code? Is he not "always" first in the queue? Does that change/cycle? If he has the fastest setup, he should "always" be there, no?

    Obviously I don't expect to be first in the queue on NSDQ when C rolls over and creates a new price level, this is more of a hypothetical question, but if anyone knows anything, please do share.
  2. Once the queue clears a new bid/ask is advertised filled first with orders resting at the exchange... (ie. Stop Limit Orders). In fast moving markets what appears as a gap or jump is an execution order clearing all resting orders up the DOM ladder.

    If you are co-located you should see all order messages in your feed. If your remote you'll get some aggregated total but the message rate is faster than your net latency.

    Previously CME filled orders and advertised new prices every 14ms.
    CME Certified trading apps were required to support 70 Transactions Per Second. There have been some technology updates, not sure what the present order matching rate is set at but believe it is sub 1ms now.

    NYSE / ARCA updated from 40ms execution 2 years ago to 5 ms execution... 200 TPS.

    The exchange also implement Sniper protection and safe guards largely by limiting order message rate to execution ratios to prevent algo's from rapid firing order/cancellation/new orders.

    You need to take into account your broker's "smart routing" overhead shopping your orders through their network before routing to the exchange.

    I believe Broker's are given 100ms slack by the exchange. They have the ability to hold client orders for up to 100ms while having a 1 ms pulse on the market. They have 100ms to bundle/sell your order at a profit or forward on to the exchange. Inside of this time window 10 or more different price offers of your order may be placed/canceled. In your broker agreement you have already consented to the broker being counter party to your trades.
  3. rdg


    Doesn't it make sense that the first person in the queue at the 90 bid is the one that took out the 90 offer with residual size? In essence, can't you buy space at the front of the queue? If so, that means that colocated servers can't ALWAYS be at the front.
  4. trom


    Not necessarily. As a consequence of Reg NMS prohibiting locked markets, it's possible that an order that should clear the offer and become the new best bid might be delayed. The nationally disseminated SIP feeds that broadcast the NBBO aren't fast enough to actually be the "real" market. Firms that aggregate data from individual data centers themselves can see the "real" market and send ISO orders that will bypass the locked market prohibition, thus jumping in front of a partially filled order that cleared the previous offer.

    See pages 17-20 of this PDF for a more detailed explanation:
  5. rdg


    I knew as I was typing out a response that I shouldn't say anything since I don't trade equities. Everything I know is in regards the simple world of futures with centralized FIFO books. I'm always amazed at the complexities of the segregated equities markets.

  6. I use direct access software and route directly to each ECN.

    This is how it should be, as Trom said, REGNMS keeps it from being so.
  7. Reading again the TradeWorx link Trom posted, I can see now that: someone takes out the last 250,000 shares at 4.90 on NSDQ, usually by sending an order larger than 250,000 shares (for example, 350,000 shares). It takes out the last 250,000 shares, then goes as a hidden order buy order for 100,000 shares, because of the slow UQDF reg-nms compliance data feed. A faster HFT, realizing that there is no longer a 4.90 offer, comes in with a bid at 4.90 on NSDQ for 200,000 shares. The remaining 100,000 shares from the original NSDQ buy order which took out the 4.90 offer, now seeing that there is a 4.90 offer on the UQDF data feed, post to the NSDQ book at 4.90 displayed, behind the 200,000 shares from the HFT.

    The 200,000 shares posted by the HFT on seeing the quote change is now in the front of the line. The question is: how many HFTs try to send in an order to be first in line at 4.90 on NSDQ (knowing they can at least lean on the regular NMS compliant order), and of those who try to send it in, which guy gets it? Whichever guy gets it, is he first in line essentially all the time (except when his algorithm doesn't want him to post)? If he is, what allows him to be first?