I am testing the newest build of IB plugin (QuoteTrader 1060). It seems the excessive CPU problem is still not been solved yet. Just try to call buylimit, buystop, selllimit, sellstop and cancelOrders a few times (no sure how many are enough) and you will start to experience significant delay in response. In some worest case I got eSignal being freezed for about 20 seconds. The delay was measured by the time I click the mouse to call correspoinding API to the time the corresponding message is shown in the integrated message window, during which the esignal chart seems got freezen or very slow responding. The CPU usage window in windows task manager does not shoot to 100% as I reported before using older QT version.
A restart of eSignal solves the freezing problem untill I play with those APIs for a while and the slow response reemerges.
It is very likely the problem is caused by the IB pluin not being able to handle relatively frequent message exchange between IBpluin and IB TWS (although a few orders per second should really not be consider as "frequent". To proof this hypethesis, you may either click on "Buy Ask", "Buy Bid", "Sell Bid", "Sell Ask", "Buy Mkt", "Sell Mkt" buttons randomly with short interval to send out orders to IB TWS and very soon you will start to observe the delay build-up. In worst case, queued orders get hiden somewhere in QuoteTrader and get executed by IB TWS several seconds or well more than ten seconds after stoping click those buttons. Another simpler test is to create a few limit and/or stop orders for one instrument and use cancelOrder() to cancel them all. Maybe it is because IB plugin cancel those orders one by one which results in the relative large number events in short time, which has the same side effect as I click buttons frequently, the eSignal gets freezen again.
Please investigate this issue and get it fixed ASAP. If you need my testing script, please let me know. For software involving realtime communication, it is impossible to find out those bugs without a thorough test with more realistic setup. Each API works does not mean they will still work when putting them together.
- Clearpicks
A restart of eSignal solves the freezing problem untill I play with those APIs for a while and the slow response reemerges.
It is very likely the problem is caused by the IB pluin not being able to handle relatively frequent message exchange between IBpluin and IB TWS (although a few orders per second should really not be consider as "frequent". To proof this hypethesis, you may either click on "Buy Ask", "Buy Bid", "Sell Bid", "Sell Ask", "Buy Mkt", "Sell Mkt" buttons randomly with short interval to send out orders to IB TWS and very soon you will start to observe the delay build-up. In worst case, queued orders get hiden somewhere in QuoteTrader and get executed by IB TWS several seconds or well more than ten seconds after stoping click those buttons. Another simpler test is to create a few limit and/or stop orders for one instrument and use cancelOrder() to cancel them all. Maybe it is because IB plugin cancel those orders one by one which results in the relative large number events in short time, which has the same side effect as I click buttons frequently, the eSignal gets freezen again.
Please investigate this issue and get it fixed ASAP. If you need my testing script, please let me know. For software involving realtime communication, it is impossible to find out those bugs without a thorough test with more realistic setup. Each API works does not mean they will still work when putting them together.
- Clearpicks
Comment