investing-algorithm-framework 7.0.3__tar.gz → 7.1.0__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.
Files changed (256) hide show
  1. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/PKG-INFO +1 -1
  2. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/app.py +105 -7
  3. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/strategy.py +9 -1
  4. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/pyproject.toml +1 -1
  5. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/LICENSE +0 -0
  6. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/README.md +0 -0
  7. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/__init__.py +0 -0
  8. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/__init__.py +0 -0
  9. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/algorithm/__init__.py +0 -0
  10. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/algorithm/algorithm.py +0 -0
  11. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/algorithm/algorithm_factory.py +0 -0
  12. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/analysis/__init__.py +0 -0
  13. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/analysis/backtest_data_ranges.py +0 -0
  14. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/analysis/ranking.py +0 -0
  15. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/app_hook.py +0 -0
  16. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/context.py +0 -0
  17. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/eventloop.py +0 -0
  18. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/__init__.py +0 -0
  19. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/ascii.py +0 -0
  20. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/backtest_report.py +0 -0
  21. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/charts/__init__.py +0 -0
  22. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/charts/entry_exist_signals.py +0 -0
  23. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/charts/equity_curve_drawdown.py +0 -0
  24. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/charts/monthly_returns_heatmap.py +0 -0
  25. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/charts/ohlcv_data_completeness.py +0 -0
  26. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/charts/rolling_sharp_ratio.py +0 -0
  27. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/charts/yearly_returns_barchart.py +0 -0
  28. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/generate.py +0 -0
  29. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/tables/__init__.py +0 -0
  30. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/tables/key_metrics_table.py +0 -0
  31. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/tables/stop_loss_table.py +0 -0
  32. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/tables/time_metrics_table.py +0 -0
  33. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/tables/trade_metrics_table.py +0 -0
  34. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/tables/trades_table.py +0 -0
  35. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/tables/utils.py +0 -0
  36. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/reporting/templates/report_template.html.j2 +0 -0
  37. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
  38. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
  39. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
  40. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
  41. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
  42. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
  43. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/task.py +0 -0
  44. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/__init__.py +0 -0
  45. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
  46. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
  47. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
  48. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
  49. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/create_app.py +0 -0
  50. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/error_handler.py +0 -0
  51. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/responses.py +0 -0
  52. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
  53. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
  54. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
  55. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
  56. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
  57. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
  58. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/__init__.py +0 -0
  59. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/cli.py +0 -0
  60. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/deploy_to_aws_lambda.py +0 -0
  61. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/deploy_to_azure_function.py +0 -0
  62. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/initialize_app.py +0 -0
  63. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/.gitignore.template +0 -0
  64. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/app.py.template +0 -0
  65. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/app_aws_lambda_function.py.template +0 -0
  66. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/app_azure_function.py.template +0 -0
  67. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/app_web.py.template +0 -0
  68. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/aws_lambda_dockerfile.template +0 -0
  69. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/aws_lambda_dockerignore.template +0 -0
  70. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/aws_lambda_readme.md.template +0 -0
  71. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/aws_lambda_requirements.txt.template +0 -0
  72. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/azure_function_function_app.py.template +0 -0
  73. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/azure_function_host.json.template +0 -0
  74. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/azure_function_local.settings.json.template +0 -0
  75. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/azure_function_requirements.txt.template +0 -0
  76. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/data_providers.py.template +0 -0
  77. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/env.example.template +0 -0
  78. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/env_azure_function.example.template +0 -0
  79. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/market_data_providers.py.template +0 -0
  80. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/readme.md.template +0 -0
  81. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/requirements.txt.template +0 -0
  82. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/run_backtest.py.template +0 -0
  83. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/cli/templates/strategy.py.template +0 -0
  84. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/create_app.py +0 -0
  85. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/dependency_container.py +0 -0
  86. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/__init__.py +0 -0
  87. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/backtesting/__init__.py +0 -0
  88. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/backtesting/backtest.py +0 -0
  89. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/backtesting/backtest_date_range.py +0 -0
  90. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/backtesting/backtest_metrics.py +0 -0
  91. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/backtesting/backtest_position.py +0 -0
  92. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/backtesting/backtest_results.py +0 -0
  93. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/config.py +0 -0
  94. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/constants.py +0 -0
  95. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/data_provider.py +0 -0
  96. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/data_structures.py +0 -0
  97. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
  98. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/exceptions.py +0 -0
  99. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/__init__.py +0 -0
  100. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
  101. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/base_model.py +0 -0
  102. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/data/__init__.py +0 -0
  103. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/data/data_source.py +0 -0
  104. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/data/data_type.py +0 -0
  105. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/event.py +0 -0
  106. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
  107. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
  108. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
  109. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/order/order.py +0 -0
  110. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
  111. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
  112. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
  113. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
  114. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
  115. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
  116. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
  117. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
  118. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/position/position.py +0 -0
  119. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
  120. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/snapshot_interval.py +0 -0
  121. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
  122. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
  123. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
  124. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
  125. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
  126. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
  127. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
  128. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
  129. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/trade/trade_risk_type.py +0 -0
  130. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
  131. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/trade/trade_stop_loss.py +0 -0
  132. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/models/trade/trade_take_profit.py +0 -0
  133. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/order_executor.py +0 -0
  134. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/portfolio_provider.py +0 -0
  135. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/services/__init__.py +0 -0
  136. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
  137. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/services/observable.py +0 -0
  138. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/services/observer.py +0 -0
  139. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
  140. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
  141. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
  142. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/services/state_handler.py +0 -0
  143. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
  144. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/strategy.py +0 -0
  145. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
  146. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/csv.py +0 -0
  147. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/custom_tqdm.py +0 -0
  148. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/dates.py +0 -0
  149. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/jupyter_notebook_detection.py +0 -0
  150. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/polars.py +0 -0
  151. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/random.py +0 -0
  152. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
  153. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
  154. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
  155. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/download_data.py +0 -0
  156. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
  157. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/data_providers/__init__.py +0 -0
  158. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/data_providers/ccxt.py +0 -0
  159. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/data_providers/csv.py +0 -0
  160. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/data_providers/pandas.py +0 -0
  161. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
  162. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
  163. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
  164. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
  165. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
  166. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
  167. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
  168. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/order/order_metadata.py +0 -0
  169. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/order_trade_association.py +0 -0
  170. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
  171. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
  172. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/portfolio/sql_portfolio.py +0 -0
  173. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
  174. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
  175. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
  176. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/trades/__init__.py +0 -0
  177. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/trades/trade.py +0 -0
  178. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/trades/trade_stop_loss.py +0 -0
  179. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/models/trades/trade_take_profit.py +0 -0
  180. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/order_executors/__init__.py +0 -0
  181. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/order_executors/backtest_oder_executor.py +0 -0
  182. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/order_executors/ccxt_order_executor.py +0 -0
  183. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/portfolio_providers/__init__.py +0 -0
  184. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/portfolio_providers/ccxt_portfolio_provider.py +0 -0
  185. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
  186. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/order_metadata_repository.py +0 -0
  187. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
  188. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
  189. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
  190. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
  191. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
  192. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
  193. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/trade_repository.py +0 -0
  194. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/trade_stop_loss_repository.py +0 -0
  195. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/repositories/trade_take_profit_repository.py +0 -0
  196. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
  197. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/services/aws/__init__.py +0 -0
  198. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/services/aws/state_handler.py +0 -0
  199. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/services/azure/__init__.py +0 -0
  200. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/services/azure/state_handler.py +0 -0
  201. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
  202. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
  203. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
  204. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/unit_of_work/in_memory.py +0 -0
  205. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/infrastructure/unit_of_work/sqlalchemy.py +0 -0
  206. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/__init__.py +0 -0
  207. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
  208. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/backtesting/backtest_service.py +0 -0
  209. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/configuration_service.py +0 -0
  210. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/data_providers/__init__.py +0 -0
  211. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/data_providers/data_provider_service.py +0 -0
  212. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/market_credential_service.py +0 -0
  213. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/__init__.py +0 -0
  214. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/alpha.py +0 -0
  215. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/beta.py +0 -0
  216. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/cagr.py +0 -0
  217. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/calmar_ratio.py +0 -0
  218. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/drawdown.py +0 -0
  219. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/equity_curve.py +0 -0
  220. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/exposure.py +0 -0
  221. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/generate.py +0 -0
  222. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/mean_daily_return.py +0 -0
  223. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/price_efficiency.py +0 -0
  224. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/profit_factor.py +0 -0
  225. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/recovery.py +0 -0
  226. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/returns.py +0 -0
  227. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/risk_free_rate.py +0 -0
  228. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/sharpe_ratio.py +0 -0
  229. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/sortino_ratio.py +0 -0
  230. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/standard_deviation.py +0 -0
  231. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/treynor_ratio.py +0 -0
  232. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/ulcer.py +0 -0
  233. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/value_at_risk.py +0 -0
  234. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/volatility.py +0 -0
  235. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/metrics/win_rate.py +0 -0
  236. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
  237. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/order_service/order_backtest_service.py +0 -0
  238. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/order_service/order_executor_lookup.py +0 -0
  239. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
  240. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
  241. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
  242. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
  243. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/portfolios/portfolio_provider_lookup.py +0 -0
  244. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
  245. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
  246. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
  247. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/positions/__init__.py +0 -0
  248. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/positions/position_service.py +0 -0
  249. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/positions/position_snapshot_service.py +0 -0
  250. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/repository_service.py +0 -0
  251. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/trade_order_evaluator/__init__.py +0 -0
  252. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/trade_order_evaluator/backtest_trade_oder_evaluator.py +0 -0
  253. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/trade_order_evaluator/default_trade_order_evaluator.py +0 -0
  254. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/trade_order_evaluator/trade_order_evaluator.py +0 -0
  255. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
  256. {investing_algorithm_framework-7.0.3 → investing_algorithm_framework-7.1.0}/investing_algorithm_framework/services/trade_service/trade_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: investing-algorithm-framework
3
- Version: 7.0.3
3
+ Version: 7.1.0
4
4
  Summary: A framework for creating trading bots
5
5
  Author: MDUYN
6
6
  Requires-Python: >=3.10
@@ -381,6 +381,10 @@ class App:
381
381
  None
382
382
  """
383
383
  logger.info("Initializing data sources")
384
+
385
+ if data_sources is None or len(data_sources) == 0:
386
+ return
387
+
384
388
  data_provider_service = self.container.data_provider_service()
385
389
  data_provider_service.reset()
386
390
 
@@ -415,6 +419,10 @@ class App:
415
419
  None
416
420
  """
417
421
  logger.info("Initializing data sources for backtest")
422
+
423
+ if data_sources is None or len(data_sources) == 0:
424
+ return
425
+
418
426
  data_provider_service = self.container.data_provider_service()
419
427
  data_provider_service.reset()
420
428
 
@@ -900,18 +908,90 @@ class App:
900
908
 
901
909
  return backtest
902
910
 
911
+ def run_vector_backtests(
912
+ self,
913
+ backtest_date_range: BacktestDateRange,
914
+ initial_amount,
915
+ strategies: List[TradingStrategy],
916
+ snapshot_interval: SnapshotInterval = SnapshotInterval.DAILY,
917
+ risk_free_rate: Optional[float] = None,
918
+ skip_data_sources_initialization: bool = False
919
+ ):
920
+ """
921
+ Run vectorized backtests for a set of strategies. The provided
922
+ set of strategies need to have their 'buy_signal_vectorized' and
923
+ 'sell_signal_vectorized' methods implemented to support vectorized
924
+ backtesting.
925
+
926
+ Args:
927
+ backtest_date_range: The date range to run the backtest for
928
+ (instance of BacktestDateRange)
929
+ initial_amount: The initial amount to start the backtest with.
930
+ This will be the amount of trading currency that the backtest
931
+ portfolio will start with.
932
+ strategies (List[TradingStrategy]): List of strategy objects
933
+ that need to be backtested. Each strategy should implement
934
+ the 'buy_signal_vectorized' and 'sell_signal_vectorized'
935
+ methods to support vectorized backtesting.
936
+ snapshot_interval (SnapshotInterval): The snapshot
937
+ interval to use for the backtest. This is used to determine
938
+ how often the portfolio snapshot should be taken during the
939
+ backtest. The default is TRADE_CLOSE, which means that the
940
+ portfolio snapshot will be taken at the end of each trade.
941
+ risk_free_rate (Optional[float]): The risk-free rate to use for
942
+ the backtest. This is used to calculate the Sharpe ratio
943
+ and other performance metrics. If not provided, the default
944
+ risk-free rate will be tried to be fetched from the
945
+ US Treasury website.
946
+ skip_data_sources_initialization (bool): Whether to skip the
947
+ initialization of data sources. This is useful when the data
948
+ sources are already initialized, and you want to skip the
949
+ initialization step. This will speed up the backtesting
950
+ process, but make sure that the data sources are already
951
+ initialized before calling this method.
952
+
953
+ Returns:
954
+ List[Backtest]: List of Backtest instances for each strategy
955
+ that was backtested.
956
+ """
957
+ backtests = []
958
+ data_sources = []
959
+
960
+ for strategy in strategies:
961
+ data_sources.extend(strategy.data_sources)
962
+
963
+ if not skip_data_sources_initialization:
964
+ self.initialize_data_sources_backtest(
965
+ data_sources, backtest_date_range
966
+ )
967
+
968
+ for strategy in tqdm(strategies):
969
+ backtests.append(
970
+ self.run_vector_backtest(
971
+ backtest_date_range=backtest_date_range,
972
+ initial_amount=initial_amount,
973
+ strategy=strategy,
974
+ snapshot_interval=snapshot_interval,
975
+ risk_free_rate=risk_free_rate,
976
+ skip_data_sources_initialization=True
977
+ )
978
+ )
979
+
980
+ return backtests
981
+
903
982
  def run_vector_backtest(
904
983
  self,
905
984
  backtest_date_range: BacktestDateRange,
906
985
  initial_amount,
907
- strategy,
986
+ strategy: TradingStrategy,
908
987
  snapshot_interval: SnapshotInterval = SnapshotInterval.DAILY,
909
988
  metadata: Optional[Dict[str, str]] = None,
910
989
  risk_free_rate: Optional[float] = None,
990
+ skip_data_sources_initialization: bool = False
911
991
  ) -> Backtest:
912
992
  """
913
- Run a vectorized backtest for an algorithm. The provided algorithm
914
- or set of strategies need to have their 'buy_signal_vectorized' and
993
+ Run vectorized backtests for a strategy. The provided
994
+ strategy needs to have its 'buy_signal_vectorized' and
915
995
  'sell_signal_vectorized' methods implemented to support vectorized
916
996
  backtesting.
917
997
 
@@ -937,6 +1017,12 @@ class App:
937
1017
  backtest report. This can be used to store additional
938
1018
  information about the backtest, such as the author, version,
939
1019
  parameters or any other relevant information.
1020
+ skip_data_sources_initialization (bool): Whether to skip the
1021
+ initialization of data sources. This is useful when the data
1022
+ sources are already initialized, and you want to skip the
1023
+ initialization step. This will speed up the backtesting
1024
+ process, but make sure that the data sources are already
1025
+ initialized before calling this method.
940
1026
 
941
1027
  Returns:
942
1028
  Backtest: Instance of Backtest
@@ -947,9 +1033,11 @@ class App:
947
1033
  snapshot_interval=snapshot_interval,
948
1034
  initial_amount=initial_amount
949
1035
  )
950
- self.initialize_data_sources_backtest(
951
- strategy.data_sources, backtest_date_range
952
- )
1036
+
1037
+ if not skip_data_sources_initialization:
1038
+ self.initialize_data_sources_backtest(
1039
+ strategy.data_sources, backtest_date_range
1040
+ )
953
1041
 
954
1042
  if risk_free_rate is None:
955
1043
  logger.info("No risk free rate provided, retrieving it...")
@@ -971,7 +1059,17 @@ class App:
971
1059
  initial_amount=initial_amount,
972
1060
  risk_free_rate=risk_free_rate
973
1061
  )
974
- backtest.metadata = metadata if metadata is not None else {}
1062
+
1063
+ # Add the metadata to the backtest
1064
+ if metadata is None:
1065
+
1066
+ if strategy.metadata is not None:
1067
+ backtest.metadata = {}
1068
+ else:
1069
+ backtest.metadata = strategy.metadata
1070
+ else:
1071
+ backtest.metadata = metadata
1072
+
975
1073
  return backtest
976
1074
 
977
1075
  def run_backtests(
@@ -27,8 +27,12 @@ class TradingStrategy:
27
27
  sources to use for the strategy. The data sources will be used
28
28
  to indentify data providers that will be called to gather data
29
29
  and pass to the strategy before its run.
30
+ metadata (optional): Dict[str, Any] - a dictionary
31
+ containing metadata about the strategy. This can be used to
32
+ store additional information about the strategy, such as its
33
+ author, version, description, params etc.
30
34
  """
31
- time_unit: str = None
35
+ time_unit: TimeUnit = None
32
36
  interval: int = None
33
37
  worker_id: str = None
34
38
  strategy_id: str = None
@@ -36,6 +40,7 @@ class TradingStrategy:
36
40
  data_sources: List[DataSource] = None
37
41
  traces = None
38
42
  context: Context = None
43
+ metadata: Dict[str, Any] = None
39
44
 
40
45
  def __init__(
41
46
  self,
@@ -43,6 +48,7 @@ class TradingStrategy:
43
48
  time_unit=None,
44
49
  interval=None,
45
50
  data_sources=None,
51
+ metadata=None,
46
52
  worker_id=None,
47
53
  decorated=None
48
54
  ):
@@ -65,6 +71,8 @@ class TradingStrategy:
65
71
  if data_sources is not None:
66
72
  self.data_sources = data_sources
67
73
 
74
+ self.metadata = metadata if metadata is not None else {}
75
+
68
76
  if decorated is not None:
69
77
  self.decorated = decorated
70
78
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "investing-algorithm-framework"
3
- version = "v7.0.3"
3
+ version = "v7.1.0"
4
4
  description = "A framework for creating trading bots"
5
5
  authors = ["MDUYN"]
6
6
  readme = "README.md"