IB is now forcing upgrade to newer version of TWS. Has anyone tested it with ibc 1.3.8?
-
Don't worry. Unsupported doesn't mean it won't work. It'll probably work as is for years to come, except if they ban it server side.
-
Don't confuse TWS version and IBController API version, they can be different but compatible.
-
I've forked IBController and upgraded it to API 1019, beta stage at the moment. Still a few quirks. You can contribute to tests if you wish, PM me.
Just for those who don't know, the way the TWS protocol works is that there's an initial handshake upon connection to determine which versions of IB's API client and server version numbers are being used. So far, it seems that any client version which doesn't have the outsideRth attribute as part of the Order data structure will not be supported in the newer 10..x series TWS server versions. Fortunately, IBController will not be affected by this change.
Prior to the addition of the outsideRth attribute, clients would use the rthOnly attribute to decide if the intended order was allowed to executed outside of regular trading hours. That has been deprecated in favor of outsideRth.
However, a Decimal type was added in the 10.x client API versions. I read on another website that it was added to handle the trading of crypto.
A little more info on how TWS client messages work.
Each message sent through the API has a client version number associated with it. That's how whatever TWS server version you're connected to knows what fields can and cannot be part of the responding message format. As long as the server version supports the client version number sent with the message, you should get a compatible response even though the client you're using is way out of date from the current.
I think the current IBController just passes the threshold for some client version messages required by the API. The main one is the "outsideRTH" field which the IBC supports. Beyond that, I don't know if any other messages will fail due to unsupported client messages on the part of the current server version connected to with 10.19+ of the TWS API.
This "Decimal" type is nothing more than 64-bit integer. (Look at the IB API header files for typedef).
More info:
With the 10.19 version of TWS, their API is enforcing the format of dates for historical data pulls. Prior to 10.19, in C#, you could use the predefined ShortDateFormat form of the DateTime class which is different than below.
The acceptable format is "yyyyMMdd hh:mm:ss timezone" where, for example, timezone could be "US/Eastern". The timezone is optional but the API warns that it will be mandatory beyond 10.19 using this format.
However, an acceptable format now and in the future is using the UTC time format. Then, there's no timezone field necessary.
For example, Eastern Standard Time adds 4 to the hours
20230723 09:30:45 US/Eastern
becomes:
20230723-13:30:45 (the dash replaces the space and is required)
I am aware of this timestamp format change and the plugin will be updated so API does not send warnings.
Has anyone started using the IBController with TWS 10.19 and above yet?
100% functional?
Thanks for the info.
I have 10.19 installed and I don't see any problems here.