investing-algorithm-framework 1.5__py3-none-any.whl → 7.25.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. investing_algorithm_framework/__init__.py +192 -16
  2. investing_algorithm_framework/analysis/__init__.py +16 -0
  3. investing_algorithm_framework/analysis/backtest_data_ranges.py +202 -0
  4. investing_algorithm_framework/analysis/data.py +170 -0
  5. investing_algorithm_framework/analysis/markdown.py +91 -0
  6. investing_algorithm_framework/analysis/ranking.py +298 -0
  7. investing_algorithm_framework/app/__init__.py +29 -4
  8. investing_algorithm_framework/app/algorithm/__init__.py +7 -0
  9. investing_algorithm_framework/app/algorithm/algorithm.py +193 -0
  10. investing_algorithm_framework/app/algorithm/algorithm_factory.py +118 -0
  11. investing_algorithm_framework/app/app.py +2220 -379
  12. investing_algorithm_framework/app/app_hook.py +28 -0
  13. investing_algorithm_framework/app/context.py +1724 -0
  14. investing_algorithm_framework/app/eventloop.py +620 -0
  15. investing_algorithm_framework/app/reporting/__init__.py +27 -0
  16. investing_algorithm_framework/app/reporting/ascii.py +921 -0
  17. investing_algorithm_framework/app/reporting/backtest_report.py +349 -0
  18. investing_algorithm_framework/app/reporting/charts/__init__.py +19 -0
  19. investing_algorithm_framework/app/reporting/charts/entry_exist_signals.py +66 -0
  20. investing_algorithm_framework/app/reporting/charts/equity_curve.py +37 -0
  21. investing_algorithm_framework/app/reporting/charts/equity_curve_drawdown.py +74 -0
  22. investing_algorithm_framework/app/reporting/charts/line_chart.py +11 -0
  23. investing_algorithm_framework/app/reporting/charts/monthly_returns_heatmap.py +70 -0
  24. investing_algorithm_framework/app/reporting/charts/ohlcv_data_completeness.py +51 -0
  25. investing_algorithm_framework/app/reporting/charts/rolling_sharp_ratio.py +79 -0
  26. investing_algorithm_framework/app/reporting/charts/yearly_returns_barchart.py +55 -0
  27. investing_algorithm_framework/app/reporting/generate.py +185 -0
  28. investing_algorithm_framework/app/reporting/tables/__init__.py +11 -0
  29. investing_algorithm_framework/app/reporting/tables/key_metrics_table.py +217 -0
  30. investing_algorithm_framework/app/reporting/tables/time_metrics_table.py +80 -0
  31. investing_algorithm_framework/app/reporting/tables/trade_metrics_table.py +147 -0
  32. investing_algorithm_framework/app/reporting/tables/trades_table.py +75 -0
  33. investing_algorithm_framework/app/reporting/tables/utils.py +29 -0
  34. investing_algorithm_framework/app/reporting/templates/report_template.html.j2 +154 -0
  35. investing_algorithm_framework/app/stateless/action_handlers/__init__.py +6 -3
  36. investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +1 -1
  37. investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +2 -1
  38. investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +14 -7
  39. investing_algorithm_framework/app/strategy.py +867 -60
  40. investing_algorithm_framework/app/task.py +5 -3
  41. investing_algorithm_framework/app/web/__init__.py +2 -1
  42. investing_algorithm_framework/app/web/controllers/__init__.py +2 -2
  43. investing_algorithm_framework/app/web/controllers/orders.py +3 -2
  44. investing_algorithm_framework/app/web/controllers/positions.py +2 -2
  45. investing_algorithm_framework/app/web/create_app.py +4 -2
  46. investing_algorithm_framework/app/web/schemas/position.py +1 -0
  47. investing_algorithm_framework/cli/__init__.py +0 -0
  48. investing_algorithm_framework/cli/cli.py +231 -0
  49. investing_algorithm_framework/cli/deploy_to_aws_lambda.py +501 -0
  50. investing_algorithm_framework/cli/deploy_to_azure_function.py +718 -0
  51. investing_algorithm_framework/cli/initialize_app.py +603 -0
  52. investing_algorithm_framework/cli/templates/.gitignore.template +178 -0
  53. investing_algorithm_framework/cli/templates/app.py.template +18 -0
  54. investing_algorithm_framework/cli/templates/app_aws_lambda_function.py.template +48 -0
  55. investing_algorithm_framework/cli/templates/app_azure_function.py.template +14 -0
  56. investing_algorithm_framework/cli/templates/app_web.py.template +18 -0
  57. investing_algorithm_framework/cli/templates/aws_lambda_dockerfile.template +22 -0
  58. investing_algorithm_framework/cli/templates/aws_lambda_dockerignore.template +92 -0
  59. investing_algorithm_framework/cli/templates/aws_lambda_readme.md.template +110 -0
  60. investing_algorithm_framework/cli/templates/aws_lambda_requirements.txt.template +2 -0
  61. investing_algorithm_framework/cli/templates/azure_function_function_app.py.template +65 -0
  62. investing_algorithm_framework/cli/templates/azure_function_host.json.template +15 -0
  63. investing_algorithm_framework/cli/templates/azure_function_local.settings.json.template +8 -0
  64. investing_algorithm_framework/cli/templates/azure_function_requirements.txt.template +3 -0
  65. investing_algorithm_framework/cli/templates/data_providers.py.template +17 -0
  66. investing_algorithm_framework/cli/templates/env.example.template +2 -0
  67. investing_algorithm_framework/cli/templates/env_azure_function.example.template +4 -0
  68. investing_algorithm_framework/cli/templates/market_data_providers.py.template +9 -0
  69. investing_algorithm_framework/cli/templates/readme.md.template +135 -0
  70. investing_algorithm_framework/cli/templates/requirements.txt.template +2 -0
  71. investing_algorithm_framework/cli/templates/run_backtest.py.template +20 -0
  72. investing_algorithm_framework/cli/templates/strategy.py.template +124 -0
  73. investing_algorithm_framework/cli/validate_backtest_checkpoints.py +197 -0
  74. investing_algorithm_framework/create_app.py +40 -7
  75. investing_algorithm_framework/dependency_container.py +100 -47
  76. investing_algorithm_framework/domain/__init__.py +97 -30
  77. investing_algorithm_framework/domain/algorithm_id.py +69 -0
  78. investing_algorithm_framework/domain/backtesting/__init__.py +25 -0
  79. investing_algorithm_framework/domain/backtesting/backtest.py +548 -0
  80. investing_algorithm_framework/domain/backtesting/backtest_date_range.py +113 -0
  81. investing_algorithm_framework/domain/backtesting/backtest_evaluation_focuss.py +241 -0
  82. investing_algorithm_framework/domain/backtesting/backtest_metrics.py +470 -0
  83. investing_algorithm_framework/domain/backtesting/backtest_permutation_test.py +275 -0
  84. investing_algorithm_framework/domain/backtesting/backtest_run.py +663 -0
  85. investing_algorithm_framework/domain/backtesting/backtest_summary_metrics.py +162 -0
  86. investing_algorithm_framework/domain/backtesting/backtest_utils.py +198 -0
  87. investing_algorithm_framework/domain/backtesting/combine_backtests.py +392 -0
  88. investing_algorithm_framework/domain/config.py +59 -136
  89. investing_algorithm_framework/domain/constants.py +18 -37
  90. investing_algorithm_framework/domain/data_provider.py +334 -0
  91. investing_algorithm_framework/domain/data_structures.py +42 -0
  92. investing_algorithm_framework/domain/exceptions.py +51 -1
  93. investing_algorithm_framework/domain/models/__init__.py +26 -19
  94. investing_algorithm_framework/domain/models/app_mode.py +34 -0
  95. investing_algorithm_framework/domain/models/data/__init__.py +7 -0
  96. investing_algorithm_framework/domain/models/data/data_source.py +222 -0
  97. investing_algorithm_framework/domain/models/data/data_type.py +46 -0
  98. investing_algorithm_framework/domain/models/event.py +35 -0
  99. investing_algorithm_framework/domain/models/market/__init__.py +5 -0
  100. investing_algorithm_framework/domain/models/market/market_credential.py +88 -0
  101. investing_algorithm_framework/domain/models/order/__init__.py +3 -4
  102. investing_algorithm_framework/domain/models/order/order.py +198 -65
  103. investing_algorithm_framework/domain/models/order/order_status.py +2 -2
  104. investing_algorithm_framework/domain/models/order/order_type.py +1 -3
  105. investing_algorithm_framework/domain/models/portfolio/__init__.py +6 -2
  106. investing_algorithm_framework/domain/models/portfolio/portfolio.py +98 -3
  107. investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +37 -43
  108. investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +108 -11
  109. investing_algorithm_framework/domain/models/position/__init__.py +2 -1
  110. investing_algorithm_framework/domain/models/position/position.py +20 -0
  111. investing_algorithm_framework/domain/models/position/position_size.py +41 -0
  112. investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -2
  113. investing_algorithm_framework/domain/models/risk_rules/__init__.py +7 -0
  114. investing_algorithm_framework/domain/models/risk_rules/stop_loss_rule.py +51 -0
  115. investing_algorithm_framework/domain/models/risk_rules/take_profit_rule.py +55 -0
  116. investing_algorithm_framework/domain/models/snapshot_interval.py +45 -0
  117. investing_algorithm_framework/domain/models/strategy_profile.py +19 -141
  118. investing_algorithm_framework/domain/models/time_frame.py +94 -98
  119. investing_algorithm_framework/domain/models/time_interval.py +33 -0
  120. investing_algorithm_framework/domain/models/time_unit.py +66 -2
  121. investing_algorithm_framework/domain/models/tracing/__init__.py +0 -0
  122. investing_algorithm_framework/domain/models/tracing/trace.py +23 -0
  123. investing_algorithm_framework/domain/models/trade/__init__.py +11 -0
  124. investing_algorithm_framework/domain/models/trade/trade.py +389 -0
  125. investing_algorithm_framework/domain/models/trade/trade_status.py +40 -0
  126. investing_algorithm_framework/domain/models/trade/trade_stop_loss.py +332 -0
  127. investing_algorithm_framework/domain/models/trade/trade_take_profit.py +365 -0
  128. investing_algorithm_framework/domain/order_executor.py +112 -0
  129. investing_algorithm_framework/domain/portfolio_provider.py +118 -0
  130. investing_algorithm_framework/domain/services/__init__.py +11 -0
  131. investing_algorithm_framework/domain/services/market_credential_service.py +37 -0
  132. investing_algorithm_framework/domain/services/portfolios/__init__.py +5 -0
  133. investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +9 -0
  134. investing_algorithm_framework/domain/services/rounding_service.py +27 -0
  135. investing_algorithm_framework/domain/services/state_handler.py +38 -0
  136. investing_algorithm_framework/domain/strategy.py +1 -29
  137. investing_algorithm_framework/domain/utils/__init__.py +15 -5
  138. investing_algorithm_framework/domain/utils/csv.py +22 -0
  139. investing_algorithm_framework/domain/utils/custom_tqdm.py +22 -0
  140. investing_algorithm_framework/domain/utils/dates.py +57 -0
  141. investing_algorithm_framework/domain/utils/jupyter_notebook_detection.py +19 -0
  142. investing_algorithm_framework/domain/utils/polars.py +53 -0
  143. investing_algorithm_framework/domain/utils/random.py +29 -0
  144. investing_algorithm_framework/download_data.py +244 -0
  145. investing_algorithm_framework/infrastructure/__init__.py +37 -11
  146. investing_algorithm_framework/infrastructure/data_providers/__init__.py +36 -0
  147. investing_algorithm_framework/infrastructure/data_providers/ccxt.py +1152 -0
  148. investing_algorithm_framework/infrastructure/data_providers/csv.py +568 -0
  149. investing_algorithm_framework/infrastructure/data_providers/pandas.py +599 -0
  150. investing_algorithm_framework/infrastructure/database/__init__.py +6 -2
  151. investing_algorithm_framework/infrastructure/database/sql_alchemy.py +86 -12
  152. investing_algorithm_framework/infrastructure/models/__init__.py +7 -3
  153. investing_algorithm_framework/infrastructure/models/order/__init__.py +2 -2
  154. investing_algorithm_framework/infrastructure/models/order/order.py +53 -53
  155. investing_algorithm_framework/infrastructure/models/order/order_metadata.py +44 -0
  156. investing_algorithm_framework/infrastructure/models/order_trade_association.py +10 -0
  157. investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +1 -1
  158. investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +8 -2
  159. investing_algorithm_framework/infrastructure/models/portfolio/{portfolio.py → sql_portfolio.py} +17 -6
  160. investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +3 -1
  161. investing_algorithm_framework/infrastructure/models/trades/__init__.py +9 -0
  162. investing_algorithm_framework/infrastructure/models/trades/trade.py +130 -0
  163. investing_algorithm_framework/infrastructure/models/trades/trade_stop_loss.py +59 -0
  164. investing_algorithm_framework/infrastructure/models/trades/trade_take_profit.py +55 -0
  165. investing_algorithm_framework/infrastructure/order_executors/__init__.py +21 -0
  166. investing_algorithm_framework/infrastructure/order_executors/backtest_oder_executor.py +28 -0
  167. investing_algorithm_framework/infrastructure/order_executors/ccxt_order_executor.py +200 -0
  168. investing_algorithm_framework/infrastructure/portfolio_providers/__init__.py +19 -0
  169. investing_algorithm_framework/infrastructure/portfolio_providers/ccxt_portfolio_provider.py +199 -0
  170. investing_algorithm_framework/infrastructure/repositories/__init__.py +10 -4
  171. investing_algorithm_framework/infrastructure/repositories/order_metadata_repository.py +17 -0
  172. investing_algorithm_framework/infrastructure/repositories/order_repository.py +16 -5
  173. investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +2 -2
  174. investing_algorithm_framework/infrastructure/repositories/position_repository.py +11 -0
  175. investing_algorithm_framework/infrastructure/repositories/repository.py +84 -30
  176. investing_algorithm_framework/infrastructure/repositories/trade_repository.py +71 -0
  177. investing_algorithm_framework/infrastructure/repositories/trade_stop_loss_repository.py +29 -0
  178. investing_algorithm_framework/infrastructure/repositories/trade_take_profit_repository.py +29 -0
  179. investing_algorithm_framework/infrastructure/services/__init__.py +9 -4
  180. investing_algorithm_framework/infrastructure/services/aws/__init__.py +6 -0
  181. investing_algorithm_framework/infrastructure/services/aws/state_handler.py +193 -0
  182. investing_algorithm_framework/infrastructure/services/azure/__init__.py +5 -0
  183. investing_algorithm_framework/infrastructure/services/azure/state_handler.py +158 -0
  184. investing_algorithm_framework/infrastructure/services/backtesting/__init__.py +9 -0
  185. investing_algorithm_framework/infrastructure/services/backtesting/backtest_service.py +2596 -0
  186. investing_algorithm_framework/infrastructure/services/backtesting/event_backtest_service.py +285 -0
  187. investing_algorithm_framework/infrastructure/services/backtesting/vector_backtest_service.py +468 -0
  188. investing_algorithm_framework/services/__init__.py +123 -15
  189. investing_algorithm_framework/services/configuration_service.py +77 -11
  190. investing_algorithm_framework/services/data_providers/__init__.py +5 -0
  191. investing_algorithm_framework/services/data_providers/data_provider_service.py +1058 -0
  192. investing_algorithm_framework/services/market_credential_service.py +40 -0
  193. investing_algorithm_framework/services/metrics/__init__.py +119 -0
  194. investing_algorithm_framework/services/metrics/alpha.py +0 -0
  195. investing_algorithm_framework/services/metrics/beta.py +0 -0
  196. investing_algorithm_framework/services/metrics/cagr.py +60 -0
  197. investing_algorithm_framework/services/metrics/calmar_ratio.py +40 -0
  198. investing_algorithm_framework/services/metrics/drawdown.py +218 -0
  199. investing_algorithm_framework/services/metrics/equity_curve.py +24 -0
  200. investing_algorithm_framework/services/metrics/exposure.py +210 -0
  201. investing_algorithm_framework/services/metrics/generate.py +358 -0
  202. investing_algorithm_framework/services/metrics/mean_daily_return.py +84 -0
  203. investing_algorithm_framework/services/metrics/price_efficiency.py +57 -0
  204. investing_algorithm_framework/services/metrics/profit_factor.py +165 -0
  205. investing_algorithm_framework/services/metrics/recovery.py +113 -0
  206. investing_algorithm_framework/services/metrics/returns.py +452 -0
  207. investing_algorithm_framework/services/metrics/risk_free_rate.py +28 -0
  208. investing_algorithm_framework/services/metrics/sharpe_ratio.py +137 -0
  209. investing_algorithm_framework/services/metrics/sortino_ratio.py +74 -0
  210. investing_algorithm_framework/services/metrics/standard_deviation.py +156 -0
  211. investing_algorithm_framework/services/metrics/trades.py +473 -0
  212. investing_algorithm_framework/services/metrics/treynor_ratio.py +0 -0
  213. investing_algorithm_framework/services/metrics/ulcer.py +0 -0
  214. investing_algorithm_framework/services/metrics/value_at_risk.py +0 -0
  215. investing_algorithm_framework/services/metrics/volatility.py +118 -0
  216. investing_algorithm_framework/services/metrics/win_rate.py +177 -0
  217. investing_algorithm_framework/services/order_service/__init__.py +9 -0
  218. investing_algorithm_framework/services/order_service/order_backtest_service.py +178 -0
  219. investing_algorithm_framework/services/order_service/order_executor_lookup.py +110 -0
  220. investing_algorithm_framework/services/order_service/order_service.py +826 -0
  221. investing_algorithm_framework/services/portfolios/__init__.py +16 -0
  222. investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +54 -0
  223. investing_algorithm_framework/services/{portfolio_configuration_service.py → portfolios/portfolio_configuration_service.py} +27 -12
  224. investing_algorithm_framework/services/portfolios/portfolio_provider_lookup.py +106 -0
  225. investing_algorithm_framework/services/portfolios/portfolio_service.py +188 -0
  226. investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +136 -0
  227. investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +182 -0
  228. investing_algorithm_framework/services/positions/__init__.py +7 -0
  229. investing_algorithm_framework/services/positions/position_service.py +210 -0
  230. investing_algorithm_framework/services/repository_service.py +8 -2
  231. investing_algorithm_framework/services/trade_order_evaluator/__init__.py +9 -0
  232. investing_algorithm_framework/services/trade_order_evaluator/backtest_trade_oder_evaluator.py +117 -0
  233. investing_algorithm_framework/services/trade_order_evaluator/default_trade_order_evaluator.py +51 -0
  234. investing_algorithm_framework/services/trade_order_evaluator/trade_order_evaluator.py +80 -0
  235. investing_algorithm_framework/services/trade_service/__init__.py +9 -0
  236. investing_algorithm_framework/services/trade_service/trade_service.py +1099 -0
  237. investing_algorithm_framework/services/trade_service/trade_stop_loss_service.py +39 -0
  238. investing_algorithm_framework/services/trade_service/trade_take_profit_service.py +41 -0
  239. investing_algorithm_framework-7.25.6.dist-info/METADATA +535 -0
  240. investing_algorithm_framework-7.25.6.dist-info/RECORD +268 -0
  241. {investing_algorithm_framework-1.5.dist-info → investing_algorithm_framework-7.25.6.dist-info}/WHEEL +1 -2
  242. investing_algorithm_framework-7.25.6.dist-info/entry_points.txt +3 -0
  243. investing_algorithm_framework/app/algorithm.py +0 -630
  244. investing_algorithm_framework/domain/models/backtest_profile.py +0 -414
  245. investing_algorithm_framework/domain/models/market_data/__init__.py +0 -11
  246. investing_algorithm_framework/domain/models/market_data/asset_price.py +0 -50
  247. investing_algorithm_framework/domain/models/market_data/ohlcv.py +0 -105
  248. investing_algorithm_framework/domain/models/market_data/order_book.py +0 -63
  249. investing_algorithm_framework/domain/models/market_data/ticker.py +0 -92
  250. investing_algorithm_framework/domain/models/order/order_fee.py +0 -45
  251. investing_algorithm_framework/domain/models/trade.py +0 -78
  252. investing_algorithm_framework/domain/models/trading_data_types.py +0 -47
  253. investing_algorithm_framework/domain/models/trading_time_frame.py +0 -223
  254. investing_algorithm_framework/domain/singleton.py +0 -9
  255. investing_algorithm_framework/domain/utils/backtesting.py +0 -82
  256. investing_algorithm_framework/infrastructure/models/order/order_fee.py +0 -21
  257. investing_algorithm_framework/infrastructure/repositories/order_fee_repository.py +0 -15
  258. investing_algorithm_framework/infrastructure/services/market_backtest_service.py +0 -360
  259. investing_algorithm_framework/infrastructure/services/market_service.py +0 -410
  260. investing_algorithm_framework/infrastructure/services/performance_service.py +0 -192
  261. investing_algorithm_framework/services/backtest_service.py +0 -268
  262. investing_algorithm_framework/services/market_data_service.py +0 -77
  263. investing_algorithm_framework/services/order_backtest_service.py +0 -122
  264. investing_algorithm_framework/services/order_service.py +0 -752
  265. investing_algorithm_framework/services/portfolio_service.py +0 -164
  266. investing_algorithm_framework/services/portfolio_snapshot_service.py +0 -68
  267. investing_algorithm_framework/services/position_cost_service.py +0 -5
  268. investing_algorithm_framework/services/position_service.py +0 -63
  269. investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -225
  270. investing_algorithm_framework-1.5.dist-info/AUTHORS.md +0 -8
  271. investing_algorithm_framework-1.5.dist-info/METADATA +0 -230
  272. investing_algorithm_framework-1.5.dist-info/RECORD +0 -119
  273. investing_algorithm_framework-1.5.dist-info/top_level.txt +0 -1
  274. /investing_algorithm_framework/{infrastructure/services/performance_backtest_service.py → app/reporting/tables/stop_loss_table.py} +0 -0
  275. /investing_algorithm_framework/services/{position_snapshot_service.py → positions/position_snapshot_service.py} +0 -0
  276. {investing_algorithm_framework-1.5.dist-info → investing_algorithm_framework-7.25.6.dist-info}/LICENSE +0 -0
@@ -1,230 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: investing-algorithm-framework
3
- Version: 1.5
4
- Summary: A framework for creating an investment algorithm
5
- Home-page: https://github.com/coding-kitties/investing-algorithm-framework.git
6
- Download-URL: https://github.com/coding-kitties/investing-algorithm-framework/archive/v0.1.1.tar.gz
7
- Author: coding kitties
8
- License: Apache License 2.0
9
- Keywords: TRADING,INVESTING,BOT,ALGORITHM,FRAMEWORK
10
- Classifier: Intended Audience :: Developers
11
- Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.4
13
- Classifier: Programming Language :: Python :: 3.5
14
- Classifier: Programming Language :: Python :: 3.6
15
- Classifier: Topic :: Software Development
16
- Classifier: License :: OSI Approved :: Apache Software License
17
- Classifier: Operating System :: OS Independent
18
- Requires-Python: >=3
19
- Description-Content-Type: text/markdown
20
- License-File: LICENSE
21
- License-File: AUTHORS.md
22
- Requires-Dist: wrapt ==1.11.2
23
- Requires-Dist: Flask ==2.3.2
24
- Requires-Dist: Flask-Migrate ==2.6.0
25
- Requires-Dist: Flask-Cors ==3.0.9
26
- Requires-Dist: SQLAlchemy ==2.0.18
27
- Requires-Dist: marshmallow ==3.5.0
28
- Requires-Dist: setuptools >=60.9.0
29
- Requires-Dist: ccxt >=3.0.57
30
- Requires-Dist: python-dateutil ==2.8.2
31
- Requires-Dist: MarkupSafe ==2.1.2
32
- Requires-Dist: dependency-injector ==4.40.0
33
- Requires-Dist: schedule ==1.1.0
34
- Requires-Dist: pandas ==2.0.0
35
- Requires-Dist: tqdm ==4.66.1
36
-
37
- <a href=https://investing-algorithm-framework.com><img src="https://img.shields.io/badge/docs-website-brightgreen"></a>
38
- [![Build](https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/build.yml/badge.svg)](https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/build.yml)
39
- [![Tests](https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/coding-kitties/investing-algorithm-framework/actions/workflows/test.yml)
40
- [![Downloads](https://pepy.tech/badge/investing-algorithm-framework)](https://pepy.tech/badge/investing-algorithm-framework)
41
- [![Current Version](https://img.shields.io/pypi/v/investing_algorithm_framework.svg)](https://img.shields.io/pypi/v/investing_algorithm_framework.svg)
42
- <a href="https://www.reddit.com/r/InvestingBots/"><img src="https://img.shields.io/reddit/subreddit-subscribers/investingbots?style=social"></a>
43
- ###### Sponsors
44
- <p align="left">
45
- <a href="https://finterion.com">
46
- <img alt="Finterion" src="https://logicfunds-web-app-images.s3.eu-central-1.amazonaws.com/finterion.png" width="200px" />
47
- </a>
48
- </p>
49
-
50
-
51
- # [Investing Algorithm Framework](https://github.com/coding-kitties/investing-algorithm-framework)
52
-
53
- The Investing Algorithm Framework is a Python tool that enables swift and
54
- elegant development of investment algorithms and trading bots. It comes with all the necessary
55
- components for creating algorithms, including data provisioning, portfolio management, and order execution.
56
-
57
-
58
- ## Example implementation
59
- The following algorithm connects to binance and buys BTC every 5 seconds.
60
- It also exposes an REST API that allows you to interact with the algorithm.
61
- ```python
62
- import pathlib
63
- from datetime import datetime, timedelta
64
-
65
- from investing_algorithm_framework import create_app, PortfolioConfiguration, \
66
- RESOURCE_DIRECTORY, TimeUnit, TradingTimeFrame, TradingDataType, OrderSide
67
-
68
- app = create_app({RESOURCE_DIRECTORY: pathlib.Path(__file__).parent.resolve()})
69
- app.add_portfolio_configuration(
70
- PortfolioConfiguration(
71
- market="BITVAVO",
72
- api_key="xxxxxx",
73
- secret_key="xxxxxx",
74
- trading_symbol="USDT"
75
- )
76
- )
77
-
78
-
79
- @app.strategy(
80
- time_unit=TimeUnit.HOUR, # Algorithm will be executed every 2 hours
81
- interval=2,
82
- market="BITVAVO", # Will retrieve trading data from binance
83
- symbols=["BTC/EUR", "ETH/EUR", "DOT/EUR"],
84
- # Symbols must be in the format of TARGET/TRADE symbol (e.g. BTC/USDT)
85
- trading_data_types=[TradingDataType.OHLCV, TradingDataType.TICKER],
86
- trading_time_frame_start_date=datetime.utcnow() - timedelta(days=1),
87
- # Will retrieve data from the last 24 hours
88
- trading_time_frame=TradingTimeFrame.ONE_MINUTE
89
- # Will retrieve data on 1m interval (OHLCV)
90
- )
91
- def perform_strategy(algorithm, market_data):
92
- target_symbol = "BTC"
93
- price = market_data[TradingDataType.TICKER]["BTC/EUR"]["bid"]
94
-
95
- if not algorithm.has_open_orders(target_symbol) and \
96
- not algorithm.has_position(target_symbol):
97
- algorithm.create_limit_order(
98
- target_symbol,
99
- order_side=OrderSide.BUY,
100
- percentage_of_portfolio=25,
101
- # You can also use amount instead of percentage_of_portfolio
102
- price=price
103
- )
104
-
105
- if __name__ == "__main__":
106
- app.run()
107
- ```
108
-
109
- > You can find more examples [here](./examples) folder.
110
-
111
- ## Backtesting
112
- The framework also supports backtesting. You can use the same code as above,
113
- but instead of running the algorithm, you can run a backtest.
114
-
115
- ```python
116
- import pathlib
117
- from datetime import datetime, timedelta
118
-
119
- from investing_algorithm_framework import create_app, OrderSide, \
120
- RESOURCE_DIRECTORY, TimeUnit, TradingTimeFrame, TradingDataType, \
121
- pretty_print_backtest
122
-
123
- app = create_app({RESOURCE_DIRECTORY: pathlib.Path(__file__).parent.resolve()})
124
-
125
- @app.strategy(
126
- time_unit=TimeUnit.HOUR, # Algorithm will be executed every 2 hours
127
- interval=2,
128
- market="BITVAVO", # Will retrieve trading data from binance
129
- symbols=["BTC/EUR", "ETH/EUR", "DOT/EUR"],
130
- # Symbols must be in the format of TARGET/TRADE symbol (e.g. BTC/USDT)
131
- trading_data_types=[TradingDataType.OHLCV, TradingDataType.TICKER],
132
- trading_time_frame_start_date=datetime.utcnow() - timedelta(days=1),
133
- # Will retrieve data from the last 24 hours
134
- trading_time_frame=TradingTimeFrame.ONE_MINUTE
135
- # Will retrieve data on 1m interval (OHLCV)
136
- )
137
- def perform_strategy(algorithm, market_data):
138
- target_symbol = "BTC"
139
- price = market_data[TradingDataType.TICKER]["BTC/EUR"]["bid"]
140
-
141
- if not algorithm.has_open_orders(target_symbol) and \
142
- not algorithm.has_position(target_symbol):
143
- algorithm.create_limit_order(
144
- target_symbol,
145
- order_side=OrderSide.BUY,
146
- percentage_of_portfolio=25,
147
- # You can also use amount instead of percentage_of_portfolio
148
- price=price
149
- )
150
-
151
-
152
- if __name__ == "__main__":
153
- backtest_report = app.backtest(
154
- start_date=datetime(2023, 11, 12) - timedelta(days=10),
155
- end_date=datetime(2023, 11, 12),
156
- unallocated=400,
157
- trading_symbol="EUR"
158
- )
159
- pretty_print_backtest(backtest_report)
160
- ```
161
- For more examples, check out the [examples](./examples/backtesting) folder.
162
-
163
- ## Broker/Exchange configuration
164
- The framework has by default support for [ccxt](https://github.com/ccxt/ccxt).
165
- This should allow you to connect to a lot of brokers/exchanges.
166
-
167
- ```python
168
- from investing_algorithm_framework import App, PortfolioConfiguration
169
- app = App()
170
- app.add_portfolio_configuration(
171
- PortfolioConfiguration(
172
- market="BITVAVO",
173
- api_key="xxxx",
174
- secret_key="xxxx",
175
- track_from="01/01/2022",
176
- trading_symbol="EUR"
177
- )
178
- )
179
- ```
180
-
181
- ## Download
182
- You can download the framework with pypi.
183
-
184
- ```bash
185
- pip install investing-algorithm-framework
186
- ```
187
-
188
- ## Disclaimer
189
- If you use this framework for your investments, do not risk money
190
- which you are afraid to lose, until you have clear understanding how
191
- the framework works. We can't stress this enough:
192
-
193
- BEFORE YOU START USING MONEY WITH THE FRAMEWORK, MAKE SURE THAT YOU TESTED
194
- YOUR COMPONENTS THOROUGHLY. USE THE SOFTWARE AT YOUR OWN RISK.
195
- THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR INVESTMENT RESULTS.
196
-
197
- Also, make sure that you read the source code of any plugin you use or
198
- implementation of an algorithm made with this framework.
199
-
200
- For further information regarding usage and licensing we recommend going
201
- to the licensing page at the website.
202
-
203
- ## Documentation
204
-
205
- All the documentation can be found online
206
- at the [documentation webstie](https://investing-algorithm-framework.com)
207
-
208
- In most cases, you'll probably never have to change code on this repo directly
209
- if you are building your algorithm/bot. But if you do, check out the
210
- contributing page at the website.
211
-
212
- If you'd like to chat with investing-algorithm-framework users
213
- and developers, [join us on Slack](https://inv-algo-framework.slack.com) or [join us on reddit](https://www.reddit.com/r/InvestingBots/)
214
-
215
- ## Acknowledgements
216
- We want to thank all contributors to this project. A full list of all
217
- the people that contributed to the project can be
218
- found [here](https://github.com/investing-algorithms/investing-algorithm-framework/blob/master/AUTHORS.md)
219
-
220
- ### [Bugs / Issues](https://github.com/investing-algorithms/investing-algorithm-framework/issues?q=is%3Aissue)
221
-
222
- 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)
223
- first. If it hasn't been reported, please [create a new issue](https://github.com/investing-algorithms/investing-algorithm-framework/issues/new).
224
-
225
- Feel like the framework is missing a feature? We welcome your pull requests!
226
-
227
- **Note** before starting any major new feature work, *please open an issue describing what you are planning to do*.
228
- This will ensure that interested parties can give valuable feedback on the feature, and let others know that you are working on it.
229
-
230
- **Important:** Always create your feature or hotfix against the `develop` branch, not `master`.
@@ -1,119 +0,0 @@
1
- investing_algorithm_framework/__init__.py,sha256=ZHqhqXRstl-1sco5pDQXVr5jhSCcgabeVf_w83WZf-8,1079
2
- investing_algorithm_framework/create_app.py,sha256=lyxAFmFJ8lrZShfQy4joPj0FgCY4dhM-4UXzWbPX0t4,519
3
- investing_algorithm_framework/dependency_container.py,sha256=FwsnVRYry5pQwzDdGGWNsYUPJnOsKWcycwoRe44GTak,4578
4
- investing_algorithm_framework/app/__init__.py,sha256=zY_uoWzQMM_pcbuYEIK2ISPE74xo7lBdzhhaSabDGH8,477
5
- investing_algorithm_framework/app/algorithm.py,sha256=wRgDwMcpxA1F7P9HADhD_LS3YFVS3AjNAjjyOOdGQZM,20164
6
- investing_algorithm_framework/app/app.py,sha256=cmKbeqEpjXQ4eAo57mQKr0lQVhmJ_pcyPYaFlCELVP4,19523
7
- investing_algorithm_framework/app/strategy.py,sha256=6x8df7m0k0rFE86hTiW8t0ox0iCJbk7qMHZQqjAOM5Q,3022
8
- investing_algorithm_framework/app/task.py,sha256=O8CnJT-cJfQVvC0ZG_w489KLLAemSrkyihHvQsuDvoE,963
9
- investing_algorithm_framework/app/stateless/__init__.py,sha256=VuEfb7QqDsfpFCnZdpvw8vvpNMRqOb-3w0yOpHiYlWg,1092
10
- investing_algorithm_framework/app/stateless/exception_handler.py,sha256=EoujrXd_TJ0cXLsEukRgdT7bw_kAH6OiCpZGcV8bVhc,1085
11
- investing_algorithm_framework/app/stateless/action_handlers/__init__.py,sha256=k285XeCTSGdesBgnOPZ_sByLqytla_03kDPhSylPhsA,2344
12
- investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py,sha256=Ws687Syr1ytQFXaOMpp2CGKqw2ru22elTdWuVA5IiMc,154
13
- investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py,sha256=DII_zHrL-IaxyfmbKDWMnmlEr0AbFGuhUkv5qHuqlsQ,451
14
- investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py,sha256=2DF3EKmvVe04wrOuilRppNDyJFC8GmdOdeqc4DZP6h8,1062
15
- investing_algorithm_framework/app/web/__init__.py,sha256=vtmNhjqhbO69A51H-Gwgrr6-M_aErO4EOFjPbCM5Wzg,134
16
- investing_algorithm_framework/app/web/create_app.py,sha256=cyCvTSuM7FtUQNc3xnBH459qJUZKXWNd3QVhKRaPYIw,506
17
- investing_algorithm_framework/app/web/error_handler.py,sha256=cDvJn8r9ShIEqnAsaPBVRymow_sZ3Xcpc3DUXtTbd34,2020
18
- investing_algorithm_framework/app/web/responses.py,sha256=xbipQc0vcXHK6ouinsPdDHMHTxeLPebg-8uyeCG7zxQ,585
19
- investing_algorithm_framework/app/web/run_strategies.py,sha256=H3EHtFORA9MX3CYc7F0csCY2dTEt48FCRP5Wp-1V28U,158
20
- investing_algorithm_framework/app/web/setup_cors.py,sha256=ASCon0U0d7cedI-s37fdztDJozVvbNiYWYDLTHDydv8,80
21
- investing_algorithm_framework/app/web/controllers/__init__.py,sha256=AL_uNAf1OhjfWeHqd4t24TiNfkTk-m28aWmxyxpRiVY,587
22
- investing_algorithm_framework/app/web/controllers/orders.py,sha256=6g3Lkwimz82gEaD7C6Ewdjpeu7pIcLmUbux84drISLY,693
23
- investing_algorithm_framework/app/web/controllers/portfolio.py,sha256=oS9NTgZR_JmEcxfcRJ4EmKe85xcx9ucdzl8tDM5UmRs,727
24
- investing_algorithm_framework/app/web/controllers/positions.py,sha256=oy5Kw_m3mnRfTZxZwRQBGgInfn5Xx34iiA7pwu9lrnA,617
25
- investing_algorithm_framework/app/web/schemas/__init__.py,sha256=pSkgN5AGiW48BD0vaQDdQQ6N90ryxGIimgEYJ-elSGY,361
26
- investing_algorithm_framework/app/web/schemas/order.py,sha256=MwDJ-5vWwBEr21JqL-WuZfttAhyFP7_8qp5QMYiCyco,442
27
- investing_algorithm_framework/app/web/schemas/portfolio.py,sha256=COXC_kpBUgPOBWy5ENtcfEs5U7lVrN8zxQYBqH9trfo,743
28
- investing_algorithm_framework/app/web/schemas/position.py,sha256=kTF0J4SyZPmFSPFhq-LyfiVJf7EyehAL85COy__rfag,437
29
- investing_algorithm_framework/domain/__init__.py,sha256=Ez2_59mOtuHRd9gfGv8i88_LxHxRN_mpnasclaoAhlk,2714
30
- investing_algorithm_framework/domain/config.py,sha256=HS8Gic-1r_C6mgDxYC4ObtLw7ZgfXKsE8f8nV3U_9Gk,4834
31
- investing_algorithm_framework/domain/constants.py,sha256=SnV2TG3wllazvzyN_MiIhX80tDPcfzP74FUopoQZT9U,1969
32
- investing_algorithm_framework/domain/decimal_parsing.py,sha256=NtMNkxZyWrFHxGKd6gLIDmWF88BYcTl8tYaAaKO1tlg,823
33
- investing_algorithm_framework/domain/exceptions.py,sha256=3Er4UFN5oSUrJUbgEmcaZGtYJwW5WPbxWzT3BrZNHZk,1628
34
- investing_algorithm_framework/domain/singleton.py,sha256=lgWZOWFBU4WlIe-h6p_MHd2MNOQSICtFR9HvdtVNqbQ,258
35
- investing_algorithm_framework/domain/stateless_actions.py,sha256=DHhuI_3oL6JqWWucsZNvB3a9vFthZAk20Rg89_lc9o8,156
36
- investing_algorithm_framework/domain/strategy.py,sha256=bLiMll_hoOjCjgeSnTN5a9sriPgL8N4qULqDxD9zsQk,1805
37
- investing_algorithm_framework/domain/models/__init__.py,sha256=MTVYCOZJYttXYUo4nmXFwyWKFEpzE74w28ofGWBQK5A,1048
38
- investing_algorithm_framework/domain/models/backtest_profile.py,sha256=F_n1jJBOx9edyrKig0oH3gMgo-a3mzVZJ-xu2IuqZW8,10901
39
- investing_algorithm_framework/domain/models/base_model.py,sha256=1_DMaDR13gc6l5yWpMgKaAK7OJstc4lmvZV5DhwYM6o,659
40
- investing_algorithm_framework/domain/models/strategy_profile.py,sha256=Fcaw-Wq6Fkpwn-ehXYfb_cf0Gr8sh2z6RMIXHc8jt5c,4300
41
- investing_algorithm_framework/domain/models/time_frame.py,sha256=BG3NGM642ud83Do-57QqXJuOe3C2MdiR_dJTsM9Pghw,4983
42
- investing_algorithm_framework/domain/models/time_interval.py,sha256=PyA0JeGgV51kf0sZ1yeQ52BCLsrJqlqD1FxGm53qioY,2798
43
- investing_algorithm_framework/domain/models/time_unit.py,sha256=r_K1aOmak5Z9UtZ-TTjGPWct1KOdR6SdRiD0IaqkqBI,2011
44
- investing_algorithm_framework/domain/models/trade.py,sha256=q44bP0D1s0mNe3-v4wNlyEm4xrtF4G2ia_BTpCObXDQ,1861
45
- investing_algorithm_framework/domain/models/trading_data_types.py,sha256=sVk8ATXllJDIvRluqm08O_UkgDzCJO6l02k0C-kJwyg,1119
46
- investing_algorithm_framework/domain/models/trading_time_frame.py,sha256=KLsS07-AB5UyGoaU5ZEfGnVox1jWxkurm43q5w9I5C8,6790
47
- investing_algorithm_framework/domain/models/market_data/__init__.py,sha256=C3OgowzLywEUq1eLnAx3NhNm4Ny90LWt759Bod362O4,198
48
- investing_algorithm_framework/domain/models/market_data/asset_price.py,sha256=f_nc1AziLKbaH952rVbJwiaGEN9eMnKMPPkcvOPE1g0,1137
49
- investing_algorithm_framework/domain/models/market_data/ohlcv.py,sha256=Px7b6EZoCD_4Qk6LUTUGB4IrGD_ycTGnzswqyGSfHWE,2791
50
- investing_algorithm_framework/domain/models/market_data/order_book.py,sha256=Iwke0TSWKcFr9yOx414LaoRqzzpU4pzmfFfOQGUQvHg,1465
51
- investing_algorithm_framework/domain/models/market_data/ticker.py,sha256=CQgDXQ5N9JPHKUaLRUVST-MGK5-vmDMg8EI1ReqPCUQ,2560
52
- investing_algorithm_framework/domain/models/order/__init__.py,sha256=473g7Ist0MXuQzZ2pcm4DJjm5SIH4_GGr_GOKKNicYM,237
53
- investing_algorithm_framework/domain/models/order/order.py,sha256=Y4yUimgtdbeJ19M5N9ZIouz5TpH703QGklMWoB5zGGY,7254
54
- investing_algorithm_framework/domain/models/order/order_fee.py,sha256=XXGZujbvTKOd4JxDWw1aWWtcRGMAPgbDmWyWP4B9bKU,1055
55
- investing_algorithm_framework/domain/models/order/order_side.py,sha256=lMSTM8rb_Q3qgApryI0RXKiAAeGKDDlyu3q9bbuAQ-w,814
56
- investing_algorithm_framework/domain/models/order/order_status.py,sha256=7BpFOcJ1NEeOZfolmE32mHRrI_afkBUBLR2gh-aGfA0,937
57
- investing_algorithm_framework/domain/models/order/order_type.py,sha256=xL8YVlcwCNKv44MRNAwSVs_ZGemfMSYYwxkNMp7ai-M,751
58
- investing_algorithm_framework/domain/models/portfolio/__init__.py,sha256=Zvq5173xjMYvgV9a0mmTFDC-iC5iBaytzc7wmZsT77o,215
59
- investing_algorithm_framework/domain/models/portfolio/portfolio.py,sha256=VrpjGxcHpe4WlsjFBQ8rUWM4Yf2yWlQ6It6AAgo36fY,1925
60
- investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py,sha256=5n9h2qhCQvOuQboGEMW9TdbD8xpuCPoJtmmN39jeJn0,2563
61
- investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py,sha256=8eDg4HSGuhAve1cslNxvRZqra8Kw8Psl6lkEJ9EQYlU,3141
62
- investing_algorithm_framework/domain/models/position/__init__.py,sha256=Iv4-DUwgwf521P5qCu6R3WSVZxPeEtGoHP8WsS3qNUU,123
63
- investing_algorithm_framework/domain/models/position/position.py,sha256=2OWzCvGUnPfAwp8eFu4onyCp1IrvvpyXQ6Z8uZrIqpU,1052
64
- investing_algorithm_framework/domain/models/position/position_snapshot.py,sha256=K1tivcbDCCx3ZL1Juk_KOhFTtlzg5SR72qrQ-RjbOLQ,1226
65
- investing_algorithm_framework/domain/utils/__init__.py,sha256=Wxe-t7cFTlk1s8HP_HcmoGbiQh8xADP-YRSO7F3Rxy4,505
66
- investing_algorithm_framework/domain/utils/backtesting.py,sha256=Bz4y2dElqrSr2mryIjJLuKqcRiJ2Xy4FMeyfHzZjsis,4032
67
- investing_algorithm_framework/domain/utils/csv.py,sha256=LFjywiY1booSgcCHoATJUYuMJ5myQSoxJTV2tgY5eTs,2218
68
- investing_algorithm_framework/domain/utils/random.py,sha256=vnebSD_MeZfn-tRRzJ1SIe4ChHAZWbk4HhHPlWvEeLI,275
69
- investing_algorithm_framework/domain/utils/signatures.py,sha256=MO2hCrrnQjbsT6guX4AdeJfcAP55pRXtjJ73uX1cjaI,417
70
- investing_algorithm_framework/domain/utils/stoppable_thread.py,sha256=z3-OGZ-wrygfYn4zhB3COHdB43qQYa65TeShyVokSp0,608
71
- investing_algorithm_framework/domain/utils/synchronized.py,sha256=YjvutHxMh5r1WEpOYPAXm7_xHRaDzj5YTj7HqfKqJm0,253
72
- investing_algorithm_framework/infrastructure/__init__.py,sha256=H8VI8XCCcKmTLGs7TWFpUTXVoUj77AP7onXZGizgDiE,828
73
- investing_algorithm_framework/infrastructure/database/__init__.py,sha256=6t-_-w0RuQLRkbUIN1lL0N4MzJePmcjRuV96Kzo3_n4,176
74
- investing_algorithm_framework/infrastructure/database/sql_alchemy.py,sha256=0-U82pBl59UP1-a3gYq169T94gwMtutmZu2V3uzx0jM,1386
75
- investing_algorithm_framework/infrastructure/models/__init__.py,sha256=aBC-HuMjCUvGKuqjV0TK6LF7zDR1jeQO-Q1GaSo-8yg,297
76
- investing_algorithm_framework/infrastructure/models/decimal_parser.py,sha256=s19k4gUh5qhZg-PcPzGFKqQ8xK4Z9OtefnTT2YgRojY,327
77
- investing_algorithm_framework/infrastructure/models/model_extension.py,sha256=EiSSs-Jq27gBhLnlIKvEjDoJz7iMPFxkFBg5cesU694,142
78
- investing_algorithm_framework/infrastructure/models/order/__init__.py,sha256=DcXSxZIpiyJjVxjL9T9a3zzTskaACvBuTP8mBhz5QXM,102
79
- investing_algorithm_framework/infrastructure/models/order/order.py,sha256=mYvS9DHog2WbpgNL1K9jtVfbsY3Biojo05-P_w5y8fk,4848
80
- investing_algorithm_framework/infrastructure/models/order/order_fee.py,sha256=ZyEAuPU-cQebBgy4RheX7PXWA9xhnF33GSPW8oPetYs,847
81
- investing_algorithm_framework/infrastructure/models/portfolio/__init__.py,sha256=Eth4uKjIerR99GnjTXihxJzFsudxVcHdO4M_v6TgE7M,141
82
- investing_algorithm_framework/infrastructure/models/portfolio/portfolio.py,sha256=XrDZopqpAW9G-XsSgLBCrzsoI8J5g0FAbf7HWmQkMXw,3227
83
- investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py,sha256=t734n-VNCF9L5An1G0JaFavhFmkC2GJ8tHu4FNW-raI,1240
84
- investing_algorithm_framework/infrastructure/models/position/__init__.py,sha256=nNEWciIXWZyFIYZVEkAGB21Kf9QXkWzcdcL4uKiHjFo,135
85
- investing_algorithm_framework/infrastructure/models/position/position.py,sha256=CmSX7KNKJ0vkJ8Z7eq2DzARCdPGYGHH6sChJ0aS2nfM,1898
86
- investing_algorithm_framework/infrastructure/models/position/position_snapshot.py,sha256=lLfgi_Dq24w3AZwDjkk2akXJ5QJVMJDmstmAQszEm2Y,828
87
- investing_algorithm_framework/infrastructure/repositories/__init__.py,sha256=dDt_Qzoz68fvETRJLerX7vJc4ubHodLe88DQmk6Xm8I,567
88
- investing_algorithm_framework/infrastructure/repositories/order_fee_repository.py,sha256=6AXHsXxlZgxtVpTKNRcMh9IR06o05rQapCsBBptEMVI,487
89
- investing_algorithm_framework/infrastructure/repositories/order_repository.py,sha256=bKxYM-KBesbzTcUZDQzJudZA79zsLPQ5ZtIkCdUBqmY,3117
90
- investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py,sha256=P1PuJyxjiNEKN4co-zogkCX2aH05wWPPP1nA6SCbDDQ,1073
91
- investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py,sha256=K24hMQQpryLnnKE5YPqLBuj5cMaLdAr-O6vS6wdwECU,1967
92
- investing_algorithm_framework/infrastructure/repositories/position_repository.py,sha256=7pbk-sul_M1Rv535NOhNaWbp9lAGz8jv4oUKm623IW8,1994
93
- investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py,sha256=GT1TkoHdy1L7ZNspDsMqWY8R2tjINz7XBYunuebzLAg,680
94
- investing_algorithm_framework/infrastructure/repositories/repository.py,sha256=ryb7BdNjxgG8kmUSMZedsgyOgNrICQQw3va8HTvhRyI,7611
95
- investing_algorithm_framework/infrastructure/services/__init__.py,sha256=ZogZTK4vObUMWNdjJNeUGvvVaXNybFlE6gny0x9R8wA,229
96
- investing_algorithm_framework/infrastructure/services/market_backtest_service.py,sha256=VEBzYjgt0YX9nGpGpoxo0RkYfX3ONLJiKQZdGOPDSj0,12556
97
- investing_algorithm_framework/infrastructure/services/market_service.py,sha256=gVwf_OZCTMDgAUs2X4UGbubxtO9Y04p9gCkiXkCMNVM,13245
98
- investing_algorithm_framework/infrastructure/services/performance_backtest_service.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
- investing_algorithm_framework/infrastructure/services/performance_service.py,sha256=MFHZh_D3Sb2_J2qUBpByZYD3I3p2AsnquSgBqyYTfk4,6515
100
- investing_algorithm_framework/services/__init__.py,sha256=PYZtN_lnMG1OlG9zXmz6HAxb81iTAKC7zd0w5xtTV5c,1015
101
- investing_algorithm_framework/services/backtest_service.py,sha256=JWNDL6gaP222ChyO_qDCE5m_dj4q7Hsd-kKeyiqxK6A,10424
102
- investing_algorithm_framework/services/configuration_service.py,sha256=ebSZAVETJ3VPTyB7ya1-ymrc88bJZAe8WBm-tcyOkx8,624
103
- investing_algorithm_framework/services/market_data_service.py,sha256=zv9-CbgaI7jlhR9fV28QnlGOlUJ92mZqt6X6tkipe28,3227
104
- investing_algorithm_framework/services/order_backtest_service.py,sha256=8mW7KQv-qeKCesVGez8tWI7f41RmcahFjrxjRY6FLtE,4129
105
- investing_algorithm_framework/services/order_service.py,sha256=Qg1sh9Ut27KWjv-td6ZUp04x7claFZ22vGP8onFaOlk,27279
106
- investing_algorithm_framework/services/portfolio_configuration_service.py,sha256=YEwnkSim_1Bekms8uWWz6att1UVC84RDiY7CUw5JGFU,2080
107
- investing_algorithm_framework/services/portfolio_service.py,sha256=Sh38xQS4dPP2JFx12UBgDXOKxyH6JDSVpEBye0NrdAI,6407
108
- investing_algorithm_framework/services/portfolio_snapshot_service.py,sha256=SGuse-suwvdxtxob7B9kXwwxU5jX3eOB2NnSbyrdzJE,2057
109
- investing_algorithm_framework/services/position_cost_service.py,sha256=39K7iKBpTEd8qQmu5rfH6sAJ7yY8QIZLE0lMor5xtX0,106
110
- investing_algorithm_framework/services/position_service.py,sha256=XJ3wy2BDKCG4ObeK2s0tDIDk4xQIJm4gEnXeVjv1wMg,2218
111
- investing_algorithm_framework/services/position_snapshot_service.py,sha256=QPY0xp3ky5rJgGev3PBpIalvS2xKlRLGXr-3TyA2zng,525
112
- investing_algorithm_framework/services/repository_service.py,sha256=1GTnWHImgQyyVpPyX6-yo1T7d-09v4uRWBtfKbZfoFY,995
113
- investing_algorithm_framework/services/strategy_orchestrator_service.py,sha256=U3Dry3SasMpwrju0Ev9JSBvKb89wlUyJcEJ-kkRRpeA,6650
114
- investing_algorithm_framework-1.5.dist-info/AUTHORS.md,sha256=5yBZo-DuyPB4nCZPgy1T-6UgVoO92kIjkWtv_VYXcAA,384
115
- investing_algorithm_framework-1.5.dist-info/LICENSE,sha256=wbVEDvoZiMPHufRY3sLEffvAr7GH5hOIngHF8y4HFQg,11343
116
- investing_algorithm_framework-1.5.dist-info/METADATA,sha256=3-uyTGh1_NjSOFSosPhJFcLnJ2CjSkM7-G3gcWSvtdY,9587
117
- investing_algorithm_framework-1.5.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
118
- investing_algorithm_framework-1.5.dist-info/top_level.txt,sha256=N9rTKI8USefEkkzQTIXhpZ8ldP8O8pCpOaDXcf5YSEA,30
119
- investing_algorithm_framework-1.5.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- investing_algorithm_framework