investing-algorithm-framework 6.6.0__tar.gz → 6.6.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-6.6.0 → investing_algorithm_framework-6.6.1}/PKG-INFO +1 -1
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/app.py +3 -3
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/backtesting.py +0 -3
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/backtesting/backtest_service.py +3 -1
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +10 -3
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/portfolios/portfolio_service.py +10 -1
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/pyproject.toml +1 -1
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/LICENSE +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/README.md +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/algorithm/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/algorithm/algorithm.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/algorithm/algorithm_factory.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/app_hook.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/context.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/metrics/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/metrics/equity_curve.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/metrics/price_efficiency.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/metrics/profit_factor.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/metrics/sharp_ratio.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/strategy.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/task.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/create_app.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/error_handler.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/responses.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/cli.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/deploy_to_azure_function.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/initialize_app.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/.gitignore.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/app-web.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/app.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/app_azure_function.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/app_web.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/azure_function_function_app.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/azure_function_host.json.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/azure_function_local.settings.json.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/data_providers.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/env.example.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/env_azure_function.example.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/market_data_providers.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/readme.md.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/requirements.txt.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/requirements_azure_function.txt.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/run_backtest.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/cli/templates/strategy.py.template +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/create_app.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/dependency_container.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/config.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/constants.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/data_provider.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/data_structures.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/exceptions.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/backtesting/backtest_date_range.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/backtesting/backtest_position.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/backtesting/backtest_reports_evaluation.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/base_model.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/data_source.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/date_range.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/market_data_type.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/order/order.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/position/position.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/trade/trade_risk_type.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/trade/trade_stop_loss.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/trade/trade_take_profit.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/trading_data_types.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/order_executor.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/portfolio_provider.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/services/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/services/market_data_sources.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/services/market_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/services/state_handler.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/strategy.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/csv.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/dates.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/polars.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/random.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/download_data.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/data_providers/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/data_providers/ccxt.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/data_providers/csv.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/pandas.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/order/order_metadata.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/order_trade_association.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/portfolio/sql_portfolio.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/trades/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/trades/trade.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/trades/trade_stop_loss.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/models/trades/trade_take_profit.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/order_executors/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/order_executors/ccxt_order_executor.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/portfolio_providers/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/portfolio_providers/ccxt_portfolio_provider.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/order_metadata_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/trade_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/trade_stop_loss_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/repositories/trade_take_profit_repository.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/services/azure/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/services/azure/state_handler.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/services/market_service/ccxt_market_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/configuration_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/market_data_source_service/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/market_data_source_service/backtest_market_data_source_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/market_data_source_service/data_provider_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/market_data_source_service/market_data_source_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/order_service/order_backtest_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/order_service/order_executor_lookup.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/portfolios/portfolio_provider_lookup.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/positions/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/positions/position_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/positions/position_snapshot_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/repository_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
- {investing_algorithm_framework-6.6.0 → investing_algorithm_framework-6.6.1}/investing_algorithm_framework/services/trade_service/trade_service.py +0 -0
|
@@ -391,7 +391,8 @@ class App:
|
|
|
391
391
|
configuration_service.add_value(APP_MODE, AppMode.WEB.value)
|
|
392
392
|
self._initialize_web()
|
|
393
393
|
|
|
394
|
-
|
|
394
|
+
if not Environment.BACKTEST.equals(config[ENVIRONMENT]):
|
|
395
|
+
self._initialize_portfolios()
|
|
395
396
|
|
|
396
397
|
def run(self, payload: dict = None, number_of_iterations: int = None):
|
|
397
398
|
"""
|
|
@@ -710,7 +711,7 @@ class App:
|
|
|
710
711
|
save_strategy=False,
|
|
711
712
|
) -> BacktestReport:
|
|
712
713
|
"""
|
|
713
|
-
Run a backtest for an algorithm.
|
|
714
|
+
Run a backtest for an algorithm.
|
|
714
715
|
|
|
715
716
|
Args:
|
|
716
717
|
backtest_date_range: The date range to run the backtest for
|
|
@@ -886,7 +887,6 @@ class App:
|
|
|
886
887
|
)
|
|
887
888
|
|
|
888
889
|
if report is not None:
|
|
889
|
-
|
|
890
890
|
print(
|
|
891
891
|
f"{COLOR_YELLOW}Backtest already exists "
|
|
892
892
|
f"for algorithm {algorithm.name} date "
|
|
@@ -1150,7 +1150,6 @@ def get_backtest_report(
|
|
|
1150
1150
|
# Loop through all files in the directory
|
|
1151
1151
|
for root, _, files in os.walk(directory):
|
|
1152
1152
|
for file in files:
|
|
1153
|
-
print(file)
|
|
1154
1153
|
|
|
1155
1154
|
# Check if the file is a directory
|
|
1156
1155
|
if os.path.isdir(os.path.join(root, file)):
|
|
@@ -1185,8 +1184,6 @@ def get_backtest_report(
|
|
|
1185
1184
|
return report
|
|
1186
1185
|
|
|
1187
1186
|
elif file.endswith(".json"):
|
|
1188
|
-
print("found file")
|
|
1189
|
-
print(f"Found backtest report file: {file}")
|
|
1190
1187
|
# Read the file
|
|
1191
1188
|
with open(os.path.join(root, file), "r") as json_file:
|
|
1192
1189
|
# Parse the JSON file
|
|
@@ -123,7 +123,9 @@ class BacktestService:
|
|
|
123
123
|
|
|
124
124
|
# Check if the portfolio configuration has an initial balance
|
|
125
125
|
self._portfolio_service.create_portfolio_from_configuration(
|
|
126
|
-
portfolio_configuration,
|
|
126
|
+
portfolio_configuration,
|
|
127
|
+
initial_amount=initial_amount,
|
|
128
|
+
created_at=backtest_date_range.start_date,
|
|
127
129
|
)
|
|
128
130
|
|
|
129
131
|
strategy_profiles = []
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from datetime import datetime
|
|
1
2
|
from investing_algorithm_framework.domain import PortfolioConfiguration, \
|
|
2
3
|
OperationalException
|
|
3
4
|
from .portfolio_service import PortfolioService
|
|
@@ -10,8 +11,10 @@ class BacktestPortfolioService(PortfolioService):
|
|
|
10
11
|
not check if the initial balance is present on the exchange or broker.
|
|
11
12
|
"""
|
|
12
13
|
def create_portfolio_from_configuration(
|
|
13
|
-
self,
|
|
14
|
-
|
|
14
|
+
self,
|
|
15
|
+
portfolio_configuration: PortfolioConfiguration,
|
|
16
|
+
initial_amount=None,
|
|
17
|
+
created_at: datetime = None
|
|
15
18
|
):
|
|
16
19
|
"""
|
|
17
20
|
Wil create a portfolio from a portfolio configuration for backtesting.
|
|
@@ -20,6 +23,9 @@ class BacktestPortfolioService(PortfolioService):
|
|
|
20
23
|
portfolio_configuration (PortfolioConfiguration):
|
|
21
24
|
Portfolio configuration to create the portfolio from
|
|
22
25
|
initial_amount (Decimal): Initial balance for the portfolio
|
|
26
|
+
created_at (datetime): The date and time when the portfolio
|
|
27
|
+
is created. If not provided, the current date and time
|
|
28
|
+
will be used.
|
|
23
29
|
|
|
24
30
|
Returns:
|
|
25
31
|
Portfolio: The created portfolio
|
|
@@ -41,6 +47,7 @@ class BacktestPortfolioService(PortfolioService):
|
|
|
41
47
|
"market": portfolio_configuration.market,
|
|
42
48
|
"trading_symbol": portfolio_configuration.trading_symbol,
|
|
43
49
|
"unallocated": amount,
|
|
44
|
-
"initialized": True
|
|
50
|
+
"initialized": True,
|
|
51
|
+
"created_at": created_at
|
|
45
52
|
}
|
|
46
53
|
return self.create(data)
|
|
@@ -110,7 +110,10 @@ class PortfolioService(RepositoryService):
|
|
|
110
110
|
)
|
|
111
111
|
|
|
112
112
|
def create_portfolio_from_configuration(
|
|
113
|
-
self,
|
|
113
|
+
self,
|
|
114
|
+
portfolio_configuration,
|
|
115
|
+
initial_amount=None,
|
|
116
|
+
created_at: datetime = None
|
|
114
117
|
) -> Portfolio:
|
|
115
118
|
"""
|
|
116
119
|
Method to create a portfolio based on a portfolio configuration.
|
|
@@ -123,6 +126,9 @@ class PortfolioService(RepositoryService):
|
|
|
123
126
|
portfolio_configuration (PortfolioConfiguration)
|
|
124
127
|
Portfolio configuration to create the portfolio from
|
|
125
128
|
initial_amount (Decimal): Initial balance for the portfolio
|
|
129
|
+
created_at (datetime): The date and time when the portfolio
|
|
130
|
+
is created. If not provided, the current date and time
|
|
131
|
+
will be used.
|
|
126
132
|
|
|
127
133
|
Returns:
|
|
128
134
|
Portfolio: Portfolio created from the configuration
|
|
@@ -158,6 +164,9 @@ class PortfolioService(RepositoryService):
|
|
|
158
164
|
)
|
|
159
165
|
data = portfolio.to_dict()
|
|
160
166
|
|
|
167
|
+
if created_at is not None:
|
|
168
|
+
data["created_at"] = created_at
|
|
169
|
+
|
|
161
170
|
if initial_amount is not None:
|
|
162
171
|
data["unallocated"] = initial_amount
|
|
163
172
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|