I talked to IB and figured out what is going on. Here is an example of what was happening:
For symbol ABC I would get see the following bids:
eSignal platform: 100.50
TWS with IB's data: 100.50
TWS using eSignal: 100.25
What was happening is if you enter in a symbol in TWS and select SMART, SMART won't register for eSignal, so it will find the best bid for the primary exchange (say ARCA). If the best bid happens to be on another exchange (ISLAND for example), you're going to see a bid price that is somewhere below the actual best bid. It seems that eSignal has a way of aggregating the exchanges and so does IB's TWS, but there isn't a way to get the aggregation to flow through the two systems.
Bottom line: There is data lost in the communication between the two systems.
Looks like the best option is to write an API.
Any suggestions? I'm probably looking for the lowest cost option.
Thanks for all the prior comments.
For symbol ABC I would get see the following bids:
eSignal platform: 100.50
TWS with IB's data: 100.50
TWS using eSignal: 100.25
What was happening is if you enter in a symbol in TWS and select SMART, SMART won't register for eSignal, so it will find the best bid for the primary exchange (say ARCA). If the best bid happens to be on another exchange (ISLAND for example), you're going to see a bid price that is somewhere below the actual best bid. It seems that eSignal has a way of aggregating the exchanges and so does IB's TWS, but there isn't a way to get the aggregation to flow through the two systems.
Bottom line: There is data lost in the communication between the two systems.
Looks like the best option is to write an API.
Any suggestions? I'm probably looking for the lowest cost option.
Thanks for all the prior comments.