investing-algorithm-framework 6.3.0__tar.gz → 6.4.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 (204) hide show
  1. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/PKG-INFO +96 -127
  2. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/README.md +93 -126
  3. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/__init__.py +9 -2
  4. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/app.py +344 -80
  5. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/context.py +176 -23
  6. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/strategy.py +28 -3
  7. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/initialize_app.py +0 -1
  8. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/create_app.py +1 -0
  9. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/dependency_container.py +18 -10
  10. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/__init__.py +19 -7
  11. investing_algorithm_framework-6.4.0/investing_algorithm_framework/domain/data_provider.py +187 -0
  12. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/exceptions.py +17 -0
  13. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/__init__.py +2 -0
  14. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +141 -14
  15. investing_algorithm_framework-6.4.0/investing_algorithm_framework/domain/models/data_source.py +21 -0
  16. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/order/order.py +36 -5
  17. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/trade/trade.py +24 -16
  18. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/trade/trade_stop_loss.py +58 -3
  19. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/trade/trade_take_profit.py +59 -4
  20. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/trading_data_types.py +1 -0
  21. investing_algorithm_framework-6.4.0/investing_algorithm_framework/domain/order_executor.py +87 -0
  22. investing_algorithm_framework-6.4.0/investing_algorithm_framework/domain/portfolio_provider.py +89 -0
  23. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -6
  24. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/utils/__init__.py +8 -3
  25. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/utils/backtesting.py +243 -51
  26. investing_algorithm_framework-6.4.0/investing_algorithm_framework/domain/utils/random.py +41 -0
  27. investing_algorithm_framework-6.4.0/investing_algorithm_framework/download_data.py +74 -0
  28. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/__init__.py +8 -1
  29. investing_algorithm_framework-6.4.0/investing_algorithm_framework/infrastructure/data_providers/__init__.py +19 -0
  30. investing_algorithm_framework-6.4.0/investing_algorithm_framework/infrastructure/data_providers/ccxt.py +313 -0
  31. investing_algorithm_framework-6.4.0/investing_algorithm_framework/infrastructure/data_providers/csv.py +257 -0
  32. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/order/order.py +4 -4
  33. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/order/order_metadata.py +6 -0
  34. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/portfolio/sql_portfolio.py +7 -4
  35. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/trades/trade.py +20 -17
  36. investing_algorithm_framework-6.4.0/investing_algorithm_framework/infrastructure/order_executors/__init__.py +19 -0
  37. investing_algorithm_framework-6.4.0/investing_algorithm_framework/infrastructure/order_executors/ccxt_order_executor.py +156 -0
  38. investing_algorithm_framework-6.4.0/investing_algorithm_framework/infrastructure/portfolio_providers/__init__.py +19 -0
  39. investing_algorithm_framework-6.4.0/investing_algorithm_framework/infrastructure/portfolio_providers/ccxt_portfolio_provider.py +144 -0
  40. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +4 -0
  41. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +4 -0
  42. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/repository.py +42 -31
  43. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/services/market_service/ccxt_market_service.py +1 -1
  44. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/__init__.py +9 -5
  45. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/backtesting/backtest_service.py +2 -2
  46. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/market_credential_service.py +8 -1
  47. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/market_data_source_service/__init__.py +3 -1
  48. investing_algorithm_framework-6.4.0/investing_algorithm_framework/services/market_data_source_service/data_provider_service.py +238 -0
  49. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/market_data_source_service/market_data_source_service.py +0 -5
  50. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/order_service/__init__.py +3 -1
  51. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/order_service/order_backtest_service.py +9 -13
  52. investing_algorithm_framework-6.4.0/investing_algorithm_framework/services/order_service/order_executor_lookup.py +110 -0
  53. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/order_service/order_service.py +262 -210
  54. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/portfolios/__init__.py +3 -1
  55. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +8 -2
  56. investing_algorithm_framework-6.4.0/investing_algorithm_framework/services/portfolios/portfolio_provider_lookup.py +108 -0
  57. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/portfolios/portfolio_service.py +42 -18
  58. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +29 -119
  59. investing_algorithm_framework-6.4.0/investing_algorithm_framework/services/positions/__init__.py +7 -0
  60. investing_algorithm_framework-6.4.0/investing_algorithm_framework/services/positions/position_service.py +210 -0
  61. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/strategy_orchestrator_service.py +5 -3
  62. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/trade_service/trade_service.py +180 -59
  63. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/pyproject.toml +3 -2
  64. investing_algorithm_framework-6.3.0/investing_algorithm_framework/domain/singleton.py +0 -9
  65. investing_algorithm_framework-6.3.0/investing_algorithm_framework/domain/utils/random.py +0 -12
  66. investing_algorithm_framework-6.3.0/investing_algorithm_framework/services/position_service.py +0 -29
  67. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/LICENSE +0 -0
  68. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/__init__.py +0 -0
  69. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/algorithm.py +0 -0
  70. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
  71. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
  72. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
  73. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
  74. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
  75. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
  76. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/task.py +0 -0
  77. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/__init__.py +0 -0
  78. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
  79. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
  80. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
  81. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
  82. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/create_app.py +0 -0
  83. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/error_handler.py +0 -0
  84. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/responses.py +0 -0
  85. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
  86. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
  87. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
  88. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
  89. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
  90. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
  91. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/__init__.py +0 -0
  92. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/cli.py +0 -0
  93. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/deploy_to_azure_function.py +0 -0
  94. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/.gitignore.template +0 -0
  95. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/app-web.py.template +0 -0
  96. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/app.py.template +0 -0
  97. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/app_azure_function.py.template +0 -0
  98. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/app_web.py.template +0 -0
  99. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/azure_function_function_app.py.template +0 -0
  100. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/azure_function_host.json.template +0 -0
  101. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/azure_function_local.settings.json.template +0 -0
  102. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/data_providers.py.template +0 -0
  103. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/env.example.template +0 -0
  104. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/env_azure_function.example.template +0 -0
  105. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/market_data_providers.py.template +0 -0
  106. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/readme.md.template +0 -0
  107. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/requirements.txt.template +0 -0
  108. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/requirements_azure_function.txt.template +0 -0
  109. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/run_backtest.py.template +0 -0
  110. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/cli/templates/strategy.py.template +0 -0
  111. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/config.py +0 -0
  112. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/constants.py +0 -0
  113. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/data_structures.py +0 -0
  114. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
  115. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/metrics/__init__.py +0 -0
  116. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/metrics/price_efficiency.py +0 -0
  117. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
  118. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
  119. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/backtesting/backtest_date_range.py +0 -0
  120. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/backtesting/backtest_position.py +0 -0
  121. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/backtesting/backtest_reports_evaluation.py +0 -0
  122. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/base_model.py +0 -0
  123. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/date_range.py +0 -0
  124. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
  125. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
  126. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/market_data_type.py +0 -0
  127. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
  128. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
  129. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
  130. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
  131. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
  132. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
  133. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
  134. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
  135. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
  136. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/position/position.py +0 -0
  137. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
  138. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
  139. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
  140. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
  141. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
  142. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
  143. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
  144. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
  145. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/trade/trade_risk_type.py +0 -0
  146. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
  147. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
  148. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/services/__init__.py +0 -0
  149. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
  150. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/services/market_data_sources.py +0 -0
  151. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/services/market_service.py +0 -0
  152. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
  153. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
  154. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/services/state_handler.py +0 -0
  155. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
  156. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/strategy.py +0 -0
  157. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/utils/csv.py +0 -0
  158. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/utils/polars.py +0 -0
  159. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
  160. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
  161. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
  162. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
  163. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
  164. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
  165. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
  166. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
  167. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +0 -0
  168. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +0 -0
  169. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/market_data_sources/pandas.py +0 -0
  170. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/market_data_sources/us_treasury_yield.py +0 -0
  171. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
  172. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
  173. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/order_trade_association.py +0 -0
  174. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
  175. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
  176. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
  177. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
  178. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
  179. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/trades/__init__.py +0 -0
  180. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/trades/trade_stop_loss.py +0 -0
  181. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/models/trades/trade_take_profit.py +0 -0
  182. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
  183. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/order_metadata_repository.py +0 -0
  184. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
  185. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
  186. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
  187. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/trade_repository.py +0 -0
  188. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/trade_stop_loss_repository.py +0 -0
  189. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/repositories/trade_take_profit_repository.py +0 -0
  190. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
  191. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/services/azure/__init__.py +0 -0
  192. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/services/azure/state_handler.py +0 -0
  193. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
  194. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
  195. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
  196. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
  197. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
  198. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/configuration_service.py +0 -0
  199. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/market_data_source_service/backtest_market_data_source_service.py +0 -0
  200. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
  201. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
  202. {investing_algorithm_framework-6.3.0/investing_algorithm_framework/services → investing_algorithm_framework-6.4.0/investing_algorithm_framework/services/positions}/position_snapshot_service.py +0 -0
  203. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/repository_service.py +0 -0
  204. {investing_algorithm_framework-6.3.0 → investing_algorithm_framework-6.4.0}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: investing-algorithm-framework
3
- Version: 6.3.0
3
+ Version: 6.4.0
4
4
  Summary: A framework for creating trading bots
5
5
  Author: MDUYN
6
6
  Requires-Python: >=3.10
@@ -8,7 +8,7 @@ Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Programming Language :: Python :: 3.10
9
9
  Classifier: Programming Language :: Python :: 3.11
10
10
  Classifier: Programming Language :: Python :: 3.12
11
- Requires-Dist: Flask (>=2.3.2)
11
+ Requires-Dist: Flask (>=3.1.0)
12
12
  Requires-Dist: Flask-Cors (>=3.0.9,<5.0.0)
13
13
  Requires-Dist: Flask-Migrate (>=2.6.0)
14
14
  Requires-Dist: SQLAlchemy (>=2.0.18)
@@ -22,6 +22,7 @@ Requires-Dist: dependency-injector (>=4.40.0)
22
22
  Requires-Dist: jupyter (>=1.0.0)
23
23
  Requires-Dist: marshmallow (>=3.5.0)
24
24
  Requires-Dist: polars[numpy,pandas] (>=0.20.10)
25
+ Requires-Dist: pyarrow (>=19.0.1)
25
26
  Requires-Dist: python-dateutil (>=2.8.2)
26
27
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
27
28
  Requires-Dist: schedule (>=1.1.0)
@@ -30,31 +31,16 @@ Requires-Dist: tqdm (>=4.66.1)
30
31
  Requires-Dist: wrapt (>=1.16.0)
31
32
  Description-Content-Type: text/markdown
32
33
 
33
- <br/>
34
- <div align="center">
35
- <h1><a href="https://investing-algorithm-framework.com" target="_blank">Investing Algorithm Framework</a></h4>
36
- </div>
37
- <br/>
38
-
39
- <div align="center">
40
- <b>Rapidly build and deploy quantitative strategies and trading bots</b>
41
- </div>
42
- <br/>
43
-
44
- <p align="center">
45
- <a target="_blank" href="https://investing-algorithm-framework.com">View Docs</a>
46
- <a href="https://investing-algorithm-framework.com/Getting%20Started/installation)">Getting Started</a>
47
- </p>
34
+ <div align="center"> <h1><a href="https://investing-algorithm-framework.com" target="_blank">Investing Algorithm Framework</a></h1> <p><b>Rapidly build, backtest, and deploy quantitative strategies and trading bots</b></p> <a target="_blank" href="https://investing-algorithm-framework.com">📖 View Documentation</a> | <a href="https://investing-algorithm-framework.com/Getting%20Started/installation">🚀 Getting Started</a> </div>
48
35
 
49
36
  ---
50
37
 
51
- <a href=https://investing-algorithm-framework.com><img src="https://img.shields.io/badge/docs-website-brightgreen"></a>
52
- [![Build](https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/publish.yml/badge.svg)](https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/publish.yml)
53
- [![Tests](https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/test.yml)
54
- [![Downloads](https://pepy.tech/badge/investing-algorithm-framework)](https://pepy.tech/badge/investing-algorithm-framework)
55
- [![Current Version](https://img.shields.io/pypi/v/investing_algorithm_framework.svg)](https://img.shields.io/pypi/v/investing_algorithm_framework.svg)
56
- <a href="https://www.reddit.com/r/InvestingBots/"><img src="https://img.shields.io/reddit/subreddit-subscribers/investingbots?style=social"></a> <br/>
57
- [![GitHub stars](https://img.shields.io/github/stars/coding-kitties/investing-algorithm-framework.svg?style=social&label=Star&maxAge=1)](https://github.com/SeaQL/sea-orm/stargazers/) If you like what we do, consider starring, sharing and contributing!
38
+ <div align="center"> <a href="https://investing-algorithm-framework.com">
39
+ <a target="_blank" href="https://discord.gg/dQsRmGZP"><img src="https://img.shields.io/discord/1345358169777635410.svg?color=7289da&label=TradeBotLab%20Discord&logo=discord&style=flat"></a>
40
+ <img src="https://img.shields.io/badge/docs-website-brightgreen"></a> <a href="https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/publish.yml"><img src="https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/publish.yml/badge.svg"></a> <a href="https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/test.yml"><img src="https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/test.yml/badge.svg"></a> <a href="https://pepy.tech/project/investing-algorithm-framework"><img src="https://pepy.tech/badge/investing-algorithm-framework"></a> <a href="https://pypi.org/project/investing-algorithm-framework/"><img src="https://img.shields.io/pypi/v/investing-algorithm-framework.svg"></a> <a href="https://www.reddit.com/r/InvestingBots/"><img src="https://img.shields.io/reddit/subreddit-subscribers/investingbots?style=social"></a> <a href="https://github.com/coding-kitties/investing-algorithm-framework/stargazers"><img src="https://img.shields.io/github/stars/coding-kitties/investing-algorithm-framework.svg?style=social&label=Star"></a>
41
+ </div>
42
+
43
+ > If you like what we do, consider starring, sharing and contributing!
58
44
 
59
45
  ## Sponsors
60
46
 
@@ -66,74 +52,62 @@ Description-Content-Type: text/markdown
66
52
  </picture>
67
53
  </a>
68
54
 
69
- ## Features and planned features:
70
-
71
- - [x] **Based on Python 3.10+**: Windows, macOS and Linux.
72
- - [x] **Documentation**: [Documentation](https://investing-algorithm-framework.com)
73
- - [x] **Persistence of portfolios, orders, positions and trades**: Persistence is achieved through sqlite.
74
- - [x] **Limit orders**: Create limit orders for buying and selling.
75
- - [x] **Trade models**: Models and functionality for trades, trades stop losses (fixed and trailing) and take profits (fixed and trailing).
76
- - [x] **Market data sources**: Market data sources for OHLCV data and ticker data, and extendible with custom data and events.
77
- - [x] **Polars and Pandas dataframes support** Out of the box dataframes support for fast data processing ([pola.rs](https://pola.rs/), [pandas](https://pandas.pydata.org/)).
78
- - [x] **Azure Functions support**: Stateless running for cloud function deployments in Azure.
79
- - [x] **Live trading**: Live trading.
80
- - [x] **Backtesting and performance analysis reports** [example](./examples/backtest_example)
81
- - [x] **Backtesting multiple algorithms with different backtest date ranges** [example](./examples/backtests_example)
82
- - [x] **Backtesting and results evaluation**: Compare multiple backtests and run experiments. Save and load backtests. Save strategies as part of the backtest. [docs](https://investing-algorithm-framework.com/Getting%20Started/backtesting)
83
- - [x] **Order execution**: Currently support for a wide range of crypto exchanges through [ccxt](https://github.com/ccxt/ccxt) (Support for traditional asset brokers is planned).
84
- - [x] **Web API**: Rest API for interacting with your deployed trading bot
85
- - [x] **PyIndicators**: Works natively with [PyIndicators](https://github.com/coding-kitties/PyIndicators) for technical analysis on your Pandas and Polars dataframes.
86
- - [ ] **Builtin WebUI (Planned)**: Builtin web UI to manage your bot and evaluate your backtests.
87
- - [ ] **Manageable via Telegram (Planned)**: Manage the bot with Telegram.
88
- - [ ] **Performance status report via Web UI and telegram(Planned)**: Provide a performance status of your current trades.
89
- - [ ] **CI/CD integration (Planned)**: Tools for continuous integration and deployment (version tracking, comparison of backtests, automatic deployments).
90
- - [ ] **Tracing and replaying of strategies in backtests (Planned)**: Tracing and replaying of strategies in backtests for specific dates and date ranges so you can evaluate your strategy step by step.
91
- - [ ] **AWS Lambda support (Planned)**: Stateless running for cloud function deployments in AWS.
92
- - [ ] **Azure App services support (Planned)**: deployments in Azure app services with Web UI.
93
-
94
- ## Quickstart
95
-
96
- 1. First install the framework using `pip`. The Investing Algorithm Framework is hosted on [PyPi](https://pypi.org/project/Blankly/).
55
+
56
+ ## 🌟 Features
57
+
58
+ - [x] Python 3.10+: Cross-platform support for Windows, macOS, and Linux.
59
+ - [x] Backtesting: Simulate strategies with detailed performance reports.
60
+ - [x] Live Trading: Execute trades in real-time with support for multiple exchanges via ccxt.
61
+ - [x] Portfolio Management: Manage portfolios, trades, and positions with persistence via SQLite.
62
+ - [x] Market Data Sources: Fetch OHLCV, ticker, and custom data with support for Polars and Pandas.
63
+ - [x] Azure Functions Support: Deploy stateless trading bots to Azure.
64
+ - [x] Web API: Interact with your bot via REST API.
65
+ - [x] PyIndicators Integration: Perform technical analysis directly on your dataframes.
66
+ - [x] Extensibility: Add custom strategies, data providers, order executors so you can connect your trading bot to your favorite exchange or broker.
67
+
68
+ ## 🚀 Quickstart
69
+
70
+ Installation
71
+ Install the framework via [PyPI](https://pypi.org/project/investing-algorithm-framework/):
72
+
73
+ 1. First install the framework using `pip`. The Investing Algorithm Framework is hosted on [PyPi].
97
74
 
98
75
  ```bash
99
- $ pip install investing-algorithm-framework
76
+ pip install investing-algorithm-framework
100
77
  ```
101
78
 
102
- 2. Next, just run:
79
+ Run the following command to set up your project:
103
80
 
104
81
  ```bash
105
- $ investing-algorithm-framewor init
82
+ investing-algorithm-framewor init
106
83
  ```
107
84
 
108
- or if you want the web version:
85
+ For a web-enabled version:
109
86
 
110
87
  ```bash
111
- $ investing-algorithm-framework init --web
88
+ investing-algorithm-framework init --web
112
89
  ```
113
- > You can always change the app to the web version by changing the `app.py` file.
114
-
115
- The command will create the file `app.py` and an example script called `strategy.py`.
116
90
 
117
- From there, you start building your trading bot in the `strategy.py`.
91
+ This will create:
118
92
 
119
- More information can be found on our [docs](https://docs.blankly.finance)
93
+ * app.py: The entry point for your bot.
94
+ * strategy.py: A sample strategy file to get started.
120
95
 
121
- > Make sure you leave the `app.py` file as is, as it is the entry point for the framework.
122
- > You can change the `bot.py` file to your liking and add other files to the working directory.
123
- > The framework will automatically pick up the files in the working directory.
124
- ```
96
+ > Note: Keep the app.py file as is. You can modify strategy.py and add additional files to build your bot.
97
+ > You can always change the app to the web version by changing the `app.py` file.
125
98
 
126
- ## Example implementation
99
+ ---
127
100
 
128
- The following algorithm connects to binance and buys BTC every 2 hours.
101
+ ## 📈 Example: A Simple Trading Bot
102
+ The following example connects to Binance and buys BTC every 2 hours.
129
103
 
130
104
  ```python
131
105
  import logging.config
132
106
  from dotenv import load_dotenv
133
107
 
134
- from investing_algorithm_framework import create_app, PortfolioConfiguration, \
135
- TimeUnit, CCXTOHLCVMarketDataSource, Context, CCXTTickerMarketDataSource, \
136
- MarketCredential, DEFAULT_LOGGING_CONFIG, Algorithm, Context
108
+ from investing_algorithm_framework import create_app, TimeUnit, \
109
+ CCXTOHLCVMarketDataSource, CCXTTickerMarketDataSource, \
110
+ DEFAULT_LOGGING_CONFIG, Algorithm, Context
137
111
 
138
112
  load_dotenv()
139
113
  logging.config.dictConfig(DEFAULT_LOGGING_CONFIG)
@@ -152,17 +126,10 @@ bitvavo_btc_eur_ticker = CCXTTickerMarketDataSource(
152
126
  market="BITVAVO",
153
127
  symbol="BTC/EUR",
154
128
  )
155
- app = create_app()
156
-
157
- # Bitvavo market credentials are read from .env file, or you can
158
- # set them manually as params
159
- app.add_market_credential(MarketCredential(market="bitvavo"))
160
- app.add_portfolio_configuration(
161
- PortfolioConfiguration(
162
- market="bitvavo", trading_symbol="EUR", initial_balance=40
163
- )
164
- )
165
129
 
130
+ app = create_app()
131
+ # Registered bitvavo market, credentials are read from .env file by default
132
+ app.add_market(market="BITVAVO", trading_symbol="EUR", initial_balance=100)
166
133
  algorithm = Algorithm(name="test_algorithm")
167
134
 
168
135
  # Define a strategy for the algorithm that will run every 10 seconds
@@ -189,7 +156,7 @@ if __name__ == "__main__":
189
156
 
190
157
  > You can find more examples [here](./examples) folder.
191
158
 
192
- ## Backtesting and experiments
159
+ ## 🔍 Backtesting
193
160
 
194
161
  The framework also supports backtesting and performing backtest experiments. After a backtest, you can print a report that shows the performance of your trading bot.
195
162
 
@@ -302,45 +269,38 @@ Take profits overview
302
269
  ╰────────────────────┴───────────────┴──────────┴──────────┴─────────────────────────────────────┴──────────────┴────────────────┴─────────────────────────────────┴──────────────┴─────────────┴───────────────╯
303
270
  ```
304
271
 
305
- ### Backtest experiments
272
+ ## 🌐 Deployment to Azure
306
273
 
307
- The framework also supports backtest experiments. Backtest experiments allows you to
308
- compare multiple algorithms and evaluate their performance. Ideally,
309
- you would do this by parameterizing your strategy and creating a factory function that
310
- creates the algorithm with the different parameters. You can find an example of this
311
- in the [backtest experiments example](./examples/backtest_experiment).
274
+ Prerequisites
312
275
 
313
- ## Broker/Exchange configuration
276
+ Ensure Azure Functions Core Tools are installed:
314
277
 
315
- The framework has by default support for [ccxt](https://github.com/ccxt/ccxt).
316
- This should allow you to connect to a lot of brokers/exchanges.
278
+ ```bash
279
+ npm install -g azure-functions-core-tools@4 --unsafe-perm true
280
+ ```
281
+ Deploying to Azure
282
+ Use the provided deployment script:
317
283
 
318
- ```python
319
- from investing_algorithm_framework import PortfolioConfiguration, \
320
- MarketCredential, create_app
321
- app = create_app()
322
- app.add_market_credential(
323
- MarketCredential(
324
- market="<your market>",
325
- api_key="<your api key>",
326
- secret_key="<your secret key>",
327
- )
328
- )
329
- app.add_portfolio_configuration(
330
- PortfolioConfiguration(
331
- market="<your market>",
332
- initial_balance=400,
333
- trading_symbol="EUR"
334
- )
335
- )
284
+ This script:
285
+
286
+ ```
287
+ investing-algorithm-framework deploy
336
288
  ```
337
289
 
338
- ## Performance
290
+ This script:
291
+
292
+ * Creates Azure resources (e.g., storage accounts, function apps).
293
+ * Sets environment variables for the Azure Function.
294
+ * Deploys your bot to Azure.
339
295
 
340
- We are continuously working on improving the performance of the framework. If
341
- you have any suggestions, please let us know.
296
+ ## 📚 Documentation
297
+ Comprehensive documentation is available at [investing-algorithm-framework.com](https://investing-algorithm-framework.com).
342
298
 
343
- ## Installation for local development
299
+ ## 🛠️ Development
300
+
301
+ Local Development
302
+
303
+ Clone the repository and install dependencies using Poetry:
344
304
 
345
305
  The framework is built with poetry. To install the framework for local development, you can run the following commands:
346
306
 
@@ -361,11 +321,11 @@ To run the tests, you can run the following command:
361
321
  python -m unittest discover -s tests
362
322
  ```
363
323
 
364
- ## Disclaimer
324
+ ## ⚠️ Disclaimer
325
+
365
326
 
366
327
  If you use this framework for your investments, do not risk money
367
- which you are afraid to lose, until you have clear understanding how
368
- the framework works. We can't stress this enough:
328
+ which you are afraid to lose, until you have clear understanding how the framework works. We can't stress this enough:
369
329
 
370
330
  BEFORE YOU START USING MONEY WITH THE FRAMEWORK, MAKE SURE THAT YOU TESTED
371
331
  YOUR COMPONENTS THOROUGHLY. USE THE SOFTWARE AT YOUR OWN RISK.
@@ -374,6 +334,8 @@ THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR INVESTMENT RESU
374
334
  Also, make sure that you read the source code of any plugin you use or
375
335
  implementation of an algorithm made with this framework.
376
336
 
337
+ We welcome contributions! Check out the project board and issues to get started.
338
+
377
339
  ## Documentation
378
340
 
379
341
  All the documentation can be found online
@@ -386,17 +348,7 @@ contributing page at the website.
386
348
  If you'd like to chat with investing-algorithm-framework users
387
349
  and developers, [join us on Slack](https://inv-algo-framework.slack.com) or [join us on reddit](https://www.reddit.com/r/InvestingBots/)
388
350
 
389
- ## Acknowledgements
390
-
391
- We want to thank all contributors to this project. A full list of all the people that contributed to the project can be
392
- found [here](https://github.com/investing-algorithms/investing-algorithm-framework/blob/master/AUTHORS.md)
393
-
394
- ### [Bugs / Issues](https://github.com/investing-algorithms/investing-algorithm-framework/issues?q=is%3Aissue)
395
-
396
- If you discover a bug in the framework, please [search our issue tracker](https://github.com/investing-algorithms/investing-algorithm-framework/issues?q=is%3Aissue)
397
- first. If it hasn't been reported, please [create a new issue](https://github.com/investing-algorithms/investing-algorithm-framework/issues/new).
398
-
399
- ### Contributing
351
+ ## 🤝 Contributing
400
352
 
401
353
  The investing algorithm framework is a community driven project.
402
354
  We welcome you to participate, contribute and together help build the future trading bots developed in python.
@@ -409,3 +361,20 @@ You can pick up a task by assigning yourself to it.
409
361
  This will ensure that interested parties can give valuable feedback on the feature, and let others know that you are working on it.
410
362
 
411
363
  **Important:** Always create your feature or hotfix against the `develop` branch, not `main`.
364
+
365
+ ## 📬 Support
366
+
367
+ * [Reddit Community](https://www.reddit.com/r/InvestingBots/)
368
+ * [Discord Community](https://discord.gg/dQsRmGZP")
369
+
370
+
371
+ ## 🏆 Acknowledgements
372
+
373
+ We want to thank all contributors to this project. A full list of all the people that contributed to the project can be
374
+ found [here](https://github.com/investing-algorithms/investing-algorithm-framework/blob/master/AUTHORS.md)
375
+
376
+ ### [Bugs / Issues](https://github.com/investing-algorithms/investing-algorithm-framework/issues?q=is%3Aissue)
377
+
378
+ If you discover a bug in the framework, please [search our issue tracker](https://github.com/investing-algorithms/investing-algorithm-framework/issues?q=is%3Aissue)
379
+ first. If it hasn't been reported, please [create a new issue](https://github.com/investing-algorithms/investing-algorithm-framework/issues/new).
380
+