Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to suppress Bid, Ask and Last Size Display Update message? #134

Closed
ppetershagen opened this issue Aug 28, 2021 · 9 comments
Closed

How to suppress Bid, Ask and Last Size Display Update message? #134

ppetershagen opened this issue Aug 28, 2021 · 9 comments

Comments

@ppetershagen
Copy link

Hi Richard,

I've re-built my IB gateway docker image with the latest beta 10.10.2f and IBC 3.8.7 to fix the SSL issue, which worked. But I noticed there is a new pop up message appearing, which I couldn't suppress with any config switch found in the IBC config.ini, so far. I also looked into the jts.ini after start-up / dismissing that window and I didn't see anything obvious.

IBC's window related options are:

...
StoreSettingsOnServer=no
MinimizeMainWindow=no
AcceptNonBrokerageAccountWarning=yes
DismissPasswordExpiryWarning=yes
DismissNSEComplianceNotice=yes
SuppressInfoMessages=yes
...

Do I miss something? The "Lean More" points to Send market data in lots of US stocks for dual-mode API clients option on the settings page.

Screenshot from 2021-08-28 08-19-12

Cheers, Paul

@rlktradewright
Copy link
Member

[NB: IBC 3.8.7 doesn't fix the SSL issue: I've yet to release a version that does. I expect you selected the option to run with SSL when Gateway displayed that SSL message, and that makes a permanent configuration change.]

Regarding the 'Bid, Ask and Last Size Display Update' message, the problem here is that presumably Gateway records the fact that you checked the 'Don't display this message again' checkbox in its settings file, on the assumption that the next time you run Gateway it will check that setting and act accordingly (ie not display the message again).

I suspect your settings file is not stored in state-persisting filestore, so when you run your image again it loads a copy that hasn't recorded the fact that the checkbox was clicked (probably the file that was created when Gateway was installed).

There are two different approaches to solve this:

  1. Run Gateway locally, make any required configuration changes (including ticking this checkbox), then use the resulting settings file in your Docker image: now it doesn't matter if the file is in non-persisted filestore, because it will always contain the desired settings. If you need to change any settings in future, you'll obviously need to repeat the process, but in my experience once you have Gateway or TWS configured to your liking, further changes are infrequent.

  2. Keep the settings in a persisted filestore area (for example see this: https://www.networkcomputing.com/data-centers/docker-containers-and-persistent-storage-4-options).

Please note, I don't intend to update IBC to handle this dialog. I don't think that's the right thing to do.

@ppetershagen
Copy link
Author

Yes, I added UseSSL=true to a jts.ini template while creating the Docker container, but don't need to anymore, as I'm using 3.9.0 now. Thanks for the version update today.

I also tried to find the correct property in jts.ini to suppress the message. I checked jts.ini after I pressed the Don't display this message again checkbox. I was hoping the property Steps=11 would be related to it, so I also added it to my jts.ini template file. But unfortunately, it didn't suppress the message.

Hopefully, I or someone else will be able to find out how to suppress it. However, it is not limiting the functionality, as far as my tests indicate.

Cheers

@rlktradewright
Copy link
Member

The record of the message having been shown before is not in jts.ini. That's because jts.ini is only for things that are not user-related: IB clearly want every user to see this message and acknowledge it. So this will be recorded in the per-user settings file ibg.xml for gateway and tws.xml for TWS.

These files are stored in a folder with a long name, for example C:\Jts\fcenjfkpcboicdnfienbgnkekhifhnllmnlhgcin for the paper-trading user in my Windows installation (the folder name will be different for different users), and it is that folder that needs to be either included in your Docker image or held in persistent storage.

If you're only running Docker for a single user, that should be easy enough to arrange. If you're needing to be able to run up a single Docker image for multiple users (perhaps hundreds if you're running a commercial service of some sort) then I understand that you have a problem, and I don't know what the solution is offhand (the problem being that there is no way that I know of to predict the folder name that will be used for an arbitrary username).

It's late here in Scotland and I'm desperately tired, so I'll have to end this here. It may be that I will have to relent and provide a handler for that dialog, but it seems a ridiculous thing to have to do.

By the way, this topic was discussed in #10 and #14 but never came to any satisfactory conclusions.

@mfrener
Copy link

mfrener commented Sep 5, 2021

Same problem here. Since I updated my docker image, market data doe not work anymore until I logon via VNC to approved that message.
Really annoying... as images does to not work out-of-the-box anymore, but you first need to run a container, login on IBGateway, approve that message, commit changes to image and re-publish the image - so will work for that single pre-approved user (but still it doesn't work for any newly added uses).
I'm not into IBC code yet (but probably soon, need fix for that). Is there is no way to click the "I understand" button via IBC, just like it does for e.g. the paper account warning message?

@mfrener
Copy link

mfrener commented Sep 5, 2021

btw.. always need to think on that when working with IBC
https://youtu.be/kFQJNeQDDHA?t=865
should be your promo video... 20 years ago IB build computers to replace human keystrokes on NASDAQ, today we build computers to replace human keystrokes on IB
😆 🤣
(great work btw ;) )

@rlktradewright
Copy link
Member

I've decided I will add a setting in config.ini to enable this dialog to be handled automatically.

Please be patient...

@rlktradewright
Copy link
Member

I've done an enhancement that deals with this, but there are some 'pitfalls for the unwary' which need to be spelled out (because what's going on here has not been adequately described by IB). So I haven't pushed the commits yet.

I'll continue working on it tomorrow night (Monday) and hope to issue a new release then.

@rlktradewright
Copy link
Member

Release 3.10.0 is now available and enables this dialog to be handled automatically.

@ppetershagen
Copy link
Author

Works like a charm, thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants