Skip to content

Commit 71f231b

Browse files
authored
Remove: IEX data provider (#537)
* remove: IEX from README.md * remove: all IEX mention in test_live.py
1 parent 52437d0 commit 71f231b

File tree

2 files changed

+24
-52
lines changed

2 files changed

+24
-52
lines changed

README.md

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ Options:
150150
-d, --detach Run the backtest in a detached Docker container and return immediately
151151
--debug [pycharm|ptvsd|debugpy|vsdbg|rider|local-platform]
152152
Enable a certain debugging method (see --help for more information)
153-
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|IEX|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Terminal Link|Bybit|TradeStation|Alpaca]
153+
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Terminal Link|Bybit|TradeStation|Alpaca]
154154
Update the Lean configuration file to retrieve data from the given historical provider
155155
--ib-user-name TEXT Your Interactive Brokers username
156156
--ib-account TEXT Your Interactive Brokers account id
@@ -188,9 +188,6 @@ Options:
188188
--polygon-api-key TEXT Your Polygon.io API Key
189189
--factset-auth-config-file FILE
190190
The path to the FactSet authentication configuration file
191-
--iex-cloud-api-key TEXT Your iexcloud.io API token publishable key
192-
--iex-price-plan [Launch|Grow|Enterprise]
193-
Your IEX Cloud Price plan
194191
--alpha-vantage-api-key TEXT Your Alpha Vantage Api Key
195192
--alpha-vantage-price-plan [Free|Plan30|Plan75|Plan150|Plan300|Plan600|Plan1200]
196193
Your Alpha Vantage Premium API Key plan
@@ -353,7 +350,7 @@ Usage: lean cloud live deploy [OPTIONS] PROJECT
353350
Options:
354351
--brokerage [Paper Trading|Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Zerodha|Samco|Terminal Link|Trading Technologies|Kraken|CharlesSchwab|Bybit|TradeStation|Alpaca]
355352
The brokerage to use
356-
--data-provider-live [QuantConnect|Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Zerodha|Samco|Terminal Link|Trading Technologies|Kraken|CharlesSchwab|Polygon|IEX|CoinApi|Bybit|TradeStation|Alpaca]
353+
--data-provider-live [QuantConnect|Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Zerodha|Samco|Terminal Link|Trading Technologies|Kraken|CharlesSchwab|Polygon|CoinApi|Bybit|TradeStation|Alpaca]
357354
The live data provider to use
358355
--ib-user-name TEXT Your Interactive Brokers username
359356
--ib-account TEXT Your Interactive Brokers account id
@@ -442,9 +439,6 @@ Options:
442439
--alpaca-environment [live|paper]
443440
Whether Live or Paper environment should be used
444441
--polygon-api-key TEXT Your Polygon.io API Key
445-
--iex-cloud-api-key TEXT Your iexcloud.io API token publishable key
446-
--iex-price-plan [Launch|Grow|Enterprise]
447-
Your IEX Cloud Price plan
448442
--coinapi-api-key TEXT Your coinapi.io Api Key
449443
--coinapi-product [Free|Startup|Streamer|Professional|Enterprise]
450444
CoinApi pricing plan (https://www.coinapi.io/market-data-api/pricing)
@@ -851,7 +845,7 @@ Usage: lean data download [OPTIONS]
851845
https://www.quantconnect.com/datasets
852846
853847
Options:
854-
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|IEX|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Terminal Link|Bybit|TradeStation|Alpaca]
848+
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Terminal Link|Bybit|TradeStation|Alpaca]
855849
The name of the downloader data provider.
856850
--ib-user-name TEXT Your Interactive Brokers username
857851
--ib-account TEXT Your Interactive Brokers account id
@@ -889,9 +883,6 @@ Options:
889883
--polygon-api-key TEXT Your Polygon.io API Key
890884
--factset-auth-config-file FILE
891885
The path to the FactSet authentication configuration file
892-
--iex-cloud-api-key TEXT Your iexcloud.io API token publishable key
893-
--iex-price-plan [Launch|Grow|Enterprise]
894-
Your IEX Cloud Price plan
895886
--alpha-vantage-api-key TEXT Your Alpha Vantage Api Key
896887
--alpha-vantage-price-plan [Free|Plan30|Plan75|Plan150|Plan300|Plan600|Plan1200]
897888
Your Alpha Vantage Premium API Key plan
@@ -1292,9 +1283,9 @@ Options:
12921283
-d, --detach Run the live deployment in a detached Docker container and return immediately
12931284
--brokerage [Paper Trading|Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Zerodha|Samco|Terminal Link|Trading Technologies|Kraken|CharlesSchwab|Bybit|TradeStation|Alpaca]
12941285
The brokerage to use
1295-
--data-provider-live [Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Zerodha|Samco|Terminal Link|Trading Technologies|Kraken|CharlesSchwab|IQFeed|Polygon|IEX|CoinApi|ThetaData|Custom data only|Bybit|TradeStation|Alpaca]
1286+
--data-provider-live [Interactive Brokers|Tradier|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Zerodha|Samco|Terminal Link|Trading Technologies|Kraken|CharlesSchwab|IQFeed|Polygon|CoinApi|ThetaData|Custom data only|Bybit|TradeStation|Alpaca]
12961287
The live data provider to use
1297-
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|IEX|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Bybit|TradeStation|Alpaca]
1288+
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Bybit|TradeStation|Alpaca]
12981289
Update the Lean configuration file to retrieve data from the given historical provider
12991290
--ib-user-name TEXT Your Interactive Brokers username
13001291
--ib-account TEXT Your Interactive Brokers account id
@@ -1409,9 +1400,6 @@ Options:
14091400
--iqfeed-version TEXT The product version of your IQFeed developer account
14101401
--iqfeed-host TEXT The IQFeed host address (Optional).
14111402
--polygon-api-key TEXT Your Polygon.io API Key
1412-
--iex-cloud-api-key TEXT Your iexcloud.io API token publishable key
1413-
--iex-price-plan [Launch|Grow|Enterprise]
1414-
Your IEX Cloud Price plan
14151403
--coinapi-api-key TEXT Your coinapi.io Api Key
14161404
--coinapi-product [Free|Startup|Streamer|Professional|Enterprise]
14171405
CoinApi pricing plan (https://www.coinapi.io/market-data-api/pricing)
@@ -1734,7 +1722,7 @@ Options:
17341722
--parameter <TEXT FLOAT FLOAT FLOAT>...
17351723
The 'parameter min max step' pairs configuring the parameters to optimize
17361724
--constraint TEXT The 'statistic operator value' pairs configuring the constraints of the optimization
1737-
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|IEX|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Terminal Link|Bybit|TradeStation|Alpaca]
1725+
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Terminal Link|Bybit|TradeStation|Alpaca]
17381726
Update the Lean configuration file to retrieve data from the given historical provider
17391727
--download-data Update the Lean configuration file to download data from the QuantConnect API, alias
17401728
for --data-provider-historical QuantConnect
@@ -1785,9 +1773,6 @@ Options:
17851773
--polygon-api-key TEXT Your Polygon.io API Key
17861774
--factset-auth-config-file FILE
17871775
The path to the FactSet authentication configuration file
1788-
--iex-cloud-api-key TEXT Your iexcloud.io API token publishable key
1789-
--iex-price-plan [Launch|Grow|Enterprise]
1790-
Your IEX Cloud Price plan
17911776
--alpha-vantage-api-key TEXT Your Alpha Vantage Api Key
17921777
--alpha-vantage-price-plan [Free|Plan30|Plan75|Plan150|Plan300|Plan600|Plan1200]
17931778
Your Alpha Vantage Premium API Key plan
@@ -1995,7 +1980,7 @@ Usage: lean research [OPTIONS] PROJECT
19951980
19961981
Options:
19971982
--port INTEGER The port to run Jupyter Lab on (defaults to 8888)
1998-
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|IEX|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Terminal Link|Bybit|TradeStation|Alpaca]
1983+
--data-provider-historical [Interactive Brokers|Oanda|Bitfinex|Coinbase Advanced Trade|Binance|Kraken|CharlesSchwab|IQFeed|Polygon|FactSet|AlphaVantage|CoinApi|ThetaData|QuantConnect|Local|Terminal Link|Bybit|TradeStation|Alpaca]
19991984
Update the Lean configuration file to retrieve data from the given historical provider
20001985
--ib-user-name TEXT Your Interactive Brokers username
20011986
--ib-account TEXT Your Interactive Brokers account id
@@ -2033,9 +2018,6 @@ Options:
20332018
--polygon-api-key TEXT Your Polygon.io API Key
20342019
--factset-auth-config-file FILE
20352020
The path to the FactSet authentication configuration file
2036-
--iex-cloud-api-key TEXT Your iexcloud.io API token publishable key
2037-
--iex-price-plan [Launch|Grow|Enterprise]
2038-
Your IEX Cloud Price plan
20392021
--alpha-vantage-api-key TEXT Your Alpha Vantage Api Key
20402022
--alpha-vantage-price-plan [Free|Plan30|Plan75|Plan150|Plan300|Plan600|Plan1200]
20412023
Your Alpha Vantage Premium API Key plan

tests/commands/test_live.py

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -457,9 +457,8 @@ def test_live_sets_dependent_configurations_from_modules_json_based_on_environme
457457
}
458458

459459
data_provider_required_options = {
460-
"IEX": {
461-
"iex-cloud-api-key": "123",
462-
"iex-price-plan": "Launch",
460+
"ThetaData": {
461+
"thetadata-subscription-plan": "Pro",
463462
},
464463
"Polygon": {
465464
"polygon-api-key": "123",
@@ -1130,9 +1129,7 @@ def test_live_non_interactive_deploy_with_live_and_historical_provider_missed_hi
11301129

11311130
container.initialize(docker_manager=mock.Mock(), lean_runner=mock.Mock(), api_client = mock.MagicMock())
11321131

1133-
provider_live_option = ["--data-provider-live", "IEX",
1134-
"--iex-cloud-api-key", "123",
1135-
"--iex-price-plan", "Launch"]
1132+
provider_live_option = ["--data-provider-live", "Polygon" ]
11361133

11371134
provider_history_option = ["--data-provider-historical", "Polygon"]
11381135
# "--polygon-api-key", "123"]
@@ -1145,7 +1142,6 @@ def test_live_non_interactive_deploy_with_live_and_historical_provider_missed_hi
11451142
error_msg = str(result.exc_info[1]).split()
11461143

11471144
assert "--polygon-api-key" in error_msg
1148-
assert "--iex-cloud-api-key" not in error_msg
11491145

11501146
assert result.exit_code == 1
11511147

@@ -1155,11 +1151,9 @@ def test_live_non_interactive_deploy_with_live_and_historical_provider_missed_li
11551151

11561152
container.initialize(docker_manager=mock.Mock(), lean_runner=mock.Mock(), api_client = mock.MagicMock())
11571153

1158-
provider_live_option = ["--data-provider-live", "IEX",
1159-
"--iex-cloud-api-key", "123"]
1160-
#"--iex-price-plan", "Launch"]
1154+
provider_live_option = ["--data-provider-live", "Polygon", "--polygon-api-key", "123"]
11611155

1162-
provider_history_option = ["--data-provider-historical", "Polygon", "--polygon-api-key", "123"]
1156+
provider_history_option = ["--data-provider-historical", "Polygon"]
11631157

11641158
result = CliRunner().invoke(lean, ["live", "deploy", "--brokerage", "Paper Trading",
11651159
*provider_live_option,
@@ -1169,10 +1163,9 @@ def test_live_non_interactive_deploy_with_live_and_historical_provider_missed_li
11691163

11701164
error_msg = str(result.exc_info[1]).split()
11711165

1172-
assert "--iex-price-plan" in error_msg
11731166
assert "--polygon-api-key" not in error_msg
11741167

1175-
assert result.exit_code == 1
1168+
assert result.exit_code == 0
11761169

11771170
def test_live_non_interactive_deploy_with_real_brokerage_without_credentials() -> None:
11781171
create_fake_lean_cli_directory()
@@ -1183,9 +1176,7 @@ def test_live_non_interactive_deploy_with_real_brokerage_without_credentials() -
11831176
# create fake environment has IB configs already
11841177
brokerage = ["--brokerage", "OANDA"]
11851178

1186-
provider_live_option = ["--data-provider-live", "IEX",
1187-
"--iex-cloud-api-key", "123",
1188-
"--iex-price-plan", "Launch"]
1179+
provider_live_option = ["--data-provider-live", "Polygon", "--polygon-api-key", "123"]
11891180

11901181
result = CliRunner().invoke(lean, ["live", "deploy",
11911182
*brokerage,
@@ -1199,7 +1190,6 @@ def test_live_non_interactive_deploy_with_real_brokerage_without_credentials() -
11991190
assert "--oanda-account-id" in error_msg
12001191
assert "--oanda-access-token" in error_msg
12011192
assert "--oanda-environment" in error_msg
1202-
assert "--iex-price-plan" not in error_msg
12031193

12041194

12051195
def create_lean_option(brokerage_name: str, data_provider_live_name: str, data_provider_historical_name: str,
@@ -1239,10 +1229,10 @@ def create_lean_option(brokerage_name: str, data_provider_live_name: str, data_p
12391229
return result
12401230

12411231
@pytest.mark.parametrize("brokerage_name,data_provider_live_name,data_provider_historical_name,brokerage_product_id,data_provider_live_product_id,data_provider_historical_id",
1242-
[("Interactive Brokers", "IEX", "Polygon", "181", "333", "306"),
1243-
("Paper Trading", "IEX", "Polygon", None, "333", "306"),
1244-
("Tradier", "IEX", "AlphaVantage", "185", "333", "334"),
1245-
("Paper Trading", "IEX", "Local", None, "333", "222")])
1232+
[("Interactive Brokers", "ThetaData", "Polygon", "181", "344", "306"),
1233+
("Paper Trading", "ThetaData", "Polygon", None, "344", "306"),
1234+
("Tradier", "ThetaData", "AlphaVantage", "185", "344", "334"),
1235+
("Paper Trading", "ThetaData", "Local", None, "344", "222")])
12461236
def test_live_deploy_with_different_brokerage_and_different_live_data_provider_and_historical_data_provider(brokerage_name: str, data_provider_live_name: str, data_provider_historical_name: str, brokerage_product_id: str, data_provider_live_product_id: str, data_provider_historical_id: str) -> None:
12471237
if (brokerage_name == "Interactive Brokers" and sys.platform == "darwin"):
12481238
pytest.skip("MacOS does not support IB tests")
@@ -1257,10 +1247,10 @@ def test_live_deploy_with_different_brokerage_and_different_live_data_provider_a
12571247
if id in m_c[1]:
12581248
is_exists.append(True)
12591249
assert is_exists
1260-
assert len(is_exists) == 2
1250+
assert len(is_exists) == 1
12611251
elif brokerage_product_id is None and data_provider_historical_name == "Local":
12621252
assert len(api_client.method_calls) == 1
1263-
if data_provider_live_product_id in api_client.method_calls[0][1]:
1253+
if int(data_provider_live_product_id) in api_client.method_calls[0][1]:
12641254
is_exists.append(True)
12651255
assert is_exists
12661256
assert len(is_exists) == 1
@@ -1273,8 +1263,8 @@ def test_live_deploy_with_different_brokerage_and_different_live_data_provider_a
12731263
assert len(is_exists) == 3
12741264

12751265
@pytest.mark.parametrize("brokerage_name,data_provider_live_name,brokerage_product_id,data_provider_live_product_id",
1276-
[("Interactive Brokers", "IEX", "181", "333"),
1277-
("Tradier", "IEX", "185", "333")])
1266+
[("Interactive Brokers", "Polygon", "181", "306"),
1267+
("Tradier", "Polygon", "185", "306")])
12781268
def test_live_non_interactive_deploy_with_different_brokerage_and_different_live_data_provider(brokerage_name: str, data_provider_live_name: str, brokerage_product_id: str, data_provider_live_product_id: str) -> None:
12791269
if (brokerage_name == "Interactive Brokers" and sys.platform == "darwin"):
12801270
pytest.skip("MacOS does not support IB tests")
@@ -1313,15 +1303,15 @@ def test_live_non_interactive_deploy_with_different_brokerage_with_the_same_live
13131303
assert is_exist
13141304

13151305
@pytest.mark.parametrize("brokerage_name,data_provider_live_name,data_provider_live_product_id",
1316-
[("Paper Trading", "IEX", "333"),
1306+
[("Paper Trading", "ThetaData", "344"),
13171307
("Paper Trading", "Polygon", "306")])
13181308
def test_live_non_interactive_deploy_paper_brokerage_different_live_data_provider(brokerage_name: str, data_provider_live_name: str, data_provider_live_product_id: str) -> None:
13191309
api_client = mock.MagicMock()
13201310
create_lean_option(brokerage_name, data_provider_live_name, None, api_client)
13211311

13221312
assert len(api_client.method_calls) == 1
13231313
for m_c in api_client.method_calls:
1324-
if data_provider_live_product_id in m_c[1]:
1314+
if data_provider_live_product_id in str(m_c[1]):
13251315
is_exist = True
13261316

13271317
assert is_exist

0 commit comments

Comments
 (0)