Please let me know what's the minimum time required between two consecutive reqMktData commands issued to IB with snapshot parameter set to True. Thank you.
I am pretty sure there is no minimum, other than maximum number of requests of any type per unit of time. Snapshot requests are asynchronous, so if you're sending many at once, you need some kind of data structure to pair the responses with the requests.
As far as I know, the minimum time between two consecutive IB requests (historical data, market data, market depth) is 10 seconds. I usually use 15 seconds as sometime 10 seconds delay does not work.
There is a message limit per second, I am positive that it is 50 per second so you can send it every 20 ms. There are additional limitations that apply to historical data requests.
Thank you all for your input. I have had experiences of keep receiving last price of '0' and I think it's due to too frequent of my market data request; my request frequency was about a few seconds, definitely lower than 4 seconds. I will try 15 seconds. Thank you all again!
To clarify, for IB historical data requests the limitations are: * no more than 60 historical data requests in 10 minutes * no identical requests in 15 seconds * no more than 5 requests for the same symbol and same tick type within 2 seconds BID_ASK requests count as two
Here is the link to very detailed list of IB data limitations: https://www.interactivebrokers.com/en/software/api/apiguide/tables/historical_data_limitations.htm