Streamed quotes showing inaccurate/invalid data

I’m trying to watch quotes streamed through the Data API v2 websocket, with the intent of day trading. However, the quotes I’m receiving from the websocket show wild variation or data that doesn’t make sense.

Some examples from the raw stream:



In this first example, Microsoft supposedly went from a bid price of 341.19, down to 315.9, then back up to 341.19 within 0.5ms. The only valid explanation I could see for this is if the 341.19 bid got canceled/filled, the next best bid was 315.9, then a new bid came in, though that seems incredibly unlikely for such a high volume stock. Also, watching the order book on E*Trade during the same interval, there was a deep list of bids in the 341 range the entire time, so this dip shouldn’t have happened.



In this second example, we see a string of Google quotes with 0 for both their bid price and bid size, and even an entry with all 0's for both the bid and ask. I can’t imagine any scenario in which this data would be expected.

As a developer interested in day trading, what should I be doing here? This data doesn’t seem reliable enough to build a meaningful application on top of. Am I missing something?

Were you getting SIP feed or IEX only feed?