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.
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/PKG-INFO +26 -18
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/README.md +21 -15
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/__init__.py +22 -10
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/algorithm.py +285 -17
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/app.py +52 -16
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/app/strategy.py +559 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/deployment/__init__.py +3 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/deployment/azure/__init__.py +3 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/deployment/azure/azure_functions.py +102 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/__init__.py +5 -7
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/__init__.py +3 -1
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/backtest_date_range.py +6 -2
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/domain/models/date_range.py +64 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/market_data_sources.py +178 -19
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/__init__.py +2 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/backtesting.py +1 -1
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/domain/utils/polars.py +46 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/__init__.py +37 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/advanced.py +404 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/momentum.py +41 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/trend.py +397 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/indicators/utils.py +467 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +223 -37
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +6 -6
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/infrastructure/models/market_data_sources/pandas.py +182 -0
- investing_algorithm_framework-3.8.1/investing_algorithm_framework/services/backtesting/backtest_report_writer_service.py +91 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/backtesting/backtest_service.py +152 -9
- {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
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/order_service/order_backtest_service.py +21 -5
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/pyproject.toml +9 -2
- investing_algorithm_framework-3.7.3/investing_algorithm_framework/app/strategy.py +0 -213
- investing_algorithm_framework-3.7.3/investing_algorithm_framework/domain/graphs.py +0 -382
- investing_algorithm_framework-3.7.3/investing_algorithm_framework/services/backtesting/backtest_report_writer_service.py +0 -53
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/LICENSE +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
- {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
- {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
- {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
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/task.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/create_app.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/error_handler.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/responses.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/create_app.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/dependency_container.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/config.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/constants.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/data_structures.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/exceptions.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/metrics/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/metrics/price_efficiency.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/backtest_position.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/backtesting/backtest_reports_evaluation.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/base_model.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/order.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/position/position.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/tracing/trace.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trade/trade.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trading_data_types.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/market_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/singleton.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/strategy.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/csv.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/random.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
- {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
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
- {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
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
- {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
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/backtesting/graphs.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/configuration_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/market_data_source_service/__init__.py +0 -0
- {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
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/position_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/position_snapshot_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/repository_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -0
- {investing_algorithm_framework-3.7.3 → investing_algorithm_framework-3.8.1}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
- {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.
|
|
3
|
+
Version: 3.8.1
|
|
4
4
|
Summary: A framework for creating trading bots
|
|
5
5
|
Author: MDUYN
|
|
6
|
-
Requires-Python: >=3.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
14
|
-
|
|
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
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
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
|
]
|