investing-algorithm-framework 3.7.1__tar.gz → 3.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/PKG-INFO +1 -1
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/time_frame.py +9 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/services/market_data_sources.py +11 -3
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +2 -2
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/services/market_service/ccxt_market_service.py +19 -3
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/pyproject.toml +1 -1
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/LICENSE +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/README.md +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/algorithm.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/app.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/strategy.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/task.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/create_app.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/error_handler.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/responses.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/create_app.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/dependency_container.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/config.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/constants.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/data_structures.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/exceptions.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/graphs.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/metrics/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/metrics/price_efficiency.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/backtesting/backtest_date_range.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/backtesting/backtest_position.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/backtesting/backtest_reports_evaluation.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/base_model.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/order/order.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/position/position.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/trading_data_types.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/services/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/services/market_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/singleton.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/strategy.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/utils/backtesting.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/utils/csv.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/utils/random.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/market_data_sources/us_treasury_yield.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/backtesting/backtest_report_writer_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/backtesting/backtest_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/backtesting/graphs.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/configuration_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/market_data_source_service/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/market_data_source_service/backtest_market_data_source_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/market_data_source_service/market_data_source_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/order_service/order_backtest_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/position_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/position_snapshot_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/repository_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
- {investing_algorithm_framework-3.7.1 → investing_algorithm_framework-3.7.3}/investing_algorithm_framework/services/trade_service/trade_service.py +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
|
|
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.
|
|
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 = \
|
|
@@ -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
|
|
11
|
+
MarketService, DATETIME_FORMAT
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|
|
@@ -356,7 +356,20 @@ 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
|
-
|
|
359
|
+
"""
|
|
360
|
+
Function to retrieve ohlcv data for a symbol, time frame and market
|
|
361
|
+
|
|
362
|
+
Args:
|
|
363
|
+
symbol: The symbol to retrieve ohlcv data for
|
|
364
|
+
time_frame: The time frame to retrieve ohlcv data for
|
|
365
|
+
from_timestamp: The start date to retrieve ohlcv data from
|
|
366
|
+
market: The market to retrieve ohlcv data from
|
|
367
|
+
to_timestamp: The end date to retrieve ohlcv data to
|
|
368
|
+
|
|
369
|
+
Returns:
|
|
370
|
+
DataFrame: The ohlcv data for the symbol, time frame and market
|
|
371
|
+
in polars DataFrame format
|
|
372
|
+
"""
|
|
360
373
|
|
|
361
374
|
if self.config is not None and "DATETIME_FORMAT" in self.config:
|
|
362
375
|
datetime_format = self.config["DATETIME_FORMAT"]
|
|
@@ -414,6 +427,10 @@ class CCXTMarketService(MarketService):
|
|
|
414
427
|
# Combine the Series into a DataFrame with given column names
|
|
415
428
|
df = pl.DataFrame(data)
|
|
416
429
|
|
|
430
|
+
# Check if DataFrame is empty (either rows or columns)
|
|
431
|
+
if df.shape[0] == 0 or df.shape[1] == 0:
|
|
432
|
+
return df
|
|
433
|
+
|
|
417
434
|
# Assign column names after DataFrame creation
|
|
418
435
|
df.columns = col_names
|
|
419
436
|
return df
|
|
@@ -427,7 +444,6 @@ class CCXTMarketService(MarketService):
|
|
|
427
444
|
to_timestamp=None
|
|
428
445
|
) -> Dict[str, pl.DataFrame]:
|
|
429
446
|
ohlcvs = {}
|
|
430
|
-
time_frame = TimeFrame.from_value(time_frame).value
|
|
431
447
|
|
|
432
448
|
for symbol in symbols:
|
|
433
449
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|