cloud live deploy: no Interactive Brokers (FIX) brokerage, --ib-fix-account / --ib-fix-user-name do not exist
Maintainer thường phản hồi trong vòng 6 ngày
@quantconnect-kronos đang làm issue này rồi.
Từ ngày 1/11/2026.
- #694 của @quantconnect-kronos — đang mở
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Start with lean/models/click_options.py:24-25 and lean/models/cloud/__init__.py:21-33 to see how cloud brokerage options are generated from modules-1.14.json, then read lean/models/json_module.py (get_user_name(), the Auth0 flow) and lean/components/util/auth0_helper.py. The JSON file lives on the CDN, so part of the change is outside this repo and needs maintainer coordination. Done means --brokerage "Interactive Brokers (FIX)" resolves, the --ib-fix-* options appear in lean cloud live deploy --help, and the Auth0 brokerage name and ib-fix-linked-account are sent correctly.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
lean cloud live deploy cannot create an Interactive Brokers (FIX) deployment. The cloud brokerage list the CLI builds from modules-1.14.json has one Interactive Brokers entry, InteractiveBrokersBrokerage (the IB Gateway integration: ib-user-name, ib-account, ib-password, ib-host, ib-port, ...). There is no InteractiveBrokersFixBrokerage module and no ib-fix-* option, in interactive or non-interactive mode, so a member who moved an IB account to the FIX integration (the route the Interactive Brokers docs now recommend for live accounts) can only deploy through the web wizard and loses scripted deployments.
The API side already supports it: /live/create accepts the InteractiveBrokersFixBrokerage module with ib-fix-account, ib-fix-user-name and ib-fix-linked-account (the IB user name whose Client Portal authorization the wizard stored), and live/auth0/read answers brokerage=InteractiveBrokersFixBrokerage with userId=<IB user name> by returning the linked accounts for that user name. The gap is in the CLI.
Reproduce
Lean CLI 1.0.233 (master fba6da7, 2026-10-27), modules-1.14.json fetched from https://cdn.quantconnect.com/cli/modules-1.14.json on 2026-10-31.
$ lean cloud live deploy "My Project" --brokerage "Interactive Brokers (FIX)" --ib-fix-account U1234567 --ib-fix-user-name someuser --node L-MICRO --auto-restart no --notify-order-events no --notify-insights no
Error: No such option '--ib-fix-account'. (Did you mean one of: '--eze-trading-account', '--ib-account', '--terminal-link-emsx-account'?)
$ lean cloud live deploy "My Project" --brokerage "Interactive Brokers (FIX)" --node L-MICRO --auto-restart no --notify-order-events no --notify-insights no
Error: Invalid value for '--brokerage': 'Interactive Brokers (FIX)' is not one of 'Paper Trading', 'Interactive Brokers', 'Tradier', 'Oanda', 'Bitfinex', 'Coinbase Advanced Trade', 'Binance', 'Zerodha', 'Samco', 'Terminal Link', 'Trading Technologies', 'Kraken', 'CharlesSchwab', 'Bybit', 'TradeStation', 'Alpaca', 'Tastytrade', 'Eze', 'dYdX', 'Webull', 'Public', 'ClearStreet'.
$ lean cloud live deploy --help | grep -- --ib-
--ib-user-name TEXT Your Interactive Brokers username
--ib-account TEXT Your Interactive Brokers account id
--ib-password TEXT Your Interactive Brokers password
--ib-host TEXT External Interactive Brokers Gateway Host
--ib-port TEXT External Interactive Brokers Gateway Port
--ib-weekly-restart-utc-time TEXT
--ib-financial-advisors-group-filter TEXT
InteractiveBrokersFixBrokerage as the --brokerage value fails the same way, and the interactive wizard offers the same 22 names.
Where
lean/models/__init__.py:20-26downloadsmodules-1.14.json;lean/models/cloud/__init__.py:21-33keeps the entries whoseplatformcontainscloudand whosetypecontainsbrokerageascloud_brokerages. The file has no FIX entry, solean/models/click_options.py:24-25never generates the options andlean/commands/cloud/live/deploy.py:290(non_interactive_config_build_for_name) cannot resolve the name.- The CLI already has the pattern a FIX entry needs: an
oauth-tokenconfiguration (lean/models/configuration.py:434-448,AuthConfiguration) withrequire-user-name: true, asCharlesSchwabBrokerageuses (charles-schwab-oauth-token+ acharles-schwab-account-numberchoice filtered on it).JsonModule.get_user_name()(lean/models/json_module.py:178-204) reads<prefix>-user-namefrom the options, and the Auth0 flow (json_module.py:311-330,lean/components/util/auth0_helper.py:19-44) callslive/auth0/readwithuserIdand offersaccountsfrom the response as the account choice.
Proposed change
- Add an
InteractiveBrokersFixBrokerageentry to the modules JSON (display idInteractive Brokers (FIX),platform: ["cloud"],type: ["brokerage"], minimum seat as the Gateway entry) with:ib-fix-oauth-token:type: oauth-token,require-user-name: true(so--ib-fix-user-nameis the IB user name the CLI authorizes with, matchingget_user_name()'s<prefix>-user-nameconvention);ib-fix-account:input-method: choice, filtered on the token, populated from theaccountsthe Auth0 read returns;- the settings sent to
/live/createmust includeib-fix-linked-accountset to the same IB user name (the factory requires it), so either the module maps it from the user name or the CLI adds it inget_settings()for this module.
- The Auth0 brokerage name the CLI sends is the lowercased display name (
json_module.py:318:self._display_name.lower()), which for the new entry would beinteractive brokers (fix);live/auth0/authorizeexpectsinteractivebrokersandlive/auth0/readacceptsinteractivebrokersfixbrokerage/interactivebrokersbrokerage. The CLI needs to send the module id (or an explicitauth0-brokeragefield from the JSON) rather than the display name, or the API needs the alias. - Document the new options on the
lean cloud live deploypage (today it lists the Gateway options only).
Untested: no diff, since the change spans the CDN modules file and the CLI.
Open questions
- Should
--ib-fix-user-namereuse the Gateway-style free text, or should the CLI require the user name to already be linked (the wizard's "+ Add Account" flow opens the IB login; the CLI'sauthorizeURL does the same withuserId)? - The paper-account rule (FIX does not support
DUaccounts) belongs in the module's validation.
Intercom conversation 215476644846297.
- Ngôn ngữ chính
- Python
- Star
- 329
- Fork
- 169
- Merge trung bình
- 4 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 9
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của QuantConnect/lean-cli
-
lean live deploy skips the localhost host rewrite and symbol map mount for brokerage settingsCó thể đã có người làm @pcbeingused333 đã nhận 2 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
QuantConnect/lean-cli#690 ·
Maintainer thường phản hồi trong vòng 6 ngày
-
cloud pull --encrypt leaves the project without its key path and encrypts referenced librariesCó thể đã có người làm @Amadeus-22 đã nhận 3 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
QuantConnect/lean-cli#688 ·
Maintainer thường phản hồi trong vòng 6 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
QuantConnect/lean-cli#681 ·
Maintainer thường phản hồi trong vòng 6 ngày
-
lean cloud push overwrites read-only shared library filesCó thể đã có người làm @Amadeus-22 đã nhận 3 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
QuantConnect/lean-cli#661 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 6 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
QuantConnect/lean-cli#619 ·
Maintainer thường phản hồi trong vòng 6 ngày
Tất cả issue của QuantConnect/lean-cli
Issue tương tự
-
question
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
conda-forge/vc-feedstock#132 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
limitlessprojects/Go-Hybrid#3342 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
UKGovernmentBEIS/inspect_ai#6268 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
LSSTDESC/rail_sompz#42 ·
-
All tests fail with 'EXITED with status 3' on pytest 9.2.0 (TestReport._id is not marshallable)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
pytest-dev/pytest-forked#113 ·