cloud live deploy: no Interactive Brokers (FIX) brokerage, --ib-fix-account / --ib-fix-user-name do not exist

Ouverte
#692 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 6 jours

@quantconnect-kronos y travaille déjà.

Depuis le 1/11/2026.

  • #694 par @quantconnect-kronos — ouverte

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
python
Domaine
cli, cloud

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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-26 downloads modules-1.14.json; lean/models/cloud/__init__.py:21-33 keeps the entries whose platform contains cloud and whose type contains brokerage as cloud_brokerages. The file has no FIX entry, so lean/models/click_options.py:24-25 never generates the options and lean/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-token configuration (lean/models/configuration.py:434-448, AuthConfiguration) with require-user-name: true, as CharlesSchwabBrokerage uses (charles-schwab-oauth-token + a charles-schwab-account-number choice filtered on it). JsonModule.get_user_name() (lean/models/json_module.py:178-204) reads <prefix>-user-name from the options, and the Auth0 flow (json_module.py:311-330, lean/components/util/auth0_helper.py:19-44) calls live/auth0/read with userId and offers accounts from the response as the account choice.

Proposed change

  1. Add an InteractiveBrokersFixBrokerage entry to the modules JSON (display id Interactive 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-name is the IB user name the CLI authorizes with, matching get_user_name()'s <prefix>-user-name convention);
    • ib-fix-account: input-method: choice, filtered on the token, populated from the accounts the Auth0 read returns;
    • the settings sent to /live/create must include ib-fix-linked-account set 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 in get_settings() for this module.
  2. 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 be interactive brokers (fix); live/auth0/authorize expects interactivebrokers and live/auth0/read accepts interactivebrokersfixbrokerage / interactivebrokersbrokerage. The CLI needs to send the module id (or an explicit auth0-brokerage field from the JSON) rather than the display name, or the API needs the alias.
  3. Document the new options on the lean cloud live deploy page (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-name reuse 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's authorize URL does the same with userId)?
  • The paper-account rule (FIX does not support DU accounts) belongs in the module's validation.

Intercom conversation 215476644846297.

Langage dominant
Python
Étoiles
329
Forks
169
Merge moyen
4 j 18 h
PR mergées (30 j)
9

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de QuantConnect/lean-cli

Toutes les issues de QuantConnect/lean-cli

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.