lumibot 4.1.0__tar.gz → 4.1.1__tar.gz
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-4.1.0/lumibot.egg-info → lumibot-4.1.1}/PKG-INFO +1 -1
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/databento_backtesting.py +4 -0
- {lumibot-4.1.0 → lumibot-4.1.1/lumibot.egg-info}/PKG-INFO +1 -1
- {lumibot-4.1.0 → lumibot-4.1.1}/setup.py +2 -1
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_databento_helper.py +3 -4
- {lumibot-4.1.0 → lumibot-4.1.1}/LICENSE +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/MANIFEST.in +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/README.md +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/ThetaTerminal.jar +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/alpaca_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/alpha_vantage_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/backtesting_broker.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/ccxt_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/interactive_brokers_rest_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/pandas_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/polygon_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/thetadata_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/backtesting/yahoo_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/alpaca.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/bitunix.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/broker.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/ccxt.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/example_broker.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/interactive_brokers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/interactive_brokers_rest.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/projectx.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/schwab.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/tradier.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/brokers/tradovate.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/components/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/components/configs_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/components/drift_rebalancer_logic.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/components/grok_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/components/options_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/components/perplexity_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/components/quiver_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/components/vix_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/constants.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/credentials.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/alpaca_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/alpha_vantage_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/bitunix_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/ccxt_backtesting_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/ccxt_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/data_source.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/data_source_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/databento_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/databento_data_polars_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/databento_data_polars_live.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/example_broker_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/exceptions.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/interactive_brokers_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/interactive_brokers_rest_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/pandas_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/polars_mixin.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/polygon_data_polars.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/projectx_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/schwab_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/tradier_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/tradovate_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/yahoo_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/data_sources/yahoo_data_polars.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/asset.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/bar.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/bars.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/chains.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/dataline.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/order.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/position.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/quote.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/entities/trading_fee.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/bitunix_futures_example.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/ccxt_backtesting_example.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/classic_60_40.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/classic_60_40_config.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/crypto_50_50.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/crypto_50_50_config.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/crypto_important_functions.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/drift_rebalancer.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/forex_hold_to_expiry.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/futures_hold_to_expiry.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/lifecycle_logger.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/options_hold_to_expiry.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/schedule_function.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/simple_start_single_file.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/stock_bracket.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/stock_buy_and_hold.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/stock_diversified_leverage.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/stock_limit_and_trailing_stops.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/stock_momentum.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/stock_oco.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/strangle.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/test_broker_functions.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/resources/conf.yaml +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/strategies/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/strategies/_strategy.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/strategies/session_manager.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/strategies/strategy.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/strategies/strategy_executor.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/alpaca_helpers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/bitunix_helpers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/black_scholes.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/ccxt_data_store.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/databento_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/databento_helper_polars.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/databento_roll.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/debugers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/decorators.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/futures_symbols.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/helpers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/indicators.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/lumibot_logger.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/lumibot_time.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/pandas.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/polygon_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/polygon_helper_async.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/polygon_helper_polars_optimized.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/projectx_helpers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/schwab_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/thetadata_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/types.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/yahoo_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/tools/yahoo_helper_polars_optimized.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/traders/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/traders/debug_log_trader.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/traders/trader.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/trading_builtins/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/trading_builtins/custom_stream.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot/trading_builtins/safe_list.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot.egg-info/SOURCES.txt +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot.egg-info/dependency_links.txt +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot.egg-info/requires.txt +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/lumibot.egg-info/top_level.txt +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/pyproject.toml +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/setup.cfg +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/__init__.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/check_timing_offset.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/check_volume_spike.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/comprehensive_comparison.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/conftest.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/debug_comparison.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/diagnose_price_difference.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/direct_api_comparison.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/performance_tracker.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/profile_thetadata_vs_polygon.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/root_cause_analysis.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_accuracy_verification.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_backtesting_broker_processing.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_buy_hold_quiet_logs_full_run.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_crypto_cash_regressions.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_daily_data_timestamp_comparison.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_databento.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_databento_comprehensive_trading.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_debug_avg_fill_price.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_dividends.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_example_strategies.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_failing_backtest.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_futures_edge_cases.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_futures_single_trade.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_futures_ultra_simple.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_index_data_verification.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_multileg_backtest.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_pandas_backtest.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_passing_trader_into_backtest.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_polygon.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_strategy_executor.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_thetadata.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_thetadata_comprehensive.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_thetadata_vs_polygon.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/backtest/test_yahoo.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/conftest.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/fixtures.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_alpaca.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_alpaca_auth_fix.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_alpaca_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_alpaca_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_alpaca_helpers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_alpaca_multileg_fix.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_alpaca_oauth.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_apscheduler_warnings.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_asset.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_asset_auto_expiry.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_auto_market_inference.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_backtesting_broker.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_backtesting_broker_await_close.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_backtesting_broker_time_advance.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_backtesting_crypto_cash_unit.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_backtesting_data_source_env.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_backtesting_flow_control.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_backtesting_multileg_unit.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_backtesting_quiet_logs_complete.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_bars_aggregate_frequency_normalization.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_bars_aggregation_timeunits.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_bars_frequency_flex.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_botspot_handler.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_botspot_logger.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_broker_bitunix.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_broker_cleanup.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_broker_initialization.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_brokers_handle_crypto.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_cash.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_ccxt.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_ccxt_store.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_configs_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_continuous_futures.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_continuous_futures_integration.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_continuous_futures_resolution.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_data_source.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_databento_asset_validation.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_databento_auto_expiry_integration.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_databento_backtesting.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_databento_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_databento_live.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_databento_timezone_fixes.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_drift_rebalancer.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_futures_integration.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_get_historical_prices.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_helpers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_indicator_subplots.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_integration_tests.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_interactive_brokers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_live_trading_resilience.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_logger_env_vars.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_logging.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_lumibot_logger.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_market_infinite_loop_bug.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_mes_symbols.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_momentum.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_options_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_order.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_order_serialization.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_pandas_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_polygon_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_position_serialization.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_bracket_helpers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_bracket_lifecycle_unit.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_datetime_columns.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_datetime_index.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_helpers.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_lifecycle.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_lifecycle_unit.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_live_flow.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_timestep_alias.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_projectx_url_mappings.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_quiet_logs_buy_and_hold.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_quiet_logs_comprehensive.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_quiet_logs_functionality.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_quiet_logs_requirements.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_session_manager.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_strategy_methods.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_thetadata_helper.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_tradier.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_tradier_data.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_tradingfee.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_tradovate.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_unified_logger.py +0 -0
- {lumibot-4.1.0 → lumibot-4.1.1}/tests/test_vix_helper.py +0 -0
|
@@ -438,6 +438,10 @@ class DataBentoDataBacktesting(PandasData):
|
|
|
438
438
|
# Filter to data up to current backtest time (exclude current bar unless broker overrides)
|
|
439
439
|
filtered_df = df[df.index <= cutoff_dt]
|
|
440
440
|
|
|
441
|
+
# If we have no prior bar (e.g., first iteration), allow the current timestamp
|
|
442
|
+
if filtered_df.empty:
|
|
443
|
+
filtered_df = df[df.index <= current_dt_aware]
|
|
444
|
+
|
|
441
445
|
if not filtered_df.empty:
|
|
442
446
|
last_price = filtered_df['close'].iloc[-1]
|
|
443
447
|
if not pd.isna(last_price):
|
|
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
|
|
|
5
5
|
|
|
6
6
|
setuptools.setup(
|
|
7
7
|
name="lumibot",
|
|
8
|
-
version="4.1.
|
|
8
|
+
version="4.1.1",
|
|
9
9
|
author="Robert Grzesik",
|
|
10
10
|
author_email="rob@lumiwealth.com",
|
|
11
11
|
description="Backtesting and Trading Library, Made by Lumiwealth",
|
|
@@ -61,6 +61,7 @@ setuptools.setup(
|
|
|
61
61
|
"free-proxy",
|
|
62
62
|
"requests-oauthlib",
|
|
63
63
|
],
|
|
64
|
+
data_files=[("", ["ThetaTerminal.jar"])],
|
|
64
65
|
classifiers=[
|
|
65
66
|
"Programming Language :: Python :: 3",
|
|
66
67
|
"Operating System :: OS Independent",
|
|
@@ -16,8 +16,7 @@ class TestDataBentoHelper(unittest.TestCase):
|
|
|
16
16
|
self.api_key = "test_api_key"
|
|
17
17
|
self.test_asset_future = Asset(
|
|
18
18
|
symbol="ES",
|
|
19
|
-
asset_type="
|
|
20
|
-
expiration=datetime(2025, 3, 15).date()
|
|
19
|
+
asset_type="CONT_FUTURE"
|
|
21
20
|
)
|
|
22
21
|
self.test_asset_stock = Asset(
|
|
23
22
|
symbol="AAPL",
|
|
@@ -217,8 +216,8 @@ class TestDataBentoHelper(unittest.TestCase):
|
|
|
217
216
|
self.end_date,
|
|
218
217
|
"minute"
|
|
219
218
|
)
|
|
220
|
-
|
|
221
|
-
expected_name = "
|
|
219
|
+
|
|
220
|
+
expected_name = "ES_minute_202501010000_202501310000.parquet"
|
|
222
221
|
self.assertEqual(filename.name, expected_name)
|
|
223
222
|
|
|
224
223
|
def test_no_retry_logic_for_correct_symbol(self):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lumibot-4.1.0 → lumibot-4.1.1}/lumibot/example_strategies/stock_limit_and_trailing_stops.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|