lumibot 4.1.2__py3-none-any.whl → 4.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of lumibot might be problematic. Click here for more details.
- lumibot/backtesting/__init__.py +19 -5
- lumibot/backtesting/backtesting_broker.py +98 -18
- lumibot/backtesting/databento_backtesting.py +5 -686
- lumibot/backtesting/databento_backtesting_pandas.py +738 -0
- lumibot/backtesting/databento_backtesting_polars.py +860 -546
- lumibot/backtesting/fix_debug.py +37 -0
- lumibot/backtesting/thetadata_backtesting.py +9 -355
- lumibot/backtesting/thetadata_backtesting_pandas.py +1178 -0
- lumibot/brokers/alpaca.py +8 -1
- lumibot/brokers/schwab.py +12 -2
- lumibot/credentials.py +13 -0
- lumibot/data_sources/__init__.py +5 -8
- lumibot/data_sources/data_source.py +6 -2
- lumibot/data_sources/data_source_backtesting.py +30 -0
- lumibot/data_sources/databento_data.py +5 -390
- lumibot/data_sources/databento_data_pandas.py +440 -0
- lumibot/data_sources/databento_data_polars.py +15 -9
- lumibot/data_sources/pandas_data.py +30 -17
- lumibot/data_sources/polars_data.py +986 -0
- lumibot/data_sources/polars_mixin.py +472 -96
- lumibot/data_sources/polygon_data_polars.py +5 -0
- lumibot/data_sources/yahoo_data.py +9 -2
- lumibot/data_sources/yahoo_data_polars.py +5 -0
- lumibot/entities/__init__.py +15 -0
- lumibot/entities/asset.py +5 -28
- lumibot/entities/bars.py +89 -20
- lumibot/entities/data.py +29 -6
- lumibot/entities/data_polars.py +668 -0
- lumibot/entities/position.py +38 -4
- lumibot/strategies/_strategy.py +31 -9
- lumibot/strategies/strategy.py +61 -49
- lumibot/tools/backtest_cache.py +284 -0
- lumibot/tools/databento_helper.py +65 -42
- lumibot/tools/databento_helper_polars.py +748 -778
- lumibot/tools/futures_roll.py +251 -0
- lumibot/tools/indicators.py +135 -104
- lumibot/tools/polars_utils.py +142 -0
- lumibot/tools/thetadata_helper.py +1068 -134
- {lumibot-4.1.2.dist-info → lumibot-4.2.0.dist-info}/METADATA +9 -1
- {lumibot-4.1.2.dist-info → lumibot-4.2.0.dist-info}/RECORD +72 -148
- tests/backtest/test_databento.py +37 -6
- tests/backtest/test_databento_comprehensive_trading.py +70 -87
- tests/backtest/test_databento_parity.py +31 -7
- tests/backtest/test_debug_avg_fill_price.py +1 -1
- tests/backtest/test_example_strategies.py +11 -1
- tests/backtest/test_futures_edge_cases.py +96 -63
- tests/backtest/test_futures_single_trade.py +2 -2
- tests/backtest/test_futures_ultra_simple.py +2 -2
- tests/backtest/test_polars_lru_eviction.py +470 -0
- tests/backtest/test_yahoo.py +42 -0
- tests/test_asset.py +4 -4
- tests/test_backtest_cache_manager.py +149 -0
- tests/test_backtesting_data_source_env.py +50 -10
- tests/test_continuous_futures_resolution.py +60 -48
- tests/test_data_polars_parity.py +160 -0
- tests/test_databento_asset_validation.py +23 -5
- tests/test_databento_backtesting.py +1 -1
- tests/test_databento_backtesting_polars.py +312 -192
- tests/test_databento_data.py +220 -463
- tests/test_databento_helper.py +6 -1
- tests/test_databento_live.py +10 -10
- tests/test_futures_roll.py +38 -0
- tests/test_indicator_subplots.py +101 -0
- tests/test_market_infinite_loop_bug.py +77 -3
- tests/test_polars_resample.py +67 -0
- tests/test_polygon_helper.py +46 -0
- tests/test_thetadata_backwards_compat.py +97 -0
- tests/test_thetadata_helper.py +222 -23
- tests/test_thetadata_pandas_verification.py +186 -0
- lumibot/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/__pycache__/constants.cpython-312.pyc +0 -0
- lumibot/__pycache__/credentials.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/alpaca_backtesting.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/alpha_vantage_backtesting.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/backtesting_broker.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/ccxt_backtesting.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/databento_backtesting.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/interactive_brokers_rest_backtesting.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/pandas_backtesting.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/polygon_backtesting.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/thetadata_backtesting.cpython-312.pyc +0 -0
- lumibot/backtesting/__pycache__/yahoo_backtesting.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/alpaca.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/bitunix.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/broker.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/ccxt.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/example_broker.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/interactive_brokers.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/interactive_brokers_rest.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/projectx.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/schwab.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/tradier.cpython-312.pyc +0 -0
- lumibot/brokers/__pycache__/tradovate.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/alpaca_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/alpha_vantage_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/bitunix_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/ccxt_backtesting_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/ccxt_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/data_source.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/data_source_backtesting.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/databento_data_polars_backtesting.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/databento_data_polars_live.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/example_broker_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/exceptions.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/interactive_brokers_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/interactive_brokers_rest_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/pandas_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/polars_mixin.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/polygon_data_polars.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/projectx_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/schwab_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/tradier_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/tradovate_data.cpython-312.pyc +0 -0
- lumibot/data_sources/__pycache__/yahoo_data_polars.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/asset.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/bar.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/bars.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/chains.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/data.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/dataline.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/order.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/position.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/quote.cpython-312.pyc +0 -0
- lumibot/entities/__pycache__/trading_fee.cpython-312.pyc +0 -0
- lumibot/example_strategies/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/example_strategies/__pycache__/test_broker_functions.cpython-312-pytest-8.4.1.pyc +0 -0
- lumibot/strategies/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/strategies/__pycache__/_strategy.cpython-312.pyc +0 -0
- lumibot/strategies/__pycache__/strategy.cpython-312.pyc +0 -0
- lumibot/strategies/__pycache__/strategy_executor.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/alpaca_helpers.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/bitunix_helpers.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/black_scholes.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/ccxt_data_store.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/databento_helper.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/databento_helper_polars.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/debugers.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/decorators.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/helpers.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/indicators.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/lumibot_logger.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/pandas.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/polygon_helper.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/polygon_helper_async.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/polygon_helper_polars_optimized.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/projectx_helpers.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/schwab_helper.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/thetadata_helper.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/types.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/yahoo_helper.cpython-312.pyc +0 -0
- lumibot/tools/__pycache__/yahoo_helper_polars_optimized.cpython-312.pyc +0 -0
- lumibot/traders/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/traders/__pycache__/trader.cpython-312.pyc +0 -0
- lumibot/trading_builtins/__pycache__/__init__.cpython-312.pyc +0 -0
- lumibot/trading_builtins/__pycache__/custom_stream.cpython-312.pyc +0 -0
- lumibot/trading_builtins/__pycache__/safe_list.cpython-312.pyc +0 -0
- {lumibot-4.1.2.dist-info → lumibot-4.2.0.dist-info}/WHEEL +0 -0
- {lumibot-4.1.2.dist-info → lumibot-4.2.0.dist-info}/licenses/LICENSE +0 -0
- {lumibot-4.1.2.dist-info → lumibot-4.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lumibot
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.2.0
|
|
4
4
|
Summary: Backtesting and Trading Library, Made by Lumiwealth
|
|
5
5
|
Home-page: https://github.com/Lumiwealth/lumibot
|
|
6
6
|
Author: Robert Grzesik
|
|
@@ -51,6 +51,7 @@ Requires-Dist: schwab-py>=1.5.0
|
|
|
51
51
|
Requires-Dist: Flask>=2.3
|
|
52
52
|
Requires-Dist: free-proxy
|
|
53
53
|
Requires-Dist: requests-oauthlib
|
|
54
|
+
Requires-Dist: boto3>=1.28.0
|
|
54
55
|
Dynamic: author
|
|
55
56
|
Dynamic: author-email
|
|
56
57
|
Dynamic: classifier
|
|
@@ -146,6 +147,13 @@ To run an individual test file, you can run the following command:
|
|
|
146
147
|
pytest tests/test_asset.py
|
|
147
148
|
```
|
|
148
149
|
|
|
150
|
+
## Remote Cache Configuration
|
|
151
|
+
|
|
152
|
+
Lumibot can mirror its local parquet caches to AWS S3 when you enable the new
|
|
153
|
+
backtest cache manager. The feature is optional and defaults to local storage.
|
|
154
|
+
To configure the environment variables, understand the key naming convention,
|
|
155
|
+
and follow the manual validation checklist, review `docs/remote_cache.md`.
|
|
156
|
+
|
|
149
157
|
### Showing Code Coverage
|
|
150
158
|
|
|
151
159
|
To show code coverage, you can run the following command:
|
|
@@ -1,34 +1,23 @@
|
|
|
1
1
|
lumibot/__init__.py,sha256=fHJI9tgI2gk8n7Z8v8bopekW7oXIa8Rm3nYKwhQkYxo,4378
|
|
2
2
|
lumibot/constants.py,sha256=aQT0_QR7sCQuNPizeo2lQNhF0xd5g_H2_gr_-kG2AXM,629
|
|
3
|
-
lumibot/credentials.py,sha256=
|
|
4
|
-
lumibot/
|
|
5
|
-
lumibot/__pycache__/constants.cpython-312.pyc,sha256=YMXHvscXtrYUQ55e8EB-NI_aW3RajDEmrkeow8q8h-Y,1043
|
|
6
|
-
lumibot/__pycache__/credentials.cpython-312.pyc,sha256=VQXXJYzZk4EztCTTFqXFDu2jNg84Xwmj6C6zXyl_TPE,27608
|
|
7
|
-
lumibot/backtesting/__init__.py,sha256=GZMu-_u9rg5l9z-7QvHJptyklpXObIPDRr9dKseXjmQ,874
|
|
3
|
+
lumibot/credentials.py,sha256=yz8d3_gh9alzahaykV3c3kEWTG8L5d1DCv1UR5eF6ZQ,32041
|
|
4
|
+
lumibot/backtesting/__init__.py,sha256=xsrwDg0tjnwvKhdDFbickqigSFKykS0Jp3voVzXUsS0,1204
|
|
8
5
|
lumibot/backtesting/alpaca_backtesting.py,sha256=56vnBwKjwZ-8QW92I_dlJd1AO752_WV5Mhwt8jd7x5o,31258
|
|
9
6
|
lumibot/backtesting/alpha_vantage_backtesting.py,sha256=LR3UNhJrdAKdvadiThVKdKrMZYQ_xcHzAISKPe0yqS0,417
|
|
10
|
-
lumibot/backtesting/backtesting_broker.py,sha256=
|
|
7
|
+
lumibot/backtesting/backtesting_broker.py,sha256=C0zn__i0aoyd6u147oizRYO2Akqa5JWs8znl6siLd8Y,76003
|
|
11
8
|
lumibot/backtesting/ccxt_backtesting.py,sha256=O-RjuNpx5y4f-hKKwwUbrU7hAVkGEegmnvH_9nQWhAo,246
|
|
12
|
-
lumibot/backtesting/databento_backtesting.py,sha256=
|
|
13
|
-
lumibot/backtesting/
|
|
9
|
+
lumibot/backtesting/databento_backtesting.py,sha256=zQS6IaamDTQREcjViguk_y4b_HF1xyV3gUrDuHnkUUY,430
|
|
10
|
+
lumibot/backtesting/databento_backtesting_pandas.py,sha256=kK6XXmm9veZSt-z1HBKdEzM_LkrVt2-DVfajtkTDdCI,31229
|
|
11
|
+
lumibot/backtesting/databento_backtesting_polars.py,sha256=qanSLBsw4aBEFVfMuwSWzTDtaXQlOfcrvp6ERLWkRVo,45786
|
|
12
|
+
lumibot/backtesting/fix_debug.py,sha256=ETHl-O38xK9JOQC2x8IZVJRCQrR1cokk2Vb4vpGMvb8,1204
|
|
14
13
|
lumibot/backtesting/interactive_brokers_rest_backtesting.py,sha256=5HJ_sPX0uOUg-rbfOKDjwYVCLiXevlwtdK_3BcUwqXc,6602
|
|
15
14
|
lumibot/backtesting/pandas_backtesting.py,sha256=m-NvT4o-wFQjaZft6TXULzeZBrskO_7Z-jfy9AIkyAY,388
|
|
16
15
|
lumibot/backtesting/polygon_backtesting.py,sha256=u9kif_2_7k0P4-KDvbHhaMfSoBVejUUX7fh9H3PCVE0,12350
|
|
17
|
-
lumibot/backtesting/thetadata_backtesting.py,sha256=
|
|
16
|
+
lumibot/backtesting/thetadata_backtesting.py,sha256=Xcz5f-4zTkKgWWcktNzItH2vrr8CysIMQWKKqLwugbA,345
|
|
17
|
+
lumibot/backtesting/thetadata_backtesting_pandas.py,sha256=rglyUgZc0bNt9IWuPvmJJNXyU80JvQvRiUXWCzR1oDA,51994
|
|
18
18
|
lumibot/backtesting/yahoo_backtesting.py,sha256=LT2524mGlrUSq1YSRnUqGW4-Xcq4USgRv2EhnV_zfs4,502
|
|
19
|
-
lumibot/backtesting/__pycache__/__init__.cpython-312.pyc,sha256=hauIeSrYJulZelhymVBuuqMIGoWAWqrkQn5Zblku1Aw,1062
|
|
20
|
-
lumibot/backtesting/__pycache__/alpaca_backtesting.cpython-312.pyc,sha256=g_JuOAKCEtPiPyIdPZv8V02xhgYtjCUB7qrpMgRJVPo,27759
|
|
21
|
-
lumibot/backtesting/__pycache__/alpha_vantage_backtesting.cpython-312.pyc,sha256=DC6KxajzVQ5HAMxVEh-uUwu_jAE9LbkjkU3Y-wOskB0,814
|
|
22
|
-
lumibot/backtesting/__pycache__/backtesting_broker.cpython-312.pyc,sha256=X-4ZtuIz2UipTYmGBBqYUkQdVyrB9YRyVkScPVZY0Iw,61264
|
|
23
|
-
lumibot/backtesting/__pycache__/ccxt_backtesting.cpython-312.pyc,sha256=l0SCIDJpuLS9XXvpoEYLKvbR6HUSnoKDSZgdhZWRmLw,724
|
|
24
|
-
lumibot/backtesting/__pycache__/databento_backtesting.cpython-312.pyc,sha256=N5DBMvnIP065iuknF56qD5FLh1HbWNMOuZhNktWmVqU,18919
|
|
25
|
-
lumibot/backtesting/__pycache__/interactive_brokers_rest_backtesting.cpython-312.pyc,sha256=sMhctHR4iu231rXJTH9P0xZZ8ctCIGQ02RVshYl8fkE,7562
|
|
26
|
-
lumibot/backtesting/__pycache__/pandas_backtesting.cpython-312.pyc,sha256=H7sUPgTAVvMli9uFWUddJ9LVRlZpvaqRUEdqjf-9yNE,963
|
|
27
|
-
lumibot/backtesting/__pycache__/polygon_backtesting.cpython-312.pyc,sha256=-_5VWqMHR9GrI-_hkBp50L_09DQl2OUQJKguMlevCwY,12494
|
|
28
|
-
lumibot/backtesting/__pycache__/thetadata_backtesting.cpython-312.pyc,sha256=QJ1LFWPm-nEc5o2XGaH-DQf2tJGaeZMQI-MALZgzocs,12080
|
|
29
|
-
lumibot/backtesting/__pycache__/yahoo_backtesting.cpython-312.pyc,sha256=j78lUPeuqMvHav76cmj-zBWmYl_U8Sj5-SGMSF1iPEE,916
|
|
30
19
|
lumibot/brokers/__init__.py,sha256=MGWKHeH3mqseYRL7u-KX1Jp2x9EaFO4Ol8sfNSxzu1M,404
|
|
31
|
-
lumibot/brokers/alpaca.py,sha256=
|
|
20
|
+
lumibot/brokers/alpaca.py,sha256=VQ17idfqiEFb2JCqqdMGmbvF789L7_PpsCbudiFRzmg,61595
|
|
32
21
|
lumibot/brokers/bitunix.py,sha256=hwcYC4goXsukSHSevb9W5irJz2lJt5tSgK2X5S0VyUs,34555
|
|
33
22
|
lumibot/brokers/broker.py,sha256=01cBrBjeiQGT9LMdZ2EgrSYT-xyoKz9JhVZkQQr1QxU,71951
|
|
34
23
|
lumibot/brokers/ccxt.py,sha256=9F8YeEF9HBRGgcwJ9WTSb2pKRXlh_zUj-CeA1j4K77w,31434
|
|
@@ -36,22 +25,10 @@ lumibot/brokers/example_broker.py,sha256=mjfBaPU8kJvLwigMKczSeFcmPYQIB5L1CkqvNGn
|
|
|
36
25
|
lumibot/brokers/interactive_brokers.py,sha256=qOTvOLOk01_LnF7B-t_5gtmuDtXitqV_WUkAZYFdRLw,60526
|
|
37
26
|
lumibot/brokers/interactive_brokers_rest.py,sha256=CT6L2NZE2jMuSreRSiR6iQbcTLa55SlLduIxSSM2QDM,54161
|
|
38
27
|
lumibot/brokers/projectx.py,sha256=JT7ysIQ4ek-yZdNrmuZYA6aKZMinSh1GnraetDrsjh0,78055
|
|
39
|
-
lumibot/brokers/schwab.py,sha256=
|
|
28
|
+
lumibot/brokers/schwab.py,sha256=eiBEm-WXtzMZQhY1eyErNazkso8ONqJFtGNIcxdDOHE,91486
|
|
40
29
|
lumibot/brokers/tradeovate.py,sha256=NBGw79aWWL0JlNF34EAJQ5dfB3HkiGuWhuSVQ5yg1ZI,22091
|
|
41
30
|
lumibot/brokers/tradier.py,sha256=E45lj4LV-lrF3mKgtZtoYDXoetgbnFlsmYb5HI7bgbM,50863
|
|
42
31
|
lumibot/brokers/tradovate.py,sha256=8YaadpvoJyA-IkK6BCENLvCRfYSMnG-uTxkvDB2Sd94,38668
|
|
43
|
-
lumibot/brokers/__pycache__/__init__.cpython-312.pyc,sha256=jaM9qF-rAlxhkFo8M7tPr9mAqWIrpH32Jx-rBkXLRoY,752
|
|
44
|
-
lumibot/brokers/__pycache__/alpaca.cpython-312.pyc,sha256=qraNX7CCjBcu17YXU23IMfs3x81yi4Cu6a8crpVTxUg,60648
|
|
45
|
-
lumibot/brokers/__pycache__/bitunix.cpython-312.pyc,sha256=p6p1uSRbXh6zwLjGuQzvaAotlLXSPtLLxGFuUFrBIU4,41059
|
|
46
|
-
lumibot/brokers/__pycache__/broker.cpython-312.pyc,sha256=OPPAizwXEbms5IcinLkN9iA9R-CWYHnZ3Jeof5kLU0k,78800
|
|
47
|
-
lumibot/brokers/__pycache__/ccxt.cpython-312.pyc,sha256=o0YJxaAA3P_rqj58WY7HzddoBwwcnXz2F4Q_zNwjHsk,32670
|
|
48
|
-
lumibot/brokers/__pycache__/example_broker.cpython-312.pyc,sha256=0BL0vaPVeoKYOeZeMB-sJDBTCMp-X7owCYJa1BOOe_M,10540
|
|
49
|
-
lumibot/brokers/__pycache__/interactive_brokers.cpython-312.pyc,sha256=bXfGQL8b1AWabOw02od4cAoZ7AQjwATmzQpnjN6D72Q,72169
|
|
50
|
-
lumibot/brokers/__pycache__/interactive_brokers_rest.cpython-312.pyc,sha256=m5IF5xE_cA_C2DZIEx7haqFCKm7NI5kt6OJQ47EQZYk,51086
|
|
51
|
-
lumibot/brokers/__pycache__/projectx.cpython-312.pyc,sha256=5iNIXUBRrEpfNLJxD30Sp5abppPeLQAuK1ZRE0NSxqI,74400
|
|
52
|
-
lumibot/brokers/__pycache__/schwab.cpython-312.pyc,sha256=24U83vt_fINpxL1SyXvr1nDYzgscOljfI7hsLDlj7Ow,85129
|
|
53
|
-
lumibot/brokers/__pycache__/tradier.cpython-312.pyc,sha256=eEsMhoV8_TsA_cB8n1H0BToMuRmnS_URNCchC9l5WKs,47681
|
|
54
|
-
lumibot/brokers/__pycache__/tradovate.cpython-312.pyc,sha256=PdM1Q-6emm0IFNlKOUUX5f4YWAu0Au2sfdOi-11127k,41509
|
|
55
32
|
lumibot/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
33
|
lumibot/components/configs_helper.py,sha256=e4-2jBmjsIDeMQ9fbQ9j2U6WlHCe2z9bIQtJNlP_iEs,3066
|
|
57
34
|
lumibot/components/drift_rebalancer_logic.py,sha256=KL1S9Su5gxibGzl2fw_DH8StzXvjFfFl23sOFGHgIZI,28653
|
|
@@ -61,76 +38,46 @@ lumibot/components/options_helper.py,sha256=pUihHFEv5w17pXACE3xw0Tq6tHb9s05fzttl
|
|
|
61
38
|
lumibot/components/perplexity_helper.py,sha256=0dhAIXunvUnTKIFFdYbFt8adnSIavKRqXkQ91fjsDPI,31432
|
|
62
39
|
lumibot/components/quiver_helper.py,sha256=s0Y-tL1y2S1mYlbtlRTcL5R4WV0HYOgiSJ9hT41Hzrw,14380
|
|
63
40
|
lumibot/components/vix_helper.py,sha256=tsWHFQzOJCjdmSGgmnYIty0K5ua-iAgBiRlyRIpGli0,61940
|
|
64
|
-
lumibot/data_sources/__init__.py,sha256=
|
|
41
|
+
lumibot/data_sources/__init__.py,sha256=_pPpNTKE0O3Nli3soQtw734Qou6rXxqYoSZqREwKsmI,960
|
|
65
42
|
lumibot/data_sources/alpaca_data.py,sha256=9pguY470mfgqSFYsB09ujQu9yBnX1Wb5H_ef0d1WzzM,50012
|
|
66
43
|
lumibot/data_sources/alpha_vantage_data.py,sha256=ypcbMlJEF3r4_rGL_QLRqicG0FRHH9g_D_UR_obRa-8,5040
|
|
67
44
|
lumibot/data_sources/bitunix_data.py,sha256=H2u4fJVEJqmNrqJnYs1hucZyg4N3dEtCB9JZsEm2am8,8946
|
|
68
45
|
lumibot/data_sources/ccxt_backtesting_data.py,sha256=FgVVMgA0WLF1RYlSNENN7jkppUj9hwYccsyPLadTJuA,10791
|
|
69
46
|
lumibot/data_sources/ccxt_data.py,sha256=kvLtfcXfS_V6yILzUATdQMa07lZdspMtDez0boFE4DE,7766
|
|
70
|
-
lumibot/data_sources/data_source.py,sha256=
|
|
71
|
-
lumibot/data_sources/data_source_backtesting.py,sha256=
|
|
72
|
-
lumibot/data_sources/databento_data.py,sha256=
|
|
73
|
-
lumibot/data_sources/
|
|
47
|
+
lumibot/data_sources/data_source.py,sha256=TrOlzYGrwc8PGru0c0DFK5DkoAc9Q0GrIzWcekhUUlw,28607
|
|
48
|
+
lumibot/data_sources/data_source_backtesting.py,sha256=PPlfhuYzaqjs9IkS8CXMSBwgB4oEHoi6u3hWqjSiqCc,9619
|
|
49
|
+
lumibot/data_sources/databento_data.py,sha256=PIv0SWB6WJbu9sfxfuifXXKjDFuuiSVJMzgORal8K0Y,332
|
|
50
|
+
lumibot/data_sources/databento_data_pandas.py,sha256=H4T53OGZi1ymzMKW0F-BES9DIGFG7BLDW5iV_zeUaYA,16293
|
|
51
|
+
lumibot/data_sources/databento_data_polars.py,sha256=uPzhHHKdF-tavo6mzgdab75n4ixPpNkPfA6e8AVgbvE,36670
|
|
74
52
|
lumibot/data_sources/databento_data_polars_backtesting.py,sha256=0YA8O7qe8aTxdFcc9ALhUZSHUJH70PnNG0eK1ZpLZt0,25864
|
|
75
53
|
lumibot/data_sources/databento_data_polars_live.py,sha256=NJc1nHU6P94uUZQWtQ0z5-bi1SRKCkW4-yCFmwZ5FDI,36479
|
|
76
54
|
lumibot/data_sources/example_broker_data.py,sha256=WkCc3rLyOOI4GzLptUwhqeFRkEWQsM4y3tdzUbHPfik,2066
|
|
77
55
|
lumibot/data_sources/exceptions.py,sha256=fYS44FgrzyDAuPqZRo3RiZKijjcurcG81HkL2dWURX0,557
|
|
78
56
|
lumibot/data_sources/interactive_brokers_data.py,sha256=2e0cqOHaveL9XdlZ_N98vehUuoKaHqhV4BelMIScUqQ,13894
|
|
79
57
|
lumibot/data_sources/interactive_brokers_rest_data.py,sha256=QaODbhFteB4rT-ssTu1nA006bPXu1srYR_Hm1RSWEvQ,45873
|
|
80
|
-
lumibot/data_sources/pandas_data.py,sha256=
|
|
81
|
-
lumibot/data_sources/
|
|
82
|
-
lumibot/data_sources/
|
|
58
|
+
lumibot/data_sources/pandas_data.py,sha256=7V4v3W_myPyEW5ebL6Ebb-vUnoQTp8nqifNLvycBFGk,21604
|
|
59
|
+
lumibot/data_sources/polars_data.py,sha256=g2sML6DsnQGifBXSzqKCsupxos2Znz1w5voOeGFzbgw,40318
|
|
60
|
+
lumibot/data_sources/polars_mixin.py,sha256=lGzSiNmyajk8jW4y6r70yRdVCN8uHo_v7avU_oVTMcQ,33878
|
|
61
|
+
lumibot/data_sources/polygon_data_polars.py,sha256=TS4830kIUgJ4A1KDVNQ_KcNmPdCUbG1oB1h8TYP3ZX8,27241
|
|
83
62
|
lumibot/data_sources/projectx_data.py,sha256=WXCyPptehR2r3Fg9ou6r9ISNb3p5OaHfqPgVyi6q_Ws,24953
|
|
84
63
|
lumibot/data_sources/schwab_data.py,sha256=Z4NOcO3UZj8fy7Jp2ZqeE9PyRPj2SNGTjuR7l8nQmlg,29472
|
|
85
64
|
lumibot/data_sources/tradeovate_data.py,sha256=4MGOa0slp1uhXTceLnjT0nx6Qd3zg6C84vd2KXUdZKE,3475
|
|
86
65
|
lumibot/data_sources/tradier_data.py,sha256=DZNg-4xQ3GsLMEmfa-8Cjc-vIKjZqZdf45QDwY5opSk,17051
|
|
87
66
|
lumibot/data_sources/tradovate_data.py,sha256=TY1MCXVTqiJTAYKN_5oinFHuvn4q6P5Re1e8brnGpkk,3533
|
|
88
|
-
lumibot/data_sources/yahoo_data.py,sha256=
|
|
89
|
-
lumibot/data_sources/yahoo_data_polars.py,sha256=
|
|
90
|
-
lumibot/
|
|
91
|
-
lumibot/
|
|
92
|
-
lumibot/data_sources/__pycache__/alpha_vantage_data.cpython-312.pyc,sha256=ELJtQediKt7pAOfT291zx4PbIAcdP7FCjhRiHAo9FT0,6011
|
|
93
|
-
lumibot/data_sources/__pycache__/bitunix_data.cpython-312.pyc,sha256=bEql3t9DeGbVPI2aggtLG0qzTr_hoNGueQORlJDUcd0,10112
|
|
94
|
-
lumibot/data_sources/__pycache__/ccxt_backtesting_data.cpython-312.pyc,sha256=XOyJb978JCu9bZtRwvgFC_CByXFLP24BZ-qvmI-nBe8,12615
|
|
95
|
-
lumibot/data_sources/__pycache__/ccxt_data.cpython-312.pyc,sha256=6DIpOY6wIQoyDJUa0fKtptP3vU2FoS5oy4blsmLgmho,9092
|
|
96
|
-
lumibot/data_sources/__pycache__/data_source.cpython-312.pyc,sha256=TlXGkd2Lc2z89_nnuJZQtVBT57s1VTA-V34zM-fRkJY,28639
|
|
97
|
-
lumibot/data_sources/__pycache__/data_source_backtesting.cpython-312.pyc,sha256=UljOjipy2PXAHCmR2mXlFNuOkuQm1s0u5NvhoniWt4g,9048
|
|
98
|
-
lumibot/data_sources/__pycache__/databento_data_polars_backtesting.cpython-312.pyc,sha256=o45ZHrBVxm9iMzxfBP8FAnpM-nOMTnTtgcQvN9sIfto,17896
|
|
99
|
-
lumibot/data_sources/__pycache__/databento_data_polars_live.cpython-312.pyc,sha256=vRcL0q9r89D2RUfrrnO4FU_WrqVT9Ncdl7u2I7gSfJo,37988
|
|
100
|
-
lumibot/data_sources/__pycache__/example_broker_data.cpython-312.pyc,sha256=1VCXHZ2O_NPs4-_ZlgYa0zIZYH7UuCBP4VGCZrln5Vg,3222
|
|
101
|
-
lumibot/data_sources/__pycache__/exceptions.cpython-312.pyc,sha256=CWH4LO6epPD58gqmHv4wY4oMCx2tDjpPirCBNJQqE9s,1283
|
|
102
|
-
lumibot/data_sources/__pycache__/interactive_brokers_data.cpython-312.pyc,sha256=GehJopS9q7QTKunZxgXIreX_Oie6PIq7GeEeLK-JbUY,13418
|
|
103
|
-
lumibot/data_sources/__pycache__/interactive_brokers_rest_data.cpython-312.pyc,sha256=Xo3IdB6jj51k4ysOHFvMOPBrJRhicjXR0sX2l-sBpwo,48111
|
|
104
|
-
lumibot/data_sources/__pycache__/pandas_data.cpython-312.pyc,sha256=-5yL7QjAZlu9nYuzejkDY6vmSa2BRVarShyEBAYvxZE,22368
|
|
105
|
-
lumibot/data_sources/__pycache__/polars_mixin.cpython-312.pyc,sha256=E8Oym2yFCqxFjZFYnZ8U7YO3-zoTQguId8a9Pheb_o8,14168
|
|
106
|
-
lumibot/data_sources/__pycache__/polygon_data_polars.cpython-312.pyc,sha256=wiKlGfn1B77kTfQOgur2z9w3iMX7IOst8h_5ZEuQE2U,26873
|
|
107
|
-
lumibot/data_sources/__pycache__/projectx_data.cpython-312.pyc,sha256=Ry4NQxBG0Y40uBwzzjb2q1WoVaepNdxXePaqQ_YoFDs,25784
|
|
108
|
-
lumibot/data_sources/__pycache__/schwab_data.cpython-312.pyc,sha256=CGuPWiynAa87lQfBET-M3rd7Mt5vYTpEkwYLz2zZVys,29111
|
|
109
|
-
lumibot/data_sources/__pycache__/tradier_data.cpython-312.pyc,sha256=gC2bUXi0qreXScJBnOXU0IrqnHv680N71I_qCib3fl4,18316
|
|
110
|
-
lumibot/data_sources/__pycache__/tradovate_data.cpython-312.pyc,sha256=kc02HAag5Xla3bBulm1fn9KRD7f0yp6hxwW05kXcq_Q,4342
|
|
111
|
-
lumibot/data_sources/__pycache__/yahoo_data_polars.cpython-312.pyc,sha256=RvcWAwuiNMuuxlK0pfoay38zw9oRmf8hTVuypGUYEJc,14988
|
|
112
|
-
lumibot/entities/__init__.py,sha256=PvY1km9u_HtKXI0f3w1ZooHwMMWqYA8gBeKVapJk4Qg,410
|
|
113
|
-
lumibot/entities/asset.py,sha256=_yq8oas_NwkAtbQDDOLVmI9FoqYkT6YKYVZ0aHAXGkk,29547
|
|
67
|
+
lumibot/data_sources/yahoo_data.py,sha256=dFgsUNEhLDY_Erimeczuz2LLrIB3abPPFJay6E9Czig,19132
|
|
68
|
+
lumibot/data_sources/yahoo_data_polars.py,sha256=0JB7RFoaoVS4JKLegT_kXxbVOLP3MlXRgeqrqCoiw2o,14244
|
|
69
|
+
lumibot/entities/__init__.py,sha256=-zmHEFGc5TfOl0CqHKOGUrSfnL_UZArW94r7HpJrc2Q,637
|
|
70
|
+
lumibot/entities/asset.py,sha256=BwpgKjXpx5NGOb_aF34ZSvxZVN11SUQ0MW-GYAGozC4,28643
|
|
114
71
|
lumibot/entities/bar.py,sha256=_2gFtBzdbNPassLf1SU9J1mYKCZDner2h52qHl8e0oA,6003
|
|
115
|
-
lumibot/entities/bars.py,sha256=
|
|
72
|
+
lumibot/entities/bars.py,sha256=N5N6ouQdX8-w2h1sstXMczNUNdM6d12YukmqUgmxTQ4,24506
|
|
116
73
|
lumibot/entities/chains.py,sha256=4P42AUtoPrRQHnPVj-g6mJ5W2nVf17ju3gXdavZcVyk,6281
|
|
117
|
-
lumibot/entities/data.py,sha256=
|
|
74
|
+
lumibot/entities/data.py,sha256=hAg0fRmNsQJ_iG7FXBvjxk9JU6KJ--_IFBWPcSnwXyw,27907
|
|
75
|
+
lumibot/entities/data_polars.py,sha256=fx7bCsQCRAos2MZNicq_vJT1qEx770JAZ6NmzeyaKYg,27762
|
|
118
76
|
lumibot/entities/dataline.py,sha256=G9XP8K1IvChvHLs5bEfSQLwCaGvWZXe3oEsBwsqysqQ,182
|
|
119
77
|
lumibot/entities/order.py,sha256=XMtMXrN4gqsTOZ5FfDbwpvhyKEKN93wYFukXwZi_fHQ,55046
|
|
120
|
-
lumibot/entities/position.py,sha256=
|
|
78
|
+
lumibot/entities/position.py,sha256=8PdJgDhIOuaeOGysOV8_n_JQT0ca1fFpbiieETK5l0g,10546
|
|
121
79
|
lumibot/entities/quote.py,sha256=p8FvJfVZhWaZD5aFaslbYnUOgwK2Kbv4l-GLZU7ekAM,3746
|
|
122
80
|
lumibot/entities/trading_fee.py,sha256=ESVgJD-AlIFeWdmsC4tXQ42PfWhRGX88lGkwnlTSXOg,1920
|
|
123
|
-
lumibot/entities/__pycache__/__init__.cpython-312.pyc,sha256=JW6tqdaA9vkUnEHjYJT2yNjXJXG1q-pma4k7fDv4myU,664
|
|
124
|
-
lumibot/entities/__pycache__/asset.cpython-312.pyc,sha256=P5DVp2iHhOqW727rDCM3eRDUxSF9JIS4YRRJuO4T93E,30767
|
|
125
|
-
lumibot/entities/__pycache__/bar.cpython-312.pyc,sha256=kdMRKaH-zuJPyDttdmVjGEmWBAjzPESH2eVZqBJ-L9U,8915
|
|
126
|
-
lumibot/entities/__pycache__/bars.cpython-312.pyc,sha256=oClUE4OdXKD1VHeUI5wckirgy9DWEe-3WDngOdrqWWg,26667
|
|
127
|
-
lumibot/entities/__pycache__/chains.cpython-312.pyc,sha256=kGvtUnC7Ldw4u4AB1jDDMuVcZEmaHOeDdeDoIuvrIzg,9466
|
|
128
|
-
lumibot/entities/__pycache__/data.cpython-312.pyc,sha256=yyeOJm9N6hzJSw-26i7BSuN764gOR8Dvp2hpE688t2Q,27994
|
|
129
|
-
lumibot/entities/__pycache__/dataline.cpython-312.pyc,sha256=-ZEV4BGQT_oL-_0dK845vFeIDQ7b2SRLO6HcY9El3Ow,637
|
|
130
|
-
lumibot/entities/__pycache__/order.cpython-312.pyc,sha256=b_Vfji4nBLsfnYKcKCaqCnLYi70FrzYzBPoNr67ilPI,51950
|
|
131
|
-
lumibot/entities/__pycache__/position.cpython-312.pyc,sha256=him2imuHAqfBnB2GhmS8JAdOMrFsCEAXHnK5oL0qFfA,11002
|
|
132
|
-
lumibot/entities/__pycache__/quote.cpython-312.pyc,sha256=6prQDmk1uLzLXvSiAQOIMcRszhnUZajm-ummviUZ4LY,4232
|
|
133
|
-
lumibot/entities/__pycache__/trading_fee.cpython-312.pyc,sha256=mc73RYA6dNjD9HpcvBF-3dJaz_wsFytuvU2igd0xrLU,2416
|
|
134
81
|
lumibot/example_strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
82
|
lumibot/example_strategies/bitunix_futures_example.py,sha256=SaOpQ2SQA8K2ZlTkbJ05eZLE8dXdMyXX5M9fyXGmzaI,3006
|
|
136
83
|
lumibot/example_strategies/ccxt_backtesting_example.py,sha256=e-stFvUcWgjxbT3E1jwvipN7XSXatw1Di27Jj-wV_NU,5549
|
|
@@ -154,78 +101,48 @@ lumibot/example_strategies/stock_momentum.py,sha256=ln1qNafk1IwQjeJsFxunJSxiPItF
|
|
|
154
101
|
lumibot/example_strategies/stock_oco.py,sha256=Lm-VNDjREPkGfbsVpH7dS2OrIw5g8NL_AcMYXSwzwXU,2482
|
|
155
102
|
lumibot/example_strategies/strangle.py,sha256=naYiJLcjKu9yb_06WOMAUg8t-mFEo_F0BS62eY-5v20,12838
|
|
156
103
|
lumibot/example_strategies/test_broker_functions.py,sha256=wnVS-M_OtzMgaXVBgshVEqXKGEnHVzVL_O4x5qR86cM,4443
|
|
157
|
-
lumibot/example_strategies/__pycache__/__init__.cpython-312.pyc,sha256=vawGE5mjtFUCyn6dqWSmZM2ij5pVT6YF4Cjn3KE0N-s,227
|
|
158
|
-
lumibot/example_strategies/__pycache__/test_broker_functions.cpython-312-pytest-8.4.1.pyc,sha256=Jvch4BJBA5IYmQx86yf8dDpWYFtV5ETkzrLFSxQoGkc,5452
|
|
159
104
|
lumibot/resources/ThetaTerminal.jar,sha256=K6GeeFcN8-gvyL2x5iq5pzD79KfPJvMK8iiezi3TmNQ,11834389
|
|
160
105
|
lumibot/resources/conf.yaml,sha256=rjB9-10JP7saZ_edjX5bQDGfuc3amOQTUUUr-UiMpNA,597
|
|
161
106
|
lumibot/strategies/__init__.py,sha256=jEZ95K5hG0f595EXYKWwL2_UsnWWk5Pug361PK2My2E,79
|
|
162
|
-
lumibot/strategies/_strategy.py,sha256=
|
|
107
|
+
lumibot/strategies/_strategy.py,sha256=2SWG-VP-MRcZz3ABbP2BHsBWMw78hx4f0hvftpKJRvY,110788
|
|
163
108
|
lumibot/strategies/session_manager.py,sha256=Nze6UYNSPlCsf-tyHvtFqUeL44WSNHjwsKrIepvsyCY,12956
|
|
164
|
-
lumibot/strategies/strategy.py,sha256=
|
|
109
|
+
lumibot/strategies/strategy.py,sha256=toPeL5oIVWmCxBNcfXqIuTCF_EeCfIVj425PrSYImCo,170021
|
|
165
110
|
lumibot/strategies/strategy_executor.py,sha256=IrHwDOu5s3gG65dz7FL-0kllWy7COci7JFyB4iiPUrg,70801
|
|
166
|
-
lumibot/strategies/__pycache__/__init__.cpython-312.pyc,sha256=3By3e_Y9aa3NI5-Kj6qhaVMRddkQnK6QQDnnykt0vu4,322
|
|
167
|
-
lumibot/strategies/__pycache__/_strategy.cpython-312.pyc,sha256=x1oUZN1UlKakcUxM14hynmV3-iErPP3j0F_qyEBL-ws,96783
|
|
168
|
-
lumibot/strategies/__pycache__/strategy.cpython-312.pyc,sha256=0IWVs5G4s_N4zh-rxGNak-ilexFLFrMfy-a8UXFppus,177262
|
|
169
|
-
lumibot/strategies/__pycache__/strategy_executor.cpython-312.pyc,sha256=1Nh3xpSJnu3-w-nV05jEyFObmYBhaE87q8Ajeundfyc,65836
|
|
170
111
|
lumibot/tools/__init__.py,sha256=oRRoK2NBkfnc0kueAfY0HrWVKgzRBO1hlglVMR4jr5M,1501
|
|
171
112
|
lumibot/tools/alpaca_helpers.py,sha256=nhBS-sv28lZfIQ85szC9El8VHLrCw5a5KbsGOOEjm6w,3147
|
|
113
|
+
lumibot/tools/backtest_cache.py,sha256=A-Juzu0swZI_FP4U7cd7ruYTgJYgV8BPf_WJDI-NtrM,9556
|
|
172
114
|
lumibot/tools/bitunix_helpers.py,sha256=-UzrN3w_Y-Ckvhl7ZBoAcx7sgb6tH0KcpVph1Ovm3gw,25780
|
|
173
115
|
lumibot/tools/black_scholes.py,sha256=TBjJuDTudvqsbwqSb7-zb4gXsJBCStQFaym8xvePAjw,25428
|
|
174
116
|
lumibot/tools/ccxt_data_store.py,sha256=VXLSs0sWcwjRPZzbuEeVPS-3V6D10YnYMfIyoTPTG0U,21225
|
|
175
|
-
lumibot/tools/databento_helper.py,sha256=
|
|
176
|
-
lumibot/tools/databento_helper_polars.py,sha256=
|
|
117
|
+
lumibot/tools/databento_helper.py,sha256=6jCIh1GlEpdU_copJSNTYmvcIKMXCucaAONwmqQjxCE,43466
|
|
118
|
+
lumibot/tools/databento_helper_polars.py,sha256=FXvvES_Y-E-IzAmVBtquh1UtQ-eN6i6BEoflcP7y8s0,48674
|
|
177
119
|
lumibot/tools/databento_roll.py,sha256=48HAw3h6OngCK4UTl9ifpjo-ki8qmB6OoJUrHp0gRmE,6767
|
|
178
120
|
lumibot/tools/debugers.py,sha256=ga6npFsS9cpKtTXaygh9t2_txCElg3bfzfeqDBvSL8k,485
|
|
179
121
|
lumibot/tools/decorators.py,sha256=gokLv6s37C1cnbnFSVOUc4RaVJ5aMTU2C344Vvi3ycs,2275
|
|
122
|
+
lumibot/tools/futures_roll.py,sha256=k_c7X5bYuBX7_0vBdix8-RXjkvvC6RX9CJOFf6vweCE,7307
|
|
180
123
|
lumibot/tools/futures_symbols.py,sha256=hFV02dk9cKucdaFOQAiQrlS15AJzdZ0qCuzVn7PfoPg,7851
|
|
181
124
|
lumibot/tools/helpers.py,sha256=Q459K0aQGUME2CfwBCXmKbUQwiGR9FKSjUN2yLbBMIE,17873
|
|
182
|
-
lumibot/tools/indicators.py,sha256=
|
|
125
|
+
lumibot/tools/indicators.py,sha256=sihuiQTJ92igCBBMBQcyhpJFc-AWyj94vLQlTp6fu6Q,38465
|
|
183
126
|
lumibot/tools/lumibot_logger.py,sha256=8Crm8XaZx4d4bjprpcR584i4PbqQHqEg2in9sJfiZbU,39267
|
|
184
127
|
lumibot/tools/lumibot_time.py,sha256=gWgq6CAYds-btXRb5YbqXH2jcgwdH1JhR5roSYgWjbo,1085
|
|
185
128
|
lumibot/tools/pandas.py,sha256=fRhCbtff5EcXjuhc5gaPSUeZvk9qomVGexAQl8YwgNs,2191
|
|
129
|
+
lumibot/tools/polars_utils.py,sha256=jioesRaD8AIjHHdxmueD3a9vgaJ3V8PnJeDJwBAz-3Y,4440
|
|
186
130
|
lumibot/tools/polygon_helper.py,sha256=Gw_4pjln-7P4ZzZGESeaJQmoryZHI4oS8flFpOjEROM,40477
|
|
187
131
|
lumibot/tools/polygon_helper_async.py,sha256=YHDXa9kmkkn8jh7hToY6GP5etyXS9Tj-ukyHZuoDon4,10080
|
|
188
132
|
lumibot/tools/polygon_helper_polars_optimized.py,sha256=NaIZ-5Av-G2McPEKHyJ-x65W72W_Agnz4lRgvXfQp8c,30415
|
|
189
133
|
lumibot/tools/projectx_helpers.py,sha256=EIemLfbG923T_RBV_i6s6A9xgs7dt0et0oCnhFwdWfA,58299
|
|
190
134
|
lumibot/tools/schwab_helper.py,sha256=CXnYhgsXOIb5MgmIYOp86aLxsBF9oeVrMGrjwl_GEv0,11768
|
|
191
|
-
lumibot/tools/thetadata_helper.py,sha256=
|
|
135
|
+
lumibot/tools/thetadata_helper.py,sha256=RoUIW-JRnuVJzfz42Djhan7cPRa8F8cisQdcMjKpTPM,79366
|
|
192
136
|
lumibot/tools/types.py,sha256=x-aQBeC6ZTN2-pUyxyo69Q0j5e0c_swdfe06kfrWSVc,1978
|
|
193
137
|
lumibot/tools/yahoo_helper.py,sha256=htcKKkuktatIckVKfLc_ms0X75mXColysQhrZW244z8,19497
|
|
194
138
|
lumibot/tools/yahoo_helper_polars_optimized.py,sha256=g9xBN-ReHSW4Aj9EMU_OncBXVS1HpfL8LTHit9ZxFY4,7417
|
|
195
|
-
lumibot/tools/__pycache__/__init__.cpython-312.pyc,sha256=ZJz-PqTtkp03u6hSftIwdQHSyHlHE0GzOBIMCUu7li0,1133
|
|
196
|
-
lumibot/tools/__pycache__/alpaca_helpers.cpython-312.pyc,sha256=XudHieySE48xcgoOjvZRha3q-Z9zTuGlTVxGnE1R940,3668
|
|
197
|
-
lumibot/tools/__pycache__/bitunix_helpers.cpython-312.pyc,sha256=ySI8EwpWihEQFU7aiTFb3Z8ulHpExgYTo-FfMcq87Wc,26515
|
|
198
|
-
lumibot/tools/__pycache__/black_scholes.cpython-312.pyc,sha256=Ob4i4z-9C6okf6Pc9vRRakgmQD39hZ_M0E2W2PLIqC4,33744
|
|
199
|
-
lumibot/tools/__pycache__/ccxt_data_store.cpython-312.pyc,sha256=8k6crHbKZ1uZavaHqMijf4IE1YN7oX2T4Hov45jlx_E,25063
|
|
200
|
-
lumibot/tools/__pycache__/databento_helper.cpython-312.pyc,sha256=ennub9ZPxQxjEYUbcoU2Nr1DRTwL7WNv8BYoBPjjxDY,32832
|
|
201
|
-
lumibot/tools/__pycache__/databento_helper_polars.cpython-312.pyc,sha256=1DPgJobRPcAeD2oVmM-YulrvueKgE_H0D8uPUSmBp5s,50874
|
|
202
|
-
lumibot/tools/__pycache__/debugers.cpython-312.pyc,sha256=xchf2IOO-vkKaZmHJUqqSC00rn1EvFYoDFUDtNTFSCM,1371
|
|
203
|
-
lumibot/tools/__pycache__/decorators.cpython-312.pyc,sha256=jBWNB2uN4kcPVp9BbJHn4ma5GwZsTA9BG_Dwc-r3P2w,3569
|
|
204
|
-
lumibot/tools/__pycache__/helpers.cpython-312.pyc,sha256=EhjvGYmeCP9muJleXLunetMKMbyLlFLVQ21vtXQiEW4,23615
|
|
205
|
-
lumibot/tools/__pycache__/indicators.cpython-312.pyc,sha256=f7jyP5KyYY7HfFWCEHyzwUAFtyWPrXJPghfoyu4FpNs,36381
|
|
206
|
-
lumibot/tools/__pycache__/lumibot_logger.cpython-312.pyc,sha256=Oofui32VTyLT7LuDdu_xZX1xm75ooWDAjq567hIPw2o,41943
|
|
207
|
-
lumibot/tools/__pycache__/pandas.cpython-312.pyc,sha256=ocPN_aR7-T6Gxs4QTsijpvv3-ggPCuOJ9V6M4nZPAYo,4440
|
|
208
|
-
lumibot/tools/__pycache__/polygon_helper.cpython-312.pyc,sha256=ofOf3sHL3BPbqxX_Xfin3kO86QiSC-oyVf7c_bRRxwQ,37603
|
|
209
|
-
lumibot/tools/__pycache__/polygon_helper_async.cpython-312.pyc,sha256=fj1a-6B9NL4eoQzd3L_23V3nxseJOGvi2bDJ6o6HuZc,13845
|
|
210
|
-
lumibot/tools/__pycache__/polygon_helper_polars_optimized.cpython-312.pyc,sha256=PM27AFv6X-ZAEYY2rm72XenZ6nIzqYauhcL0O8Mo8oY,31630
|
|
211
|
-
lumibot/tools/__pycache__/projectx_helpers.cpython-312.pyc,sha256=oKHoJEvCl0Pi6Gs_pVsGgkzlOA2YE6NTzvm2DdRLAOA,65464
|
|
212
|
-
lumibot/tools/__pycache__/schwab_helper.cpython-312.pyc,sha256=OqHKnUVJ76-PY4Fx-9koqwx3jMziKrT_YSputXORqu0,13856
|
|
213
|
-
lumibot/tools/__pycache__/thetadata_helper.cpython-312.pyc,sha256=FJ4_nh9UAUEmGLk9WGxCoN6q4fTf6FZ9eHHBg6vjvjw,21403
|
|
214
|
-
lumibot/tools/__pycache__/types.cpython-312.pyc,sha256=YyCgEWf3wWf5o_kRbUGsv0qvhFySCP5Lzxz5aYIVzcw,1987
|
|
215
|
-
lumibot/tools/__pycache__/yahoo_helper.cpython-312.pyc,sha256=GvFRnaYFOhFj9lQ5oAF-gkBB3HyrL1h2HEBS6Y869Zg,22579
|
|
216
|
-
lumibot/tools/__pycache__/yahoo_helper_polars_optimized.cpython-312.pyc,sha256=MI8TI9AA-kA_9B5rZ87jWZvxJp3EzVOi4-MHqWbAcRI,8592
|
|
217
139
|
lumibot/traders/__init__.py,sha256=JgpSuhNCl1OFoVFTQzQpPOpg6fZ-QbT7-3NsV9Yb89c,27
|
|
218
140
|
lumibot/traders/debug_log_trader.py,sha256=Kzh0RFg_CthADULLXCLq_PMNrWSpuH2UhQnQBoH3Ybw,364
|
|
219
141
|
lumibot/traders/trader.py,sha256=KMif3WoZtnSxA0BzoK3kvkTITNELrDFIortx1BYBv8s,9677
|
|
220
|
-
lumibot/traders/__pycache__/__init__.cpython-312.pyc,sha256=Vt8BsEU8iZRAR-ghKPfJxr_jA4mGyq6vKXkLgpGZJMM,256
|
|
221
|
-
lumibot/traders/__pycache__/trader.cpython-312.pyc,sha256=WJNSarXaQ1stfIEdAowUjP0Z1mk8FpJMO_awbrVhD0c,10991
|
|
222
142
|
lumibot/trading_builtins/__init__.py,sha256=vH2QL5zLjL3slfEV1YW-BvQHtEYLCFkIWTZDfh3y8LE,87
|
|
223
143
|
lumibot/trading_builtins/custom_stream.py,sha256=8_XiPT0JzyXrgnXCXoovGGUrWEfnG4ohIYMPfB_Nook,5264
|
|
224
144
|
lumibot/trading_builtins/safe_list.py,sha256=IIjZOHSiZYK25A4WBts0oJaZNOJDsjZL65MOSHhE3Ig,1975
|
|
225
|
-
lumibot/
|
|
226
|
-
lumibot/trading_builtins/__pycache__/custom_stream.cpython-312.pyc,sha256=w9EEoPd4LTBKmS8x6x-umicO1GwzaHlZnAv7MC2A78o,7397
|
|
227
|
-
lumibot/trading_builtins/__pycache__/safe_list.cpython-312.pyc,sha256=2MQnqSCnMHHVu_gMK-3xBVSdHFyhxGR7_UrNdOvb4So,4875
|
|
228
|
-
lumibot-4.1.2.dist-info/licenses/LICENSE,sha256=fYhGIyxjyNXACgpNQS3xxpxDOaVOWRVxZMCRbsDv8k0,35130
|
|
145
|
+
lumibot-4.2.0.dist-info/licenses/LICENSE,sha256=fYhGIyxjyNXACgpNQS3xxpxDOaVOWRVxZMCRbsDv8k0,35130
|
|
229
146
|
tests/__init__.py,sha256=3-VoT-nAuqMfwufd4ceN6fXaHl_zCfDCSXJOTp1ywYQ,393
|
|
230
147
|
tests/conftest.py,sha256=UBw_2fx7r6TZPKus2b1Qxrzmd4bg8EEBnX1vCHUuSVA,3311
|
|
231
148
|
tests/fixtures.py,sha256=wOHQsh1SGHnXe_PGi6kDWI30CS_Righi7Ig7vwSEKT4,9082
|
|
@@ -237,14 +154,15 @@ tests/test_alpaca_helpers.py,sha256=IXkJS0QhGcSBdg-yp6cUluKsXLYu1Nuhn85EB9F34wk,
|
|
|
237
154
|
tests/test_alpaca_multileg_fix.py,sha256=z4_FV9O4fetXE3WI7cqlY7dx9I6J2huCQ0ISCGAzs2w,9287
|
|
238
155
|
tests/test_alpaca_oauth.py,sha256=bcr7hqNN2kcZg6MjXGs_8b4O6cGlg7ZEl8EKdP7gEDI,10590
|
|
239
156
|
tests/test_apscheduler_warnings.py,sha256=08lzprPjKq_KAIy-_gMo2zZATpo7VPvmg_qnmS1dm1c,3198
|
|
240
|
-
tests/test_asset.py,sha256=
|
|
157
|
+
tests/test_asset.py,sha256=qk9giu-z3kPoFRXL6Wi0-Ly1mb7YpUNtViuLUMjaEhY,7659
|
|
241
158
|
tests/test_asset_auto_expiry.py,sha256=aa0JVbAIHPKupQ6gMDk5QaDWDXV1xqHMdX513WjwWNQ,13716
|
|
242
159
|
tests/test_auto_market_inference.py,sha256=NFauxzT9ZKDSjrkgHWLgcrLfJMeIj04uWvSKlZVIwqs,1717
|
|
160
|
+
tests/test_backtest_cache_manager.py,sha256=Lkm_xnKX2L-_wS2wGZ57AghPDeZUeoS9BxcuDvwdNnw,4871
|
|
243
161
|
tests/test_backtesting_broker.py,sha256=rxZGH5cgiWLmNGdI3k9fti3Fp9IOSohq8xD2E3L2UdY,13194
|
|
244
162
|
tests/test_backtesting_broker_await_close.py,sha256=WbehY7E4Qet3_Mo7lpfgjmhtI9pnJPIt9mkFI15Dzho,7545
|
|
245
163
|
tests/test_backtesting_broker_time_advance.py,sha256=FCv0nKG8BQlEjNft7kmQYm9M2CsLIZ0b7mWCllOHQxc,6378
|
|
246
164
|
tests/test_backtesting_crypto_cash_unit.py,sha256=4EO9jVajdZNV0M7zSyp4gpR_msZFoM4x5tb-6g-mHO8,11399
|
|
247
|
-
tests/test_backtesting_data_source_env.py,sha256=
|
|
165
|
+
tests/test_backtesting_data_source_env.py,sha256=w1qren0mKXXFcLHaGo111z5BpqtBj_A-bMZZjhYkVq8,12318
|
|
248
166
|
tests/test_backtesting_flow_control.py,sha256=pBqW-fa-HnZq0apUBltalGMM-vNJ_2A5W2SoJzMK8Mg,7208
|
|
249
167
|
tests/test_backtesting_multileg_unit.py,sha256=h1DPfVuYXXx-uq6KtUjr6_nasZuXPm_5gFat1XxCKIo,6456
|
|
250
168
|
tests/test_backtesting_quiet_logs_complete.py,sha256=x-GfOiqkiUu8pYKCzB0UUacn13Nx_cPRth7_jmPY2Y8,14155
|
|
@@ -263,28 +181,30 @@ tests/test_ccxt_store.py,sha256=_lFqMRWDKCgz0eByG89NSbxD0RRVq4knORqdMWky3Ms,4921
|
|
|
263
181
|
tests/test_configs_helper.py,sha256=_vFwhV-xsMddvNtZLFBvNYXUgnO2LNEdHeZpQF2LBfA,1245
|
|
264
182
|
tests/test_continuous_futures.py,sha256=ZUmpN_dvOa6wdz1iTLTibRKcS5InM0N_McS9GA7_vTg,11495
|
|
265
183
|
tests/test_continuous_futures_integration.py,sha256=eXv7qrwwYdm5NvQroSWxLybkEFYMkI6_OjeACnJ0JV4,11214
|
|
266
|
-
tests/test_continuous_futures_resolution.py,sha256=
|
|
184
|
+
tests/test_continuous_futures_resolution.py,sha256=ijohSmY0MsbYvd6riYMNUvX9oRAtAJj2NkYqiF_okA0,14467
|
|
185
|
+
tests/test_data_polars_parity.py,sha256=zANlJ7371B93Y7L2SLsGYT2KQCEceEp6IOMRVzaeWkc,4877
|
|
267
186
|
tests/test_data_source.py,sha256=MLZBZbUYQjt9FC9zrZ6ALL0ElHjByno6x2ls9XrYQH0,1991
|
|
268
|
-
tests/test_databento_asset_validation.py,sha256=
|
|
187
|
+
tests/test_databento_asset_validation.py,sha256=HdVoX38rOzQbmzFA7fFlvw9pBWUYIpqL6NzXZHj8ld0,5790
|
|
269
188
|
tests/test_databento_auto_expiry_integration.py,sha256=uPAyYTMTzEqppUUZx99G8pvnvAp7QQDuknfU6_IQJA8,11886
|
|
270
|
-
tests/test_databento_backtesting.py,sha256=
|
|
271
|
-
tests/test_databento_backtesting_polars.py,sha256=
|
|
272
|
-
tests/test_databento_data.py,sha256=
|
|
273
|
-
tests/test_databento_helper.py,sha256=
|
|
274
|
-
tests/test_databento_live.py,sha256=
|
|
189
|
+
tests/test_databento_backtesting.py,sha256=TOe3bmNjyDD1vwtmNGbw8vfzLF4yvR60AtcoTbIYZBw,20712
|
|
190
|
+
tests/test_databento_backtesting_polars.py,sha256=hasKKLesIF7mL94y4dhJkQfljKt4vmCaVCU1WXF9kH8,11043
|
|
191
|
+
tests/test_databento_data.py,sha256=OTrVVCAjJYz43lvI2SGMVUMpCVLAFaOtDHdPIiJObOw,10280
|
|
192
|
+
tests/test_databento_helper.py,sha256=Oeojl4xTZi37JewuX0n-7ML8EQcLTbl5Jc4ugtQrYb8,43611
|
|
193
|
+
tests/test_databento_live.py,sha256=cydmUDbBruhVd-cZxN5uKjWRgXWt-gy4ZlajUfy0QSs,15583
|
|
275
194
|
tests/test_databento_timezone_fixes.py,sha256=NsfND7yTdKH2ddiYYhO6kU3m41V7se7C4_zTvqKOGv0,11562
|
|
276
195
|
tests/test_drift_rebalancer.py,sha256=AUuEd3WIunfx3gwVdLVtq8jOHlz65UeqpO4adY1xfcs,105289
|
|
277
196
|
tests/test_futures_integration.py,sha256=3Ut0M8d5xPwHd4WcTSmP4HLC7VG_xSUXeJPX0-c0Fe8,9179
|
|
197
|
+
tests/test_futures_roll.py,sha256=hg0_QIjBeN2-DHyGZmL3NAnSUJYprAgXX727sXFZjcM,1262
|
|
278
198
|
tests/test_get_historical_prices.py,sha256=0JGlFuDyQFltKRpaFp2CLKEyleD2xMmgINVzLjrTdl8,15540
|
|
279
199
|
tests/test_helpers.py,sha256=8Ay1B6I8yn3trZKrYjOs6Kbda7jmM20-TFh8LfIWpmY,11659
|
|
280
|
-
tests/test_indicator_subplots.py,sha256
|
|
200
|
+
tests/test_indicator_subplots.py,sha256=-nqUq1jNhTtSb0xH0WU16xfC-DLD-Ak9qzWo6Yx2bnE,13245
|
|
281
201
|
tests/test_integration_tests.py,sha256=FJhWEJNF0OM6fAIsADnzB7EX61EvNiZBXH2Afmnd888,3071
|
|
282
202
|
tests/test_interactive_brokers.py,sha256=kfCAILiCUdh0vkf51Fq7j58q6jt7_mmnx6PAZjNwWGo,963
|
|
283
203
|
tests/test_live_trading_resilience.py,sha256=0rQE-9nhtQ7J2ZRkwKhGu_-yqQwNWMktQzcrS6FN-Dg,8454
|
|
284
204
|
tests/test_logger_env_vars.py,sha256=Ya7GLegudfP_a2IbGYBadj18xhr8ytQHaqyrclwPeF0,3549
|
|
285
205
|
tests/test_logging.py,sha256=UxCZiV86OK4AS0-wQ5LNyNHtcYeL3Xrby02iU8ryxOc,2782
|
|
286
206
|
tests/test_lumibot_logger.py,sha256=76e5yl86NWk4OYtM_be-7yaHnPA-1bO2rBNH-piX8Dk,5700
|
|
287
|
-
tests/test_market_infinite_loop_bug.py,sha256=
|
|
207
|
+
tests/test_market_infinite_loop_bug.py,sha256=p8Wiq2sdNFYOH54Ij9MkDFWBLTC8V3vbJEphcPq6T8g,16181
|
|
288
208
|
tests/test_mes_symbols.py,sha256=Av5AM-pogp1STfWZ4A3bA2NmbaA3E9b0Dg449mfk-Ss,3106
|
|
289
209
|
tests/test_momentum.py,sha256=oakKjgnz5pNQkw0CagbbKKSux0HkOxP_iLW8-Yk0XOo,8492
|
|
290
210
|
tests/test_options_helper.py,sha256=NizH8E9ZnzVWsShsHp5X6qBE8FWJ3sS2eE9bCko7y9U,27352
|
|
@@ -292,7 +212,8 @@ tests/test_options_helper_enhancements.py,sha256=3Ei-vy9IQfg1AnlBqofLNc-kuiQ64vo
|
|
|
292
212
|
tests/test_order.py,sha256=qN_sqsItl8L-WqSQTF0PUN0s2nxm4HKYOA6gYQ6EBJA,12110
|
|
293
213
|
tests/test_order_serialization.py,sha256=zcX5fgcYeo0jm6dlIQnUfuH56svTnKRFPtYCSI7xCJw,3710
|
|
294
214
|
tests/test_pandas_data.py,sha256=VCDhPwAuOO6twR8a5B8dmBv3wfnOENw_1Pxr9N3x9iQ,2098
|
|
295
|
-
tests/
|
|
215
|
+
tests/test_polars_resample.py,sha256=OikFHh8u5dURmZzNmp1bGrJiuJjyqBeqVn1n2mxCKMs,2260
|
|
216
|
+
tests/test_polygon_helper.py,sha256=Em-Rc-DAs407G6Op_Jh0jrSzl259IPAV_hsajvzs0sc,27675
|
|
296
217
|
tests/test_position_serialization.py,sha256=QtBPKnGdmULLT_hKrfFzvbWWG3kfqWPW-Jv_r3theuM,4293
|
|
297
218
|
tests/test_projectx.py,sha256=jyyX9ZEOCiF557MzG1sGQYk-v6JZYZ-LVIkLlURhMhQ,18327
|
|
298
219
|
tests/test_projectx_bracket_helpers.py,sha256=Lnt-qA_6H0JcHeQaR5XNuc0O7uUCggksvYdIa3RVFEs,5554
|
|
@@ -312,7 +233,9 @@ tests/test_quiet_logs_functionality.py,sha256=MlOBUICuTy1OXCDifOW05uD7hjnZRsQ2xx
|
|
|
312
233
|
tests/test_quiet_logs_requirements.py,sha256=YoUooSVLrFL8TlWPfxEiqxvSj4d8z6-qg58ja4dtOc0,7856
|
|
313
234
|
tests/test_session_manager.py,sha256=1qygN3aQ2Xe2uh4BMPm0E3V8KXLFNGq5qdL8KkZjef4,11632
|
|
314
235
|
tests/test_strategy_methods.py,sha256=j9Mhr6nnG1fkiVQXnx7gLjzGbeQmwt0UbJr_4plD36o,12539
|
|
315
|
-
tests/
|
|
236
|
+
tests/test_thetadata_backwards_compat.py,sha256=RzNLhNZNJZ2hPkEDyG-T_4mRRXh5XqavK6r-OjfRASQ,3306
|
|
237
|
+
tests/test_thetadata_helper.py,sha256=lNUhA9VuzCZaGKuN86Zkpq3fi2Qk_R0iv1P5JdkOXNA,57966
|
|
238
|
+
tests/test_thetadata_pandas_verification.py,sha256=MkGIci52W3gez4C6SI4SpcFlrDXmagxikNeOLmXt0yA,6547
|
|
316
239
|
tests/test_tradier.py,sha256=iCEM2FTxJSzJ2oLNaRqSx05XaX_DCiMzLx1aEYPANko,33280
|
|
317
240
|
tests/test_tradier_data.py,sha256=1jTxDzQtzaC42CQJVXMRMElBwExy1mVci3NFfKjjVH0,13363
|
|
318
241
|
tests/test_tradingfee.py,sha256=2CBJgdU-73Ae4xuys-QkbCtpDTL9hwOUkRnCgLm4OmE,163
|
|
@@ -336,27 +259,28 @@ tests/backtest/test_backtesting_broker_processing.py,sha256=JbTKZvcMq3l4AgIGhsvV
|
|
|
336
259
|
tests/backtest/test_buy_hold_quiet_logs_full_run.py,sha256=LDiR8wsEwIASPnO_bUMide6re0Jb-rzFG3hccD9OGJM,4998
|
|
337
260
|
tests/backtest/test_crypto_cash_regressions.py,sha256=-f0wjb-9nXpggS30N4zomYl098Qu-tfvfWwhlkoxPMM,6077
|
|
338
261
|
tests/backtest/test_daily_data_timestamp_comparison.py,sha256=DeMLH0hwl0zEybJF0YTyBgfO8p96DGLahiBCwVQKjA4,35910
|
|
339
|
-
tests/backtest/test_databento.py,sha256=
|
|
340
|
-
tests/backtest/test_databento_comprehensive_trading.py,sha256=
|
|
341
|
-
tests/backtest/test_databento_parity.py,sha256=
|
|
342
|
-
tests/backtest/test_debug_avg_fill_price.py,sha256=
|
|
262
|
+
tests/backtest/test_databento.py,sha256=kpbNNcthiH0am703nIkEFaKf7203u9bS79wdbq8hk4M,8413
|
|
263
|
+
tests/backtest/test_databento_comprehensive_trading.py,sha256=e20_RmGk5dSyyxeJ5egWpE0EqVZzlRMFs_hyXhHiNHc,22094
|
|
264
|
+
tests/backtest/test_databento_parity.py,sha256=MNnBhbf1kImSmVCNLFpUjswyyWA3PY8eOiOqZARZznY,3531
|
|
265
|
+
tests/backtest/test_debug_avg_fill_price.py,sha256=bW0U2ReKDdg7eZYrfzp2q6rUmtx4xjEjkpVjcu4Na-8,3548
|
|
343
266
|
tests/backtest/test_dividends.py,sha256=tDEnK4IcqHPHYPXAfUlApEBOf-iMROSl3aCap0BX1nI,9970
|
|
344
|
-
tests/backtest/test_example_strategies.py,sha256=
|
|
267
|
+
tests/backtest/test_example_strategies.py,sha256=tTKqZZnlx7M5LxiOWu5NUGYV_nAKKRwdfP-z_MnF8hs,16050
|
|
345
268
|
tests/backtest/test_failing_backtest.py,sha256=jBkm_3Yq-TrzezAQM7XEAn3424lzG6Mu5agnTJQCo6E,5460
|
|
346
|
-
tests/backtest/test_futures_edge_cases.py,sha256=
|
|
347
|
-
tests/backtest/test_futures_single_trade.py,sha256=
|
|
348
|
-
tests/backtest/test_futures_ultra_simple.py,sha256=
|
|
269
|
+
tests/backtest/test_futures_edge_cases.py,sha256=rmS4T1Ve45Eey9qqtMmcU6qPyyg12VrMroHtM0K0KD8,18321
|
|
270
|
+
tests/backtest/test_futures_single_trade.py,sha256=SD3NLnPJckutooXUOPZV2_y96NMzCR6rJsBXla0Mxws,10860
|
|
271
|
+
tests/backtest/test_futures_ultra_simple.py,sha256=QJ0UcZNW0GzK1mLb8e9oTE3FKcdodNoPw5L6HQIj5wA,6897
|
|
349
272
|
tests/backtest/test_index_data_verification.py,sha256=oCM_xRMylyDkUS0uDXCyj4KVKs_GG24lcqCvQq1Exvw,13737
|
|
350
273
|
tests/backtest/test_multileg_backtest.py,sha256=XqvwMtyvlo59ZV3yqnZZ_nC_9cqnLozS4MRtKdFFY-U,4981
|
|
351
274
|
tests/backtest/test_pandas_backtest.py,sha256=GSkhMY4wK1pFDe1Hscu7YxZG36RGdM1PtkLeq7u0caI,5433
|
|
352
275
|
tests/backtest/test_passing_trader_into_backtest.py,sha256=KttDS3x1Dv686GBWjt520v_ampK2MIUyPfzl7HLVlwE,3163
|
|
276
|
+
tests/backtest/test_polars_lru_eviction.py,sha256=XrAUB53rFO_G9YKSFnoKAvvzI5WCHNvP3qEAT6KP1Y8,17347
|
|
353
277
|
tests/backtest/test_polygon.py,sha256=-KMvCX8bioSm-2QrNDPBo8Ff0geHkdBLeOl6i5wFlWc,26095
|
|
354
278
|
tests/backtest/test_strategy_executor.py,sha256=r-QNPCNJnisxQyIAxPGO-BQ-l3qtZMChOUWCVX-b4ls,1289
|
|
355
279
|
tests/backtest/test_thetadata.py,sha256=xWYfC9C4EhbMDb29qyZWHO3sSWaLIPzzvcMbHCt5H0w,23306
|
|
356
280
|
tests/backtest/test_thetadata_comprehensive.py,sha256=-gN3xLJcJtlB-k4vlaK82DCZDGDmr0LNZZDzn-aN3l4,26120
|
|
357
281
|
tests/backtest/test_thetadata_vs_polygon.py,sha256=dZqsrOx3u3cz-1onIO6o5BDRjI1ey7U9vIkZupfXoig,22831
|
|
358
|
-
tests/backtest/test_yahoo.py,sha256=
|
|
359
|
-
lumibot-4.
|
|
360
|
-
lumibot-4.
|
|
361
|
-
lumibot-4.
|
|
362
|
-
lumibot-4.
|
|
282
|
+
tests/backtest/test_yahoo.py,sha256=2FguUTUMC9_A20eqxnZ17rN3tT9n6hyvJHaL98QKpqY,3443
|
|
283
|
+
lumibot-4.2.0.dist-info/METADATA,sha256=fLMcodhb7BQl9rONrvfEQMxIhXx9lo5T-iRftdS2qDk,12092
|
|
284
|
+
lumibot-4.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
285
|
+
lumibot-4.2.0.dist-info/top_level.txt,sha256=otUnUjDFVASauEDiTiAzNgMyqQ1B6jjS3QqqP-WSx38,14
|
|
286
|
+
lumibot-4.2.0.dist-info/RECORD,,
|
tests/backtest/test_databento.py
CHANGED
|
@@ -6,8 +6,14 @@ from dotenv import load_dotenv
|
|
|
6
6
|
# Load environment variables from .env file
|
|
7
7
|
load_dotenv()
|
|
8
8
|
|
|
9
|
-
from lumibot.backtesting import BacktestingBroker
|
|
10
|
-
from lumibot.
|
|
9
|
+
from lumibot.backtesting import BacktestingBroker
|
|
10
|
+
from lumibot.backtesting.databento_backtesting_pandas import (
|
|
11
|
+
DataBentoDataBacktestingPandas,
|
|
12
|
+
)
|
|
13
|
+
from lumibot.backtesting.databento_backtesting_polars import (
|
|
14
|
+
DataBentoDataBacktestingPolars,
|
|
15
|
+
)
|
|
16
|
+
from lumibot.tools.databento_helper import DataBentoAuthenticationError
|
|
11
17
|
from lumibot.entities import Asset
|
|
12
18
|
from lumibot.strategies import Strategy
|
|
13
19
|
from lumibot.traders import Trader
|
|
@@ -16,6 +22,31 @@ from lumibot.credentials import DATABENTO_CONFIG
|
|
|
16
22
|
DATABENTO_API_KEY = DATABENTO_CONFIG.get("API_KEY")
|
|
17
23
|
|
|
18
24
|
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def test_databento_auth_failure_propagates(monkeypatch):
|
|
28
|
+
start = datetime.datetime(2025, 1, 6, tzinfo=pytz.UTC)
|
|
29
|
+
end = datetime.datetime(2025, 1, 7, tzinfo=pytz.UTC)
|
|
30
|
+
asset = Asset("MES", asset_type=Asset.AssetType.CONT_FUTURE)
|
|
31
|
+
|
|
32
|
+
def boom(*args, **kwargs):
|
|
33
|
+
raise DataBentoAuthenticationError("401 auth_authentication_failed")
|
|
34
|
+
|
|
35
|
+
monkeypatch.setattr(
|
|
36
|
+
"lumibot.tools.databento_helper.get_price_data_from_databento",
|
|
37
|
+
boom,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
data_source = DataBentoDataBacktestingPandas(
|
|
41
|
+
datetime_start=start,
|
|
42
|
+
datetime_end=end,
|
|
43
|
+
api_key="dummy",
|
|
44
|
+
show_progress_bar=False,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
with pytest.raises(DataBentoAuthenticationError):
|
|
48
|
+
data_source.get_historical_prices(asset, length=1, timestep="minute")
|
|
49
|
+
|
|
19
50
|
class SimpleContinuousFutures(Strategy):
|
|
20
51
|
"""Simple strategy for testing continuous futures with minute-level data"""
|
|
21
52
|
|
|
@@ -67,10 +98,10 @@ class TestDatabentoBacktestFull:
|
|
|
67
98
|
backtesting_start = tzinfo.localize(datetime.datetime(2025, 1, 2, 9, 30))
|
|
68
99
|
backtesting_end = tzinfo.localize(datetime.datetime(2025, 1, 3, 16, 0))
|
|
69
100
|
|
|
70
|
-
data_source =
|
|
101
|
+
data_source = DataBentoDataBacktestingPandas(
|
|
71
102
|
datetime_start=backtesting_start,
|
|
72
103
|
datetime_end=backtesting_end,
|
|
73
|
-
|
|
104
|
+
api_key=DATABENTO_API_KEY,
|
|
74
105
|
)
|
|
75
106
|
|
|
76
107
|
broker = BacktestingBroker(data_source=data_source)
|
|
@@ -184,10 +215,10 @@ class TestDatabentoBacktestFull:
|
|
|
184
215
|
order = self.create_order(asset, 1, "buy")
|
|
185
216
|
self.submit_order(order)
|
|
186
217
|
|
|
187
|
-
data_source =
|
|
218
|
+
data_source = DataBentoDataBacktestingPandas(
|
|
188
219
|
datetime_start=backtesting_start,
|
|
189
220
|
datetime_end=backtesting_end,
|
|
190
|
-
|
|
221
|
+
api_key=DATABENTO_API_KEY,
|
|
191
222
|
)
|
|
192
223
|
|
|
193
224
|
broker = BacktestingBroker(data_source=data_source)
|