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