investing-algorithm-framework 7.4.0__tar.gz → 7.4.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.
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/PKG-INFO +1 -1
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/app.py +27 -16
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/charts/__init__.py +2 -0
- investing_algorithm_framework-7.4.1/investing_algorithm_framework/app/reporting/charts/line_chart.py +11 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/backtesting/backtest.py +33 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/backtesting/backtest_permutation_test.py +3 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/data_providers/data_provider_service.py +45 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/pyproject.toml +1 -1
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/LICENSE +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/README.md +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/algorithm/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/algorithm/algorithm.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/algorithm/algorithm_factory.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/analysis/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/analysis/backtest_data_ranges.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/analysis/permutation.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/analysis/ranking.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/app_hook.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/context.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/eventloop.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/ascii.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/backtest_report.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/charts/entry_exist_signals.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/charts/equity_curve_drawdown.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/charts/monthly_returns_heatmap.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/charts/ohlcv_data_completeness.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/charts/rolling_sharp_ratio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/charts/yearly_returns_barchart.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/generate.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/tables/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/tables/key_metrics_table.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/tables/stop_loss_table.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/tables/time_metrics_table.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/tables/trade_metrics_table.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/tables/trades_table.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/tables/utils.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/reporting/templates/report_template.html.j2 +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/strategy.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/task.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/create_app.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/error_handler.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/responses.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/cli.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/deploy_to_aws_lambda.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/deploy_to_azure_function.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/initialize_app.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/.gitignore.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/app.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/app_aws_lambda_function.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/app_azure_function.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/app_web.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/aws_lambda_dockerfile.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/aws_lambda_dockerignore.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/aws_lambda_readme.md.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/aws_lambda_requirements.txt.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/azure_function_function_app.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/azure_function_host.json.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/azure_function_local.settings.json.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/azure_function_requirements.txt.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/data_providers.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/env.example.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/env_azure_function.example.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/market_data_providers.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/readme.md.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/requirements.txt.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/run_backtest.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/cli/templates/strategy.py.template +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/create_app.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/dependency_container.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/backtesting/backtest_date_range.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/backtesting/backtest_evaluation_focuss.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/backtesting/backtest_metrics.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/backtesting/backtest_run.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/backtesting/backtest_summary_metrics.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/config.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/constants.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/data_provider.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/data_structures.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/exceptions.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/base_model.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/data/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/data/data_source.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/data/data_type.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/event.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/order/order.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/position/position.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/snapshot_interval.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/trade/trade_risk_type.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/trade/trade_stop_loss.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/models/trade/trade_take_profit.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/order_executor.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/portfolio_provider.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/services/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/services/observable.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/services/observer.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/services/state_handler.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/strategy.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/csv.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/custom_tqdm.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/dates.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/jupyter_notebook_detection.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/polars.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/random.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/download_data.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/data_providers/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/data_providers/ccxt.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/data_providers/csv.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/data_providers/pandas.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/order/order_metadata.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/order_trade_association.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/portfolio/sql_portfolio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/trades/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/trades/trade.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/trades/trade_stop_loss.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/models/trades/trade_take_profit.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/order_executors/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/order_executors/backtest_oder_executor.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/order_executors/ccxt_order_executor.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/portfolio_providers/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/portfolio_providers/ccxt_portfolio_provider.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/order_metadata_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/trade_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/trade_stop_loss_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/repositories/trade_take_profit_repository.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/services/aws/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/services/aws/state_handler.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/services/azure/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/services/azure/state_handler.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/unit_of_work/in_memory.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/infrastructure/unit_of_work/sqlalchemy.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/backtesting/backtest_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/configuration_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/data_providers/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/alpha.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/beta.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/cagr.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/calmar_ratio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/drawdown.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/equity_curve.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/exposure.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/generate.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/mean_daily_return.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/price_efficiency.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/profit_factor.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/recovery.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/returns.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/risk_free_rate.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/sharpe_ratio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/sortino_ratio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/standard_deviation.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/treynor_ratio.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/ulcer.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/value_at_risk.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/volatility.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/metrics/win_rate.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/order_service/order_backtest_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/order_service/order_executor_lookup.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/portfolios/portfolio_provider_lookup.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/positions/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/positions/position_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/positions/position_snapshot_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/repository_service.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/trade_order_evaluator/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/trade_order_evaluator/backtest_trade_oder_evaluator.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/trade_order_evaluator/default_trade_order_evaluator.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/trade_order_evaluator/trade_order_evaluator.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
- {investing_algorithm_framework-7.4.0 → investing_algorithm_framework-7.4.1}/investing_algorithm_framework/services/trade_service/trade_service.py +0 -0
|
@@ -1325,13 +1325,19 @@ class App:
|
|
|
1325
1325
|
|
|
1326
1326
|
for data_source in data_sources:
|
|
1327
1327
|
if DataType.OHLCV.equals(data_source.data_type):
|
|
1328
|
+
data_provider = data_provider_service.get(data_source)
|
|
1328
1329
|
data = data_provider_service.get_data(
|
|
1329
1330
|
data_source=data_source,
|
|
1330
|
-
start_date=
|
|
1331
|
+
start_date=data_provider._start_date_data_source,
|
|
1331
1332
|
end_date=backtest_date_range.end_date
|
|
1332
1333
|
)
|
|
1333
1334
|
original_data_combinations.append((data_source, data))
|
|
1334
|
-
original_datasets_ordered_by_symbol[data_source.symbol] =
|
|
1335
|
+
original_datasets_ordered_by_symbol[data_source.symbol] = \
|
|
1336
|
+
data_provider_service.get_data(
|
|
1337
|
+
data_source=data_source,
|
|
1338
|
+
start_date=data_provider._start_date_data_source,
|
|
1339
|
+
end_date=backtest_date_range.end_date
|
|
1340
|
+
)
|
|
1335
1341
|
|
|
1336
1342
|
for _ in tqdm(
|
|
1337
1343
|
range(number_of_permutations),
|
|
@@ -1356,19 +1362,21 @@ class App:
|
|
|
1356
1362
|
self._data_providers = []
|
|
1357
1363
|
|
|
1358
1364
|
for combi in permutated_datasets:
|
|
1359
|
-
|
|
1365
|
+
data_source = combi[0]
|
|
1366
|
+
data_provider = PandasOHLCVDataProvider(
|
|
1367
|
+
dataframe=combi[1],
|
|
1368
|
+
symbol=data_source.symbol,
|
|
1369
|
+
market=data_source.market,
|
|
1370
|
+
window_size=data_source.window_size,
|
|
1371
|
+
time_frame=data_source.time_frame,
|
|
1372
|
+
data_provider_identifier=data_source
|
|
1373
|
+
.data_provider_identifier,
|
|
1374
|
+
pandas=data_source.pandas,
|
|
1375
|
+
)
|
|
1360
1376
|
# Add pandas ohlcv data provider to the data provider service
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
symbol=combi[0].symbol,
|
|
1365
|
-
market=combi[0].market,
|
|
1366
|
-
window_size=combi[0].window_size,
|
|
1367
|
-
time_frame=combi[0].time_frame,
|
|
1368
|
-
data_provider_identifier=dp_identifier,
|
|
1369
|
-
pandas=combi[0].pandas,
|
|
1370
|
-
),
|
|
1371
|
-
priority=1
|
|
1377
|
+
data_provider_service.register_data_provider(
|
|
1378
|
+
data_source=data_source,
|
|
1379
|
+
data_provider=data_provider
|
|
1372
1380
|
)
|
|
1373
1381
|
|
|
1374
1382
|
# Run the backtest with the permuted strategy
|
|
@@ -1378,7 +1386,7 @@ class App:
|
|
|
1378
1386
|
strategy=strategy,
|
|
1379
1387
|
snapshot_interval=SnapshotInterval.DAILY,
|
|
1380
1388
|
risk_free_rate=risk_free_rate,
|
|
1381
|
-
|
|
1389
|
+
skip_data_sources_initialization=True
|
|
1382
1390
|
)
|
|
1383
1391
|
|
|
1384
1392
|
# Add the results of the permuted backtest to the main backtest
|
|
@@ -1391,7 +1399,10 @@ class App:
|
|
|
1391
1399
|
real_metrics=backtest_metrics,
|
|
1392
1400
|
permutated_metrics=permuted_metrics,
|
|
1393
1401
|
ohlcv_permutated_datasets=permuted_datasets_ordered_by_symbol,
|
|
1394
|
-
ohlcv_original_datasets=original_datasets_ordered_by_symbol
|
|
1402
|
+
ohlcv_original_datasets=original_datasets_ordered_by_symbol,
|
|
1403
|
+
backtest_start_date=backtest_date_range.start_date,
|
|
1404
|
+
backtest_end_date=backtest_date_range.end_date,
|
|
1405
|
+
backtest_date_range_name=backtest_date_range.name
|
|
1395
1406
|
)
|
|
1396
1407
|
return permutation_test_metrics
|
|
1397
1408
|
|
|
@@ -4,6 +4,7 @@ from .monthly_returns_heatmap import get_monthly_returns_heatmap_chart
|
|
|
4
4
|
from .yearly_returns_barchart import get_yearly_returns_bar_chart
|
|
5
5
|
from .ohlcv_data_completeness import get_ohlcv_data_completeness_chart
|
|
6
6
|
from .entry_exist_signals import get_entry_and_exit_signals
|
|
7
|
+
from .line_chart import create_line_scatter
|
|
7
8
|
|
|
8
9
|
__all__ = [
|
|
9
10
|
"get_equity_curve_with_drawdown_chart",
|
|
@@ -12,4 +13,5 @@ __all__ = [
|
|
|
12
13
|
"get_yearly_returns_bar_chart",
|
|
13
14
|
"get_ohlcv_data_completeness_chart",
|
|
14
15
|
"get_entry_and_exit_signals",
|
|
16
|
+
"create_line_scatter",
|
|
15
17
|
]
|
|
@@ -91,6 +91,27 @@ class Backtest:
|
|
|
91
91
|
return run
|
|
92
92
|
return None
|
|
93
93
|
|
|
94
|
+
def get_backtest_permutation_test(
|
|
95
|
+
self, date_range: BacktestDateRange
|
|
96
|
+
) -> Union[BacktestPermutationTest, None]:
|
|
97
|
+
"""
|
|
98
|
+
Retrieve a specific BacktestPermutationTest based on
|
|
99
|
+
the provided date range.
|
|
100
|
+
|
|
101
|
+
Args:
|
|
102
|
+
date_range (BacktestDateRange): The date range to search for.
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
Union[BacktestPermutationTest, None]: The
|
|
106
|
+
matching BacktestPermutationTest if found,
|
|
107
|
+
otherwise None.
|
|
108
|
+
"""
|
|
109
|
+
for perm_test in self.backtest_permutation_tests:
|
|
110
|
+
if (perm_test.backtest_start_date == date_range.start_date and
|
|
111
|
+
perm_test.backtest_end_date == date_range.end_date):
|
|
112
|
+
return perm_test
|
|
113
|
+
return None
|
|
114
|
+
|
|
94
115
|
def get_all_backtest_metrics(self) -> List[BacktestMetrics]:
|
|
95
116
|
"""
|
|
96
117
|
Retrieve all BacktestMetrics from the backtest runs.
|
|
@@ -382,3 +403,15 @@ class Backtest:
|
|
|
382
403
|
)
|
|
383
404
|
for run in self.backtest_runs
|
|
384
405
|
]
|
|
406
|
+
|
|
407
|
+
def add_permutation_test(
|
|
408
|
+
self, permutation_test: BacktestPermutationTest
|
|
409
|
+
) -> None:
|
|
410
|
+
"""
|
|
411
|
+
Add a permutation test to the backtest.
|
|
412
|
+
|
|
413
|
+
Args:
|
|
414
|
+
permutation_test (BacktestPermutationTest): The permutation test
|
|
415
|
+
to add.
|
|
416
|
+
"""
|
|
417
|
+
self.backtest_permutation_tests.append(permutation_test)
|
|
@@ -42,6 +42,9 @@ class BacktestPermutationTest:
|
|
|
42
42
|
field(default_factory=dict)
|
|
43
43
|
ohlcv_original_datasets: Dict[str, pd.DataFrame] = \
|
|
44
44
|
field(default_factory=dict)
|
|
45
|
+
backtest_start_date: pd.Timestamp = None
|
|
46
|
+
backtest_end_date: pd.Timestamp = None
|
|
47
|
+
backtest_date_range_name: str = None
|
|
45
48
|
|
|
46
49
|
def compute_p_values(
|
|
47
50
|
self, metrics: List[str] = None, one_sided: bool = True
|
|
@@ -322,6 +322,20 @@ class DataProviderService:
|
|
|
322
322
|
self.configuration_service = configuration_service
|
|
323
323
|
self.market_credential_service = market_credential_service
|
|
324
324
|
|
|
325
|
+
def get(self, data_source: DataSource) -> Optional[DataProvider]:
|
|
326
|
+
"""
|
|
327
|
+
Get a registered data provider by its data source.
|
|
328
|
+
|
|
329
|
+
Args:
|
|
330
|
+
data_source (DataSource): The data source to get the
|
|
331
|
+
data provider for.
|
|
332
|
+
|
|
333
|
+
Returns:
|
|
334
|
+
Optional[DataProvider]: The registered data provider for
|
|
335
|
+
the data source, or None if not found.
|
|
336
|
+
"""
|
|
337
|
+
return self.data_provider_index.get(data_source)
|
|
338
|
+
|
|
325
339
|
def get_data(
|
|
326
340
|
self,
|
|
327
341
|
data_source: DataSource,
|
|
@@ -578,6 +592,28 @@ class DataProviderService:
|
|
|
578
592
|
f"No data provider found for the given parameters: {params}"
|
|
579
593
|
)
|
|
580
594
|
|
|
595
|
+
def register_data_provider(
|
|
596
|
+
self, data_source: DataSource, data_provider: DataProvider
|
|
597
|
+
) -> DataProvider:
|
|
598
|
+
"""
|
|
599
|
+
Function to directly register a data provider for a given data source.
|
|
600
|
+
|
|
601
|
+
This method will not check if the data provider supports the
|
|
602
|
+
data source. It will directly register the data provider in the index.
|
|
603
|
+
|
|
604
|
+
Args:
|
|
605
|
+
data_source (DataSource): The data source to register the
|
|
606
|
+
data provider for.
|
|
607
|
+
data_provider (DataProvider): The data provider to register.
|
|
608
|
+
|
|
609
|
+
Returns:
|
|
610
|
+
DataProvider: The registered data provider.
|
|
611
|
+
"""
|
|
612
|
+
data_provider = data_provider.copy(data_source)
|
|
613
|
+
self.data_provider_index.data_providers_lookup[data_source] = \
|
|
614
|
+
data_provider
|
|
615
|
+
return data_provider
|
|
616
|
+
|
|
581
617
|
def add_data_provider(
|
|
582
618
|
self, data_provider: DataProvider, priority: int = 3
|
|
583
619
|
):
|
|
@@ -742,6 +778,15 @@ class DataProviderService:
|
|
|
742
778
|
|
|
743
779
|
return data_files
|
|
744
780
|
|
|
781
|
+
def get_all_registered_data_providers(self) -> List[DataProvider]:
|
|
782
|
+
"""
|
|
783
|
+
Function to get all registered data providers.
|
|
784
|
+
|
|
785
|
+
Returns:
|
|
786
|
+
List[DataProvider]: A list of all registered data providers.
|
|
787
|
+
"""
|
|
788
|
+
return self.data_provider_index.get_all()
|
|
789
|
+
|
|
745
790
|
def reset(self):
|
|
746
791
|
"""
|
|
747
792
|
Function to reset all the data providers and the data provider
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|