bquant 0.0.0__tar.gz → 0.0.2__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 (347) hide show
  1. {bquant-0.0.0 → bquant-0.0.2}/CHANGELOG.md +122 -96
  2. {bquant-0.0.0 → bquant-0.0.2}/LICENSE +21 -21
  3. {bquant-0.0.0 → bquant-0.0.2}/MANIFEST.in +49 -49
  4. bquant-0.0.2/PKG-INFO +239 -0
  5. bquant-0.0.2/README.md +172 -0
  6. {bquant-0.0.0 → bquant-0.0.2}/bquant/__init__.py +31 -31
  7. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/__init__.py +312 -296
  8. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/candlestick/__init__.py +100 -100
  9. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/chart/__init__.py +98 -98
  10. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/statistical/__init__.py +433 -414
  11. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/statistical/hypothesis_testing.py +1106 -657
  12. bquant-0.0.2/bquant/analysis/statistical/regression.py +384 -0
  13. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/technical/__init__.py +98 -98
  14. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/timeseries/__init__.py +102 -102
  15. bquant-0.0.2/bquant/analysis/validation/__init__.py +20 -0
  16. bquant-0.0.2/bquant/analysis/validation/suite.py +643 -0
  17. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/zones/__init__.py +659 -547
  18. bquant-0.0.2/bquant/analysis/zones/analyzer.py +260 -0
  19. bquant-0.0.2/bquant/analysis/zones/cache.py +161 -0
  20. bquant-0.0.2/bquant/analysis/zones/detection/__init__.py +69 -0
  21. bquant-0.0.2/bquant/analysis/zones/detection/base.py +164 -0
  22. bquant-0.0.2/bquant/analysis/zones/detection/combined.py +160 -0
  23. bquant-0.0.2/bquant/analysis/zones/detection/line_crossing.py +136 -0
  24. bquant-0.0.2/bquant/analysis/zones/detection/preloaded.py +205 -0
  25. bquant-0.0.2/bquant/analysis/zones/detection/registry.py +149 -0
  26. bquant-0.0.2/bquant/analysis/zones/detection/threshold.py +148 -0
  27. bquant-0.0.2/bquant/analysis/zones/detection/zero_crossing.py +167 -0
  28. bquant-0.0.2/bquant/analysis/zones/models.py +663 -0
  29. bquant-0.0.2/bquant/analysis/zones/pipeline.py +770 -0
  30. bquant-0.0.2/bquant/analysis/zones/presets.py +328 -0
  31. {bquant-0.0.0 → bquant-0.0.2}/bquant/analysis/zones/sequence_analysis.py +661 -661
  32. bquant-0.0.2/bquant/analysis/zones/strategies/__init__.py +57 -0
  33. bquant-0.0.2/bquant/analysis/zones/strategies/base.py +539 -0
  34. bquant-0.0.2/bquant/analysis/zones/strategies/divergence/__init__.py +10 -0
  35. bquant-0.0.2/bquant/analysis/zones/strategies/divergence/classic.py +448 -0
  36. bquant-0.0.2/bquant/analysis/zones/strategies/registry.py +286 -0
  37. bquant-0.0.2/bquant/analysis/zones/strategies/shape/__init__.py +8 -0
  38. bquant-0.0.2/bquant/analysis/zones/strategies/shape/statistical.py +204 -0
  39. bquant-0.0.2/bquant/analysis/zones/strategies/swing/__init__.py +14 -0
  40. bquant-0.0.2/bquant/analysis/zones/strategies/swing/find_peaks.py +450 -0
  41. bquant-0.0.2/bquant/analysis/zones/strategies/swing/pivot_points.py +465 -0
  42. bquant-0.0.2/bquant/analysis/zones/strategies/swing/thresholds.py +153 -0
  43. bquant-0.0.2/bquant/analysis/zones/strategies/swing/zigzag.py +517 -0
  44. bquant-0.0.2/bquant/analysis/zones/strategies/volatility/__init__.py +11 -0
  45. bquant-0.0.2/bquant/analysis/zones/strategies/volatility/combined.py +308 -0
  46. bquant-0.0.2/bquant/analysis/zones/strategies/volume/__init__.py +10 -0
  47. bquant-0.0.2/bquant/analysis/zones/strategies/volume/standard.py +185 -0
  48. bquant-0.0.2/bquant/analysis/zones/zone_features.py +916 -0
  49. {bquant-0.0.0 → bquant-0.0.2}/bquant/cli.py +198 -160
  50. {bquant-0.0.0 → bquant-0.0.2}/bquant/core/__init__.py +119 -112
  51. {bquant-0.0.0 → bquant-0.0.2}/bquant/core/cache.py +534 -534
  52. bquant-0.0.2/bquant/core/config.py +800 -0
  53. {bquant-0.0.0 → bquant-0.0.2}/bquant/core/exceptions.py +351 -351
  54. bquant-0.0.2/bquant/core/logging_config.py +748 -0
  55. bquant-0.0.2/bquant/core/nb.py +450 -0
  56. {bquant-0.0.0 → bquant-0.0.2}/bquant/core/numpy_fix.py +99 -99
  57. {bquant-0.0.0 → bquant-0.0.2}/bquant/core/performance.py +554 -554
  58. {bquant-0.0.0 → bquant-0.0.2}/bquant/core/utils.py +364 -327
  59. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/__init__.py +85 -85
  60. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/loader.py +608 -436
  61. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/processor.py +644 -644
  62. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/samples/__init__.py +10 -0
  63. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/samples/embedded/__init__.py +16 -16
  64. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/samples/embedded/mt_xauusd_m15.py +9018 -9018
  65. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/samples/embedded/tv_xauusd_1h.py +17018 -17018
  66. bquant-0.0.2/bquant/data/samples/generator.py +407 -0
  67. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/samples/utils.py +12 -1
  68. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/schemas.py +285 -285
  69. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/validator.py +498 -498
  70. bquant-0.0.2/bquant/indicators/__init__.py +148 -0
  71. bquant-0.0.2/bquant/indicators/base.py +1011 -0
  72. {bquant-0.0.0 → bquant-0.0.2}/bquant/indicators/calculators.py +456 -404
  73. bquant-0.0.2/bquant/indicators/custom/__init__.py +79 -0
  74. bquant-0.0.2/bquant/indicators/custom/bollinger.py +159 -0
  75. bquant-0.0.2/bquant/indicators/custom/ema.py +131 -0
  76. bquant-0.0.2/bquant/indicators/custom/macd.py +178 -0
  77. bquant-0.0.2/bquant/indicators/custom/rsi.py +149 -0
  78. bquant-0.0.2/bquant/indicators/custom/sma.py +131 -0
  79. bquant-0.0.2/bquant/indicators/library/__init__.py +33 -0
  80. bquant-0.0.2/bquant/indicators/library/manager.py +276 -0
  81. bquant-0.0.2/bquant/indicators/library/pandas_ta.py +442 -0
  82. bquant-0.0.2/bquant/indicators/library/talib.py +447 -0
  83. bquant-0.0.2/bquant/indicators/macd.py +253 -0
  84. bquant-0.0.2/bquant/indicators/preloaded/__init__.py +31 -0
  85. bquant-0.0.2/bquant/indicators/preloaded/macd.py +467 -0
  86. {bquant-0.0.0 → bquant-0.0.2}/bquant/ml/__init__.py +19 -19
  87. {bquant-0.0.0 → bquant-0.0.2}/bquant/visualization/__init__.py +395 -315
  88. {bquant-0.0.0 → bquant-0.0.2}/bquant/visualization/charts.py +632 -616
  89. bquant-0.0.2/bquant/visualization/export.py +99 -0
  90. {bquant-0.0.0 → bquant-0.0.2}/bquant/visualization/statistical.py +887 -812
  91. {bquant-0.0.0 → bquant-0.0.2}/bquant/visualization/themes.py +609 -599
  92. bquant-0.0.2/bquant/visualization/utils.py +211 -0
  93. bquant-0.0.2/bquant/visualization/zones.py +3456 -0
  94. bquant-0.0.2/bquant.egg-info/PKG-INFO +239 -0
  95. bquant-0.0.2/bquant.egg-info/SOURCES.txt +405 -0
  96. bquant-0.0.2/bquant.egg-info/requires.txt +49 -0
  97. bquant-0.0.2/docs/BUILD_ISSUES.md +260 -0
  98. bquant-0.0.2/docs/README.md +83 -0
  99. bquant-0.0.2/docs/_build/html/_sources/analytics/zones/macd_zone_consistency_case_study.md.txt +35 -0
  100. bquant-0.0.2/docs/_build/html/_sources/analytics/zones/swing.md.txt +64 -0
  101. bquant-0.0.2/docs/_build/html/_sources/analytics/zones/swing_strategy_comparison_case_study.md.txt +31 -0
  102. bquant-0.0.2/docs/_build/html/_sources/api/README.md.txt +267 -0
  103. bquant-0.0.2/docs/_build/html/_sources/api/analysis/README.md.txt +412 -0
  104. bquant-0.0.2/docs/_build/html/_sources/api/analysis/base.md.txt +46 -0
  105. bquant-0.0.2/docs/_build/html/_sources/api/analysis/pipeline.md.txt +375 -0
  106. bquant-0.0.2/docs/_build/html/_sources/api/analysis/statistical.md.txt +379 -0
  107. bquant-0.0.2/docs/_build/html/_sources/api/analysis/strategies.md.txt +833 -0
  108. bquant-0.0.2/docs/_build/html/_sources/api/analysis/zones/models.md.txt +79 -0
  109. bquant-0.0.2/docs/_build/html/_sources/api/analysis/zones/pipeline.md.txt +85 -0
  110. bquant-0.0.2/docs/_build/html/_sources/api/analysis/zones/strategies.md.txt +60 -0
  111. bquant-0.0.2/docs/_build/html/_sources/api/analysis/zones.md.txt +436 -0
  112. bquant-0.0.2/docs/_build/html/_sources/api/core/README.md.txt +206 -0
  113. bquant-0.0.2/docs/_build/html/_sources/api/core/config.md.txt +221 -0
  114. bquant-0.0.2/docs/_build/html/_sources/api/core/exceptions.md.txt +56 -0
  115. bquant-0.0.2/docs/_build/html/_sources/api/core/logging.md.txt +502 -0
  116. bquant-0.0.2/docs/_build/html/_sources/api/core/nb.md.txt +380 -0
  117. bquant-0.0.2/docs/_build/html/_sources/api/core/performance.md.txt +66 -0
  118. bquant-0.0.2/docs/_build/html/_sources/api/core/utils.md.txt +110 -0
  119. bquant-0.0.2/docs/_build/html/_sources/api/data/README.md.txt +226 -0
  120. bquant-0.0.2/docs/_build/html/_sources/api/data/loader.md.txt +80 -0
  121. bquant-0.0.2/docs/_build/html/_sources/api/data/processor.md.txt +42 -0
  122. bquant-0.0.2/docs/_build/html/_sources/api/data/samples.md.txt +285 -0
  123. bquant-0.0.2/docs/_build/html/_sources/api/data/schemas.md.txt +38 -0
  124. bquant-0.0.2/docs/_build/html/_sources/api/data/validator.md.txt +63 -0
  125. bquant-0.0.2/docs/_build/html/_sources/api/extension_guide.md.txt +1238 -0
  126. bquant-0.0.2/docs/_build/html/_sources/api/indicators/README.md.txt +500 -0
  127. bquant-0.0.2/docs/_build/html/_sources/api/indicators/base.md.txt +150 -0
  128. bquant-0.0.2/docs/_build/html/_sources/api/indicators/factory.md.txt +77 -0
  129. bquant-0.0.2/docs/_build/html/_sources/api/indicators/library_manager.md.txt +80 -0
  130. bquant-0.0.2/docs/_build/html/_sources/api/indicators/macd.md.txt +245 -0
  131. bquant-0.0.2/docs/_build/html/_sources/api/indicators/preloaded.md.txt +357 -0
  132. bquant-0.0.2/docs/_build/html/_sources/api/visualization/README.md.txt +566 -0
  133. bquant-0.0.2/docs/_build/html/_sources/api/visualization/zones.md.txt +481 -0
  134. bquant-0.0.2/docs/_build/html/_sources/developer_guide/README.md.txt +716 -0
  135. bquant-0.0.2/docs/_build/html/_sources/developer_guide/analytical_philosophy.md.txt +55 -0
  136. bquant-0.0.2/docs/_build/html/_sources/developer_guide/statistical_analysis_workflow.md.txt +69 -0
  137. bquant-0.0.2/docs/_build/html/_sources/developer_guide/zone_analyzer_deep_dive.md.txt +241 -0
  138. bquant-0.0.2/docs/_build/html/_sources/developer_guide/zone_detection_strategies.md.txt +225 -0
  139. bquant-0.0.2/docs/_build/html/_sources/examples/README.md.txt +375 -0
  140. bquant-0.0.2/docs/_build/html/_sources/index.rst.txt +159 -0
  141. bquant-0.0.2/docs/_build/html/_sources/migration/MIGRATION_v2.md.txt +84 -0
  142. bquant-0.0.2/docs/_build/html/_sources/migration/global_swings_migration.md.txt +80 -0
  143. bquant-0.0.2/docs/_build/html/_sources/tutorials/README.md.txt +149 -0
  144. bquant-0.0.2/docs/_build/html/_sources/tutorials/combined_rules_detection.md.txt +101 -0
  145. bquant-0.0.2/docs/_build/html/_sources/tutorials/macd_basic_pipeline.md.txt +87 -0
  146. bquant-0.0.2/docs/_build/html/_sources/tutorials/preloaded_zones_workflow.md.txt +107 -0
  147. bquant-0.0.2/docs/_build/html/_sources/tutorials/rsi_strategy_switching.md.txt +93 -0
  148. bquant-0.0.2/docs/_build/html/_sources/user_guide/README.md.txt +134 -0
  149. bquant-0.0.2/docs/_build/html/_sources/user_guide/best_practices.md.txt +131 -0
  150. bquant-0.0.2/docs/_build/html/_sources/user_guide/caching.md.txt +189 -0
  151. bquant-0.0.2/docs/_build/html/_sources/user_guide/core_concepts.md.txt +92 -0
  152. bquant-0.0.2/docs/_build/html/_sources/user_guide/quick_start.md.txt +263 -0
  153. bquant-0.0.2/docs/_build/html/_sources/user_guide/swing_analysis_results.md.txt +340 -0
  154. bquant-0.0.2/docs/_build/html/_sources/user_guide/swing_strategies.md.txt +139 -0
  155. bquant-0.0.2/docs/_build/html/_sources/user_guide/zone_analysis.md.txt +698 -0
  156. bquant-0.0.2/docs/analytics/zones/layerA_ii_representations_case_study.md +68 -0
  157. bquant-0.0.2/docs/analytics/zones/layerA_zone_structure_case_study.md +73 -0
  158. bquant-0.0.2/docs/analytics/zones/macd_zone_consistency_case_study.md +64 -0
  159. bquant-0.0.2/docs/analytics/zones/s1_swing_anatomy_case_study.md +127 -0
  160. bquant-0.0.2/docs/analytics/zones/swing.md +64 -0
  161. bquant-0.0.2/docs/analytics/zones/swing_strategy_comparison_case_study.md +31 -0
  162. bquant-0.0.2/docs/api/README.md +267 -0
  163. bquant-0.0.2/docs/api/analysis/README.md +412 -0
  164. bquant-0.0.2/docs/api/analysis/base.md +46 -0
  165. bquant-0.0.2/docs/api/analysis/pipeline.md +375 -0
  166. bquant-0.0.2/docs/api/analysis/statistical.md +379 -0
  167. bquant-0.0.2/docs/api/analysis/strategies.md +833 -0
  168. bquant-0.0.2/docs/api/analysis/zones/models.md +79 -0
  169. bquant-0.0.2/docs/api/analysis/zones/pipeline.md +85 -0
  170. bquant-0.0.2/docs/api/analysis/zones/strategies.md +60 -0
  171. bquant-0.0.2/docs/api/analysis/zones.md +436 -0
  172. {bquant-0.0.0 → bquant-0.0.2}/docs/api/core/README.md +206 -183
  173. bquant-0.0.2/docs/api/core/config.md +221 -0
  174. bquant-0.0.2/docs/api/core/exceptions.md +56 -0
  175. bquant-0.0.2/docs/api/core/logging.md +502 -0
  176. bquant-0.0.2/docs/api/core/nb.md +380 -0
  177. bquant-0.0.2/docs/api/core/performance.md +66 -0
  178. bquant-0.0.2/docs/api/core/utils.md +110 -0
  179. bquant-0.0.2/docs/api/data/README.md +226 -0
  180. bquant-0.0.2/docs/api/data/loader.md +80 -0
  181. bquant-0.0.2/docs/api/data/processor.md +42 -0
  182. bquant-0.0.2/docs/api/data/samples.md +285 -0
  183. bquant-0.0.2/docs/api/data/schemas.md +38 -0
  184. bquant-0.0.2/docs/api/data/validator.md +63 -0
  185. bquant-0.0.2/docs/api/extension_guide.md +1238 -0
  186. bquant-0.0.2/docs/api/indicators/README.md +500 -0
  187. bquant-0.0.2/docs/api/indicators/base.md +150 -0
  188. bquant-0.0.2/docs/api/indicators/factory.md +77 -0
  189. bquant-0.0.2/docs/api/indicators/library_manager.md +80 -0
  190. bquant-0.0.2/docs/api/indicators/macd.md +245 -0
  191. bquant-0.0.2/docs/api/indicators/preloaded.md +357 -0
  192. {bquant-0.0.0 → bquant-0.0.2}/docs/api/visualization/README.md +566 -490
  193. bquant-0.0.2/docs/api/visualization/zones.md +481 -0
  194. bquant-0.0.2/docs/developer_guide/README.md +716 -0
  195. bquant-0.0.2/docs/developer_guide/analytical_philosophy.md +55 -0
  196. bquant-0.0.2/docs/developer_guide/statistical_analysis_workflow.md +69 -0
  197. bquant-0.0.2/docs/developer_guide/zone_analyzer_deep_dive.md +241 -0
  198. bquant-0.0.2/docs/developer_guide/zone_detection_strategies.md +225 -0
  199. bquant-0.0.2/docs/examples/README.md +375 -0
  200. {bquant-0.0.0 → bquant-0.0.2}/docs/index.rst +159 -93
  201. bquant-0.0.2/docs/migration/MIGRATION_v2.md +84 -0
  202. bquant-0.0.2/docs/migration/global_swings_migration.md +80 -0
  203. bquant-0.0.2/docs/tutorials/README.md +149 -0
  204. bquant-0.0.2/docs/tutorials/combined_rules_detection.md +101 -0
  205. bquant-0.0.2/docs/tutorials/macd_basic_pipeline.md +87 -0
  206. bquant-0.0.2/docs/tutorials/preloaded_zones_workflow.md +107 -0
  207. bquant-0.0.2/docs/tutorials/rsi_strategy_switching.md +93 -0
  208. bquant-0.0.2/docs/user_guide/README.md +140 -0
  209. bquant-0.0.2/docs/user_guide/best_practices.md +134 -0
  210. bquant-0.0.2/docs/user_guide/caching.md +189 -0
  211. bquant-0.0.2/docs/user_guide/core_concepts.md +92 -0
  212. bquant-0.0.2/docs/user_guide/quick_start.md +263 -0
  213. bquant-0.0.2/docs/user_guide/swing_analysis_results.md +340 -0
  214. bquant-0.0.2/docs/user_guide/swing_strategies.md +139 -0
  215. bquant-0.0.2/docs/user_guide/zone_analysis.md +700 -0
  216. bquant-0.0.2/docs/user_guide/zone_analysis_result.md +442 -0
  217. {bquant-0.0.0 → bquant-0.0.2}/examples/01_basic_indicators.py +314 -297
  218. bquant-0.0.2/examples/02_macd_zone_analysis.py +406 -0
  219. bquant-0.0.2/examples/02a_universal_zones.py +693 -0
  220. {bquant-0.0.0 → bquant-0.0.2}/examples/03_data_processing.py +510 -510
  221. bquant-0.0.2/examples/04_comprehensive_analysis.py +301 -0
  222. bquant-0.0.2/examples/05_strategies_demo.py +401 -0
  223. bquant-0.0.2/examples/06_regression_demo.py +345 -0
  224. bquant-0.0.2/examples/07_validation_demo.py +536 -0
  225. bquant-0.0.2/examples/08_macd_swing_analysis.py +290 -0
  226. bquant-0.0.2/examples/09_zones_visualization_demo.py +616 -0
  227. bquant-0.0.2/examples/README.md +209 -0
  228. bquant-0.0.2/examples/zone_analysis_global_swings.py +205 -0
  229. {bquant-0.0.0 → bquant-0.0.2}/pyproject.toml +141 -125
  230. {bquant-0.0.0 → bquant-0.0.2}/scripts/README.md +65 -65
  231. {bquant-0.0.0 → bquant-0.0.2}/scripts/analysis/README.md +139 -139
  232. {bquant-0.0.0 → bquant-0.0.2}/scripts/analysis/batch_analysis.py +848 -840
  233. {bquant-0.0.0 → bquant-0.0.2}/scripts/analysis/run_macd_analysis.py +566 -566
  234. {bquant-0.0.0 → bquant-0.0.2}/scripts/analysis/test_hypotheses.py +756 -756
  235. bquant-0.0.2/scripts/data/data_loader.py +0 -0
  236. bquant-0.0.2/scripts/data/generate_samples.py +120 -0
  237. {bquant-0.0.0 → bquant-0.0.2}/scripts/data_processing/README.md +120 -120
  238. {bquant-0.0.0 → bquant-0.0.2}/scripts/deployment/README.md +212 -212
  239. {bquant-0.0.0 → bquant-0.0.2}/scripts/publishing/README.md +201 -201
  240. {bquant-0.0.0 → bquant-0.0.2}/setup.cfg +4 -4
  241. bquant-0.0.2/tests/analysis/zones/test_pipeline_cache.py +99 -0
  242. bquant-0.0.2/tests/analysis/zones/test_swing_presets.py +74 -0
  243. bquant-0.0.2/tests/analysis/zones/test_swing_thresholds.py +96 -0
  244. {bquant-0.0.0 → bquant-0.0.2}/tests/conftest.py +245 -231
  245. {bquant-0.0.0 → bquant-0.0.2}/tests/fixtures/__init__.py +267 -267
  246. bquant-0.0.2/tests/fixtures/swing_mocks.py +108 -0
  247. {bquant-0.0.0 → bquant-0.0.2}/tests/integration/__init__.py +17 -17
  248. bquant-0.0.2/tests/integration/test_backward_compatibility.py +228 -0
  249. {bquant-0.0.0 → bquant-0.0.2}/tests/integration/test_data_pipeline.py +171 -171
  250. {bquant-0.0.0 → bquant-0.0.2}/tests/integration/test_full_pipeline.py +421 -421
  251. bquant-0.0.2/tests/integration/test_pipeline_global_swings.py +102 -0
  252. {bquant-0.0.0 → bquant-0.0.2}/tests/integration/test_scripts_integration.py +515 -515
  253. bquant-0.0.2/tests/integration/test_truly_universal_zones.py +462 -0
  254. {bquant-0.0.0 → bquant-0.0.2}/tests/integration/test_visualization_pipeline.py +466 -453
  255. bquant-0.0.2/tests/integration/test_zone_analysis_e2e.py +339 -0
  256. bquant-0.0.2/tests/performance/test_swing_performance.py +115 -0
  257. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/__init__.py +17 -17
  258. bquant-0.0.2/tests/unit/test_all_indicator_types.py +423 -0
  259. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_analysis_structure.py +481 -481
  260. bquant-0.0.2/tests/unit/test_architecture_validation.py +317 -0
  261. bquant-0.0.2/tests/unit/test_builtin_migration.py +284 -0
  262. bquant-0.0.2/tests/unit/test_cache_versioning.py +59 -0
  263. bquant-0.0.2/tests/unit/test_classic_divergence_strategy.py +228 -0
  264. bquant-0.0.2/tests/unit/test_combined_volatility_strategy.py +260 -0
  265. bquant-0.0.2/tests/unit/test_compatibility_validation.py +163 -0
  266. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_core_modules.py +281 -224
  267. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_data_modules.py +307 -307
  268. bquant-0.0.2/tests/unit/test_divergence_strategy_universal.py +235 -0
  269. bquant-0.0.2/tests/unit/test_find_peaks_swing_strategy.py +152 -0
  270. bquant-0.0.2/tests/unit/test_imports_migration.py +184 -0
  271. bquant-0.0.2/tests/unit/test_indicator_factory.py +244 -0
  272. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_indicators_base.py +345 -340
  273. bquant-0.0.2/tests/unit/test_library_indicators.py +201 -0
  274. bquant-0.0.2/tests/unit/test_macd_analyzer.py +704 -0
  275. bquant-0.0.2/tests/unit/test_macd_backward_compatibility.py +255 -0
  276. bquant-0.0.2/tests/unit/test_pandas_ta_dynamic_loader.py +147 -0
  277. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_performance.py +594 -584
  278. bquant-0.0.2/tests/unit/test_pivot_points_swing_strategy.py +93 -0
  279. bquant-0.0.2/tests/unit/test_preloaded_indicators.py +128 -0
  280. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_sample_data.py +7 -12
  281. bquant-0.0.2/tests/unit/test_sample_generator.py +200 -0
  282. bquant-0.0.2/tests/unit/test_shape_strategy_universal.py +171 -0
  283. bquant-0.0.2/tests/unit/test_standard_volume_strategy.py +234 -0
  284. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_statistical_hypothesis.py +598 -432
  285. bquant-0.0.2/tests/unit/test_statistical_shape_strategy.py +210 -0
  286. bquant-0.0.2/tests/unit/test_strategy_infrastructure.py +637 -0
  287. bquant-0.0.2/tests/unit/test_swing_context_memory.py +43 -0
  288. bquant-0.0.2/tests/unit/test_swing_edge_cases.py +264 -0
  289. bquant-0.0.2/tests/unit/test_swing_global_calculation.py +180 -0
  290. bquant-0.0.2/tests/unit/test_time_metrics.py +144 -0
  291. bquant-0.0.2/tests/unit/test_universal_zone_analyzer.py +161 -0
  292. bquant-0.0.2/tests/unit/test_validation_suite.py +484 -0
  293. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_visualization.py +597 -597
  294. bquant-0.0.2/tests/unit/test_volume_strategy_universal.py +225 -0
  295. bquant-0.0.2/tests/unit/test_zigzag_swing_strategy.py +292 -0
  296. bquant-0.0.2/tests/unit/test_zone_analysis_builder.py +30 -0
  297. bquant-0.0.2/tests/unit/test_zone_detection_strategies.py +713 -0
  298. bquant-0.0.2/tests/unit/test_zone_features_analyzer_context.py +233 -0
  299. bquant-0.0.2/tests/unit/test_zone_features_divergence_integration.py +163 -0
  300. bquant-0.0.2/tests/unit/test_zone_features_shape_integration.py +140 -0
  301. bquant-0.0.2/tests/unit/test_zone_features_swing_integration.py +151 -0
  302. bquant-0.0.2/tests/unit/test_zone_features_volatility_integration.py +197 -0
  303. bquant-0.0.2/tests/unit/test_zone_features_volume_integration.py +180 -0
  304. bquant-0.0.2/tests/unit/test_zone_models.py +381 -0
  305. bquant-0.0.2/tests/unit/test_zone_pipeline.py +310 -0
  306. bquant-0.0.2/tests/unit/test_zone_presets.py +343 -0
  307. bquant-0.0.2/tests/unit/test_zone_regression_analyzer.py +351 -0
  308. {bquant-0.0.0 → bquant-0.0.2}/tests/unit/test_zones_analysis.py +529 -528
  309. bquant-0.0.2/tests/visualization/test_infrastructure.py +109 -0
  310. bquant-0.0.2/tests/visualization/test_swing_overlay.py +139 -0
  311. bquant-0.0.2/tests/visualization/test_zone_metrics_aggregation.py +190 -0
  312. bquant-0.0.2/tests/visualization/test_zone_metrics_display.py +142 -0
  313. bquant-0.0.2/tests/visualization/test_zones_visualization.py +282 -0
  314. bquant-0.0.0/PKG-INFO +0 -167
  315. bquant-0.0.0/README.md +0 -114
  316. bquant-0.0.0/bquant/analysis/zones/zone_features.py +0 -520
  317. bquant-0.0.0/bquant/core/config.py +0 -328
  318. bquant-0.0.0/bquant/core/logging_config.py +0 -368
  319. bquant-0.0.0/bquant/indicators/__init__.py +0 -115
  320. bquant-0.0.0/bquant/indicators/base.py +0 -487
  321. bquant-0.0.0/bquant/indicators/library.py +0 -514
  322. bquant-0.0.0/bquant/indicators/loaders.py +0 -413
  323. bquant-0.0.0/bquant/indicators/macd.py +0 -754
  324. bquant-0.0.0/bquant/visualization/zones.py +0 -775
  325. bquant-0.0.0/bquant.egg-info/PKG-INFO +0 -167
  326. bquant-0.0.0/bquant.egg-info/SOURCES.txt +0 -143
  327. bquant-0.0.0/bquant.egg-info/requires.txt +0 -34
  328. bquant-0.0.0/docs/README.md +0 -125
  329. bquant-0.0.0/docs/api/README.md +0 -181
  330. bquant-0.0.0/docs/api/analysis/README.md +0 -330
  331. bquant-0.0.0/docs/api/data/README.md +0 -250
  332. bquant-0.0.0/docs/api/extension_guide.md +0 -687
  333. bquant-0.0.0/docs/api/indicators/README.md +0 -315
  334. bquant-0.0.0/docs/developer_guide/README.md +0 -368
  335. bquant-0.0.0/docs/examples/README.md +0 -268
  336. bquant-0.0.0/docs/tutorials/README.md +0 -165
  337. bquant-0.0.0/docs/user_guide/README.md +0 -103
  338. bquant-0.0.0/docs/user_guide/quick_start.md +0 -198
  339. bquant-0.0.0/examples/02_macd_zone_analysis.py +0 -411
  340. bquant-0.0.0/examples/04_comprehensive_analysis.py +0 -716
  341. bquant-0.0.0/examples/README.md +0 -244
  342. bquant-0.0.0/tests/unit/test_macd_analyzer.py +0 -503
  343. {bquant-0.0.0 → bquant-0.0.2}/bquant/data/samples/datasets.py +0 -0
  344. {bquant-0.0.0 → bquant-0.0.2}/bquant.egg-info/dependency_links.txt +0 -0
  345. {bquant-0.0.0 → bquant-0.0.2}/bquant.egg-info/entry_points.txt +0 -0
  346. {bquant-0.0.0 → bquant-0.0.2}/bquant.egg-info/top_level.txt +0 -0
  347. {bquant-0.0.0 → bquant-0.0.2}/scripts/data/extract_samples.py +0 -0
@@ -1,96 +1,122 @@
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
+ ## [0.0.2] - 2026-07-20
13
+
14
+ ### Added
15
+ - **`SwingPoint.confirmation_index`** маркер причинной доступности свинга: индекс
16
+ бара, к которому пивот (и его `amplitude_to_next`) причинно подтверждён. Позволяет
17
+ строить leak-free / look-ahead-free потребителей (устранение утечки J1). Реализован
18
+ для ZigZag-стратегии; прочие свинг-стратегии оставляют `None` (контракт допускает
19
+ мягкую деградацию). Сериализуется в `SwingContext.to_dict()`. (PR #107)
20
+
21
+ ### Changed
22
+ - **`CACHE_SCHEMA_VERSION` повышена до 2** — ключ дискового кэша зон-анализа теперь
23
+ учитывает версию схемы вывода, инвалидируя старые кэши без `confirmation_index`.
24
+ Инвариант: любое изменение схемы/семантики кэшируемого вывода обязано бампать
25
+ `CACHE_SCHEMA_VERSION`.
26
+
27
+ ## [0.0.1] - 2026-01-12
28
+
29
+ ### Added
30
+ - Initial release of BQuant package
31
+ - Complete migration from Quanto project
32
+ - Comprehensive technical analysis framework
33
+ - MACD zone analysis with statistical testing
34
+ - Advanced data processing and validation
35
+ - Professional visualization system
36
+ - Embedded sample data for testing
37
+ - CLI scripts for analysis automation
38
+ - Complete documentation and examples
39
+ - **Zone Metrics Visualization (v1.0)** - 2025-11-11
40
+ - Aggregate metrics display with `show_aggregate_metrics` parameter (compact/full modes)
41
+ - Swing points visualization on charts with `show_swings` parameter
42
+ - Detail mode zone metrics with `show_zone_metrics` parameter
43
+ - Date range filtering with automatic metrics recalculation for selected period
44
+ - Support for unbalanced swings in global swing mode
45
+ - See [docs/api/visualization/zones.md](docs/api/visualization/zones.md) for details
46
+
47
+
48
+ ## [0.0.0] - 2024-08-25
49
+
50
+ ### Added
51
+ - Foundation for BQuant project
52
+ - Basic project structure
53
+ - Core configuration system
54
+ - Initial test framework
55
+ - Initial beta release
56
+ - Basic MACD analysis functionality
57
+ - Core data processing capabilities
58
+ - Preliminary documentation
59
+
60
+ ### Structure
61
+
62
+ - **Core Modules**: Configuration, exceptions, logging, performance, utilities
63
+ - **Data Modules**: Loader, processor, validator, samples, schemas
64
+ - **Indicators**: Base classes, MACD analyzer, factory pattern
65
+ - **Analysis**: Statistical analysis, zone analysis, hypothesis testing
66
+ - **Visualization**: Financial charts, zone visualization, statistical plots, themes
67
+ - **Research Structure**: Notebooks, methodology, experiments, studies
68
+ - **Scripts**: Analysis automation, data processing, deployment tools
69
+ - **Documentation**: Complete API reference, user guide, tutorials, examples
70
+
71
+ ### Technical Features
72
+ - **MACD Zone Analysis**: Advanced MACD analysis with zone identification
73
+ - **Statistical Testing**: Comprehensive hypothesis testing framework
74
+ - **Data Processing**: Robust data loading, cleaning, and validation
75
+ - **Performance Optimization**: Caching system and optimized algorithms
76
+ - **Visualization**: Professional charts with multiple themes
77
+ - **Sample Data**: Embedded financial data for testing and examples
78
+
79
+ ### Architecture
80
+ - **Modular Design**: Clean separation of concerns
81
+ - **Type Safety**: Full type hints and validation
82
+ - **Error Handling**: Comprehensive exception system
83
+ - **Logging**: Professional logging with multiple levels
84
+ - **Testing**: Complete test coverage with pytest
85
+ - **Documentation**: Sphinx-based documentation system
86
+
87
+ ### Dependencies
88
+ - **Core**: pandas, numpy, matplotlib, seaborn
89
+ - **Analysis**: scipy, scikit-learn, statsmodels
90
+ - **Visualization**: plotly, seaborn
91
+ - **Development**: pytest, black, flake8, mypy
92
+
93
+ ---
94
+
95
+ ## Version History
96
+
97
+ ### Semantic Versioning
98
+ - **MAJOR**: Incompatible API changes
99
+ - **MINOR**: New functionality in backward-compatible manner
100
+ - **PATCH**: Backward-compatible bug fixes
101
+
102
+ ### Release Schedule
103
+ - **Major releases**: Every 6 months
104
+ - **Minor releases**: Every 2-4 weeks
105
+ - **Patch releases**: As needed for critical fixes
106
+
107
+ ### Support Policy
108
+ - **Current version**: Full support
109
+ - **Previous major version**: Bug fixes only
110
+ - **Older versions**: No support
111
+
112
+ ---
113
+
114
+ ## Contributing
115
+
116
+ Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
117
+
118
+ ## Acknowledgments
119
+
120
+ - Original Quanto project contributors
121
+ - Open source financial analysis community
122
+ - 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.2/PKG-INFO ADDED
@@ -0,0 +1,239 @@
1
+ Metadata-Version: 2.4
2
+ Name: bquant
3
+ Version: 0.0.2
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
+ Provides-Extra: research
63
+ Requires-Dist: pycatch22>=0.4.5; extra == "research"
64
+ Requires-Dist: pyts>=0.13.0; extra == "research"
65
+ Requires-Dist: tslearn>=0.9.0; extra == "research"
66
+ Dynamic: license-file
67
+
68
+ # BQuant - Quantitative Research Toolkit
69
+
70
+ **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.
71
+
72
+ ## 🔧 Key Features
73
+
74
+ ### Zone Analysis - Universal Pipeline v2.1
75
+ - **Universal API**: Works with any indicator (MACD, RSI, AO, custom) through fluent builder pattern
76
+ - **5 Detection Strategies**: zero_crossing, threshold, line_crossing, preloaded, combined
77
+ - **Advanced Analysis**: Swing, divergence, volume, volatility strategies with automatic feature extraction
78
+ - **Statistical Testing**: Automatic hypothesis tests and clustering analysis
79
+ - **Caching Support**: Performance optimization with memory and disk caching
80
+
81
+ ### Core Features
82
+ - **Universal Configuration System**: Flexible settings for data sources, indicators, and analysis
83
+ - **Extensible Indicator Library**: Includes optimized built-in indicators and supports external libraries like `pandas-ta` and `TA-Lib`
84
+ - **ML Readiness**: A modular structure prepared for future machine learning integration
85
+ - **Rich Visualization Tools**: Create interactive financial charts and statistical plots with Plotly and Matplotlib
86
+ - **Performance-Oriented**: Features a two-level caching system and performance monitoring tools
87
+ - **Command-Line Interface**: Provides a simple CLI for quick analysis and data management
88
+
89
+ ## 🚀 Quick Start
90
+
91
+ ### Installation
92
+
93
+ ```bash
94
+ # Install in development mode
95
+ pip install -e .
96
+
97
+ # Install with optional dependencies
98
+ pip install -e .[dev,notebooks]
99
+ ```
100
+
101
+ ### Basic Usage - Universal Pipeline v2.1
102
+
103
+ ```python
104
+ from bquant.data.samples import get_sample_data
105
+ from bquant.analysis.zones import analyze_zones
106
+
107
+ # Load sample data
108
+ data = get_sample_data('tv_xauusd_1h')
109
+
110
+ # Universal Pipeline - работает с любым индикатором
111
+ result = (
112
+ analyze_zones(data)
113
+ .with_indicator('pandas_ta', 'rsi', length=14)
114
+ .detect_zones('threshold', indicator_col='rsi',
115
+ upper_threshold=70, lower_threshold=30)
116
+ .analyze(clustering=True)
117
+ .build()
118
+ )
119
+
120
+ print(f"Found {len(result.zones)} zones")
121
+ print(f"Statistics: {result.statistics}")
122
+ ```
123
+
124
+ ### Legacy MACD Wrapper (Deprecated)
125
+
126
+ ```python
127
+ # ⚠️ DEPRECATED: Используйте analyze_zones() вместо этого
128
+ from bquant.indicators import MACDZoneAnalyzer
129
+
130
+ analyzer = MACDZoneAnalyzer() # Deprecated wrapper
131
+ result = analyzer.analyze_complete(data) # Delegates to analyze_zones()
132
+ ```
133
+
134
+ #### pandas-ta indicators in one line
135
+
136
+ ```python
137
+ from bquant.indicators import LibraryManager
138
+
139
+ # Load external libraries (pandas-ta, TA-Lib when installed)
140
+ LibraryManager.load_all_libraries()
141
+
142
+ # "Simple way" to access any pandas-ta indicator discovered dynamically
143
+ rsi = LibraryManager.create_indicator('pandas_ta', 'rsi', length=14)
144
+ result = rsi.calculate(data)
145
+ print(result.data.tail())
146
+ ```
147
+
148
+ See the [LibraryManager documentation](docs/api/indicators/library_manager.md) for more examples.
149
+
150
+ ### Command Line
151
+
152
+ ```bash
153
+ # List available sample datasets
154
+ bquant list
155
+
156
+ # Analyze a dataset using default settings
157
+ bquant analyze tv_xauusd_1h
158
+
159
+ # Analyze and save the chart to a file
160
+ bquant analyze mt_xauusd_m15 -o chart.html
161
+ ```
162
+
163
+ ## 📋 Project Structure
164
+
165
+ This is a monorepo that contains:
166
+
167
+ - **`bquant/`** - Python package (for PyPI)
168
+ - **`research/`** - Jupyter notebooks and experiments
169
+ - **`scripts/`** - Automation scripts
170
+ - **`data/`** - Data storage
171
+ - **`tests/`** - Test suite
172
+ - **`docs/`** - Documentation
173
+
174
+ ## 🛠️ Development
175
+
176
+ ### Setting up development environment
177
+
178
+ ```bash
179
+ # Create virtual environment
180
+ python -m venv .venv
181
+
182
+ # Activate (Windows)
183
+ .venv\Scripts\activate
184
+
185
+ # Activate (Linux/Mac)
186
+ source .venv/bin/activate
187
+
188
+ # Install dependencies
189
+ pip install -r requirements.txt
190
+
191
+ # Install in development mode with all extras
192
+ pip install -e .[full]
193
+ ```
194
+
195
+ ### Running tests
196
+
197
+ ```bash
198
+ pytest tests/ -v
199
+ ```
200
+
201
+ ## 📚 Documentation
202
+
203
+ ### Universal Pipeline v2.1
204
+ - **[Quick Start](docs/user_guide/quick_start.md)** - 5 минут до первого результата
205
+ - **[API Reference](docs/api/analysis/pipeline.md)** - полная документация Universal Pipeline
206
+ - **[Examples](examples/02a_universal_zones.py)** - готовые примеры для всех индикаторов
207
+ - **[Migration Guide](examples/02_macd_zone_analysis.py)** - переход с deprecated API
208
+
209
+ ### Complete Documentation
210
+ - **[API Documentation](docs/api/)** - Справочник API
211
+ - **[Tutorials](docs/tutorials/)** - Обучающие материалы
212
+ - **[Examples](docs/examples/)** - Примеры использования
213
+ - **[Developer Guide](docs/developer_guide/)** - Руководство разработчика
214
+
215
+ ### Architecture
216
+ - **Two-Layer Design**: Simplification from 3 to 2 layers
217
+ - **Zero Hardcode**: ZERO hardcoded indicators, full universality
218
+ - **Design Patterns**: Strategy, Dependency Injection, Builder, Registry
219
+ - **115 Tests**: 100% pass rate, proof of universality
220
+
221
+ ## 🎯 Roadmap
222
+
223
+ - **Phase 1 (Completed)**: Core functionality (data loading, processing, validation), advanced MACD analysis, and statistical engine.
224
+ - **Phase 2 (In Progress)**: Extended visualization options, implementation of Time Series and other indicator analysis modules (currently stubs).
225
+ - **Phase 3 (Planned)**: Full machine learning integration, chart pattern recognition, and enhanced automation pipelines.
226
+
227
+ ## 📄 License
228
+
229
+ MIT License - see [LICENSE](LICENSE) file for details.
230
+
231
+ ## 🤝 Contributing
232
+
233
+ Contributions are welcome! Please read our contributing guidelines and submit pull requests.
234
+
235
+ ## 📞 Contact
236
+
237
+ - **Author**: kogriv
238
+ - **Email**: kogriv@gmail.com
239
+ - **Repository**: https://github.com/kogriv/bquant