Skip to content

Commit

Permalink
Merge pull request #254 from rjra2611/add-tda-brokerage
Browse files Browse the repository at this point in the history
Add TDAmeritrade brokerage
  • Loading branch information
Martin-Molinero authored Dec 16, 2022
2 parents 129228a + 1c4d365 commit 5b41980
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 7 deletions.
16 changes: 13 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ Usage: lean cloud live deploy [OPTIONS] PROJECT
--notify-insights.
Options:
--brokerage [Paper Trading|Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Pro|Binance|Zerodha|Samco|Trading Technologies|Kraken]
--brokerage [Paper Trading|Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Pro|Binance|Zerodha|Samco|Trading Technologies|Kraken|TDAmeritrade]
The brokerage to use
--ib-user-name TEXT Your Interactive Brokers username
--ib-account TEXT Your Interactive Brokers account id
Expand Down Expand Up @@ -306,6 +306,11 @@ Options:
--kraken-api-secret TEXT Your Kraken API secret
--kraken-verification-tier [Starter|Intermediate|Pro]
Your Kraken Verification Tier
--tdameritrade-api-key TEXT Your TDAmeritrade API key
--tdameritrade-access-token TEXT
Your TDAmeritrade OAuth Access Token
--tdameritrade-account-number TEXT
Your TDAmeritrade account number
--node TEXT The name or id of the live node to run on
--auto-restart BOOLEAN Whether automatic algorithm restarting must be enabled
--notify-order-events BOOLEAN Whether notifications must be sent for order events
Expand Down Expand Up @@ -849,9 +854,9 @@ Options:
--environment TEXT The environment to use
--output DIRECTORY Directory to store results in (defaults to PROJECT/live/TIMESTAMP)
-d, --detach Run the live deployment in a detached Docker container and return immediately
--brokerage [Paper Trading|Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Pro|Binance|Zerodha|Samco|Terminal Link|Atreyu|Trading Technologies|Kraken]
--brokerage [Paper Trading|Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Pro|Binance|Zerodha|Samco|Terminal Link|Atreyu|Trading Technologies|Kraken|TDAmeritrade]
The brokerage to use
--data-feed [Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Pro|Binance|Zerodha|Samco|Terminal Link|Kraken|IQFeed|Polygon Data Feed|Custom data only]
--data-feed [Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Pro|Binance|Zerodha|Samco|Terminal Link|Kraken|TDAmeritrade|IQFeed|Polygon Data Feed|Custom data only]
The data feed to use
--data-provider [Terminal Link|QuantConnect|Local]
Update the Lean configuration file to retrieve data from the given provider
Expand Down Expand Up @@ -957,6 +962,11 @@ Options:
--kraken-api-secret TEXT Your Kraken API secret
--kraken-verification-tier [Starter|Intermediate|Pro]
Your Kraken Verification Tier
--tdameritrade-api-key TEXT Your TDAmeritrade API key
--tdameritrade-access-token TEXT
Your TDAmeritrade OAuth Access Token
--tdameritrade-account-number TEXT
Your TDAmeritrade account number
--ib-enable-delayed-streaming-data BOOLEAN
Whether delayed data may be used when your algorithm subscribes to a security you
don't have a market data subscription for
Expand Down
7 changes: 5 additions & 2 deletions tests/commands/cloud/live/test_cloud_live_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,8 @@ def test_cloud_live_deploy_with_notifications(notice_method: str, configs: str)
("Samco", "USD:100"),
("Terminal Link", "USD:100"),
("Tradier", "USD:100"),
("Zerodha", "USD:100")])
("Zerodha", "USD:100"),
("TDAmeritrade", "USD:100")])
def test_cloud_live_deploy_with_live_cash_balance(brokerage: str, cash: str) -> None:
create_fake_lean_cli_directory()

Expand Down Expand Up @@ -264,7 +265,9 @@ def test_cloud_live_deploy_with_live_cash_balance(brokerage: str, cash: str) ->
("Tradier", ""),
("Tradier", "A:A 2T:1:145.1"),
("Zerodha", ""),
("Zerodha", "A:A 2T:1:145.1")])
("Zerodha", "A:A 2T:1:145.1"),
("TDAmeritrade", ""),
("TDAmeritrade", "A:A 2T:1:145.1")])
def test_cloud_live_deploy_with_live_holdings(brokerage: str, holdings: str) -> None:
create_fake_lean_cli_directory()

Expand Down
14 changes: 12 additions & 2 deletions tests/commands/test_live.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,11 @@ def test_live_aborts_when_lean_config_is_missing_properties(target: str, replace
"tt-order-routing-host": "abc",
"tt-order-routing-port": "abc",
"tt-log-fix-messages": "no"
},
"TDAmeritrade": {
"tdameritrade-account-number": "123",
"tdameritrade-api-key": "abc",
"tdameritrade-access-token": "abc",
}
}

Expand All @@ -327,6 +332,7 @@ def test_live_aborts_when_lean_config_is_missing_properties(target: str, replace
"Samco": brokerage_required_options["Samco"],
"Terminal Link": brokerage_required_options["Terminal Link"],
"Kraken": brokerage_required_options["Kraken"],
"TDAmeritrade": brokerage_required_options["TDAmeritrade"]
}


Expand Down Expand Up @@ -768,7 +774,9 @@ def test_live_passes_custom_python_venv_to_lean_runner_when_given_as_option(pyth
("Tradier", ""),
("Tradier", "USD:100"),
("Zerodha", ""),
("Zerodha", "USD:100")])
("Zerodha", "USD:100"),
("TDAmeritrade", ""),
("TDAmeritrade", "USD:100")])
def test_live_passes_live_cash_balance_to_lean_runner_when_given_as_option(brokerage: str, cash: str) -> None:
create_fake_lean_cli_directory()
lean_runner= container.lean_runner
Expand Down Expand Up @@ -830,7 +838,9 @@ def test_live_passes_live_cash_balance_to_lean_runner_when_given_as_option(broke
("Tradier", ""),
("Tradier", "A:A 2T:1:145.1"),
("Zerodha", ""),
("Zerodha", "A:A 2T:1:145.1")])
("Zerodha", "A:A 2T:1:145.1"),
("TDAmeritrade", ""),
("TDAmeritrade", "A:A 2T:1:145.1")])
def test_live_passes_live_holdings_to_lean_runner_when_given_as_option(brokerage: str, holdings: str) -> None:
create_fake_lean_cli_directory()
lean_runner= container.lean_runner
Expand Down

0 comments on commit 5b41980

Please sign in to comment.