Can you please elaborate on the difference you saw in Level 2 data.
How were you fetching the level 2 data through TDA and IB ? I know IB has an api and chanrges for subscription and has some limitations on the number of subscription you have for L2 , are there similar in TDA . Can you give some pointers to the api for L2 real time data through TDA or some code examples . I am very interested in exploring the data via TDA but i dont find they have good api support and i dont know if they even support L2 data through some api.
IB Level II via API is really bad. The problem is that:
1) you are restricted to 3 requests at a time (up to 6 if you pay a bunch for higher tiers that get you 600 concurrent Level I quotes)
2) Each request does not return all the needed data. To get even close to what you see on Level II in TWS, you have to make 4 or more requests
3) some of the data that you see on the Level II in TWS you simply cannot get via the API.
So because of that, I consider IB Level II via API for US stocks to be horrible.
TD Ameritrade Level II - It is generally pretty good when it works. The problem is that on some slow stocks, I see it just stop and you have to kick start it (unsubscribe/resubscribe). Very annoying. As for the API, their new API page is at:
https://developer.tdameritrade.com/
I don't know how much they document the streaming Level II API there - I frankly have not looked at the documentation since I left TD Ameritrade (I was the API product manager). They support both WebSocket and streaming HTTP connections. They send the entire book every update, so though a bit wasteful, it is easier to handle for beginners compared to having to maintain the book and update it yourself. As for further details, I will have to leave it to them to document since I don't know of the top of my head if I have any restrictions on what I can disclose.
In
Medved Trader we don't use the SDKs for either of the APIs. We connect directly to the socket for IB and manage the connection ourselves. Same with TDA, so I can't give much info on the SDK specific capabilities.