Detecting stuck quotes automatically

Discussion in 'Automated Trading' started by stephencrowley, Jan 24, 2006.

  1. nitro

    nitro

    Huh?

    In your historical data, if the market is crossed or locked, assume the NBBO is bad and hit the next best tick in the book, assuming no uptick rule issues.

    If your system is taking advantage of crossed and locked bids in stocks, good nite and gooood luck, especially sitting 45ms from the exchanges.

    nitro
     
    #21     Feb 20, 2006
  2. No, I don't bother looking at locked/crossed markets.. I'm not that concerned about trying to scrape pennies like that.. but when playing back historical data you obviously can't execute it. So, back to the question, looking only at hostircal full depth quote data, how can you tell if the best quote is stuck?

    I've thought about keeping a timestamp for each level in the book and some sort of monitor to check the time of the best relative to the next few levels.

     
    #22     Feb 20, 2006
  3. nitro

    nitro

    Either I am confused or you are.

    You have depth of book historical data. While replaying it, the Best Bid >= the Best Ask. If so, assume the top of book is bad and use the next best bid or ask in the book, etc.

    nitro
     
    #23     Feb 20, 2006
  4. Right. Just remove that entry from the book and move on.. how to decide which quote is bad though, the bid or the ask? I suppose I could toss the best with the oldest timestamp. Actually.. that sounds like a great idea. Thanks for the help. :D

    I guess if both quotes stick at the same time then I am just screwed.. that sounds pretty unlikely though.

     
    #24     Feb 20, 2006
  5. nitro

    nitro

    That's one way of doing it. I would explore all ways and then watch when it happens in realtime to see which way is more accurate.

    On the NYSE for example, the quote you see is not necessarily stuck in the technical sense - it could be that the spec or the asst does not have time to update it. There is no one right way to do it imo.

    Your last possibilty can be handled by looking into the future and seeing which way it crosses first [in the historical data case]. Also, it is extremely rare because I have never seen it.

    nitro
     
    #25     Feb 20, 2006
  6. Interesting.. I've been experimenting with combining prices from different quote sources as well.. although that gets more complicated, updating covariance matrices and whatnot.

    Also, I rarely see stuck quotes on most of my feeds except ARCA, it sticks quite often for some reason... quite annoying.

     
    #26     Feb 20, 2006
  7. nitro

    nitro

    Code:
    x = Get NBBO
    If x is not crossed or locked
       UpdateCovMat(x)
    else {
       x = ExtractCorrectQuoteFromDOB
       UpdateCovMat(x)
    }
    
    nitro
     
    #27     Feb 20, 2006
  8. Cool. DOB is?

    Also, my spread standard-deviation filter I posted above only works in high volume issues..

    I implemented another filter which limits the max step size of the price in either direction..(for instance 1 penny per second) which might be bad in very fast moving markets, I could make the threshold adaptable based on short-term realized volatility I suppose. This however gets rid of all spurious outliers but doesnt help address the stuck feed problem. Two seperate issues.

     
    #28     Feb 20, 2006
  9. nitro

    nitro

    DOB = DepthOfBook

    nitro
     
    #29     Feb 20, 2006