I don't know. I have never had the need to download historical exchange rates.Thx for sharing. How about spot fx price? The live price is free.
I don't know. I have never had the need to download historical exchange rates.Thx for sharing. How about spot fx price? The live price is free.
Thx for sharing. How about spot fx price? The live price is free.
I started with the example programs which were provided by IB. And used these to make some experimental programs myself. While doing I found better ways on how to structure and arrange my programs. I am running automated systems in Java. They collect the necessary data (account data, instrument price data, etc), do calculations and place orders if necessary. Looking back I would say that this core setup is the easy part. The more complicated part is handling errors: what do you do if a certain piece of information is missing? If a connection is lost or a server offline? What do you do if a received value seems incorrect? How do you handle exceptional cases? How about holidays, or timezone changes (e.g. daylight savings time)? It is these kind of things that took me the most time to understand, get used to, and know how I want my system to respond to. This will obviously depend a lot on your trading style and on how you want your system to respond, so general guidelines are difficult to give.
We have an almost identical experience, although mine is in Python. First I wrote the basic data gathering and order placing calls, I thought that's it, I'm almost done. Little did I realize that was just about 25% of the job - timezone adjustments, dividend/split adjustments, tick size functions, currency conversions, making sure different strategies keep track of each other when they need to (while having different clientIds), halting functions when connection issues occurred etc took 75% of the time.
I was under impression that they support a proper FIX protocol with some IB-specific quirks, no?