joshuaulrich / IBrokers

R API to Interactive Brokers Trader Workstation
65 stars 54 forks source link

Guidance for adding support for high resolution (tick based) historical data retrieval #24

Open PrivacyMatter opened 4 years ago

PrivacyMatter commented 4 years ago

Description

Hi Josh,

First, sorry for dropping the ball on issue #19 ; never got to explore the fix on the new branch, life is crazy and never got to the point I had to use the new version (yet).

I have a question about some additional functionality I consider adding, and can use your guidance with that. What I'm referring to is getting tick level historical data (TWS API: High Resolution Historical Data). I read your library code for supporting the bin based historical data, and the documentation for the C++ API referenced above. The API documentation is based on multiple thread C++ function call API, though, and your implementation seem to go a level below that, and basically imitate the behavior of these functions by basically sending the server the data the execution of these function would have sent, and listening to responses, and parsing it so the user can get the info and process it via a wrapper, imitating the C++ api executing the function call and passing the arguments to it. (Basically polling vs interrupt based approach)

My question:

how did you figure out the coding and structures that needed to be streamed to the server to immediate the execution the function API function call that request the data? And even more importantly, the coding of the data in the incoming data stream? I don't think that there is any ECC equivalent so it seems that getting even one byte wrong will make it very difficult to debug.

I have no idea yet if I'll have the time to actually implement that, so please don't put much time into guiding me step by step, at lest not at the moment. But whether I do that highly depend on how much work it would be for me to copy and modify your code for bin based historical data requests to the tick based one (and also the additional benefit I'll get from it, e.g. how many ticks there were in a single second which is the highest bar resolution allowed). so I wanted to get an idea of how much work it would be. If I ended up doing that I guess you may hear from me again 😄 .

Thanks much! Yossi