bquant 0.0.0__tar.gz → 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. {bquant-0.0.0 → bquant-0.0.1}/CHANGELOG.md +105 -96
  2. {bquant-0.0.0 → bquant-0.0.1}/LICENSE +21 -21
  3. {bquant-0.0.0 → bquant-0.0.1}/MANIFEST.in +49 -49
  4. bquant-0.0.1/PKG-INFO +235 -0
  5. bquant-0.0.1/README.md +172 -0
  6. {bquant-0.0.0 → bquant-0.0.1}/bquant/__init__.py +31 -31
  7. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/__init__.py +312 -296
  8. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/candlestick/__init__.py +100 -100
  9. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/chart/__init__.py +98 -98
  10. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/statistical/__init__.py +433 -414
  11. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/statistical/hypothesis_testing.py +1106 -657
  12. bquant-0.0.1/bquant/analysis/statistical/regression.py +384 -0
  13. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/technical/__init__.py +98 -98
  14. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/timeseries/__init__.py +102 -102
  15. bquant-0.0.1/bquant/analysis/validation/__init__.py +20 -0
  16. bquant-0.0.1/bquant/analysis/validation/suite.py +643 -0
  17. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/zones/__init__.py +659 -547
  18. bquant-0.0.1/bquant/analysis/zones/analyzer.py +260 -0
  19. bquant-0.0.1/bquant/analysis/zones/cache.py +161 -0
  20. bquant-0.0.1/bquant/analysis/zones/detection/__init__.py +69 -0
  21. bquant-0.0.1/bquant/analysis/zones/detection/base.py +164 -0
  22. bquant-0.0.1/bquant/analysis/zones/detection/combined.py +160 -0
  23. bquant-0.0.1/bquant/analysis/zones/detection/line_crossing.py +136 -0
  24. bquant-0.0.1/bquant/analysis/zones/detection/preloaded.py +205 -0
  25. bquant-0.0.1/bquant/analysis/zones/detection/registry.py +149 -0
  26. bquant-0.0.1/bquant/analysis/zones/detection/threshold.py +148 -0
  27. bquant-0.0.1/bquant/analysis/zones/detection/zero_crossing.py +167 -0
  28. bquant-0.0.1/bquant/analysis/zones/models.py +648 -0
  29. bquant-0.0.1/bquant/analysis/zones/pipeline.py +763 -0
  30. bquant-0.0.1/bquant/analysis/zones/presets.py +315 -0
  31. {bquant-0.0.0 → bquant-0.0.1}/bquant/analysis/zones/sequence_analysis.py +661 -661
  32. bquant-0.0.1/bquant/analysis/zones/strategies/__init__.py +57 -0
  33. bquant-0.0.1/bquant/analysis/zones/strategies/base.py +539 -0
  34. bquant-0.0.1/bquant/analysis/zones/strategies/divergence/__init__.py +10 -0
  35. bquant-0.0.1/bquant/analysis/zones/strategies/divergence/classic.py +448 -0
  36. bquant-0.0.1/bquant/analysis/zones/strategies/registry.py +286 -0
  37. bquant-0.0.1/bquant/analysis/zones/strategies/shape/__init__.py +8 -0
  38. bquant-0.0.1/bquant/analysis/zones/strategies/shape/statistical.py +204 -0
  39. bquant-0.0.1/bquant/analysis/zones/strategies/swing/__init__.py +14 -0
  40. bquant-0.0.1/bquant/analysis/zones/strategies/swing/find_peaks.py +450 -0
  41. bquant-0.0.1/bquant/analysis/zones/strategies/swing/pivot_points.py +465 -0
  42. bquant-0.0.1/bquant/analysis/zones/strategies/swing/thresholds.py +153 -0
  43. bquant-0.0.1/bquant/analysis/zones/strategies/swing/zigzag.py +452 -0
  44. bquant-0.0.1/bquant/analysis/zones/strategies/volatility/__init__.py +11 -0
  45. bquant-0.0.1/bquant/analysis/zones/strategies/volatility/combined.py +308 -0
  46. bquant-0.0.1/bquant/analysis/zones/strategies/volume/__init__.py +10 -0
  47. bquant-0.0.1/bquant/analysis/zones/strategies/volume/standard.py +185 -0
  48. bquant-0.0.1/bquant/analysis/zones/zone_features.py +916 -0
  49. {bquant-0.0.0 → bquant-0.0.1}/bquant/cli.py +198 -160
  50. {bquant-0.0.0 → bquant-0.0.1}/bquant/core/__init__.py +119 -112
  51. {bquant-0.0.0 → bquant-0.0.1}/bquant/core/cache.py +534 -534
  52. bquant-0.0.1/bquant/core/config.py +800 -0
  53. {bquant-0.0.0 → bquant-0.0.1}/bquant/core/exceptions.py +351 -351
  54. bquant-0.0.1/bquant/core/logging_config.py +748 -0
  55. bquant-0.0.1/bquant/core/nb.py +450 -0
  56. {bquant-0.0.0 → bquant-0.0.1}/bquant/core/numpy_fix.py +99 -99
  57. {bquant-0.0.0 → bquant-0.0.1}/bquant/core/performance.py +554 -554
  58. {bquant-0.0.0 → bquant-0.0.1}/bquant/core/utils.py +364 -327
  59. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/__init__.py +85 -85
  60. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/loader.py +608 -436
  61. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/processor.py +644 -644
  62. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/samples/__init__.py +10 -0
  63. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/samples/embedded/__init__.py +16 -16
  64. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/samples/embedded/mt_xauusd_m15.py +9018 -9018
  65. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/samples/embedded/tv_xauusd_1h.py +17018 -17018
  66. bquant-0.0.1/bquant/data/samples/generator.py +407 -0
  67. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/samples/utils.py +12 -1
  68. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/schemas.py +285 -285
  69. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/validator.py +498 -498
  70. bquant-0.0.1/bquant/indicators/__init__.py +148 -0
  71. bquant-0.0.1/bquant/indicators/base.py +1011 -0
  72. bquant-0.0.0/bquant/indicators/base.py → bquant-0.0.1/bquant/indicators/base_old.py +664 -487
  73. {bquant-0.0.0 → bquant-0.0.1}/bquant/indicators/calculators.py +456 -404
  74. bquant-0.0.1/bquant/indicators/custom/__init__.py +79 -0
  75. bquant-0.0.1/bquant/indicators/custom/bollinger.py +159 -0
  76. bquant-0.0.1/bquant/indicators/custom/ema.py +131 -0
  77. bquant-0.0.1/bquant/indicators/custom/macd.py +178 -0
  78. bquant-0.0.1/bquant/indicators/custom/rsi.py +149 -0
  79. bquant-0.0.1/bquant/indicators/custom/sma.py +131 -0
  80. bquant-0.0.1/bquant/indicators/library/__init__.py +33 -0
  81. bquant-0.0.1/bquant/indicators/library/manager.py +276 -0
  82. bquant-0.0.1/bquant/indicators/library/pandas_ta.py +442 -0
  83. bquant-0.0.1/bquant/indicators/library/talib.py +447 -0
  84. {bquant-0.0.0 → bquant-0.0.1}/bquant/indicators/library.py +514 -514
  85. bquant-0.0.1/bquant/indicators/macd.py +253 -0
  86. bquant-0.0.1/bquant/indicators/preloaded/__init__.py +31 -0
  87. bquant-0.0.1/bquant/indicators/preloaded/macd.py +467 -0
  88. {bquant-0.0.0 → bquant-0.0.1}/bquant/ml/__init__.py +19 -19
  89. {bquant-0.0.0 → bquant-0.0.1}/bquant/visualization/__init__.py +395 -315
  90. {bquant-0.0.0 → bquant-0.0.1}/bquant/visualization/charts.py +632 -616
  91. bquant-0.0.1/bquant/visualization/export.py +99 -0
  92. {bquant-0.0.0 → bquant-0.0.1}/bquant/visualization/statistical.py +887 -812
  93. {bquant-0.0.0 → bquant-0.0.1}/bquant/visualization/themes.py +609 -599
  94. bquant-0.0.1/bquant/visualization/utils.py +41 -0
  95. bquant-0.0.1/bquant/visualization/zones.py +3428 -0
  96. bquant-0.0.1/bquant.egg-info/PKG-INFO +235 -0
  97. bquant-0.0.1/bquant.egg-info/SOURCES.txt +403 -0
  98. bquant-0.0.1/bquant.egg-info/requires.txt +44 -0
  99. bquant-0.0.1/docs/BUILD_ISSUES.md +260 -0
  100. bquant-0.0.1/docs/README.md +55 -0
  101. bquant-0.0.1/docs/_build/html/_sources/analytics/zones/macd_zone_consistency_case_study.md.txt +35 -0
  102. bquant-0.0.1/docs/_build/html/_sources/analytics/zones/swing.md.txt +64 -0
  103. bquant-0.0.1/docs/_build/html/_sources/analytics/zones/swing_strategy_comparison_case_study.md.txt +31 -0
  104. bquant-0.0.1/docs/_build/html/_sources/api/README.md.txt +267 -0
  105. bquant-0.0.1/docs/_build/html/_sources/api/analysis/README.md.txt +412 -0
  106. bquant-0.0.1/docs/_build/html/_sources/api/analysis/base.md.txt +46 -0
  107. bquant-0.0.1/docs/_build/html/_sources/api/analysis/pipeline.md.txt +375 -0
  108. bquant-0.0.1/docs/_build/html/_sources/api/analysis/statistical.md.txt +379 -0
  109. bquant-0.0.1/docs/_build/html/_sources/api/analysis/strategies.md.txt +833 -0
  110. bquant-0.0.1/docs/_build/html/_sources/api/analysis/zones/models.md.txt +79 -0
  111. bquant-0.0.1/docs/_build/html/_sources/api/analysis/zones/pipeline.md.txt +85 -0
  112. bquant-0.0.1/docs/_build/html/_sources/api/analysis/zones/strategies.md.txt +60 -0
  113. bquant-0.0.1/docs/_build/html/_sources/api/analysis/zones.md.txt +436 -0
  114. bquant-0.0.1/docs/_build/html/_sources/api/core/README.md.txt +206 -0
  115. bquant-0.0.1/docs/_build/html/_sources/api/core/config.md.txt +221 -0
  116. bquant-0.0.1/docs/_build/html/_sources/api/core/exceptions.md.txt +56 -0
  117. bquant-0.0.1/docs/_build/html/_sources/api/core/logging.md.txt +502 -0
  118. bquant-0.0.1/docs/_build/html/_sources/api/core/nb.md.txt +380 -0
  119. bquant-0.0.1/docs/_build/html/_sources/api/core/performance.md.txt +66 -0
  120. bquant-0.0.1/docs/_build/html/_sources/api/core/utils.md.txt +110 -0
  121. bquant-0.0.1/docs/_build/html/_sources/api/data/README.md.txt +226 -0
  122. bquant-0.0.1/docs/_build/html/_sources/api/data/loader.md.txt +80 -0
  123. bquant-0.0.1/docs/_build/html/_sources/api/data/processor.md.txt +42 -0
  124. bquant-0.0.1/docs/_build/html/_sources/api/data/samples.md.txt +285 -0
  125. bquant-0.0.1/docs/_build/html/_sources/api/data/schemas.md.txt +38 -0
  126. bquant-0.0.1/docs/_build/html/_sources/api/data/validator.md.txt +63 -0
  127. bquant-0.0.1/docs/_build/html/_sources/api/extension_guide.md.txt +1238 -0
  128. bquant-0.0.1/docs/_build/html/_sources/api/indicators/README.md.txt +500 -0
  129. bquant-0.0.1/docs/_build/html/_sources/api/indicators/base.md.txt +150 -0
  130. bquant-0.0.1/docs/_build/html/_sources/api/indicators/factory.md.txt +77 -0
  131. bquant-0.0.1/docs/_build/html/_sources/api/indicators/library_manager.md.txt +80 -0
  132. bquant-0.0.1/docs/_build/html/_sources/api/indicators/macd.md.txt +245 -0
  133. bquant-0.0.1/docs/_build/html/_sources/api/indicators/preloaded.md.txt +357 -0
  134. bquant-0.0.1/docs/_build/html/_sources/api/visualization/README.md.txt +566 -0
  135. bquant-0.0.1/docs/_build/html/_sources/api/visualization/zones.md.txt +481 -0
  136. bquant-0.0.1/docs/_build/html/_sources/developer_guide/README.md.txt +716 -0
  137. bquant-0.0.1/docs/_build/html/_sources/developer_guide/analytical_philosophy.md.txt +55 -0
  138. bquant-0.0.1/docs/_build/html/_sources/developer_guide/statistical_analysis_workflow.md.txt +69 -0
  139. bquant-0.0.1/docs/_build/html/_sources/developer_guide/zone_analyzer_deep_dive.md.txt +153 -0
  140. bquant-0.0.1/docs/_build/html/_sources/developer_guide/zone_detection_strategies.md.txt +225 -0
  141. bquant-0.0.1/docs/_build/html/_sources/examples/README.md.txt +375 -0
  142. bquant-0.0.1/docs/_build/html/_sources/index.rst.txt +158 -0
  143. bquant-0.0.1/docs/_build/html/_sources/migration/MIGRATION_v2.md.txt +84 -0
  144. bquant-0.0.1/docs/_build/html/_sources/migration/global_swings_migration.md.txt +74 -0
  145. bquant-0.0.1/docs/_build/html/_sources/tutorials/README.md.txt +149 -0
  146. bquant-0.0.1/docs/_build/html/_sources/tutorials/combined_rules_detection.md.txt +101 -0
  147. bquant-0.0.1/docs/_build/html/_sources/tutorials/macd_basic_pipeline.md.txt +87 -0
  148. bquant-0.0.1/docs/_build/html/_sources/tutorials/preloaded_zones_workflow.md.txt +107 -0
  149. bquant-0.0.1/docs/_build/html/_sources/tutorials/rsi_strategy_switching.md.txt +93 -0
  150. bquant-0.0.1/docs/_build/html/_sources/user_guide/README.md.txt +128 -0
  151. bquant-0.0.1/docs/_build/html/_sources/user_guide/best_practices.md.txt +131 -0
  152. bquant-0.0.1/docs/_build/html/_sources/user_guide/core_concepts.md.txt +92 -0
  153. bquant-0.0.1/docs/_build/html/_sources/user_guide/quick_start.md.txt +263 -0
  154. bquant-0.0.1/docs/_build/html/_sources/user_guide/swing_analysis_results.md.txt +340 -0
  155. bquant-0.0.1/docs/_build/html/_sources/user_guide/swing_strategies.md.txt +139 -0
  156. bquant-0.0.1/docs/_build/html/_sources/user_guide/zone_analysis.md.txt +673 -0
  157. bquant-0.0.1/docs/analytics/zones/macd_zone_consistency_case_study.md +35 -0
  158. bquant-0.0.1/docs/analytics/zones/swing.md +64 -0
  159. bquant-0.0.1/docs/analytics/zones/swing_strategy_comparison_case_study.md +31 -0
  160. bquant-0.0.1/docs/api/README.md +267 -0
  161. bquant-0.0.1/docs/api/analysis/README.md +412 -0
  162. bquant-0.0.1/docs/api/analysis/base.md +46 -0
  163. bquant-0.0.1/docs/api/analysis/pipeline.md +375 -0
  164. bquant-0.0.1/docs/api/analysis/statistical.md +379 -0
  165. bquant-0.0.1/docs/api/analysis/strategies.md +833 -0
  166. bquant-0.0.1/docs/api/analysis/zones/models.md +79 -0
  167. bquant-0.0.1/docs/api/analysis/zones/pipeline.md +85 -0
  168. bquant-0.0.1/docs/api/analysis/zones/strategies.md +60 -0
  169. bquant-0.0.1/docs/api/analysis/zones.md +436 -0
  170. {bquant-0.0.0 → bquant-0.0.1}/docs/api/core/README.md +206 -183
  171. bquant-0.0.1/docs/api/core/config.md +221 -0
  172. bquant-0.0.1/docs/api/core/exceptions.md +56 -0
  173. bquant-0.0.1/docs/api/core/logging.md +502 -0
  174. bquant-0.0.1/docs/api/core/nb.md +380 -0
  175. bquant-0.0.1/docs/api/core/performance.md +66 -0
  176. bquant-0.0.1/docs/api/core/utils.md +110 -0
  177. bquant-0.0.1/docs/api/data/README.md +226 -0
  178. bquant-0.0.1/docs/api/data/loader.md +80 -0
  179. bquant-0.0.1/docs/api/data/processor.md +42 -0
  180. bquant-0.0.1/docs/api/data/samples.md +285 -0
  181. bquant-0.0.1/docs/api/data/schemas.md +38 -0
  182. bquant-0.0.1/docs/api/data/validator.md +63 -0
  183. bquant-0.0.1/docs/api/extension_guide.md +1238 -0
  184. bquant-0.0.1/docs/api/indicators/README.md +500 -0
  185. bquant-0.0.1/docs/api/indicators/base.md +150 -0
  186. bquant-0.0.1/docs/api/indicators/factory.md +77 -0
  187. bquant-0.0.1/docs/api/indicators/library_manager.md +80 -0
  188. bquant-0.0.1/docs/api/indicators/macd.md +245 -0
  189. bquant-0.0.1/docs/api/indicators/preloaded.md +357 -0
  190. {bquant-0.0.0 → bquant-0.0.1}/docs/api/visualization/README.md +566 -490
  191. bquant-0.0.1/docs/api/visualization/zones.md +481 -0
  192. bquant-0.0.1/docs/developer_guide/README.md +716 -0
  193. bquant-0.0.1/docs/developer_guide/analytical_philosophy.md +55 -0
  194. bquant-0.0.1/docs/developer_guide/statistical_analysis_workflow.md +69 -0
  195. bquant-0.0.1/docs/developer_guide/zone_analyzer_deep_dive.md +153 -0
  196. bquant-0.0.1/docs/developer_guide/zone_detection_strategies.md +225 -0
  197. bquant-0.0.1/docs/examples/README.md +375 -0
  198. {bquant-0.0.0 → bquant-0.0.1}/docs/index.rst +158 -93
  199. bquant-0.0.1/docs/migration/MIGRATION_v2.md +84 -0
  200. bquant-0.0.1/docs/migration/global_swings_migration.md +74 -0
  201. bquant-0.0.1/docs/tutorials/README.md +149 -0
  202. bquant-0.0.1/docs/tutorials/combined_rules_detection.md +101 -0
  203. bquant-0.0.1/docs/tutorials/macd_basic_pipeline.md +87 -0
  204. bquant-0.0.1/docs/tutorials/preloaded_zones_workflow.md +107 -0
  205. bquant-0.0.1/docs/tutorials/rsi_strategy_switching.md +93 -0
  206. bquant-0.0.1/docs/user_guide/README.md +128 -0
  207. bquant-0.0.1/docs/user_guide/best_practices.md +131 -0
  208. bquant-0.0.1/docs/user_guide/core_concepts.md +92 -0
  209. bquant-0.0.1/docs/user_guide/quick_start.md +263 -0
  210. bquant-0.0.1/docs/user_guide/swing_analysis_results.md +340 -0
  211. bquant-0.0.1/docs/user_guide/swing_strategies.md +139 -0
  212. bquant-0.0.1/docs/user_guide/zone_analysis.md +673 -0
  213. {bquant-0.0.0 → bquant-0.0.1}/examples/01_basic_indicators.py +314 -297
  214. bquant-0.0.1/examples/02_macd_zone_analysis.py +406 -0
  215. bquant-0.0.1/examples/02a_universal_zones.py +693 -0
  216. {bquant-0.0.0 → bquant-0.0.1}/examples/03_data_processing.py +510 -510
  217. bquant-0.0.1/examples/04_comprehensive_analysis.py +301 -0
  218. bquant-0.0.1/examples/05_strategies_demo.py +401 -0
  219. bquant-0.0.1/examples/06_regression_demo.py +345 -0
  220. bquant-0.0.1/examples/07_validation_demo.py +536 -0
  221. bquant-0.0.1/examples/08_macd_swing_analysis.py +290 -0
  222. bquant-0.0.1/examples/09_zones_visualization_demo.py +616 -0
  223. bquant-0.0.1/examples/README.md +209 -0
  224. bquant-0.0.1/examples/zone_analysis_global_swings.py +205 -0
  225. {bquant-0.0.0 → bquant-0.0.1}/pyproject.toml +136 -125
  226. {bquant-0.0.0 → bquant-0.0.1}/scripts/README.md +65 -65
  227. {bquant-0.0.0 → bquant-0.0.1}/scripts/analysis/README.md +139 -139
  228. {bquant-0.0.0 → bquant-0.0.1}/scripts/analysis/batch_analysis.py +840 -840
  229. {bquant-0.0.0 → bquant-0.0.1}/scripts/analysis/run_macd_analysis.py +566 -566
  230. {bquant-0.0.0 → bquant-0.0.1}/scripts/analysis/test_hypotheses.py +756 -756
  231. bquant-0.0.1/scripts/data/data_loader.py +0 -0
  232. bquant-0.0.1/scripts/data/generate_samples.py +120 -0
  233. {bquant-0.0.0 → bquant-0.0.1}/scripts/data_processing/README.md +120 -120
  234. {bquant-0.0.0 → bquant-0.0.1}/scripts/deployment/README.md +212 -212
  235. {bquant-0.0.0 → bquant-0.0.1}/scripts/publishing/README.md +201 -201
  236. {bquant-0.0.0 → bquant-0.0.1}/setup.cfg +4 -4
  237. bquant-0.0.1/tests/analysis/zones/test_pipeline_cache.py +99 -0
  238. bquant-0.0.1/tests/analysis/zones/test_swing_presets.py +74 -0
  239. bquant-0.0.1/tests/analysis/zones/test_swing_thresholds.py +96 -0
  240. {bquant-0.0.0 → bquant-0.0.1}/tests/conftest.py +245 -231
  241. {bquant-0.0.0 → bquant-0.0.1}/tests/fixtures/__init__.py +267 -267
  242. bquant-0.0.1/tests/fixtures/swing_mocks.py +108 -0
  243. {bquant-0.0.0 → bquant-0.0.1}/tests/integration/__init__.py +17 -17
  244. bquant-0.0.1/tests/integration/test_backward_compatibility.py +228 -0
  245. {bquant-0.0.0 → bquant-0.0.1}/tests/integration/test_data_pipeline.py +171 -171
  246. {bquant-0.0.0 → bquant-0.0.1}/tests/integration/test_full_pipeline.py +421 -421
  247. bquant-0.0.1/tests/integration/test_pipeline_global_swings.py +102 -0
  248. {bquant-0.0.0 → bquant-0.0.1}/tests/integration/test_scripts_integration.py +515 -515
  249. bquant-0.0.1/tests/integration/test_truly_universal_zones.py +462 -0
  250. {bquant-0.0.0 → bquant-0.0.1}/tests/integration/test_visualization_pipeline.py +466 -453
  251. bquant-0.0.1/tests/integration/test_zone_analysis_e2e.py +339 -0
  252. bquant-0.0.1/tests/performance/test_swing_performance.py +115 -0
  253. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/__init__.py +17 -17
  254. bquant-0.0.1/tests/unit/test_all_indicator_types.py +423 -0
  255. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_analysis_structure.py +481 -481
  256. bquant-0.0.1/tests/unit/test_architecture_validation.py +317 -0
  257. bquant-0.0.1/tests/unit/test_builtin_migration.py +284 -0
  258. bquant-0.0.1/tests/unit/test_cache_versioning.py +59 -0
  259. bquant-0.0.1/tests/unit/test_classic_divergence_strategy.py +228 -0
  260. bquant-0.0.1/tests/unit/test_combined_volatility_strategy.py +260 -0
  261. bquant-0.0.1/tests/unit/test_compatibility_validation.py +163 -0
  262. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_core_modules.py +281 -224
  263. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_data_modules.py +307 -307
  264. bquant-0.0.1/tests/unit/test_divergence_strategy_universal.py +235 -0
  265. bquant-0.0.1/tests/unit/test_find_peaks_swing_strategy.py +152 -0
  266. bquant-0.0.1/tests/unit/test_imports_migration.py +184 -0
  267. bquant-0.0.1/tests/unit/test_indicator_factory.py +244 -0
  268. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_indicators_base.py +345 -340
  269. bquant-0.0.1/tests/unit/test_library_indicators.py +201 -0
  270. bquant-0.0.1/tests/unit/test_macd_analyzer.py +704 -0
  271. bquant-0.0.1/tests/unit/test_macd_backward_compatibility.py +255 -0
  272. bquant-0.0.1/tests/unit/test_pandas_ta_dynamic_loader.py +147 -0
  273. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_performance.py +594 -584
  274. bquant-0.0.1/tests/unit/test_pivot_points_swing_strategy.py +93 -0
  275. bquant-0.0.1/tests/unit/test_preloaded_indicators.py +128 -0
  276. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_sample_data.py +7 -12
  277. bquant-0.0.1/tests/unit/test_sample_generator.py +200 -0
  278. bquant-0.0.1/tests/unit/test_shape_strategy_universal.py +171 -0
  279. bquant-0.0.1/tests/unit/test_standard_volume_strategy.py +234 -0
  280. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_statistical_hypothesis.py +598 -432
  281. bquant-0.0.1/tests/unit/test_statistical_shape_strategy.py +210 -0
  282. bquant-0.0.1/tests/unit/test_strategy_infrastructure.py +616 -0
  283. bquant-0.0.1/tests/unit/test_swing_context_memory.py +43 -0
  284. bquant-0.0.1/tests/unit/test_swing_edge_cases.py +264 -0
  285. bquant-0.0.1/tests/unit/test_swing_global_calculation.py +158 -0
  286. bquant-0.0.1/tests/unit/test_time_metrics.py +144 -0
  287. bquant-0.0.1/tests/unit/test_universal_zone_analyzer.py +161 -0
  288. bquant-0.0.1/tests/unit/test_validation_suite.py +484 -0
  289. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_visualization.py +597 -597
  290. bquant-0.0.1/tests/unit/test_volume_strategy_universal.py +225 -0
  291. bquant-0.0.1/tests/unit/test_zigzag_swing_strategy.py +232 -0
  292. bquant-0.0.1/tests/unit/test_zone_analysis_builder.py +30 -0
  293. bquant-0.0.1/tests/unit/test_zone_detection_strategies.py +713 -0
  294. bquant-0.0.1/tests/unit/test_zone_features_analyzer_context.py +233 -0
  295. bquant-0.0.1/tests/unit/test_zone_features_divergence_integration.py +163 -0
  296. bquant-0.0.1/tests/unit/test_zone_features_shape_integration.py +140 -0
  297. bquant-0.0.1/tests/unit/test_zone_features_swing_integration.py +151 -0
  298. bquant-0.0.1/tests/unit/test_zone_features_volatility_integration.py +197 -0
  299. bquant-0.0.1/tests/unit/test_zone_features_volume_integration.py +180 -0
  300. bquant-0.0.1/tests/unit/test_zone_models.py +381 -0
  301. bquant-0.0.1/tests/unit/test_zone_pipeline.py +310 -0
  302. bquant-0.0.1/tests/unit/test_zone_presets.py +343 -0
  303. bquant-0.0.1/tests/unit/test_zone_regression_analyzer.py +351 -0
  304. {bquant-0.0.0 → bquant-0.0.1}/tests/unit/test_zones_analysis.py +529 -528
  305. bquant-0.0.1/tests/visualization/test_infrastructure.py +109 -0
  306. bquant-0.0.1/tests/visualization/test_swing_overlay.py +139 -0
  307. bquant-0.0.1/tests/visualization/test_zone_metrics_aggregation.py +190 -0
  308. bquant-0.0.1/tests/visualization/test_zone_metrics_display.py +142 -0
  309. bquant-0.0.1/tests/visualization/test_zones_visualization.py +282 -0
  310. bquant-0.0.0/PKG-INFO +0 -167
  311. bquant-0.0.0/README.md +0 -114
  312. bquant-0.0.0/bquant/analysis/zones/zone_features.py +0 -520
  313. bquant-0.0.0/bquant/core/config.py +0 -328
  314. bquant-0.0.0/bquant/core/logging_config.py +0 -368
  315. bquant-0.0.0/bquant/indicators/__init__.py +0 -115
  316. bquant-0.0.0/bquant/indicators/loaders.py +0 -413
  317. bquant-0.0.0/bquant/indicators/macd.py +0 -754
  318. bquant-0.0.0/bquant/visualization/zones.py +0 -775
  319. bquant-0.0.0/bquant.egg-info/PKG-INFO +0 -167
  320. bquant-0.0.0/bquant.egg-info/SOURCES.txt +0 -143
  321. bquant-0.0.0/bquant.egg-info/requires.txt +0 -34
  322. bquant-0.0.0/docs/README.md +0 -125
  323. bquant-0.0.0/docs/api/README.md +0 -181
  324. bquant-0.0.0/docs/api/analysis/README.md +0 -330
  325. bquant-0.0.0/docs/api/data/README.md +0 -250
  326. bquant-0.0.0/docs/api/extension_guide.md +0 -687
  327. bquant-0.0.0/docs/api/indicators/README.md +0 -315
  328. bquant-0.0.0/docs/developer_guide/README.md +0 -368
  329. bquant-0.0.0/docs/examples/README.md +0 -268
  330. bquant-0.0.0/docs/tutorials/README.md +0 -165
  331. bquant-0.0.0/docs/user_guide/README.md +0 -103
  332. bquant-0.0.0/docs/user_guide/quick_start.md +0 -198
  333. bquant-0.0.0/examples/02_macd_zone_analysis.py +0 -411
  334. bquant-0.0.0/examples/04_comprehensive_analysis.py +0 -716
  335. bquant-0.0.0/examples/README.md +0 -244
  336. bquant-0.0.0/tests/unit/test_macd_analyzer.py +0 -503
  337. {bquant-0.0.0 → bquant-0.0.1}/bquant/data/samples/datasets.py +0 -0
  338. {bquant-0.0.0 → bquant-0.0.1}/bquant.egg-info/dependency_links.txt +0 -0
  339. {bquant-0.0.0 → bquant-0.0.1}/bquant.egg-info/entry_points.txt +0 -0
  340. {bquant-0.0.0 → bquant-0.0.1}/bquant.egg-info/top_level.txt +0 -0
  341. {bquant-0.0.0 → bquant-0.0.1}/scripts/data/extract_samples.py +0 -0
@@ -1,96 +1,105 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ### Added
11
- - Initial release of BQuant package
12
- - Complete migration from Quanto project
13
- - Comprehensive technical analysis framework
14
- - MACD zone analysis with statistical testing
15
- - Advanced data processing and validation
16
- - Professional visualization system
17
- - Embedded sample data for testing
18
- - CLI scripts for analysis automation
19
- - Complete documentation and examples
20
-
21
-
22
- ## [0.0.0] - 2024-08-25
23
-
24
- ### Added
25
- - Foundation for BQuant project
26
- - Basic project structure
27
- - Core configuration system
28
- - Initial test framework
29
- - Initial beta release
30
- - Basic MACD analysis functionality
31
- - Core data processing capabilities
32
- - Preliminary documentation
33
-
34
- ### Structure
35
-
36
- - **Core Modules**: Configuration, exceptions, logging, performance, utilities
37
- - **Data Modules**: Loader, processor, validator, samples, schemas
38
- - **Indicators**: Base classes, MACD analyzer, factory pattern
39
- - **Analysis**: Statistical analysis, zone analysis, hypothesis testing
40
- - **Visualization**: Financial charts, zone visualization, statistical plots, themes
41
- - **Research Structure**: Notebooks, methodology, experiments, studies
42
- - **Scripts**: Analysis automation, data processing, deployment tools
43
- - **Documentation**: Complete API reference, user guide, tutorials, examples
44
-
45
- ### Technical Features
46
- - **MACD Zone Analysis**: Advanced MACD analysis with zone identification
47
- - **Statistical Testing**: Comprehensive hypothesis testing framework
48
- - **Data Processing**: Robust data loading, cleaning, and validation
49
- - **Performance Optimization**: Caching system and optimized algorithms
50
- - **Visualization**: Professional charts with multiple themes
51
- - **Sample Data**: Embedded financial data for testing and examples
52
-
53
- ### Architecture
54
- - **Modular Design**: Clean separation of concerns
55
- - **Type Safety**: Full type hints and validation
56
- - **Error Handling**: Comprehensive exception system
57
- - **Logging**: Professional logging with multiple levels
58
- - **Testing**: Complete test coverage with pytest
59
- - **Documentation**: Sphinx-based documentation system
60
-
61
- ### Dependencies
62
- - **Core**: pandas, numpy, matplotlib, seaborn
63
- - **Analysis**: scipy, scikit-learn, statsmodels
64
- - **Visualization**: plotly, seaborn
65
- - **Development**: pytest, black, flake8, mypy
66
-
67
- ---
68
-
69
- ## Version History
70
-
71
- ### Semantic Versioning
72
- - **MAJOR**: Incompatible API changes
73
- - **MINOR**: New functionality in backward-compatible manner
74
- - **PATCH**: Backward-compatible bug fixes
75
-
76
- ### Release Schedule
77
- - **Major releases**: Every 6 months
78
- - **Minor releases**: Every 2-4 weeks
79
- - **Patch releases**: As needed for critical fixes
80
-
81
- ### Support Policy
82
- - **Current version**: Full support
83
- - **Previous major version**: Bug fixes only
84
- - **Older versions**: No support
85
-
86
- ---
87
-
88
- ## Contributing
89
-
90
- Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
91
-
92
- ## Acknowledgments
93
-
94
- - Original Quanto project contributors
95
- - Open source financial analysis community
96
- - Python packaging and documentation tools
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+
9
+
10
+ ## [Unreleased]
11
+
12
+ ### Added
13
+ - Initial release of BQuant package
14
+ - Complete migration from Quanto project
15
+ - Comprehensive technical analysis framework
16
+ - MACD zone analysis with statistical testing
17
+ - Advanced data processing and validation
18
+ - Professional visualization system
19
+ - Embedded sample data for testing
20
+ - CLI scripts for analysis automation
21
+ - Complete documentation and examples
22
+ - **Zone Metrics Visualization (v1.0)** - 2025-11-11
23
+ - Aggregate metrics display with `show_aggregate_metrics` parameter (compact/full modes)
24
+ - Swing points visualization on charts with `show_swings` parameter
25
+ - Detail mode zone metrics with `show_zone_metrics` parameter
26
+ - Date range filtering with automatic metrics recalculation for selected period
27
+ - Support for unbalanced swings in global swing mode
28
+ - See [docs/api/visualization/zones.md](docs/api/visualization/zones.md) for details
29
+
30
+
31
+ ## [0.0.0] - 2024-08-25
32
+
33
+ ### Added
34
+ - Foundation for BQuant project
35
+ - Basic project structure
36
+ - Core configuration system
37
+ - Initial test framework
38
+ - Initial beta release
39
+ - Basic MACD analysis functionality
40
+ - Core data processing capabilities
41
+ - Preliminary documentation
42
+
43
+ ### Structure
44
+
45
+ - **Core Modules**: Configuration, exceptions, logging, performance, utilities
46
+ - **Data Modules**: Loader, processor, validator, samples, schemas
47
+ - **Indicators**: Base classes, MACD analyzer, factory pattern
48
+ - **Analysis**: Statistical analysis, zone analysis, hypothesis testing
49
+ - **Visualization**: Financial charts, zone visualization, statistical plots, themes
50
+ - **Research Structure**: Notebooks, methodology, experiments, studies
51
+ - **Scripts**: Analysis automation, data processing, deployment tools
52
+ - **Documentation**: Complete API reference, user guide, tutorials, examples
53
+
54
+ ### Technical Features
55
+ - **MACD Zone Analysis**: Advanced MACD analysis with zone identification
56
+ - **Statistical Testing**: Comprehensive hypothesis testing framework
57
+ - **Data Processing**: Robust data loading, cleaning, and validation
58
+ - **Performance Optimization**: Caching system and optimized algorithms
59
+ - **Visualization**: Professional charts with multiple themes
60
+ - **Sample Data**: Embedded financial data for testing and examples
61
+
62
+ ### Architecture
63
+ - **Modular Design**: Clean separation of concerns
64
+ - **Type Safety**: Full type hints and validation
65
+ - **Error Handling**: Comprehensive exception system
66
+ - **Logging**: Professional logging with multiple levels
67
+ - **Testing**: Complete test coverage with pytest
68
+ - **Documentation**: Sphinx-based documentation system
69
+
70
+ ### Dependencies
71
+ - **Core**: pandas, numpy, matplotlib, seaborn
72
+ - **Analysis**: scipy, scikit-learn, statsmodels
73
+ - **Visualization**: plotly, seaborn
74
+ - **Development**: pytest, black, flake8, mypy
75
+
76
+ ---
77
+
78
+ ## Version History
79
+
80
+ ### Semantic Versioning
81
+ - **MAJOR**: Incompatible API changes
82
+ - **MINOR**: New functionality in backward-compatible manner
83
+ - **PATCH**: Backward-compatible bug fixes
84
+
85
+ ### Release Schedule
86
+ - **Major releases**: Every 6 months
87
+ - **Minor releases**: Every 2-4 weeks
88
+ - **Patch releases**: As needed for critical fixes
89
+
90
+ ### Support Policy
91
+ - **Current version**: Full support
92
+ - **Previous major version**: Bug fixes only
93
+ - **Older versions**: No support
94
+
95
+ ---
96
+
97
+ ## Contributing
98
+
99
+ Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
100
+
101
+ ## Acknowledgments
102
+
103
+ - Original Quanto project contributors
104
+ - Open source financial analysis community
105
+ - Python packaging and documentation tools
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 BQuant Team
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 BQuant Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,49 +1,49 @@
1
- # Include README and LICENSE
2
- include README.md
3
- include LICENSE
4
- include CHANGELOG.md
5
-
6
- # Include package data
7
- recursive-include bquant *.py
8
- recursive-include bquant *.pyi
9
- recursive-include bquant *.txt
10
- recursive-include bquant *.json
11
- recursive-include bquant *.yaml
12
- recursive-include bquant *.yml
13
-
14
- # Include documentation
15
- recursive-include docs *.md
16
- recursive-include docs *.rst
17
- recursive-include docs *.txt
18
-
19
- # Include examples
20
- recursive-include examples *.py
21
- recursive-include examples *.ipynb
22
- recursive-include examples *.md
23
-
24
- # Include tests
25
- recursive-include tests *.py
26
- recursive-include tests *.json
27
- recursive-include tests *.yaml
28
-
29
- # Include scripts
30
- recursive-include scripts *.py
31
- recursive-include scripts *.md
32
-
33
- # Exclude development files
34
- global-exclude *.pyc
35
- global-exclude *.pyo
36
- global-exclude *.pyd
37
- global-exclude __pycache__
38
- global-exclude .git*
39
- global-exclude .DS_Store
40
- global-exclude *.egg-info
41
- global-exclude .pytest_cache
42
- global-exclude .coverage
43
- global-exclude htmlcov
44
- global-exclude .tox
45
- global-exclude .venv
46
- global-exclude venv*
47
- global-exclude .env
48
- global-exclude .vscode
49
- global-exclude .idea
1
+ # Include README and LICENSE
2
+ include README.md
3
+ include LICENSE
4
+ include CHANGELOG.md
5
+
6
+ # Include package data
7
+ recursive-include bquant *.py
8
+ recursive-include bquant *.pyi
9
+ recursive-include bquant *.txt
10
+ recursive-include bquant *.json
11
+ recursive-include bquant *.yaml
12
+ recursive-include bquant *.yml
13
+
14
+ # Include documentation
15
+ recursive-include docs *.md
16
+ recursive-include docs *.rst
17
+ recursive-include docs *.txt
18
+
19
+ # Include examples
20
+ recursive-include examples *.py
21
+ recursive-include examples *.ipynb
22
+ recursive-include examples *.md
23
+
24
+ # Include tests
25
+ recursive-include tests *.py
26
+ recursive-include tests *.json
27
+ recursive-include tests *.yaml
28
+
29
+ # Include scripts
30
+ recursive-include scripts *.py
31
+ recursive-include scripts *.md
32
+
33
+ # Exclude development files
34
+ global-exclude *.pyc
35
+ global-exclude *.pyo
36
+ global-exclude *.pyd
37
+ global-exclude __pycache__
38
+ global-exclude .git*
39
+ global-exclude .DS_Store
40
+ global-exclude *.egg-info
41
+ global-exclude .pytest_cache
42
+ global-exclude .coverage
43
+ global-exclude htmlcov
44
+ global-exclude .tox
45
+ global-exclude .venv
46
+ global-exclude venv*
47
+ global-exclude .env
48
+ global-exclude .vscode
49
+ global-exclude .idea
bquant-0.0.1/PKG-INFO ADDED
@@ -0,0 +1,235 @@
1
+ Metadata-Version: 2.4
2
+ Name: bquant
3
+ Version: 0.0.1
4
+ Summary: Quantitative research toolkit for financial markets
5
+ Author-email: kogriv <kogriv@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/kogriv/bquant
8
+ Project-URL: Documentation, https://bquant.readthedocs.io/
9
+ Project-URL: Repository, https://github.com/kogriv/bquant.git
10
+ Project-URL: Issues, https://github.com/kogriv/bquant/issues
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Financial and Insurance Industry
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Topic :: Office/Business :: Financial
18
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
19
+ Requires-Python: >=3.12
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: pandas>=2.3.0
23
+ Requires-Dist: numpy>=1.24.0
24
+ Requires-Dist: matplotlib>=3.10.5
25
+ Requires-Dist: seaborn>=0.12.0
26
+ Requires-Dist: pandas-ta>=0.4.67b0
27
+ Requires-Dist: statsmodels>=0.14.5
28
+ Requires-Dist: scipy>=1.16.1
29
+ Requires-Dist: scikit-learn>=1.7.1
30
+ Requires-Dist: plotly>=6.3.0
31
+ Requires-Dist: kaleido>=1.0.0
32
+ Requires-Dist: ipywidgets>=8.1.7
33
+ Requires-Dist: psutil>=5.9.0
34
+ Requires-Dist: nbformat>=4.2.0
35
+ Requires-Dist: chardet>=5.0.0
36
+ Requires-Dist: pyarrow>=17.0.0
37
+ Provides-Extra: dev
38
+ Requires-Dist: pytest>=6.0; extra == "dev"
39
+ Requires-Dist: pytest-cov>=2.0; extra == "dev"
40
+ Requires-Dist: black>=21.0; extra == "dev"
41
+ Requires-Dist: flake8>=3.8; extra == "dev"
42
+ Provides-Extra: docs
43
+ Requires-Dist: sphinx>=7.0.0; extra == "docs"
44
+ Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
45
+ Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
46
+ Requires-Dist: myst-parser>=2.0.0; extra == "docs"
47
+ Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == "docs"
48
+ Provides-Extra: notebooks
49
+ Requires-Dist: jupyter==1.1.1; extra == "notebooks"
50
+ Requires-Dist: ipywidgets==8.1.7; extra == "notebooks"
51
+ Requires-Dist: plotly==6.3.0; extra == "notebooks"
52
+ Requires-Dist: kaleido==1.0.0; extra == "notebooks"
53
+ Provides-Extra: full
54
+ Requires-Dist: pytest>=6.0; extra == "full"
55
+ Requires-Dist: pytest-cov>=2.0; extra == "full"
56
+ Requires-Dist: black>=21.0; extra == "full"
57
+ Requires-Dist: flake8>=3.8; extra == "full"
58
+ Requires-Dist: jupyter==1.1.1; extra == "full"
59
+ Requires-Dist: ipywidgets==8.1.7; extra == "full"
60
+ Requires-Dist: plotly==6.3.0; extra == "full"
61
+ Requires-Dist: kaleido==1.0.0; extra == "full"
62
+ Dynamic: license-file
63
+
64
+ # BQuant - Quantitative Research Toolkit
65
+
66
+ **BQuant** is a universal toolkit for quantitative research of financial markets. The project starts with MACD zone analysis as the first use case, but the architecture is designed for exploring various aspects: technical indicators, chart patterns, candlestick formations, time series, and machine learning applications.
67
+
68
+ ## 🔧 Key Features
69
+
70
+ ### Zone Analysis - Universal Pipeline v2.1
71
+ - **Universal API**: Works with any indicator (MACD, RSI, AO, custom) through fluent builder pattern
72
+ - **5 Detection Strategies**: zero_crossing, threshold, line_crossing, preloaded, combined
73
+ - **Advanced Analysis**: Swing, divergence, volume, volatility strategies with automatic feature extraction
74
+ - **Statistical Testing**: Automatic hypothesis tests and clustering analysis
75
+ - **Caching Support**: Performance optimization with memory and disk caching
76
+
77
+ ### Core Features
78
+ - **Universal Configuration System**: Flexible settings for data sources, indicators, and analysis
79
+ - **Extensible Indicator Library**: Includes optimized built-in indicators and supports external libraries like `pandas-ta` and `TA-Lib`
80
+ - **ML Readiness**: A modular structure prepared for future machine learning integration
81
+ - **Rich Visualization Tools**: Create interactive financial charts and statistical plots with Plotly and Matplotlib
82
+ - **Performance-Oriented**: Features a two-level caching system and performance monitoring tools
83
+ - **Command-Line Interface**: Provides a simple CLI for quick analysis and data management
84
+
85
+ ## 🚀 Quick Start
86
+
87
+ ### Installation
88
+
89
+ ```bash
90
+ # Install in development mode
91
+ pip install -e .
92
+
93
+ # Install with optional dependencies
94
+ pip install -e .[dev,notebooks]
95
+ ```
96
+
97
+ ### Basic Usage - Universal Pipeline v2.1
98
+
99
+ ```python
100
+ from bquant.data.samples import get_sample_data
101
+ from bquant.analysis.zones import analyze_zones
102
+
103
+ # Load sample data
104
+ data = get_sample_data('tv_xauusd_1h')
105
+
106
+ # Universal Pipeline - работает с любым индикатором
107
+ result = (
108
+ analyze_zones(data)
109
+ .with_indicator('pandas_ta', 'rsi', length=14)
110
+ .detect_zones('threshold', indicator_col='rsi',
111
+ upper_threshold=70, lower_threshold=30)
112
+ .analyze(clustering=True)
113
+ .build()
114
+ )
115
+
116
+ print(f"Found {len(result.zones)} zones")
117
+ print(f"Statistics: {result.statistics}")
118
+ ```
119
+
120
+ ### Legacy MACD Wrapper (Deprecated)
121
+
122
+ ```python
123
+ # ⚠️ DEPRECATED: Используйте analyze_zones() вместо этого
124
+ from bquant.indicators import MACDZoneAnalyzer
125
+
126
+ analyzer = MACDZoneAnalyzer() # Deprecated wrapper
127
+ result = analyzer.analyze_complete(data) # Delegates to analyze_zones()
128
+ ```
129
+
130
+ #### pandas-ta indicators in one line
131
+
132
+ ```python
133
+ from bquant.indicators import LibraryManager
134
+
135
+ # Load external libraries (pandas-ta, TA-Lib when installed)
136
+ LibraryManager.load_all_libraries()
137
+
138
+ # "Simple way" to access any pandas-ta indicator discovered dynamically
139
+ rsi = LibraryManager.create_indicator('pandas_ta', 'rsi', length=14)
140
+ result = rsi.calculate(data)
141
+ print(result.data.tail())
142
+ ```
143
+
144
+ See the [LibraryManager documentation](docs/api/indicators/library_manager.md) for more examples.
145
+
146
+ ### Command Line
147
+
148
+ ```bash
149
+ # List available sample datasets
150
+ bquant list
151
+
152
+ # Analyze a dataset using default settings
153
+ bquant analyze tv_xauusd_1h
154
+
155
+ # Analyze and save the chart to a file
156
+ bquant analyze mt_xauusd_m15 -o chart.html
157
+ ```
158
+
159
+ ## 📋 Project Structure
160
+
161
+ This is a monorepo that contains:
162
+
163
+ - **`bquant/`** - Python package (for PyPI)
164
+ - **`research/`** - Jupyter notebooks and experiments
165
+ - **`scripts/`** - Automation scripts
166
+ - **`data/`** - Data storage
167
+ - **`tests/`** - Test suite
168
+ - **`docs/`** - Documentation
169
+
170
+ ## 🛠️ Development
171
+
172
+ ### Setting up development environment
173
+
174
+ ```bash
175
+ # Create virtual environment
176
+ python -m venv .venv
177
+
178
+ # Activate (Windows)
179
+ .venv\Scripts\activate
180
+
181
+ # Activate (Linux/Mac)
182
+ source .venv/bin/activate
183
+
184
+ # Install dependencies
185
+ pip install -r requirements.txt
186
+
187
+ # Install in development mode with all extras
188
+ pip install -e .[full]
189
+ ```
190
+
191
+ ### Running tests
192
+
193
+ ```bash
194
+ pytest tests/ -v
195
+ ```
196
+
197
+ ## 📚 Documentation
198
+
199
+ ### Universal Pipeline v2.1
200
+ - **[Quick Start](docs/user_guide/quick_start.md)** - 5 минут до первого результата
201
+ - **[API Reference](docs/api/analysis/pipeline.md)** - полная документация Universal Pipeline
202
+ - **[Examples](examples/02a_universal_zones.py)** - готовые примеры для всех индикаторов
203
+ - **[Migration Guide](examples/02_macd_zone_analysis.py)** - переход с deprecated API
204
+
205
+ ### Complete Documentation
206
+ - **[API Documentation](docs/api/)** - Справочник API
207
+ - **[Tutorials](docs/tutorials/)** - Обучающие материалы
208
+ - **[Examples](docs/examples/)** - Примеры использования
209
+ - **[Developer Guide](docs/developer_guide/)** - Руководство разработчика
210
+
211
+ ### Architecture
212
+ - **Two-Layer Design**: Simplification from 3 to 2 layers
213
+ - **Zero Hardcode**: ZERO hardcoded indicators, full universality
214
+ - **Design Patterns**: Strategy, Dependency Injection, Builder, Registry
215
+ - **115 Tests**: 100% pass rate, proof of universality
216
+
217
+ ## 🎯 Roadmap
218
+
219
+ - **Phase 1 (Completed)**: Core functionality (data loading, processing, validation), advanced MACD analysis, and statistical engine.
220
+ - **Phase 2 (In Progress)**: Extended visualization options, implementation of Time Series and other indicator analysis modules (currently stubs).
221
+ - **Phase 3 (Planned)**: Full machine learning integration, chart pattern recognition, and enhanced automation pipelines.
222
+
223
+ ## 📄 License
224
+
225
+ MIT License - see [LICENSE](LICENSE) file for details.
226
+
227
+ ## 🤝 Contributing
228
+
229
+ Contributions are welcome! Please read our contributing guidelines and submit pull requests.
230
+
231
+ ## 📞 Contact
232
+
233
+ - **Author**: kogriv
234
+ - **Email**: kogriv@gmail.com
235
+ - **Repository**: https://github.com/kogriv/bquant