Their last sentence is vague. Bad documentation like this I have seen in other places too.
Yes, I think the delay is in effect and so your quick requests were responded again and again with same data because your 11 seconds bottleneck was not up yet.
Most likely those quick - over time - requests were not even sent to IBKR at all and TWS decides and responds with "stale" data based on 11 second rule. So that could be the "cache".
On Thu, Mar 18, 2021, 2:34 PM §¡§Ý§Ö§Ü§ã§Ñ§ß§Õ§â §¹§Ö§â§ß§Ú§Ü§à§Ó <me@...> wrote:
My request in fact were duplicates - since I requested snapshots for 1500 instruments to get "almost real-time" data. Request ids were never repeated. Price did changed and if I had real-time subscription at the same time - it worked fine. Actually, I worked around it and used real-time data for important data and round-robin for everything else.
From IB docs - " It is important to note that a snapshot request will only return available data over the 11 second span; in some cases values may not be returned for all tick types."
So maybe this is expected behavior.?
On Thu, Mar 18, 2021 at 7:24 PM Bruce B <bruceb444@...> wrote:
Agreed - most things don't from IBKR do not? include timestamps and some may include fake timestamps from TWS. Dimitry I think has looked into this and posted before.
Is it also possible that maybe your requests were duplicates OR that price didn't change in between your multiple requests?
You can compare to TWS data or to other sources to confirm maybe.
I would be surprised if they send stale data over a live account as this has to be a serious? programming error. Can't be a network cache issue either as TCP ACKS would take care of those but maybe a different type of cache.
On Thu, Mar 18, 2021, 2:15 PM §¡§Ý§Ö§Ü§ã§Ñ§ß§Õ§â §¹§Ö§â§ß§Ú§Ü§à§Ó <me@...> wrote:
Where - I do not know (never bothered to check traffic between TWS and IB servers). From what I remember - you receive the same value over and over again.
And since there are no timestamps on data - no way to know what you got.
On Thu, Mar 18, 2021 at 6:42 PM Bruce B <bruceb444@...> wrote:
Chernikov,
Cached where? And what do you mean by *stale? Missing data points or delivered too late that may not be useful for strategies?
Thanks,
On Thu, Mar 18, 2021, 4:55 AM §¡§Ý§Ö§Ü§ã§Ñ§ß§Õ§â §¹§Ö§â§ß§Ú§Ü§à§Ó <me@...> wrote:
50 messages per second do not apply to this. However, there is some other limit, based on available market data lines.
But polling snapshots have another problem (at least it had a couple of years ago) - snapshot could be cached if polled too frequently. So instead of new prices, you are getting something stale.
Instead of subscribing, why not poll each ticker to get the last price? I think IB has a limit of 50 messages per second (correct me if I am wrong) For 800 tickers, that would be 16 seconds. So you would poll each ticker about every 16 seconds. Would that work for you?