investing-algorithm-framework 7.22.0__tar.gz → 7.22.2__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.
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/PKG-INFO +1 -1
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/app.py +24 -8
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/backtest.py +10 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/backtesting/backtest_service.py +12 -15
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/pyproject.toml +1 -1
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/LICENSE +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/README.md +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/algorithm/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/algorithm/algorithm.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/algorithm/algorithm_factory.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/analysis/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/analysis/backtest_data_ranges.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/analysis/backtest_utils.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/analysis/permutation.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/analysis/ranking.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/analysis/strategy_id.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/app_hook.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/context.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/eventloop.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/ascii.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/backtest_report.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/entry_exist_signals.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/equity_curve.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/equity_curve_drawdown.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/line_chart.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/monthly_returns_heatmap.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/ohlcv_data_completeness.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/rolling_sharp_ratio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/charts/yearly_returns_barchart.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/generate.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/tables/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/tables/key_metrics_table.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/tables/stop_loss_table.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/tables/time_metrics_table.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/tables/trade_metrics_table.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/tables/trades_table.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/tables/utils.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/reporting/templates/report_template.html.j2 +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/strategy.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/task.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/create_app.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/error_handler.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/responses.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/cli.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/deploy_to_aws_lambda.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/deploy_to_azure_function.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/initialize_app.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/.gitignore.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/app.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/app_aws_lambda_function.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/app_azure_function.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/app_web.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/aws_lambda_dockerfile.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/aws_lambda_dockerignore.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/aws_lambda_readme.md.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/aws_lambda_requirements.txt.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/azure_function_function_app.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/azure_function_host.json.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/azure_function_local.settings.json.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/azure_function_requirements.txt.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/data_providers.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/env.example.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/env_azure_function.example.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/market_data_providers.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/readme.md.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/requirements.txt.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/run_backtest.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/cli/templates/strategy.py.template +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/create_app.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/dependency_container.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/backtest_date_range.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/backtest_evaluation_focuss.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/backtest_metrics.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/backtest_permutation_test.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/backtest_run.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/backtest_summary_metrics.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/backtesting/combine_backtests.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/config.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/constants.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/data_provider.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/data_structures.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/exceptions.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/base_model.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/data/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/data/data_source.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/data/data_type.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/event.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/order/order.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/position/position.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/position/position_size.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/risk_rules/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/risk_rules/stop_loss_rule.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/risk_rules/take_profit_rule.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/snapshot_interval.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/trade/trade_stop_loss.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/models/trade/trade_take_profit.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/order_executor.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/portfolio_provider.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/services/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/services/state_handler.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/strategy.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/csv.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/custom_tqdm.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/dates.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/jupyter_notebook_detection.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/polars.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/random.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/download_data.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/data_providers/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/data_providers/ccxt.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/data_providers/csv.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/data_providers/pandas.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/order/order_metadata.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/order_trade_association.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/portfolio/sql_portfolio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/trades/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/trades/trade.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/trades/trade_stop_loss.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/models/trades/trade_take_profit.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/order_executors/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/order_executors/backtest_oder_executor.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/order_executors/ccxt_order_executor.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/portfolio_providers/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/portfolio_providers/ccxt_portfolio_provider.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/order_metadata_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/trade_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/trade_stop_loss_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/repositories/trade_take_profit_repository.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/services/aws/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/services/aws/state_handler.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/services/azure/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/infrastructure/services/azure/state_handler.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/configuration_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/data_providers/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/data_providers/data_provider_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/alpha.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/beta.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/cagr.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/calmar_ratio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/drawdown.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/equity_curve.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/exposure.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/generate.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/mean_daily_return.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/price_efficiency.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/profit_factor.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/recovery.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/returns.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/risk_free_rate.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/sharpe_ratio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/sortino_ratio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/standard_deviation.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/trades.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/treynor_ratio.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/ulcer.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/value_at_risk.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/volatility.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/metrics/win_rate.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/order_service/order_backtest_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/order_service/order_executor_lookup.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/portfolios/portfolio_provider_lookup.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/positions/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/positions/position_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/positions/position_snapshot_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/repository_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/trade_order_evaluator/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/trade_order_evaluator/backtest_trade_oder_evaluator.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/trade_order_evaluator/default_trade_order_evaluator.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/trade_order_evaluator/trade_order_evaluator.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/trade_service/trade_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/trade_service/trade_stop_loss_service.py +0 -0
- {investing_algorithm_framework-7.22.0 → investing_algorithm_framework-7.22.2}/investing_algorithm_framework/services/trade_service/trade_take_profit_service.py +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import gc
|
|
2
|
+
import shutil
|
|
2
3
|
import inspect
|
|
3
4
|
import logging
|
|
4
5
|
import os
|
|
@@ -1142,7 +1143,9 @@ class App:
|
|
|
1142
1143
|
market=market,
|
|
1143
1144
|
trading_symbol=trading_symbol,
|
|
1144
1145
|
use_checkpoints=use_checkpoints,
|
|
1145
|
-
backtest_storage_directory=
|
|
1146
|
+
backtest_storage_directory=(
|
|
1147
|
+
backtest_storage_directory
|
|
1148
|
+
)
|
|
1146
1149
|
)
|
|
1147
1150
|
)
|
|
1148
1151
|
|
|
@@ -1200,6 +1203,9 @@ class App:
|
|
|
1200
1203
|
backtests_ordered_by_strategy.setdefault(
|
|
1201
1204
|
backtest.metadata["id"], []
|
|
1202
1205
|
).append(backtest)
|
|
1206
|
+
|
|
1207
|
+
# Remove all temp storage directories
|
|
1208
|
+
shutil.rmtree(path)
|
|
1203
1209
|
else:
|
|
1204
1210
|
# Remove all strategies that are not in the final selection
|
|
1205
1211
|
backtests_ordered_by_strategy = {
|
|
@@ -1214,6 +1220,13 @@ class App:
|
|
|
1214
1220
|
combine_backtests(backtests_ordered_by_strategy[strategy])
|
|
1215
1221
|
)
|
|
1216
1222
|
|
|
1223
|
+
if backtest_storage_directory is not None:
|
|
1224
|
+
# Save final combined backtests to storage directory
|
|
1225
|
+
save_backtests_to_directory(
|
|
1226
|
+
backtests=backtests,
|
|
1227
|
+
directory_path=backtest_storage_directory,
|
|
1228
|
+
)
|
|
1229
|
+
|
|
1217
1230
|
return backtests
|
|
1218
1231
|
|
|
1219
1232
|
def run_vector_backtest(
|
|
@@ -1339,11 +1352,12 @@ class App:
|
|
|
1339
1352
|
backtest_date_range=backtest_date_range,
|
|
1340
1353
|
storage_directory=backtest_storage_directory,
|
|
1341
1354
|
):
|
|
1342
|
-
backtest = backtest_service
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1355
|
+
backtest = backtest_service\
|
|
1356
|
+
.load_backtest_by_strategy_and_backtest_date_range(
|
|
1357
|
+
strategy=strategy,
|
|
1358
|
+
backtest_date_range=backtest_date_range,
|
|
1359
|
+
storage_directory=backtest_storage_directory,
|
|
1360
|
+
)
|
|
1347
1361
|
else:
|
|
1348
1362
|
try:
|
|
1349
1363
|
run = backtest_service.create_vector_backtest(
|
|
@@ -1671,7 +1685,8 @@ class App:
|
|
|
1671
1685
|
snapshot_interval=SnapshotInterval.DAILY,
|
|
1672
1686
|
risk_free_rate=risk_free_rate,
|
|
1673
1687
|
market=market,
|
|
1674
|
-
trading_symbol=trading_symbol
|
|
1688
|
+
trading_symbol=trading_symbol,
|
|
1689
|
+
use_checkpoints=False
|
|
1675
1690
|
)
|
|
1676
1691
|
backtest_metrics = backtest.get_backtest_metrics(backtest_date_range)
|
|
1677
1692
|
|
|
@@ -1753,7 +1768,8 @@ class App:
|
|
|
1753
1768
|
risk_free_rate=risk_free_rate,
|
|
1754
1769
|
skip_data_sources_initialization=True,
|
|
1755
1770
|
market=market,
|
|
1756
|
-
trading_symbol=trading_symbol
|
|
1771
|
+
trading_symbol=trading_symbol,
|
|
1772
|
+
use_checkpoints=False
|
|
1757
1773
|
)
|
|
1758
1774
|
|
|
1759
1775
|
# Add the results of the permuted backtest to the main backtest
|
|
@@ -467,6 +467,16 @@ class Backtest:
|
|
|
467
467
|
|
|
468
468
|
return merged
|
|
469
469
|
|
|
470
|
+
def get_metadata(self) -> Dict[str, str]:
|
|
471
|
+
"""
|
|
472
|
+
Get the metadata of the backtest.
|
|
473
|
+
|
|
474
|
+
Returns:
|
|
475
|
+
Dict[str, str]: A dictionary containing the metadata
|
|
476
|
+
of the backtest.
|
|
477
|
+
"""
|
|
478
|
+
return self.metadata
|
|
479
|
+
|
|
470
480
|
def get_backtest_date_ranges(self):
|
|
471
481
|
"""
|
|
472
482
|
Get the date ranges for the backtest.
|
|
@@ -672,21 +672,20 @@ class BacktestService:
|
|
|
672
672
|
backtest_directory = os.path.join(storage_directory, strategy_id)
|
|
673
673
|
|
|
674
674
|
if os.path.exists(backtest_directory):
|
|
675
|
-
backtest = Backtest.
|
|
676
|
-
backtest_date_ranges = backtest
|
|
677
|
-
.get_most_granular_ohlcv_data_source()
|
|
675
|
+
backtest = Backtest.open(backtest_directory)
|
|
676
|
+
backtest_date_ranges = backtest.get_backtest_date_ranges()
|
|
678
677
|
|
|
679
678
|
for backtest_date_range_ref in backtest_date_ranges:
|
|
680
679
|
|
|
681
680
|
if backtest_date_range_ref.start_date \
|
|
682
|
-
==
|
|
681
|
+
== backtest_date_range.start_date and \
|
|
683
682
|
backtest_date_range_ref.end_date \
|
|
684
|
-
==
|
|
683
|
+
== backtest_date_range.end_date:
|
|
685
684
|
return True
|
|
686
685
|
|
|
687
686
|
return False
|
|
688
687
|
|
|
689
|
-
def
|
|
688
|
+
def load_backtest_by_strategy_and_backtest_date_range(
|
|
690
689
|
self,
|
|
691
690
|
strategy,
|
|
692
691
|
backtest_date_range: BacktestDateRange,
|
|
@@ -694,6 +693,9 @@ class BacktestService:
|
|
|
694
693
|
) -> Backtest:
|
|
695
694
|
"""
|
|
696
695
|
Load a backtest for the given strategy and backtest date range.
|
|
696
|
+
If the backtest does not exist, an exception will be raised.
|
|
697
|
+
For the given backtest, only the run and metrics corresponding
|
|
698
|
+
to the backtest date range will be returned.
|
|
697
699
|
|
|
698
700
|
Args:
|
|
699
701
|
strategy: The strategy to load the backtest for.
|
|
@@ -709,14 +711,9 @@ class BacktestService:
|
|
|
709
711
|
backtest_directory = os.path.join(storage_directory, strategy_id)
|
|
710
712
|
|
|
711
713
|
if os.path.exists(backtest_directory):
|
|
712
|
-
backtest = Backtest.
|
|
713
|
-
run = backtest.
|
|
714
|
-
|
|
715
|
-
return Backtest(
|
|
716
|
-
backtest_runs=[run],
|
|
717
|
-
backtest_summary=generate_backtest_summary_metrics(
|
|
718
|
-
[metrics]
|
|
719
|
-
)
|
|
720
|
-
)
|
|
714
|
+
backtest = Backtest.open(backtest_directory)
|
|
715
|
+
run = backtest.get_backtest_run(backtest_date_range)
|
|
716
|
+
metadata = backtest.get_metadata()
|
|
717
|
+
return Backtest(backtest_runs=[run], metadata=metadata)
|
|
721
718
|
else:
|
|
722
719
|
raise OperationalException("Backtest does not exist.")
|
|
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
|