Machine guns

Discussion in 'Automated Trading' started by alanm, Mar 31, 2006.

  1. alanm

    alanm

    If you give BRUT a sell-short order that is below what it believes to be a tick-qualified price, it stupidly goes ahead and displays the order at your specified limit price, but will not execute at that price. If you send it a buy order at a valid, tick-qualified price that crosses it, it may or may not execute at that price, depending on several variables.

    For whatever reason, one or more ATS or perhaps broker's SMART-routing agent reacts by sending the buy order to attempt to lift the offer, seeing it doesn't get filled within some number of milliseconds, then cancels the order and repeats the process indefinitely, resulting in painting the tape with several quotes per second (i.e. BRUT locking against itself and then backing away). The only usual way to get it to stop is to put up your own locking bid and then it quits trying.

    What the hell is the point of this, other than to waste bandwidth, CPU, and storage space?

    In a similar fashion, during illiquid pre/post-market hours, I'll see a couple bots pennying each other at the inside market, 10% away from the last close in a stock where nobody is making a reasonable market. I guess I can understand the battling at the inside of a tight market when there are actual buyers and sellers around, but in this case, what the hell is the point of doing this? You'll almost never get a fill out that far, and if you do, it'll get busted 99% of the time. Again, all it does is waste bandwidth, CPU, and storage space.

    It's frustrating as hell to have to write something that adds pattern recognition to my incoming quote stream so I can trap for these and block them out. Currently, I just have to remove the tickers from my list, or take counter-measures against them to stop the flood.
     
  2. If your pattern matching is that sensitive then there is something wrong. That sort of thing is just driving noise in my models.
     
  3. alanm

    alanm

    To be more succinct, these spurious quotes seemingly _needlessly_ suck up a lot of bandwidth to receive them, CPU to process them, and space to store the resulting quotes. Multiply that by the number of servers and clients in the marketplace that have to process it. And why? Because someone isn't paying attention?
     
  4. Yeah, the CBOE (i believe) put a charge on messages over a certain threshold just for this reason. The answer is, it is essentially free (or so low cost as to basically be free) that there is no risk and do it and there is always a very slight chance that this strategy pays off every once in a while. I agree, it is silly, I'd be in favor of charging for quote floods that never execute.