investing-algorithm-framework 3.7.0__tar.gz → 3.7.2__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 (147) hide show
  1. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/PKG-INFO +1 -1
  2. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/time_frame.py +9 -0
  3. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/services/market_data_sources.py +11 -3
  4. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +13 -2
  5. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +19 -14
  6. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/services/market_service/ccxt_market_service.py +5 -3
  7. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/pyproject.toml +1 -1
  8. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/LICENSE +0 -0
  9. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/README.md +0 -0
  10. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/__init__.py +0 -0
  11. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/__init__.py +0 -0
  12. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/algorithm.py +0 -0
  13. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/app.py +0 -0
  14. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
  15. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
  16. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
  17. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
  18. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
  19. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
  20. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/strategy.py +0 -0
  21. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/task.py +0 -0
  22. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/__init__.py +0 -0
  23. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
  24. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
  25. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
  26. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
  27. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/create_app.py +0 -0
  28. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/error_handler.py +0 -0
  29. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/responses.py +0 -0
  30. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
  31. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
  32. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
  33. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
  34. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
  35. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
  36. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/create_app.py +0 -0
  37. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/dependency_container.py +0 -0
  38. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/__init__.py +0 -0
  39. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/config.py +0 -0
  40. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/constants.py +0 -0
  41. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/data_structures.py +0 -0
  42. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
  43. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/exceptions.py +0 -0
  44. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/graphs.py +0 -0
  45. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/metrics/__init__.py +0 -0
  46. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/metrics/price_efficiency.py +0 -0
  47. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/__init__.py +0 -0
  48. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
  49. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
  50. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/backtesting/backtest_date_range.py +0 -0
  51. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/backtesting/backtest_position.py +0 -0
  52. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +0 -0
  53. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/backtesting/backtest_reports_evaluation.py +0 -0
  54. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/base_model.py +0 -0
  55. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
  56. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
  57. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
  58. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/order/order.py +0 -0
  59. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
  60. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
  61. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
  62. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
  63. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
  64. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
  65. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
  66. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
  67. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/position/position.py +0 -0
  68. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
  69. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
  70. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
  71. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
  72. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
  73. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
  74. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
  75. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
  76. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
  77. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/trading_data_types.py +0 -0
  78. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
  79. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/services/__init__.py +0 -0
  80. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
  81. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/services/market_service.py +0 -0
  82. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
  83. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
  84. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
  85. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/singleton.py +0 -0
  86. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
  87. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/strategy.py +0 -0
  88. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
  89. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/utils/backtesting.py +0 -0
  90. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/utils/csv.py +0 -0
  91. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/utils/random.py +0 -0
  92. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
  93. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
  94. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
  95. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
  96. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
  97. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
  98. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
  99. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
  100. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
  101. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/market_data_sources/us_treasury_yield.py +0 -0
  102. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
  103. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
  104. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
  105. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
  106. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio.py +0 -0
  107. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
  108. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
  109. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
  110. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
  111. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
  112. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
  113. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
  114. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
  115. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
  116. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
  117. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
  118. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
  119. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
  120. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
  121. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
  122. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
  123. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/__init__.py +0 -0
  124. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
  125. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/backtesting/backtest_report_writer_service.py +0 -0
  126. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/backtesting/backtest_service.py +0 -0
  127. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/backtesting/graphs.py +0 -0
  128. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/configuration_service.py +0 -0
  129. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/market_credential_service.py +0 -0
  130. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/market_data_source_service/__init__.py +0 -0
  131. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/market_data_source_service/backtest_market_data_source_service.py +0 -0
  132. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/market_data_source_service/market_data_source_service.py +0 -0
  133. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
  134. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/order_service/order_backtest_service.py +0 -0
  135. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
  136. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
  137. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
  138. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
  139. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
  140. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
  141. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
  142. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/position_service.py +0 -0
  143. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/position_snapshot_service.py +0 -0
  144. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/repository_service.py +0 -0
  145. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -0
  146. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
  147. {investing_algorithm_framework-3.7.0 → investing_algorithm_framework-3.7.2}/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: 3.7.0
3
+ Version: 3.7.2
4
4
  Summary: A framework for creating trading bots
5
5
  Author: MDUYN
6
6
  Requires-Python: >=3.8.1,<4.0.0
@@ -36,6 +36,15 @@ class TimeFrame(Enum):
36
36
  if value == entry.value.replace("H", "h"):
37
37
  return entry
38
38
 
39
+ # For hour timeframes compare with and without H
40
+ if "d" in entry.value:
41
+
42
+ if value == entry.value:
43
+ return entry
44
+
45
+ if value == entry.value.replace("d", "D"):
46
+ return entry
47
+
39
48
  if value == entry.value:
40
49
  return entry
41
50
 
@@ -243,9 +243,7 @@ class OHLCVMarketDataSource(MarketDataSource, ABC):
243
243
  symbol=symbol,
244
244
  )
245
245
  self._window_size = window_size
246
-
247
- if timeframe is not None:
248
- self._timeframe = TimeFrame.from_value(timeframe)
246
+ self._timeframe = timeframe
249
247
 
250
248
  @property
251
249
  def timeframe(self):
@@ -266,6 +264,16 @@ class OHLCVMarketDataSource(MarketDataSource, ABC):
266
264
  def window_size(self):
267
265
  return self._window_size
268
266
 
267
+ @window_size.setter
268
+ def window_size(self, value):
269
+
270
+ if not isinstance(value, int):
271
+ raise OperationalException(
272
+ "Window size must be an integer"
273
+ )
274
+
275
+ self._window_size = value
276
+
269
277
  def get_date_ranges(
270
278
  self,
271
279
  start_date: datetime,
@@ -119,7 +119,7 @@ class CCXTOHLCVBacktestMarketDataSource(
119
119
  market_service.config = config
120
120
  ohlcv = market_service.get_ohlcv(
121
121
  symbol=self.symbol,
122
- time_frame=self.timeframe.value,
122
+ time_frame=self.timeframe,
123
123
  from_timestamp=backtest_data_start_date,
124
124
  to_timestamp=backtest_end_date,
125
125
  market=self.market
@@ -142,7 +142,7 @@ class CCXTOHLCVBacktestMarketDataSource(
142
142
  OHLCV_{symbol}_{market}_{timeframe}_{start_date}_{end_date}.csv
143
143
  """
144
144
  symbol_string = self.symbol.replace("/", "-")
145
- time_frame_string = self.timeframe.value.replace("_", "")
145
+ time_frame_string = self.timeframe.replace("_", "")
146
146
  backtest_data_start_date = \
147
147
  self.backtest_data_start_date.strftime(DATETIME_FORMAT_BACKTESTING)
148
148
  backtest_data_end_date = \
@@ -438,6 +438,9 @@ class CCXTOHLCVMarketDataSource(OHLCVMarketDataSource):
438
438
  if self.config is not None:
439
439
  market_service.config = self.config
440
440
 
441
+ if "window_size" in kwargs:
442
+ self.window_size = kwargs["window_size"]
443
+
441
444
  if "start_date" in kwargs:
442
445
  start_date = kwargs["start_date"]
443
446
 
@@ -451,6 +454,14 @@ class CCXTOHLCVMarketDataSource(OHLCVMarketDataSource):
451
454
  )
452
455
 
453
456
  if "end_date" not in kwargs:
457
+
458
+ if self.window_size is None:
459
+ raise OperationalException(
460
+ "Either end_date or window_size "
461
+ "should be passed as a "
462
+ "parameter for CCXTOHLCVMarketDataSource"
463
+ )
464
+
454
465
  end_date = self.create_end_date(
455
466
  start_date, self.timeframe, self.window_size
456
467
  )
@@ -88,6 +88,9 @@ class CSVOHLCVMarketDataSource(OHLCVMarketDataSource):
88
88
  end_date = kwargs.get("end_date")
89
89
  backtest_index_date = kwargs.get("backtest_index_date")
90
90
 
91
+ if "window_size" in kwargs:
92
+ self.window_size = kwargs["window_size"]
93
+
91
94
  if start_date is None \
92
95
  and end_date is None \
93
96
  and backtest_index_date is None:
@@ -97,11 +100,27 @@ class CSVOHLCVMarketDataSource(OHLCVMarketDataSource):
97
100
 
98
101
  if backtest_index_date is not None:
99
102
  end_date = backtest_index_date
103
+
104
+ if self.window_size is None:
105
+ raise OperationalException(
106
+ "Either end_date or window_size "
107
+ "should be passed as a "
108
+ "parameter for CCXTOHLCVMarketDataSource"
109
+ )
110
+
100
111
  start_date = self.create_start_date(
101
112
  end_date, self.timeframe, self.window_size
102
113
  )
103
114
  else:
104
115
  if start_date is None:
116
+
117
+ if self.window_size is None:
118
+ raise OperationalException(
119
+ "Either end_date or window_size "
120
+ "should be passed as a "
121
+ "parameter for CCXTOHLCVMarketDataSource"
122
+ )
123
+
105
124
  start_date = self.create_start_date(
106
125
  end_date, self.timeframe, self.window_size
107
126
  )
@@ -111,20 +130,6 @@ class CSVOHLCVMarketDataSource(OHLCVMarketDataSource):
111
130
  start_date, self.timeframe, self.window_size
112
131
  )
113
132
 
114
- # # Check if start or end date are out of range with
115
- # # the dates of the datasource.
116
- # if self._start_date_data_source > start_date:
117
- # raise OperationalException(
118
- # f"Given start date {start_date} is before the start date "
119
- # f"of the data source {self._start_date_data_source}"
120
- # )
121
- #
122
- # if self._end_date_data_source < end_date:
123
- # raise OperationalException(
124
- # f"End date {end_date} is after the end date "
125
- # f"of the data source {self._end_date_data_source}"
126
- # )
127
-
128
133
  df = polars.read_csv(
129
134
  self.csv_file_path, columns=self._columns, separator=","
130
135
  )
@@ -8,7 +8,7 @@ import polars as pl
8
8
  from dateutil import parser
9
9
 
10
10
  from investing_algorithm_framework.domain import OperationalException, Order, \
11
- MarketService, DATETIME_FORMAT, TimeFrame
11
+ MarketService, DATETIME_FORMAT
12
12
 
13
13
  logger = logging.getLogger(__name__)
14
14
 
@@ -356,7 +356,6 @@ class CCXTMarketService(MarketService):
356
356
  def get_ohlcv(
357
357
  self, symbol, time_frame, from_timestamp, market, to_timestamp=None
358
358
  ) -> pl.DataFrame:
359
- time_frame = TimeFrame.from_value(time_frame).value
360
359
 
361
360
  if self.config is not None and "DATETIME_FORMAT" in self.config:
362
361
  datetime_format = self.config["DATETIME_FORMAT"]
@@ -414,6 +413,10 @@ class CCXTMarketService(MarketService):
414
413
  # Combine the Series into a DataFrame with given column names
415
414
  df = pl.DataFrame(data)
416
415
 
416
+ # Check if width is 0
417
+ if len(df) == 0:
418
+ return df
419
+
417
420
  # Assign column names after DataFrame creation
418
421
  df.columns = col_names
419
422
  return df
@@ -427,7 +430,6 @@ class CCXTMarketService(MarketService):
427
430
  to_timestamp=None
428
431
  ) -> Dict[str, pl.DataFrame]:
429
432
  ohlcvs = {}
430
- time_frame = TimeFrame.from_value(time_frame).value
431
433
 
432
434
  for symbol in symbols:
433
435
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "investing-algorithm-framework"
3
- version = "v3.7.0"
3
+ version = "v3.7.2"
4
4
  description = "A framework for creating trading bots"
5
5
  authors = ["MDUYN"]
6
6
  readme = "README.md"