investing-algorithm-framework 3.7.3__tar.gz → 3.8.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/PKG-INFO +26 -18
  2. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/README.md +21 -15
  3. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/__init__.py +22 -10
  4. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/algorithm.py +285 -17
  5. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/app.py +52 -16
  6. investing_algorithm_framework-3.8.1/investing_algorithm_framework/app/strategy.py +559 -0
  7. investing_algorithm_framework-3.8.1/investing_algorithm_framework/deployment/__init__.py +3 -0
  8. investing_algorithm_framework-3.8.1/investing_algorithm_framework/deployment/azure/__init__.py +3 -0
  9. investing_algorithm_framework-3.8.1/investing_algorithm_framework/deployment/azure/azure_functions.py +102 -0
  10. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/__init__.py +5 -7
  11. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/__init__.py +3 -1
  12. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/backtest_date_range.py +6 -2
  13. investing_algorithm_framework-3.8.1/investing_algorithm_framework/domain/models/date_range.py +64 -0
  14. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/market_data_sources.py +178 -19
  15. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/__init__.py +2 -0
  16. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/backtesting.py +1 -1
  17. investing_algorithm_framework-3.8.1/investing_algorithm_framework/domain/utils/polars.py +46 -0
  18. investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/__init__.py +37 -0
  19. investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/advanced.py +404 -0
  20. investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/momentum.py +41 -0
  21. investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/trend.py +397 -0
  22. investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/utils.py +467 -0
  23. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +223 -37
  24. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +6 -6
  25. investing_algorithm_framework-3.8.1/investing_algorithm_framework/infrastructure/models/market_data_sources/pandas.py +182 -0
  26. investing_algorithm_framework-3.8.1/investing_algorithm_framework/services/backtesting/backtest_report_writer_service.py +91 -0
  27. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/backtesting/backtest_service.py +152 -9
  28. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/market_data_source_service/market_data_source_service.py +19 -4
  29. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/order_service/order_backtest_service.py +21 -5
  30. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/pyproject.toml +9 -2
  31. investing_algorithm_framework-3.7.3/investing_algorithm_framework/app/strategy.py +0 -213
  32. investing_algorithm_framework-3.7.3/investing_algorithm_framework/domain/graphs.py +0 -382
  33. investing_algorithm_framework-3.7.3/investing_algorithm_framework/services/backtesting/backtest_report_writer_service.py +0 -53
  34. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/LICENSE +0 -0
  35. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/__init__.py +0 -0
  36. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
  37. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
  38. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
  39. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
  40. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
  41. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
  42. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/task.py +0 -0
  43. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/__init__.py +0 -0
  44. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
  45. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
  46. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
  47. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
  48. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/create_app.py +0 -0
  49. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/error_handler.py +0 -0
  50. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/responses.py +0 -0
  51. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
  52. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
  53. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
  54. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
  55. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
  56. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
  57. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/create_app.py +0 -0
  58. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/dependency_container.py +0 -0
  59. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/config.py +0 -0
  60. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/constants.py +0 -0
  61. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/data_structures.py +0 -0
  62. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
  63. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/exceptions.py +0 -0
  64. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/metrics/__init__.py +0 -0
  65. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/metrics/price_efficiency.py +0 -0
  66. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
  67. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
  68. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/backtest_position.py +0 -0
  69. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +0 -0
  70. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/backtest_reports_evaluation.py +0 -0
  71. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/base_model.py +0 -0
  72. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
  73. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
  74. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
  75. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/order.py +0 -0
  76. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
  77. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
  78. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
  79. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
  80. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
  81. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
  82. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
  83. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
  84. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/position/position.py +0 -0
  85. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
  86. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
  87. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
  88. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
  89. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
  90. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
  91. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
  92. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
  93. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
  94. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
  95. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trading_data_types.py +0 -0
  96. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
  97. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/__init__.py +0 -0
  98. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
  99. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/market_service.py +0 -0
  100. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
  101. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
  102. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
  103. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/singleton.py +0 -0
  104. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
  105. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/strategy.py +0 -0
  106. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/csv.py +0 -0
  107. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/random.py +0 -0
  108. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
  109. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
  110. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
  111. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
  112. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
  113. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
  114. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
  115. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
  116. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
  117. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/us_treasury_yield.py +0 -0
  118. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
  119. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
  120. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
  121. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
  122. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio.py +0 -0
  123. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
  124. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
  125. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
  126. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
  127. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
  128. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
  129. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
  130. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
  131. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
  132. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
  133. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
  134. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
  135. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
  136. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/market_service/ccxt_market_service.py +0 -0
  137. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
  138. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
  139. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
  140. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/__init__.py +0 -0
  141. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
  142. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/backtesting/graphs.py +0 -0
  143. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/configuration_service.py +0 -0
  144. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/market_credential_service.py +0 -0
  145. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/market_data_source_service/__init__.py +0 -0
  146. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/market_data_source_service/backtest_market_data_source_service.py +0 -0
  147. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
  148. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
  149. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
  150. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
  151. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
  152. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
  153. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
  154. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
  155. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/position_service.py +0 -0
  156. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/position_snapshot_service.py +0 -0
  157. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/repository_service.py +0 -0
  158. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -0
  159. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
  160. {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/trade_service/trade_service.py +0 -0
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: investing-algorithm-framework
3
- Version: 3.7.3
3
+ Version: 3.8.1
4
4
  Summary: A framework for creating trading bots
5
5
  Author: MDUYN
6
- Requires-Python: >=3.8.1,<4.0.0
6
+ Requires-Python: >=3.10
7
7
  Classifier: Programming Language :: Python :: 3
8
- Classifier: Programming Language :: Python :: 3.9
9
8
  Classifier: Programming Language :: Python :: 3.10
10
9
  Classifier: Programming Language :: Python :: 3.11
11
10
  Classifier: Programming Language :: Python :: 3.12
@@ -18,12 +17,15 @@ Requires-Dist: ccxt (>=4.2.48,<5.0.0)
18
17
  Requires-Dist: dependency-injector (>=4.40.0,<5.0.0)
19
18
  Requires-Dist: jupyter (>=1.0.0,<2.0.0)
20
19
  Requires-Dist: marshmallow (>=3.5.0,<4.0.0)
20
+ Requires-Dist: numpy (>=2.1.3,<3.0.0)
21
21
  Requires-Dist: plotly (>=5.22.0,<6.0.0)
22
22
  Requires-Dist: polars[numpy,pandas] (>=0.20.10,<0.21.0)
23
23
  Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
24
24
  Requires-Dist: schedule (>=1.1.0,<2.0.0)
25
+ Requires-Dist: scipy (>=1.14.1,<2.0.0)
25
26
  Requires-Dist: tabulate (>=0.9.0,<0.10.0)
26
27
  Requires-Dist: tqdm (>=4.66.1,<5.0.0)
28
+ Requires-Dist: tulipy (>=0.4.0,<0.5.0)
27
29
  Requires-Dist: wrapt (>=1.16.0,<2.0.0)
28
30
  Description-Content-Type: text/markdown
29
31
 
@@ -44,12 +46,11 @@ Description-Content-Type: text/markdown
44
46
 
45
47
  # [Investing Algorithm Framework](https://github.com/coding-kitties/investing-algorithm-framework)
46
48
 
47
- The Investing Algorithm Framework is a Python tool that enables swift and
48
- elegant development of trading bots. It comes with all the necessary
49
- components for creating algorithms, including data provisioning,
50
- portfolio management, and order execution.
49
+ The Investing Algorithm Framework is a Python framework that enables swift and elegant development of trading bots. It comes with all the necessary components for creating trading strategies, including data management, portfolio, order, position and trades management.
51
50
 
52
- Features:
51
+ Features:
52
+
53
+ * Indicators module: A collection of indicators and utility functions that can be used in your trading strategies.
53
54
  * Order execution and tracking
54
55
  * Broker and exchange connections through [ccxt](https://github.com/ccxt/ccxt)
55
56
  * Backtesting and performance analysis reports [example](./examples/backtest_example)
@@ -62,8 +63,9 @@ Features:
62
63
  * Polars dataframes support out of the box for fast data processing [pola.rs](https://pola.rs/)
63
64
 
64
65
  ## Example implementation
65
- The following algorithm connects to binance and buys BTC every 5 seconds.
66
- It also exposes an REST API that allows you to interact with the algorithm.
66
+
67
+ The following algorithm connects to binance and buys BTC every 5 seconds. It also exposes an REST API that allows you to interact with the algorithm.
68
+
67
69
  ```python
68
70
  import pathlib
69
71
  from investing_algorithm_framework import create_app, PortfolioConfiguration, \
@@ -77,7 +79,7 @@ symbols = ["BTC/EUR"]
77
79
 
78
80
  # Define resource directory and the symbols you want to trade
79
81
  config = {
80
- RESOURCE_DIRECTORY: pathlib.Path(__file__).parent.resolve()
82
+ RESOURCE_DIRECTORY: pathlib.Path(__file__).parent.resolve(),
81
83
  SYMBOLS: symbols
82
84
  }
83
85
 
@@ -87,7 +89,7 @@ bitvavo_btc_eur_ohlcv_2h = CCXTOHLCVMarketDataSource(
87
89
  identifier="BTC-ohlcv",
88
90
  market="BITVAVO",
89
91
  symbol="BTC/EUR",
90
- timeframe="2h",
92
+ time_frame="2h",
91
93
  window_size=200
92
94
  )
93
95
  # Ticker data for orders, trades and positions
@@ -155,12 +157,13 @@ if __name__ == "__main__":
155
157
  > You can find more examples [here](./examples) folder.
156
158
 
157
159
  ## Backtesting and experiments
158
- The framework also supports backtesting and performing backtest experiments. After
159
- a backtest, you can print a report that shows the performance of your trading bot.
160
+
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.
160
162
 
161
163
  To run a single backtest you can use the example code that can be found [here](./examples/backtest).
162
164
 
163
165
  ### Backtesting report
166
+
164
167
  You can use the ```pretty_print_backtest``` function to print a backtest report.
165
168
  For example if you run the [moving average example trading bot](./examples/crossover_moving_average_trading_bot)
166
169
  you will get the following backtesting report:
@@ -247,6 +250,7 @@ Trades overview
247
250
  ```
248
251
 
249
252
  ### Backtest experiments
253
+
250
254
  The framework also supports backtest experiments. Backtest experiments allows you to
251
255
  compare multiple algorithms and evaluate their performance. Ideally,
252
256
  you would do this by parameterizing your strategy and creating a factory function that
@@ -254,6 +258,7 @@ creates the algorithm with the different parameters. You can find an example of
254
258
  in the [backtest experiments example](./examples/backtest_experiment).
255
259
 
256
260
  ## Broker/Exchange configuration
261
+
257
262
  The framework has by default support for [ccxt](https://github.com/ccxt/ccxt).
258
263
  This should allow you to connect to a lot of brokers/exchanges.
259
264
 
@@ -279,10 +284,12 @@ app.add_portfolio_configuration(
279
284
  ```
280
285
 
281
286
  ## Performance
287
+
282
288
  We are continuously working on improving the performance of the framework. If
283
289
  you have any suggestions, please let us know.
284
290
 
285
291
  ## Download
292
+
286
293
  You can download the framework with pypi.
287
294
 
288
295
  ```bash
@@ -290,6 +297,7 @@ pip install investing-algorithm-framework
290
297
  ```
291
298
 
292
299
  ## Disclaimer
300
+
293
301
  If you use this framework for your investments, do not risk money
294
302
  which you are afraid to lose, until you have clear understanding how
295
303
  the framework works. We can't stress this enough:
@@ -314,8 +322,8 @@ If you'd like to chat with investing-algorithm-framework users
314
322
  and developers, [join us on Slack](https://inv-algo-framework.slack.com) or [join us on reddit](https://www.reddit.com/r/InvestingBots/)
315
323
 
316
324
  ## Acknowledgements
317
- We want to thank all contributors to this project. A full list of all
318
- the people that contributed to the project can be
325
+
326
+ We want to thank all contributors to this project. A full list of all the people that contributed to the project can be
319
327
  found [here](https://github.com/investing-algorithms/investing-algorithm-framework/blob/master/AUTHORS.md)
320
328
 
321
329
  ### [Bugs / Issues](https://github.com/investing-algorithms/investing-algorithm-framework/issues?q=is%3Aissue)
@@ -324,9 +332,9 @@ If you discover a bug in the framework, please [search our issue tracker](https:
324
332
  first. If it hasn't been reported, please [create a new issue](https://github.com/investing-algorithms/investing-algorithm-framework/issues/new).
325
333
 
326
334
  ### Contributing
335
+
327
336
  The investing algorithm framework is a community driven project.
328
- We welcome you to participate, contribute and together help build
329
- the future trading bots developed in python.
337
+ We welcome you to participate, contribute and together help build the future trading bots developed in python.
330
338
 
331
339
  Feel like the framework is missing a feature? We welcome your pull requests!
332
340
  If you want to contribute to the project roadmap, please take a look at the [project board](https://github.com/coding-kitties/investing-algorithm-framework/projects?query=is%3Aopen).
@@ -15,12 +15,11 @@
15
15
 
16
16
  # [Investing Algorithm Framework](https://github.com/coding-kitties/investing-algorithm-framework)
17
17
 
18
- The Investing Algorithm Framework is a Python tool that enables swift and
19
- elegant development of trading bots. It comes with all the necessary
20
- components for creating algorithms, including data provisioning,
21
- portfolio management, and order execution.
18
+ The Investing Algorithm Framework is a Python framework that enables swift and elegant development of trading bots. It comes with all the necessary components for creating trading strategies, including data management, portfolio, order, position and trades management.
22
19
 
23
- Features:
20
+ Features:
21
+
22
+ * Indicators module: A collection of indicators and utility functions that can be used in your trading strategies.
24
23
  * Order execution and tracking
25
24
  * Broker and exchange connections through [ccxt](https://github.com/ccxt/ccxt)
26
25
  * Backtesting and performance analysis reports [example](./examples/backtest_example)
@@ -33,8 +32,9 @@ Features:
33
32
  * Polars dataframes support out of the box for fast data processing [pola.rs](https://pola.rs/)
34
33
 
35
34
  ## Example implementation
36
- The following algorithm connects to binance and buys BTC every 5 seconds.
37
- It also exposes an REST API that allows you to interact with the algorithm.
35
+
36
+ The following algorithm connects to binance and buys BTC every 5 seconds. It also exposes an REST API that allows you to interact with the algorithm.
37
+
38
38
  ```python
39
39
  import pathlib
40
40
  from investing_algorithm_framework import create_app, PortfolioConfiguration, \
@@ -48,7 +48,7 @@ symbols = ["BTC/EUR"]
48
48
 
49
49
  # Define resource directory and the symbols you want to trade
50
50
  config = {
51
- RESOURCE_DIRECTORY: pathlib.Path(__file__).parent.resolve()
51
+ RESOURCE_DIRECTORY: pathlib.Path(__file__).parent.resolve(),
52
52
  SYMBOLS: symbols
53
53
  }
54
54
 
@@ -58,7 +58,7 @@ bitvavo_btc_eur_ohlcv_2h = CCXTOHLCVMarketDataSource(
58
58
  identifier="BTC-ohlcv",
59
59
  market="BITVAVO",
60
60
  symbol="BTC/EUR",
61
- timeframe="2h",
61
+ time_frame="2h",
62
62
  window_size=200
63
63
  )
64
64
  # Ticker data for orders, trades and positions
@@ -126,12 +126,13 @@ if __name__ == "__main__":
126
126
  > You can find more examples [here](./examples) folder.
127
127
 
128
128
  ## Backtesting and experiments
129
- The framework also supports backtesting and performing backtest experiments. After
130
- a backtest, you can print a report that shows the performance of your trading bot.
129
+
130
+ 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.
131
131
 
132
132
  To run a single backtest you can use the example code that can be found [here](./examples/backtest).
133
133
 
134
134
  ### Backtesting report
135
+
135
136
  You can use the ```pretty_print_backtest``` function to print a backtest report.
136
137
  For example if you run the [moving average example trading bot](./examples/crossover_moving_average_trading_bot)
137
138
  you will get the following backtesting report:
@@ -218,6 +219,7 @@ Trades overview
218
219
  ```
219
220
 
220
221
  ### Backtest experiments
222
+
221
223
  The framework also supports backtest experiments. Backtest experiments allows you to
222
224
  compare multiple algorithms and evaluate their performance. Ideally,
223
225
  you would do this by parameterizing your strategy and creating a factory function that
@@ -225,6 +227,7 @@ creates the algorithm with the different parameters. You can find an example of
225
227
  in the [backtest experiments example](./examples/backtest_experiment).
226
228
 
227
229
  ## Broker/Exchange configuration
230
+
228
231
  The framework has by default support for [ccxt](https://github.com/ccxt/ccxt).
229
232
  This should allow you to connect to a lot of brokers/exchanges.
230
233
 
@@ -250,10 +253,12 @@ app.add_portfolio_configuration(
250
253
  ```
251
254
 
252
255
  ## Performance
256
+
253
257
  We are continuously working on improving the performance of the framework. If
254
258
  you have any suggestions, please let us know.
255
259
 
256
260
  ## Download
261
+
257
262
  You can download the framework with pypi.
258
263
 
259
264
  ```bash
@@ -261,6 +266,7 @@ pip install investing-algorithm-framework
261
266
  ```
262
267
 
263
268
  ## Disclaimer
269
+
264
270
  If you use this framework for your investments, do not risk money
265
271
  which you are afraid to lose, until you have clear understanding how
266
272
  the framework works. We can't stress this enough:
@@ -285,8 +291,8 @@ If you'd like to chat with investing-algorithm-framework users
285
291
  and developers, [join us on Slack](https://inv-algo-framework.slack.com) or [join us on reddit](https://www.reddit.com/r/InvestingBots/)
286
292
 
287
293
  ## Acknowledgements
288
- We want to thank all contributors to this project. A full list of all
289
- the people that contributed to the project can be
294
+
295
+ We want to thank all contributors to this project. A full list of all the people that contributed to the project can be
290
296
  found [here](https://github.com/investing-algorithms/investing-algorithm-framework/blob/master/AUTHORS.md)
291
297
 
292
298
  ### [Bugs / Issues](https://github.com/investing-algorithms/investing-algorithm-framework/issues?q=is%3Aissue)
@@ -295,9 +301,9 @@ If you discover a bug in the framework, please [search our issue tracker](https:
295
301
  first. If it hasn't been reported, please [create a new issue](https://github.com/investing-algorithms/investing-algorithm-framework/issues/new).
296
302
 
297
303
  ### Contributing
304
+
298
305
  The investing algorithm framework is a community driven project.
299
- We welcome you to participate, contribute and together help build
300
- the future trading bots developed in python.
306
+ We welcome you to participate, contribute and together help build the future trading bots developed in python.
301
307
 
302
308
  Feel like the framework is missing a feature? We welcome your pull requests!
303
309
  If you want to contribute to the project roadmap, please take a look at the [project board](https://github.com/coding-kitties/investing-algorithm-framework/projects?query=is%3Aopen).
@@ -10,15 +10,13 @@ from investing_algorithm_framework.domain import ApiException, \
10
10
  TickerMarketDataSource, MarketService, BacktestReportsEvaluation, \
11
11
  pretty_print_backtest_reports_evaluation, load_backtest_reports, \
12
12
  RESERVED_BALANCES, APP_MODE, AppMode, DATETIME_FORMAT, \
13
- load_backtest_report, BacktestDateRange, create_ema_graph, \
14
- create_prices_graph, create_rsi_graph, get_price_efficiency_ratio
13
+ load_backtest_report, BacktestDateRange, convert_polars_to_pandas, \
14
+ DateRange
15
15
  from investing_algorithm_framework.infrastructure import \
16
16
  CCXTOrderBookMarketDataSource, CCXTOHLCVMarketDataSource, \
17
17
  CCXTTickerMarketDataSource, CSVOHLCVMarketDataSource, \
18
18
  CSVTickerMarketDataSource
19
19
  from .create_app import create_app
20
- from investing_algorithm_framework.services import \
21
- create_trade_exit_markers_chart, create_trade_entry_markers_chart
22
20
 
23
21
  __all__ = [
24
22
  "Algorithm",
@@ -67,10 +65,24 @@ __all__ = [
67
65
  "DATETIME_FORMAT",
68
66
  "load_backtest_report",
69
67
  "BacktestDateRange",
70
- "create_trade_exit_markers_chart",
71
- "create_trade_entry_markers_chart",
72
- "create_ema_graph",
73
- "create_prices_graph",
74
- "create_rsi_graph",
75
- "get_price_efficiency_ratio"
68
+ "convert_polars_to_pandas",
69
+ "DateRange",
70
+ "get_rsi",
71
+ "get_peaks",
72
+ "is_uptrend",
73
+ "is_downtrend",
74
+ "is_crossover",
75
+ "is_crossunder",
76
+ "is_above",
77
+ "is_below",
78
+ "has_crossed_upward",
79
+ "get_sma",
80
+ "get_up_and_downtrends",
81
+ "get_rsi",
82
+ "get_ema",
83
+ "get_adx",
84
+ "has_crossed_downward",
85
+ "get_willr",
86
+ "is_bearish_divergence",
87
+ "is_bullish_divergence",
76
88
  ]