investing-algorithm-framework 6.1.0__tar.gz → 6.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/PKG-INFO +1 -1
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/utils/backtesting.py +27 -15
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/pyproject.toml +1 -1
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/LICENSE +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/README.md +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/algorithm.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/app.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/context.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/strategy.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/task.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/create_app.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/error_handler.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/responses.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/cli/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/cli/create_azure_function_app_skeleton.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/cli/deploy_to_azure_function.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/cli/templates/azure_function_framework_app.py.template +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/cli/templates/azure_function_function_app.py.template +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/cli/templates/azure_function_host.json.template +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/cli/templates/azure_function_local.settings.json.template +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/cli/templates/azure_function_requirements.txt.template +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/create_app.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/dependency_container.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/config.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/constants.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/data_structures.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/exceptions.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/metrics/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/metrics/price_efficiency.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/backtesting/backtest_date_range.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/backtesting/backtest_position.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/backtesting/backtest_reports_evaluation.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/base_model.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/date_range.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/market_data_type.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/order/order.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/position/position.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/trade/trade_risk_type.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/trade/trade_stop_loss.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/trade/trade_take_profit.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/trading_data_types.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/services/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/services/market_data_sources.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/services/market_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/singleton.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/strategy.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/utils/csv.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/utils/polars.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/utils/random.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/indicators/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/indicators/advanced.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/indicators/momentum.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/indicators/trend.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/indicators/utils.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/pandas.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/us_treasury_yield.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/order/order_metadata.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/order_trade_association.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/portfolio/sql_portfolio.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/trades/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/trades/trade.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/trades/trade_stop_loss.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/models/trades/trade_take_profit.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/order_metadata_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/trade_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/trade_stop_loss_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/repositories/trade_take_profit_repository.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/services/azure/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/services/azure/state_handler.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/services/market_service/ccxt_market_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/backtesting/backtest_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/configuration_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/market_data_source_service/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/market_data_source_service/backtest_market_data_source_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/market_data_source_service/market_data_source_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/order_service/order_backtest_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/position_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/position_snapshot_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/repository_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
- {investing_algorithm_framework-6.1.0 → investing_algorithm_framework-6.1.1}/investing_algorithm_framework/services/trade_service/trade_service.py +0 -0
|
@@ -51,17 +51,19 @@ def is_positive(number) -> bool:
|
|
|
51
51
|
return number > 0
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
def pretty_print_profit_evaluation(
|
|
54
|
+
def pretty_print_profit_evaluation(
|
|
55
|
+
reports, price_precision=2, percentage_precision=4
|
|
56
|
+
):
|
|
55
57
|
profit_table = {}
|
|
56
58
|
profit_table["Algorithm name"] = [
|
|
57
59
|
report.name for report in reports
|
|
58
60
|
]
|
|
59
61
|
profit_table["Profit"] = [
|
|
60
|
-
f"{float(report.total_net_gain):.{
|
|
62
|
+
f"{float(report.total_net_gain):.{price_precision}f} {report.trading_symbol}"
|
|
61
63
|
for report in reports
|
|
62
64
|
]
|
|
63
65
|
profit_table["Profit percentage"] = [
|
|
64
|
-
f"{float(report.total_net_gain_percentage):.{
|
|
66
|
+
f"{float(report.total_net_gain_percentage):.{percentage_precision}f}%" for report in reports
|
|
65
67
|
]
|
|
66
68
|
profit_table["Percentage positive trades"] = [
|
|
67
69
|
f"{float(report.percentage_positive_trades):.{0}f}%"
|
|
@@ -72,21 +74,25 @@ def pretty_print_profit_evaluation(reports, precision=4):
|
|
|
72
74
|
for report in reports
|
|
73
75
|
]
|
|
74
76
|
profit_table["Total value"] = [
|
|
75
|
-
f"{float(report.total_value):.{
|
|
77
|
+
f"{float(report.total_value):.{price_precision}f}" for report in reports
|
|
76
78
|
]
|
|
77
79
|
print(tabulate(profit_table, headers="keys", tablefmt="rounded_grid"))
|
|
78
80
|
|
|
79
81
|
|
|
80
|
-
def pretty_print_growth_evaluation(
|
|
82
|
+
def pretty_print_growth_evaluation(
|
|
83
|
+
reports,
|
|
84
|
+
price_precision=2,
|
|
85
|
+
percentage_precision=4
|
|
86
|
+
):
|
|
81
87
|
growth_table = {}
|
|
82
88
|
growth_table["Algorithm name"] = [
|
|
83
89
|
report.name for report in reports
|
|
84
90
|
]
|
|
85
91
|
growth_table["Growth"] = [
|
|
86
|
-
f"{float(report.growth):.{
|
|
92
|
+
f"{float(report.growth):.{price_precision}f} {report.trading_symbol}" for report in reports
|
|
87
93
|
]
|
|
88
94
|
growth_table["Growth percentage"] = [
|
|
89
|
-
f"{float(report.growth_rate):.{
|
|
95
|
+
f"{float(report.growth_rate):.{percentage_precision}f}%" for report in reports
|
|
90
96
|
]
|
|
91
97
|
growth_table["Percentage positive trades"] = [
|
|
92
98
|
f"{float(report.percentage_positive_trades):.{0}f}%"
|
|
@@ -97,7 +103,7 @@ def pretty_print_growth_evaluation(reports, precision=4):
|
|
|
97
103
|
for report in reports
|
|
98
104
|
]
|
|
99
105
|
growth_table["Total value"] = [
|
|
100
|
-
f"{float(report.total_value):.{
|
|
106
|
+
f"{float(report.total_value):.{price_precision}f}" for report in reports
|
|
101
107
|
]
|
|
102
108
|
print(
|
|
103
109
|
tabulate(growth_table, headers="keys", tablefmt="rounded_grid")
|
|
@@ -683,8 +689,8 @@ def pretty_print_backtest_reports_evaluation(
|
|
|
683
689
|
:%%%#+- .=*#%%% {COLOR_GREEN}Backtest reports evaluation{COLOR_RESET}
|
|
684
690
|
*%%%%%%%+------=*%%%%%%%- {COLOR_GREEN}---------------------------{COLOR_RESET}
|
|
685
691
|
*%%%%%%%%%%%%%%%%%%%%%%%- {COLOR_YELLOW}Number of reports:{COLOR_RESET} {COLOR_GREEN}{number_of_backtest_reports} backtest reports{COLOR_RESET}
|
|
686
|
-
.%%%%%%%%%%%%%%%%%%%%%%# {COLOR_YELLOW}Largest overall profit:{COLOR_RESET}{COLOR_GREEN}{COLOR_RESET}{COLOR_GREEN} (Algorithm {most_profitable.name}) {float(most_profitable.total_net_gain):.{
|
|
687
|
-
#%%%####%%%%%%%%**#%%%+ {COLOR_YELLOW}Largest overall growth:{COLOR_RESET}{COLOR_GREEN} (Algorithm {most_profitable.name}) {float(most_growth.growth):.{
|
|
692
|
+
.%%%%%%%%%%%%%%%%%%%%%%# {COLOR_YELLOW}Largest overall profit:{COLOR_RESET}{COLOR_GREEN}{COLOR_RESET}{COLOR_GREEN} (Algorithm {most_profitable.name}) {float(most_profitable.total_net_gain):.{price_precision}f} {most_profitable.trading_symbol} {float(most_profitable.total_net_gain_percentage):.{percentage_precision}f}% ({most_profitable.backtest_date_range.name} {most_profitable.backtest_date_range.start_date} - {most_profitable.backtest_date_range.end_date}){COLOR_RESET}
|
|
693
|
+
#%%%####%%%%%%%%**#%%%+ {COLOR_YELLOW}Largest overall growth:{COLOR_RESET}{COLOR_GREEN} (Algorithm {most_profitable.name}) {float(most_growth.growth):.{price_precision}f} {most_growth.trading_symbol} {float(most_growth.growth_rate):.{percentage_precision}f}% ({most_growth.backtest_date_range.name} {most_growth.backtest_date_range.start_date} - {most_growth.backtest_date_range.end_date}){COLOR_RESET}
|
|
688
694
|
.:-+*%%%%- {COLOR_PURPLE}-+..#{COLOR_RESET}%%%+.{COLOR_PURPLE}+- +{COLOR_RESET}%%%#*=-:
|
|
689
695
|
.:-=*%%%%. {COLOR_PURPLE}+={COLOR_RESET} .%%# {COLOR_PURPLE}-+.-{COLOR_RESET}%%%%=-:..
|
|
690
696
|
.:=+#%%%%%*###%%%%#*+#%%%%%%*+-:
|
|
@@ -711,14 +717,18 @@ def pretty_print_backtest_reports_evaluation(
|
|
|
711
717
|
pretty_print_date_ranges(backtest_reports_evaluation.get_date_ranges())
|
|
712
718
|
print("")
|
|
713
719
|
|
|
714
|
-
pretty_print_price_efficiency(reports, precision=
|
|
720
|
+
pretty_print_price_efficiency(reports, precision=price_precision)
|
|
715
721
|
print(f"{COLOR_YELLOW}All profits ordered{COLOR_RESET}")
|
|
716
722
|
pretty_print_profit_evaluation(
|
|
717
|
-
backtest_reports_evaluation.get_profit_order(backtest_date_range),
|
|
723
|
+
backtest_reports_evaluation.get_profit_order(backtest_date_range),
|
|
724
|
+
price_precision=price_precision,
|
|
725
|
+
percentage_precision=percentage_precision
|
|
718
726
|
)
|
|
719
727
|
print(f"{COLOR_YELLOW}All growths ordered{COLOR_RESET}")
|
|
720
728
|
pretty_print_growth_evaluation(
|
|
721
|
-
backtest_reports_evaluation.get_growth_order(backtest_date_range),
|
|
729
|
+
backtest_reports_evaluation.get_growth_order(backtest_date_range),
|
|
730
|
+
percentage_precision=percentage_precision,
|
|
731
|
+
price_precision=price_precision
|
|
722
732
|
)
|
|
723
733
|
|
|
724
734
|
|
|
@@ -755,7 +765,10 @@ def pretty_print_backtest(
|
|
|
755
765
|
show_triggered_stop_losses_only: bool - show only the triggered stop losses
|
|
756
766
|
show_take_profits: bool - show the take profits
|
|
757
767
|
show_triggered_take_profits_only: bool - show only the triggered take profits
|
|
758
|
-
|
|
768
|
+
amount_precesion: int - the amount precision
|
|
769
|
+
price_precision: int - the price precision
|
|
770
|
+
time_precision: int - the time precision
|
|
771
|
+
percentage_precision: int - the percentage precision
|
|
759
772
|
|
|
760
773
|
Returns:
|
|
761
774
|
None
|
|
@@ -785,7 +798,6 @@ def pretty_print_backtest(
|
|
|
785
798
|
"""
|
|
786
799
|
|
|
787
800
|
print(ascii_art)
|
|
788
|
-
# pretty_print_price_efficiency([backtest_report], precision=precision)
|
|
789
801
|
|
|
790
802
|
if show_positions:
|
|
791
803
|
print(f"{COLOR_YELLOW}Positions overview{COLOR_RESET}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|