API Reference

lean live deploy

Introduction

Start live trading a project locally using Docker.

$ lean live deploy <project> [options]

Description

Starts local live trading in a Docker container using the quantconnect/lean Docker image. The logs of the algorithm are shown in real-time and the full results are stored in the <project> / live / <timestamp> directory. You can use the --output option to change the output directory.

The given <project> argument must be either a project directory or a file containing the algorithm to backtest. If it is a project directory, the CLI looks for a main.py or Main.cs file, assuming the first file it finds to contain the algorithm to run.

By default, an interactive wizard is shown letting you configure the brokerage and data provider to use. When you provide --environment or both --brokerage and --data-provider-live, the command runs in non-interactive mode and does not prompt for input.

When the --environment option is given, the environment with the given name is used. The given environment must be one of the live environments stored in your Lean configuration file. This means the environment must have the live-mode property set to true.

When --brokerage and --data-provider-live is given, the live configuration is read from the command-line options. In case a required option has not been provided, the command falls back to the property with the same name in your Lean configuration file. The command aborts if this property also hasn't been set. The required options depend on the selected brokerage or data provider.

The following options are required for each brokerage in non-interactive mode:

--brokerageRequired Options
"Paper Trading"N/A
Binance--binance-exchange-name
--binance-api-key or --binanceus-api-key
--binance-api-secret or --binanceus-api-secret
--binance-use-testnet
Bitfinex--bitfinex-api-key
--bitfinex-api-secret
Bybit--bybit-api-key
--bybit-api-secret
--bybit-vip-level
--bybit-use-testnet
Coinbase--coinbase-api-key
--coinbase-api-secret
"Interactive Brokers"--ib-user-name
--ib-account
--ib-password
Kraken--kraken-api-key
--kraken-api-secret
--kraken-verification-tier
Oanda--oanda-account-id
--oanda-access-token
--oanda-environment
Samco--samco-client-id
--samco-client-password
--samco-year-of-birth
--samco-product-type
--samco-trading-segment
TDAmeritrade--tdameritrade-api-key
--tdameritrade-access-token
--tdameritrade-account-number
"Terminal Link"--terminal-link-connection-type
--terminal-link-environment
--terminal-link-server-host
--terminal-link-server-port
--terminal-link-emsx-account
--terminal-link-emsx-broker
--terminal-link-openfigi-api-key
--terminal-link-server-auth-id if you use --terminal-link-connection-type SAPI
Tradier--tradier-account-id
--tradier-access-token
--tradier-environment
"Trading Technologies"--tt-user-name
--tt-session-password
--tt-account-name
--tt-rest-app-key
--tt-rest-app-secret
--tt-rest-environment
--tt-market-data-sender-comp-id
--tt-market-data-target-comp-id
--tt-market-data-host
--tt-market-data-port
--tt-order-routing-sender-comp-id
--tt-order-routing-target-comp-id
--tt-order-routing-host
--tt-order-routing-port
Zerodha--zerodha-api-key
--zerodha-access-token
--zerodha-product-type
--zerodha-trading-segment

The --data-provider-live option is required. The following table shows the available live data providers and their required options in non-interactive mode. To select multiple data providers, seperate them with a comma. The order you select them in defines the order of precedence.

--data-provider-liveRequired Options
Binance--binance-exchange-name
--binance-api-key or --binanceus-api-key
--binance-api-secret or --binanceus-api-secret
BitfinexAll options required by --brokerage Bitfinex.
BybitAll options required by --brokerage Bybit.
"Coinbase Advanced Trade"--coinbase-api-key
--coinbase-api-secret
"Custom data only"N/A
IEX--iex-cloud-api-key
--iex-price-plan
"Interactive Brokers"All options required by --brokerage "Interactive Brokers".
--ib-enable-delayed-streaming-data
IQFeed--iqfeed-iqconnect
--iqfeed-username
--iqfeed-password
--iqfeed-version
--iqfeed-host
KrakenAll options required by --brokerage Kraken.
Oanda--oanda-account-id
--oanda-access-token
Polygon--polygon-api-key
SamcoAll options required by --brokerage Samco.
TDAmeritradeAll options required by --brokerage TDAmeritrade.
"Terminal Link"All options required by --brokerage "Terminal Link".
ThetaData--thetadata-subscription-plan
Tradier--tradier-account-id
--tradier-access-token
"Trading Technologies"--tt-user-name
--tt-session-password
--tt-account-name
--tt-rest-app-key
--tt-rest-app-secret
--tt-rest-environment
--tt-order-routing-sender-comp-id
ZerodhaAll options required by --brokerage Zerodha.
--zerodha-history-subscription

The --data-provider-historical option specifies the source of historical data. The following table shows the available historical data providers and their required options in non-interactive mode. If the live data provider you set also provides historical data and you omit the --data-provider-historical option, it defaults to the same value as the --data-provider-live option. If the live data provider you set doesn't provide historical data and you omit the --data-provider-historical option, it defaults to the Local data provider.

--data-provider-historicalRequired Options
AlphaVantage--alpha-vantage-api-key
--alpha-vantage-price-plan
IEX--iex-cloud-api-key
--iex-price-plan
IQFeed--iqfeed-iqconnect
--iqfeed-username
--iqfeed-password
--iqfeed-version
--iqfeed-host
LocalN/A
Polygon--polygon-api-key
QuantConnectN/A
ThetaData--thetadata-subscription-plan

If you omit some of the required brokerage or data provider options when running in non-interactive mode, the CLI uses the option values in your LEAN configuration file.

Example non-interactive usage:

$ lean live deploy "My Project" \
    --brokerage "Paper Trading" \
    --data-provider-live "Interactive Brokers" \
    --ib-user-name trader777 \
    --ib-account DU1234567 \
    --ib-password hunter2 \
    --ib-enable-delayed-streaming-data yes

The Docker image that is used contains the same libraries as the ones available on QuantConnect. If the selected project is a C# project, it is compiled before starting live trading.

By default, the official LEAN engine image is used. You can override this using the --image <value> option. Alternatively, you can set the default engine image for all commands using lean config set engine-image <value>. The image is pulled before starting the local live trading if it doesn't exist locally yet or if you pass the --update flag.

Arguments

The lean live deploy command expects the following arguments:

ArgumentDescription
<project>The path to the project directory or algorithm file to start local live trading.

Options

The lean live deploy command supports the following options:

OptionDescription
--environment <value>The name of the environment in the Lean configuration file to use.
--output <path>Directory to store results in (defaults to <project> / live / <timestamp>).
--detach, -dRun the live deployment in a detached Docker container and return immediately. The name of the Docker container is shown before the command ends. You can use Docker's own commands to manage the detached container.
--brokerage <value>The brokerage to use when running in non-interactive mode.
--data-provider-liveThe live data source.
--data-provider-historicalThe historical data source.
--ib-user-name <value>Your Interactive Brokers username (example: trader777).
--ib-account <value>Your Interactive Brokers account Id (example: DU1234567).
--ib-password <value>Your Interactive Brokers password.
--ib-weekly-restart-utc-time
--tradier-account-id <value>Your Tradier account id, which you can find on your Settings > API Access page on the Tradier website.
--tradier-access-token <value>Your Tradier access token.
--tradier-environment <value>live to use the live environment or paper to use the developer sandbox.
--oanda-account-id <value>Your OANDA account id, which you can find on your Account Statement page on the OANDA website.
--oanda-access-token <value>Your OANDA API token, which you can generate on the Manage API Access page on the OANDA website.
--oanda-environment <value>Practice to trade on fxTrade Practice or Trade to trade on fxTrade.
--bitfinex-api-key <value>Your Bitfinex API key, which you can generate on the API Management page on the Bitfinex website.
--bitfinex-api-secret <value>Your Bitfinex API secret.
--coinbase-api-key <value>Your Coinbase API key, which you can generate on the API settings page on the Coinbase website.
--coinbase-api-secret <value>Your Coinbase API secret.
--binance-exchange-name <value>Binance, BinanceUS, Binance-USDM-Futures, or Binance-COIN-Futures
--binance-api-key <value>Your Binance API key, which you can generate on the API Management page on the Binance website.
--binanceus-api-key <value>Your Binance US API key, which you can generate on the API Management page on the Binance US website.
--binance-api-secret <value>Your Binance API secret.
--binanceus-api-secret <value>Your Binance US API secret.
--binance-use-testnet <value>live to use the production environment or paper to use the testnet.
--zerodha-api-key <value>Your Kite Connect API key.
--zerodha-access-token <value>Your Zerodha access token.
--zerodha-product-type <value>The product type, which must be mis if you are targeting intraday products, cnc if you are targeting delivery products, or nrml if you are targeting carry forward products.
--zerodha-trading-segment <value>The trading segment, which must be equity if you are trading equities on NSE or BSE, or commodity if you are trading commodities on MCX.
--zerodha-history-subscription <boolean>Whether you have a history API subscription for Zerodha.
--samco-client-id <value>Your Samco account Client ID.
--samco-client-password <value>Your Samco account password.
--samco-year-of-birth <value>Your year of birth (YYYY) registered with Samco.
--samco-product-type <value>The product type, which must be mis if you are targeting intraday products, cnc if you are targeting delivery products, or nrml if you are targeting carry forward products.
--samco-trading-segment <value>The trading segment, which must be equity if you are trading equities on NSE or BSE, or commodity if you are trading commodities on MCX.
--terminal-link-connection-type <value>The Terminal Link connection type, which must be SAPI or DAPI.
--terminal-link-server-auth-id <value>Your unique user identifier (UUID). The UUID is a unique integer identifier that's assigned to each Bloomberg Anywhere user. If you don't know your UUID, contact Bloomberg.
--terminal-link-environment <value>The environment to run in, which must be Production or Beta.
--terminal-link-server-host <value>The host on which the Terminal Link server is running.
--terminal-link-server-port <value>The port on which the Terminal Link server is running.
--terminal-link-emsx-broker <value>The EMSX broker to use.
--terminal-link-emsx-account <value>The EMSX account to use.
--terminal-link-openfigi-api-key <value>The Open FIGI API key to use for mapping Options.
--tt-user-name <value>Your Trading Technologies username.
--tt-session-password <value>Your Trading Technologies session password.
--tt-account-name <value>Your Trading Technologies account name.
--tt-rest-app-key <value>Your Trading Technologies REST app key.
--tt-rest-app-secret <value>Your Trading Technologies REST app secret.
--tt-rest-environment <value>The REST environment in which to run.
--tt-market-data-sender-comp-id <value>The market data sender comp Id to use.
--tt-market-data-target-comp-id <value>The market data target comp Id to use.
--tt-market-data-host <value>The host of the market data server.
--tt-market-data-port <value>The port of the market data server.
--tt-order-routing-sender-comp-id <value>The order routing sender comp Id to use.
--tt-order-routing-target-comp-id <value>The order routing target comp Id to use.
--tt-order-routing-host <value>The host of the order routing server.
--tt-order-routing-port <value>The port of the order routing server.
--tt-log-fix-messages <boolean>Whether FIX messages should be logged.
--kraken-api-key <value>Your Kraken API key, which you can find on the API Management Settings page on the Kraken website.
--kraken-api-secret <value>Your Kraken API secret.
--kraken-verification-tier <value>Your Kraken verification tier (Starter, Intermediate, or Pro). For more information about verification tiers, see Verification levels explained on the Kraken website.
--tdameritrade-api-key <value>Your TDAmeritrade API key.
--tdameritrade-access-token <value>Your TDAmeritrade OAuth Access Token.
--tdameritrade-account-number <value>Your TDAmeritrade account number.
--bybit-api-key <value>Your Bybit API key, which you can generate by following the How to Create Your API Key page on the Bybit website.
--bybit-api-secret <value>Your Bybit API secret.
--bybit-vip-level <value>Your Bybit VIP level (VIP0, VIP1, VIP2, VIP3, VIP4, VIP5, SupremeVIP, Pro1, Pro2, Pro3, Pro4, or Pro5). For more information about the levels, see FAQ — Bybit VIP Program on the Bybit website.
--bybit-use-testnet <value>live to use the production environment or paper to use the Bybit Demo Trading environment.
--ib-enable-delayed-streaming-data <boolean>Whether delayed data may be used when your algorithm subscribes to a security for which you don't have a market data subscription.
--iqfeed-iqconnect <path>The path to your IQConnect binary.
--iqfeed-username <value>Your IQFeed username.
--iqfeed-password <value>Your IQFeed password.
--iqfeed-version <value>The product version of your IQFeed developer account.
--iqfeed-hostThe IQFeed host address.
--polygon-api-key <value>Your Polygon API Key.
--iex-cloud-api-keyYour IEX Cloud API Key.
--iex-price-planYour IEX Cloud price plan. Launch, Grow, or Enterprise.
--coinapi-api-key
--coinapi-product
--alpha-vantage-api-keyYour Alpha Vantage API Key.
--alpha-vantage-price-planYour Alpha Vantage price plan. Free, Plan30, Plan75, Plan150, Plan300, Plan600, or Plan1200.
--releaseCompile C# projects in release configuration instead of debug.
--image <value>The LEAN engine image to use (defaults to quantconnect/lean:latest).
--python-venv <value>The path of the python virtual environment to use.
--live-cash-balance <value>A comma-separated list of currency:amount pairs that define the initial cash balance.
--live-holdings <value>A comma-separated list of "symbol:symbolId:quantity:averagePrice" pairs that define the initial portfolio holdings. For example, "GOOG:GOOCV VP83T1ZUHROL:10:50.0".
--updatePull the LEAN engine image before starting live trading.
--show-secrets
--extra-docker-config
--no-updateUse the local LEAN engine image instead of pulling the latest version.
--lean-config <path>The Lean configuration file that should be used (defaults to the nearest lean.json file).
--verboseEnable debug logging.
--helpDisplay the help text of the lean live deploy command and exit.

You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: