Unable to collect real-time tick data

Problem 1

I am unable to collect realtime tick data using:

from quantrocket.realtime import collect_market_data
collect_market_data(codes="eurusd-1m-tick-db", sids="FXEURUSD", universes="eurusd-1m-tick", until="5h")

I see the below error:

HTTPError: ('403 Client Error: FORBIDDEN for url: http://houston/realtime/collections?codes=eurusd-1m-tick-db&sids=FXEURUSD&universes=eurusd-1m-tick&until=5h', {'status': 'error', 'msg': 'No real-time data permission for this license or account limit not yet validated, please check your subscription plan and account limit (view license details if this is unexpected, see http://qrok.it/h/lkey for help)'})

This led me to Problem 2.

Problem 2

I have an Individual Non-Professional QuantRocket license. I am facing an issue with validating the licence.

Upon executing:

from quantrocket.license import get_license_profile
get_license_profile()

The output is:

{'licensekey': 'abcd........1234',
 'software_license': {'license_type': 'Individual Non-Professional',
  'user_limit': 1,
  'concurrent_install_limit': 2,
  'account': {'account_limit': '1000000 USD'}}}

From QuantRocket docs:

If the command output is missing the account_balance and account_balance_under_limit keys, this indicates that the account limit has not yet been validated.

When I attempt to validate(ibg1 is stopped at this time) the account limit using:

from quantrocket.ibg import set_credentials
set_credentials("ibg1", username="jonsnow", trading_mode="live")

I get the following error:

HTTPError: ('500 Server Error: INTERNAL SERVER ERROR for url: http://houston/ibg1/credentials', {'status': 'error', 'msg': 'IB Gateway should be running but is not accepting connections. Please open the IB Gateway GUI to troubleshoot, see http://qrok.it/h/ibgui for help. IBC log output is below: sun.io.unicode.encoding = UnicodeLittle\n\nsun.cpu.endian = little\n\nsun.locale.formatasdefault = true\n\ninstallerVersion = 2.82.6\n\nsun.cpu.isalist = \n\n------------------------------------------------------------\n\n2023-07-05 11:31:36:437 IBC: Using default main window manager: null\n\n2023-07-05 11:31:36:437 IBC: Using default config dialog manager\n\n2023-07-05 11:31:36:442 IBC: CommandServer is starting with port 7460\n\n2023-07-05 11:31:36:532 IBC: CommandServer listening on addresses: 172.19.0.3,127.0.0.1; port: 7460\n\n2023-07-05 11:31:36:532 IBC: CommandServer started and is ready to accept commands\n\n2023-07-05 11:31:36:620 IBC: TWS Settings directory is: /root/Jts/ibgateway/981\n\n2023-07-05 11:31:36:626 IBC: Ensuring /root/Jts/ibgateway/981/jts.ini contains required minimal lines\n\n2023-07-05 11:31:36:626 IBC: Found setting: [Logon]/s3store=true\n\n2023-07-05 11:31:36:626 IBC: Found setting: [Logon]/Locale=en\n\n2023-07-05 11:31:36:626 IBC: Found setting: [Logon]/displayedproxymsg=1\n\n2023-07-05 11:31:36:627 IBC: Found setting: [IBGateway]/ApiOnly=true\n\n2023-07-05 11:31:36:627 IBC: Confirmed /root/Jts/ibgateway/981/jts.ini contains required minimal lines\n\n2023-07-05 11:31:36:633 IBC: Getting config dialog\n\n2023-07-05 11:31:36:633 IBC: Getting config dialog\n\n2023-07-05 11:31:36:633 IBC: Getting config dialog\n\n2023-07-05 11:31:36:633 IBC: Getting config dialog\n\n2023-07-05 11:31:36:634 IBC: Getting config dialog\n\n2023-07-05 11:31:36:633 IBC: Creating config dialog future\n\n2023-07-05 11:31:36:634 IBC: Getting config dialog\n\n2023-07-05 11:31:36:643 IBC: Waiting for config dialog future to complete\n\n2023-07-05 11:31:36:643 IBC: Waiting for config dialog future to complete\n\n2023-07-05 11:31:36:643 IBC: Waiting for config dialog future to complete\n\n2023-07-05 11:31:36:643 IBC: Waiting for config dialog future to complete\n\n2023-07-05 11:31:36:645 IBC: Getting main window\n\n2023-07-05 11:31:36:645 IBC: Creating main window future\n\n2023-07-05 11:31:36:646 IBC: Waiting for config dialog future to complete\n\n2023-07-05 11:31:41:091 IBC: Detected JFrame (ibgateway.aB) entitled: Interactive Brokers Gateway; event=Opened\n\n2023-07-05 11:31:41:094 IBC: Setting Trading mode = live\n\n2023-07-05 11:31:41:371 IBC: Detected JFrame (ibgateway.aB) entitled: Interactive Brokers Gateway; event=Activated\n\n2023-07-05 11:31:41:376 IBC: Click button: Log In\n\n2023-07-05 11:31:42:374 IBC: Detected JFrame (ibgateway.aA) entitled: Loading...; event=Opened\n\n2023-07-05 11:31:42:374 IBC: Found Gateway main window\n\n2023-07-05 11:31:42:375 IBC: Got main window from future\n\n2023-07-05 11:31:42:409 IBC: Detected JFrame (ibgateway.aA) entitled: Loading...; event=Activated\n\n2023-07-05 11:31:42:635 IBC: Detected JFrame (twslaunch.feature.welcome.H) entitled: Authenticating...; event=Activated\n\n2023-07-05 11:31:42:635 IBC: Detected JFrame (twslaunch.feature.welcome.H) entitled: Authenticating...; event=Opened\n\n2023-07-05 11:31:42:638 IBC: Detected JDialog (twslaunch.jutils.aN) entitled: null; event=Opened\n\n2023-07-05 11:31:42:659 IBC: Detected JDialog (twslaunch.jutils.aN) entitled: null; event=Activated\n\n2023-07-05 11:32:34:241 IBC: Detected JDialog (twslaunch.jutils.aN) entitled: null; event=Closed\n\n2023-07-05 11:32:34:244 IBC: Detected JDialog (twslaunch.jutils.aN) entitled: null; event=Opened\n\n2023-07-05 11:32:34:252 IBC: Detected JDialog (twslaunch.jutils.aN) entitled: null; event=Activated\n\n2023-07-05 11:32:50:113 IBC: Detected JDialog (twslaunch.jutils.aN) entitled: null; event=Closing\n\n2023-07-05 11:32:50:137 IBC: Detected JDialog (twslaunch.jutils.aN) entitled: null; event=Closed\n\n2023-07-05 11:32:50:188 IBC: Detected JFrame (ibgateway.aB) entitled: Interactive Brokers Gateway; event=Activated\n'})

To troubleshoot I try to open QR IB GUI, it presents a challenge(6 digit number). I don't know what to do with this number and how to login in this case and troubleshoot.

Are you enrolled in mobile authentication with IB (IB Key)? If you're enrolled in IB Key, starting IB Gateway should send a notification to your mobile device where you can complete two-factor authentication. Challenge codes are another form of two-factor authentication but for QuantRocket to automate the login process as much as possible, you need IB Key; if challenge code is the only choice in the dropdown, it suggests you're not enrolled in IB Key. Try logging into your live account outside of QuantRocket using Trader Workstation; once you get that to work with IB Key, using IB Gateway in QuantRocket should work too.

https://ibkr.info/node/2260

Hi @Brian , turns out there's no way to disable the challenge code in IBKR (at least I couldn't find one). When I open the IBKR GUI in QuantRocket and try to login using the live trading account, it presents a challenge pop up and an input box for me to put the challenge response but seems like the input box does not work.

Are you aware of how to disable the challenge code? Or some other way to workaround this issue?

You don't need to disable challenge codes but you do need to enroll in IB Key. You can be enrolled in both. Once you do that, the IB Gateway GUI will display a dropdown during login with the choice to perform two-factor authentication using IB Key or challenge codes, and QuantRocket will automatically select IB Key from the dropdown, and a notification will come to your phone. The problem is that right now you're not enrolled in IB Key (it seems) so the only method IB Gateway can use for 2FA is challenge codes, which QuantRocket doesn't support.

https://ibkr.info/node/2260

Now only getting push notifications and this is resolved. Thanks @Brian