Login Page - Create Account

Support Board


Date/Time: Tue, 16 Apr 2024 12:31:57 +0000



Notice: Important Update for Interactive Brokers Users

View Count: 8145

[2015-11-20 03:03:05]
Sierra Chart Engineering - Posts: 104368
It has come to our attention, that the interpretation in Sierra Chart of a futures contract year for Trade Position data from Interactive Brokers has encountered a problem starting with 2016 futures contracts.

This is the result from only a single digit year provided in the Trade Position data from Interactive Brokers. The 6 is being interpreted as 2006 instead of 2016.

The effect of this is that the reported Trade Position on a Chart or Trade DOM for a 2016 futures contract, would appear after an order fill and then disappear.

This problem would not cause any other issue other than the display of the Trade Position data on the Trade Orders and Positions >> Positions tab and in charts or Trade Windows. Attached Orders were/are not affected in any way. If you notice any other problems, they are unrelated, and they might have been misinterpreted.

These are some related discussion posts about this:
orders disappear/not transmitted to IB | Post: 74158
orders disappear/not transmitted to IB | Post: 74189

This problem has now been solved in Sierra Chart version 1329. Here are update instructions:
https://www.sierrachart.com/index.php?page=doc/download.php#FastUpdate

You must download Sierra Chart with "New Spreadsheets". Old Spreadsheets are no longer supported and you will not get the latest version.

Therefore, if you are using Sierra Chart for trading with Interactive Brokers, this update is important when trading 2016 contracts.

After updating to this version it is a good idea to first do some test trades using your paper trading account to verify everything works properly for you regarding trading.

Furthermore, this only affected 2016 futures contracts. If you were trading a 2015 contract and had problems, that is from some other reason. We have seen various trading related issues reported with Interactive Brokers in the last month or two. None of those issues have been identified as being a problem with Sierra Chart but with TWS instead.

For those who have read over the discussion posts about this, one reason it is disadvantageous for Sierra Chart to work with the Local Symbol, which from past experience does not always work in all cases, is because it contains a single digit year. This creates a problem when creating long-term Continuous Futures Contract charts. Also it will create a huge amounts of compatibility issues for users if we were to change the default symbol format.

It is the responsibility of Interactive Brokers to provide a logical well-designed and orderly API. This is not currently the case.

The solution we have even implemented at this point, can only still be regarded as a hack. This does not make sense.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2015-12-16 17:17:10
[2015-11-21 02:06:24]
Sierra Chart Engineering - Posts: 104368
We received the following message from Interactive Brokers as a suggestion about how to resolve a Symbol using the correct Year and Month and not the last trade date, from the Portfolio Update message:


The callback function updatePortfolio() includes a Contract object which has enough information to completely define a contract in several different ways. They include using the

(1) Contract ID

(2) The local symbol

(3) Underlying symbol and last trading date.

It is correct that the Contract year and Month is not part of the contract object, it instead relays the last trading date. However, that field can easily by found using the reqContractDetails() function with the Contract object which is passed back by updatePortfolio().

The basic problem is that we have to make a Contract Details request for every symbol that we receive a Position for. We then have to save that Position data or request them again, which is another very complicated thing to do with the TWS API. When the Contract Details is received back, for a particular contract identifier, we then have to do the data mapping. And then finally process the Position data.

Does that make sense? No it does not.

This is a very roundabout, inefficient, error-prone and complex way of doing this.

You really have to wonder what is the purpose of passing through the last trade date as part of the symbol details in every trading related message. Whatever the reason is, it does not make sense to use only that particular field. They must also specify in a standardized format, the contract Year and Month.

In the DTC Protocol, there is simple Symbol and Exchange fields to identify a particular security. This will work well even with Interactive Brokers which has support for a lot of different exchanges and markets.

The Symbol and the Exchange uniquely identify security and then a Security Definition can then be requested to get all of the specific details of the contract like its currency, its multiplier, its tick size, its session times, and on and on. This is how it is meant to be done. This is how it is done with the FIX protocol.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2015-11-21 02:13:21
[2015-11-21 02:24:01]
Sierra Chart Engineering - Posts: 104368
Regardless of what we said in post #2, we are going to change the Trade Position data processing for Interactive Brokers to use a completely reliable model. We should have this done next week.

It will be kind of something similar to this but not quite exactly:

We have to make a Contract Details request for every symbol that we receive a Position for. We then have to save that Position data or request them again, which is another very complicated thing to do with the TWS API. When the Contract Details is received back, for a particular contract identifier, we then have to do the data mapping. And then finally process the Position data.

We are still working out the details.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2015-11-21 06:50:16]
tobi - Posts: 351
Not understanding all the technical details of this. But isn't there a way to convince IB to implement your prefered DTC Protocol? Aren't there a whole bunch of arguments that can be cited, that they would see the advantages, too? Maybe you could offer them some help to get this going. All of use IB users, and I assume there are a lot of them, could send IB a request to implement the DTC Protocol. Or isn't it that easy?
Date Time Of Last Edit: 2015-11-21 11:07:10
[2015-11-21 13:37:21]
Futurestrader77 - Posts: 126
That is a good idea Tobi. I am sure all IB users here would send IB a message. But we have to be coincide with the content. So what should we write them?
[2015-11-22 05:08:33]
tobi - Posts: 351
I would think SC has to deliver the arguments, since they know all the technical details and know what is necessary on both sides.

So,
SC should write down all the disadvantages/problems that IB has.
SC should point out how this could be improved and show the solution.
If the things are that clear and obvious (as mentioned by SC above), why shouldn't brokers understand this, see all the advantages and try to get it implemented?!

We (all IB users), could make a poll here and send it to IB, or all users could send the request (prepared SC) to IB separately. Whichever has the best effect.

In my opinion I doesn't make much sense complaining all the time that the issues are on IB's side or we should use a different broker etc. IB is a big broker, offers a lot of markets and does have a lot of customers. So the issue has to be approached at its source -> at IB. But as mentiones above, we (the users) need the arguments from SC.
[2015-11-22 07:10:52]
Sierra Chart Engineering - Posts: 104368
Yes this is a good idea, but wait for some coordination from us.

One of the long-standing problems which we have always recognized is matching Interactive Brokers Position data to the symbol of a Chart or Trade Ladder/DOM. There is no clear and reliable and consistent way to do this in all cases.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2015-11-22 07:35:02]
tobi - Posts: 351
Ok, of course. Just let us know when and how to get in contact with IB on this subject.
Thank you.
Date Time Of Last Edit: 2015-11-22 07:35:28
[2015-11-23 02:11:24]
Sierra Chart Engineering - Posts: 104368
As we implement the very complex method to resolve a simple Contract Year and Month for futures contracts we are thoroughly convinced, that that our complaints about Interactive Brokers are valid.

For example, the contract data which make up the symbol for executions, is incomplete and does not even contain the Contract ID.

When and if Interactive Brokers were to adopt the DTC protocol, they need to take the various "Contract" fields and combine them into 2 text strings. One for the Symbol and one for the Exchange. They need to have a standardized and clear and consistent methodology for this that must always be followed.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2015-11-23 02:12:18
[2015-11-23 05:09:05]
Sierra Chart Engineering - Posts: 104368
One thing Interactive Brokers needs to realize is that it is essential, that an API be simple and well-designed and consistent. The design needs to be a cooperative effort and not designed how they think is best. That is what they must understand.

We do want to be given an explanation, of this is just how it works.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2015-11-23 05:10:53]
Sierra Chart Engineering - Posts: 104368
Another thing we have done with the DTC protocol, is we have added a reason code for a historical price data reject which supports the pacing violation type of condition and a graceful retry:

  enum HistoricalPriceDataRejectReasonCodeEnum : int16_t
  { HPDR_UNSET = 0
  , HPDR_UNABLE_TO_SERVE_DATA_RETRY_IN_SPECIFIED_SECONDS = 1
  , HPDR_UNABLE_TO_SERVE_DATA_DO_NOT_RETRY = 2
  , HPDR_DATA_REQUEST_OUTSIDE_BOUNDS_OF_AVAILABLE_DATA = 3
  , HPDR_GENERAL_REJECT_ERROR = 4
  };
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2015-11-30 19:39:34]
Sierra Chart Engineering - Posts: 104368
A couple of additional points we want to make. The particular field that Interactive Brokers requested us to use in the contract details to determine the Year and Month for a futures contract, was not even documented and did not have a complete name to it. So it was never clear to us that that field was even available.

Furthermore, a similar case to this was discovered with CTS T4, but did not cause any problems because it only involved spread symbols which do not have Positions reported for them anyway. Only the individual legs are reported.

When we pointed this out to CTS, they explained that they provide the security definition data before the Positions are sent upon connection to the FIX server so there is no need to do a lookup of the security definitions for the current Positions or open Orders, and re-request the Positions and Orders and then apply the security definition data to get the correct Symbol.

So CTS recognizes that it is necessary to automatically provide the client proper security definition data for all symbols for which there are open orders and Positions ahead of sending that trading data. But Interactive Brokers does not recognize this.

We will openly state, that Interactive Brokers needs to do a much better job with there API. They are welcome to post their comments here. But so far we have heard no proper solutions from them. Only various explanations on how to deal with their interface to begin with. There are no proper solutions from them. And the user suffers.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2015-11-30 20:19:19
[2015-12-04 05:35:58]
Sierra Chart Engineering - Posts: 104368
Another issue that has arisen recently with Interactive Brokers is that the volume data for stocks was being sent by Interactive Brokers with higher values than previously. Probably multiplied by 100. In the past, volume data would be reported in hundreds, so the values were smaller.

Versions of Sierra Chart prior to recent releases, used to multiply volume data for stocks by 100 to create actual volume numbers.

So this volume multiplication was removed from recent releases but it now appears the Interactive Brokers is now sending volume data like previously with lower values (in hundreds).

Therefore, we have added back the volume multiplier for US stocks. However, as this was being implemented there was an error where the volume data for non stock symbols was being multiplied instead of stocks. This was an issue possibly in 1334 and definitely 1335.

This problem is now corrected in the latest revision of 1335. Update to the latest revision of 1335 by downloading the prerelease following the instructions here:

https://www.sierrachart.com/index.php?page=doc/download.php#FastUpdate


Where you see incorrect volume data in the chart, re-download the data by following these instructions:
https://www.sierrachart.com/index.php?page=doc/helpdetails2.html#h2.1.2
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2015-12-07 08:39:42
[2015-12-19 18:12:38]
Sierra Chart Engineering - Posts: 104368
From version 1342 notes:
We believe we have resolved some reports of an intermittent problem where a new Trade Position that gets established becomes zero/cleared in Sierra Chart after about 10 seconds when using Interactive Brokers. The underlying problem with this has to do with the complex and insufficiently designed API of the Interactive Brokers Trader Workstation which requires rather complex code to handle Positions for futures and multiples accounts. Still the way that this is handled is not entirely reliable when an Interactive Brokers account has multiple accounts because it is not possible to make it entirely reliable.

And we will not accept the nonsense talk from Interactive Brokers
, that their system is fine and the problem is on the client-side. The problem is they have a poorly designed API and it has limitations. Interactive Brokers must accept that fact and take full responsibility for any problems that arise. This is a basic fact! And you must accept these risks when using Interactive Brokers especially when your IB account has multiple trading accounts on it.

After the most recent changes we do not think you are going to encounter problems if your Interactive Brokers account has a single trading account on it.

Interactive Brokers provides a wide array of market coverage the yet they provide very problematic systems. They need to focus on product quality and adopt communication protocols like the DTC Protocol (DTCprotocol.org). Their position on some technical problems is not correct. We are going to openly complain, until such time that they make changes. We will outline the changes that need to happen.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2015-12-20 23:07:37
[2015-12-21 04:56:05]
Sierra Chart Engineering - Posts: 104368
If anyone has any outstanding problems with Trade Positions disappearing after entering a Position, update to prerelease 1342. In most cases we do not expect there would be a continued problem.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2015-12-24 21:59:16]
Sierra Chart Engineering - Posts: 104368
Here is another discussion thread relating to Interactive Brokers market data problems:
Interactive Brokers Stock Volume Data Problem / Antivirus Flag

Once again, Interactive Brokers needs take responsibility and provide correct market data or users need to use the Sierra Chart Exchange Data Feed:
Sierra Chart Exchange Data Feed
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account