quantwave 0.1.18__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. {quantwave-0.1.18 → quantwave-0.5.0}/Cargo.lock +131 -11
  2. {quantwave-0.1.18 → quantwave-0.5.0}/Cargo.toml +9 -2
  3. {quantwave-0.1.18 → quantwave-0.5.0}/PKG-INFO +1 -1
  4. {quantwave-0.1.18 → quantwave-0.5.0}/python/quantwave/__init__.py +76 -41
  5. quantwave-0.5.0/python/quantwave/polars.py +371 -0
  6. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/Cargo.toml +5 -2
  7. quantwave-0.5.0/quantwave-core/README.md +101 -0
  8. quantwave-0.5.0/quantwave-core/src/bin/bench_complex.rs +38 -0
  9. quantwave-0.5.0/quantwave-core/src/bin/bench_ema.rs +24 -0
  10. quantwave-0.5.0/quantwave-core/src/bin/bench_rust.rs +36 -0
  11. quantwave-0.5.0/quantwave-core/src/bin/bench_sma.rs +24 -0
  12. quantwave-0.5.0/quantwave-core/src/features/cyber_cycle.rs +76 -0
  13. quantwave-0.5.0/quantwave-core/src/features/ehlers_autocorrelation.rs +63 -0
  14. quantwave-0.5.0/quantwave-core/src/features/griffiths_dominant_cycle.rs +53 -0
  15. quantwave-0.5.0/quantwave-core/src/features/hurst.rs +108 -0
  16. quantwave-0.5.0/quantwave-core/src/features/instantaneous_trendline.rs +39 -0
  17. quantwave-0.5.0/quantwave-core/src/features/mod.rs +135 -0
  18. quantwave-0.5.0/quantwave-core/src/features/regime.rs +50 -0
  19. quantwave-0.5.0/quantwave-core/src/features/regime_probs.rs +48 -0
  20. quantwave-0.5.0/quantwave-core/src/features/trendflex.rs +51 -0
  21. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/cycle.rs +1 -1
  22. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/harrington_adx.rs +4 -4
  23. quantwave-0.5.0/quantwave-core/src/indicators/kinematic_kalman.rs +207 -0
  24. quantwave-0.5.0/quantwave-core/src/indicators/market_structure.rs +410 -0
  25. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/mod.rs +2 -0
  26. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/price_transform.rs +1 -1
  27. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/smoothing.rs +4 -3
  28. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/volatility.rs +3 -2
  29. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/vpn.rs +2 -2
  30. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/lib.rs +8 -0
  31. quantwave-0.5.0/quantwave-core/src/options_india/black_scholes.rs +83 -0
  32. quantwave-0.5.0/quantwave-core/src/options_india/chain_analytics.rs +163 -0
  33. quantwave-0.5.0/quantwave-core/src/options_india/india.rs +50 -0
  34. quantwave-0.5.0/quantwave-core/src/options_india/iv_solver.rs +1118 -0
  35. quantwave-0.5.0/quantwave-core/src/options_india/mod.rs +9 -0
  36. quantwave-0.5.0/quantwave-core/src/regimes/analytics.rs +152 -0
  37. quantwave-0.5.0/quantwave-core/src/regimes/ensemble.rs +40 -0
  38. quantwave-0.5.0/quantwave-core/src/regimes/gmm.rs +79 -0
  39. quantwave-0.5.0/quantwave-core/src/regimes/hmm.rs +119 -0
  40. quantwave-0.5.0/quantwave-core/src/regimes/hmm_gas.rs +108 -0
  41. quantwave-0.5.0/quantwave-core/src/regimes/hsmm.rs +126 -0
  42. quantwave-0.5.0/quantwave-core/src/regimes/india.rs +39 -0
  43. quantwave-0.5.0/quantwave-core/src/regimes/mod.rs +40 -0
  44. quantwave-0.5.0/quantwave-core/src/regimes/ms_garch.rs +139 -0
  45. quantwave-0.5.0/quantwave-core/src/regimes/multi_asset.rs +140 -0
  46. quantwave-0.5.0/quantwave-core/src/regimes/pelt.rs +94 -0
  47. quantwave-0.5.0/quantwave-core/src/regimes/tar.rs +51 -0
  48. quantwave-0.5.0/quantwave-core/src/regimes/volatility_clustering.rs +114 -0
  49. quantwave-0.5.0/quantwave-core/tests/test_ml_feature_validation.rs +318 -0
  50. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-python/.gitignore +1 -0
  51. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-python/Cargo.toml +1 -1
  52. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-python/src/lib.rs +335 -1
  53. quantwave-0.1.18/quantwave-python/README.md +0 -62
  54. {quantwave-0.1.18 → quantwave-0.5.0}/LICENSE +0 -0
  55. {quantwave-0.1.18 → quantwave-0.5.0}/README.md +0 -0
  56. {quantwave-0.1.18 → quantwave-0.5.0}/pyproject.toml +0 -0
  57. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/proptest-regressions/indicators/bandpass.txt +0 -0
  58. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/proptest-regressions/indicators/oc_price_rsi.txt +0 -0
  59. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/proptest-regressions/indicators/overlap.txt +0 -0
  60. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/proptest-regressions/indicators/rocket_rsi.txt +0 -0
  61. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/adaptive_ema.rs +0 -0
  62. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/alligator.rs +0 -0
  63. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/alma.rs +0 -0
  64. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/amfm.rs +0 -0
  65. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/atr_ts.rs +0 -0
  66. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/autotune.rs +0 -0
  67. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/bandpass.rs +0 -0
  68. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/butterworth.rs +0 -0
  69. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/cg.rs +0 -0
  70. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/channel_cycle.rs +0 -0
  71. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/choppiness_index.rs +0 -0
  72. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/classic_laguerre.rs +0 -0
  73. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/continuation_index.rs +0 -0
  74. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/correlation_cycle.rs +0 -0
  75. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/correlation_trend.rs +0 -0
  76. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/cyber_cycle.rs +0 -0
  77. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/cybernetic_oscillator.rs +0 -0
  78. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/cycle_trend_analytics.rs +0 -0
  79. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/dmh.rs +0 -0
  80. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/donchian.rs +0 -0
  81. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/dsma.rs +0 -0
  82. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ehlers_autocorrelation.rs +0 -0
  83. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ehlers_filter.rs +0 -0
  84. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ehlers_loops.rs +0 -0
  85. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ehlers_stochastic.rs +0 -0
  86. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ehlers_ultimate_oscillator.rs +0 -0
  87. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/emd.rs +0 -0
  88. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/exp_dev_bands.rs +0 -0
  89. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/fisher.rs +0 -0
  90. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/fisher_high_pass.rs +0 -0
  91. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/fourier_series.rs +0 -0
  92. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/fourier_transform.rs +0 -0
  93. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/fractals.rs +0 -0
  94. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/frama.rs +0 -0
  95. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/gap_momentum.rs +0 -0
  96. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/gaussian.rs +0 -0
  97. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/generalized_laguerre.rs +0 -0
  98. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/griffiths_dominant_cycle.rs +0 -0
  99. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/griffiths_predictor.rs +0 -0
  100. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/griffiths_spectrum.rs +0 -0
  101. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/hamming.rs +0 -0
  102. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/hann.rs +0 -0
  103. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/heikin_ashi.rs +0 -0
  104. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/high_pass.rs +0 -0
  105. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/hilbert_transform.rs +0 -0
  106. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/hma.rs +0 -0
  107. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/homodyne_discriminator.rs +0 -0
  108. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/hurst.rs +0 -0
  109. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ichimoku.rs +0 -0
  110. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/instantaneous_trendline.rs +0 -0
  111. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/inverse_fisher.rs +0 -0
  112. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/just_ignore_them.rs +0 -0
  113. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/kalman.rs +0 -0
  114. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/kama.rs +0 -0
  115. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/keltner.rs +0 -0
  116. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/laguerre_filter.rs +0 -0
  117. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/laguerre_oscillator.rs +0 -0
  118. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/laguerre_rsi.rs +0 -0
  119. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/mad.rs +0 -0
  120. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/madh.rs +0 -0
  121. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/mama.rs +0 -0
  122. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/market_state.rs +0 -0
  123. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/math.rs +0 -0
  124. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/mesa_stochastic.rs +0 -0
  125. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/metadata.rs +0 -0
  126. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/momentum.rs +0 -0
  127. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/my_rsi.rs +0 -0
  128. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/noise_elimination.rs +0 -0
  129. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/obvm.rs +0 -0
  130. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/oc_price_rsi.rs +0 -0
  131. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/one_euro_filter.rs +0 -0
  132. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/overlap.rs +0 -0
  133. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/pairs_rotation.rs +0 -0
  134. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/pattern.rs +0 -0
  135. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/phasor.rs +0 -0
  136. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/pivot_points.rs +0 -0
  137. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/pma.rs +0 -0
  138. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/precision_trend.rs +0 -0
  139. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/recursive_median.rs +0 -0
  140. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/reflex.rs +0 -0
  141. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/reverse_ema.rs +0 -0
  142. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/reversion_index.rs +0 -0
  143. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/robustness.rs +0 -0
  144. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/rocket_rsi.rs +0 -0
  145. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/rodc.rs +0 -0
  146. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/roofing_filter.rs +0 -0
  147. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/rsih.rs +0 -0
  148. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/rsmk.rs +0 -0
  149. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/sdo.rs +0 -0
  150. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/simple_predictor.rs +0 -0
  151. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/sine_wave.rs +0 -0
  152. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/statistics.rs +0 -0
  153. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/stc.rs +0 -0
  154. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/super_smoother.rs +0 -0
  155. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/supertrend.rs +0 -0
  156. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/sve_volatility_bands.rs +0 -0
  157. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/swiss_army_knife.rs +0 -0
  158. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/synthetic_oscillator.rs +0 -0
  159. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/system_evaluator.rs +0 -0
  160. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/talib_wrapper.rs +0 -0
  161. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/tema.rs +0 -0
  162. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/tradj_ema.rs +0 -0
  163. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/trendflex.rs +0 -0
  164. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/triangle.rs +0 -0
  165. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/truncated_bandpass.rs +0 -0
  166. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ttm_squeeze.rs +0 -0
  167. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ultimate_bands.rs +0 -0
  168. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ultimate_channel.rs +0 -0
  169. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/ultimate_smoother.rs +0 -0
  170. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/universal_oscillator.rs +0 -0
  171. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/usi.rs +0 -0
  172. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/vfi.rs +0 -0
  173. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/volume.rs +0 -0
  174. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/volume_profile.rs +0 -0
  175. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/vortex.rs +0 -0
  176. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/voss_predictor.rs +0 -0
  177. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/vwap.rs +0 -0
  178. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/wavetrend.rs +0 -0
  179. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/indicators/zero_lag.rs +0 -0
  180. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/test_utils.rs +0 -0
  181. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/src/traits.rs +0 -0
  182. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/alma_9_085_6.json +0 -0
  183. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/atr_ts_14_25.json +0 -0
  184. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/cycle_trend_analytics.json +0 -0
  185. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/donchian_5.json +0 -0
  186. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/ehlers_autocorrelation.json +0 -0
  187. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/ehlers_loops.json +0 -0
  188. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/ehlers_stochastic.json +0 -0
  189. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/fractals.json +0 -0
  190. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/heikin_ashi.json +0 -0
  191. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/hma_14.json +0 -0
  192. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/ichimoku.json +0 -0
  193. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/keltner_20_20_15.json +0 -0
  194. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/mad.json +0 -0
  195. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/mesa_stochastic.json +0 -0
  196. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/oc_price_rsi.json +0 -0
  197. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/pivot_points.json +0 -0
  198. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/rsih.json +0 -0
  199. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/sma_5.json +0 -0
  200. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/supertrend_10_3.json +0 -0
  201. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/tema_14.json +0 -0
  202. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/ttm_squeeze_20_2_15.json +0 -0
  203. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/vortex_14.json +0 -0
  204. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/voss_predictor.json +0 -0
  205. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/gold_standard/wavetrend_10_21_4.json +0 -0
  206. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-core/tests/test_wrapper.rs +0 -0
  207. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-python/LICENSE +0 -0
  208. {quantwave-0.1.18/quantwave-core → quantwave-0.5.0/quantwave-python}/README.md +0 -0
  209. {quantwave-0.1.18 → quantwave-0.5.0}/quantwave-python/build.rs +0 -0
@@ -345,7 +345,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
345
345
  checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
346
346
  dependencies = [
347
347
  "iana-time-zone",
348
+ "js-sys",
348
349
  "num-traits",
350
+ "serde",
351
+ "wasm-bindgen",
349
352
  "windows-link",
350
353
  ]
351
354
 
@@ -1302,6 +1305,16 @@ dependencies = [
1302
1305
  "libc",
1303
1306
  ]
1304
1307
 
1308
+ [[package]]
1309
+ name = "matrixmultiply"
1310
+ version = "0.3.10"
1311
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1312
+ checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
1313
+ dependencies = [
1314
+ "autocfg",
1315
+ "rawpointer",
1316
+ ]
1317
+
1305
1318
  [[package]]
1306
1319
  name = "memchr"
1307
1320
  version = "2.8.0"
@@ -1340,6 +1353,36 @@ dependencies = [
1340
1353
  "windows-sys 0.61.2",
1341
1354
  ]
1342
1355
 
1356
+ [[package]]
1357
+ name = "nalgebra"
1358
+ version = "0.33.3"
1359
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1360
+ checksum = "9d43ddcacf343185dfd6de2ee786d9e8b1c2301622afab66b6c73baf9882abfd"
1361
+ dependencies = [
1362
+ "approx",
1363
+ "matrixmultiply",
1364
+ "nalgebra-macros",
1365
+ "num-complex",
1366
+ "num-rational",
1367
+ "num-traits",
1368
+ "rand 0.8.6",
1369
+ "rand_distr",
1370
+ "serde",
1371
+ "simba",
1372
+ "typenum",
1373
+ ]
1374
+
1375
+ [[package]]
1376
+ name = "nalgebra-macros"
1377
+ version = "0.2.2"
1378
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1379
+ checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc"
1380
+ dependencies = [
1381
+ "proc-macro2",
1382
+ "quote",
1383
+ "syn",
1384
+ ]
1385
+
1343
1386
  [[package]]
1344
1387
  name = "nom"
1345
1388
  version = "7.1.3"
@@ -1368,6 +1411,16 @@ dependencies = [
1368
1411
  "winapi",
1369
1412
  ]
1370
1413
 
1414
+ [[package]]
1415
+ name = "num-bigint"
1416
+ version = "0.4.6"
1417
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1418
+ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
1419
+ dependencies = [
1420
+ "num-integer",
1421
+ "num-traits",
1422
+ ]
1423
+
1371
1424
  [[package]]
1372
1425
  name = "num-complex"
1373
1426
  version = "0.4.6"
@@ -1375,6 +1428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1375
1428
  checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
1376
1429
  dependencies = [
1377
1430
  "num-traits",
1431
+ "serde",
1378
1432
  ]
1379
1433
 
1380
1434
  [[package]]
@@ -1386,6 +1440,17 @@ dependencies = [
1386
1440
  "num-traits",
1387
1441
  ]
1388
1442
 
1443
+ [[package]]
1444
+ name = "num-rational"
1445
+ version = "0.4.2"
1446
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1447
+ checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
1448
+ dependencies = [
1449
+ "num-bigint",
1450
+ "num-integer",
1451
+ "num-traits",
1452
+ ]
1453
+
1389
1454
  [[package]]
1390
1455
  name = "num-traits"
1391
1456
  version = "0.2.19"
@@ -2060,30 +2125,48 @@ dependencies = [
2060
2125
 
2061
2126
  [[package]]
2062
2127
  name = "quantwave"
2063
- version = "0.1.18"
2128
+ version = "0.5.0"
2064
2129
  dependencies = [
2065
2130
  "quantwave-core",
2066
2131
  "quantwave-polars",
2067
2132
  ]
2068
2133
 
2134
+ [[package]]
2135
+ name = "quantwave-backtest"
2136
+ version = "0.5.0"
2137
+ dependencies = [
2138
+ "approx",
2139
+ "chrono",
2140
+ "polars",
2141
+ "proptest",
2142
+ "quantwave-core",
2143
+ "rand 0.8.6",
2144
+ "serde",
2145
+ "serde_json",
2146
+ "thiserror 1.0.69",
2147
+ ]
2148
+
2069
2149
  [[package]]
2070
2150
  name = "quantwave-core"
2071
- version = "0.1.18"
2151
+ version = "0.5.0"
2072
2152
  dependencies = [
2073
2153
  "approx",
2154
+ "chrono",
2074
2155
  "log",
2156
+ "nalgebra",
2075
2157
  "proptest",
2076
2158
  "rand 0.8.6",
2077
2159
  "rustfft",
2078
2160
  "serde",
2079
2161
  "serde_json",
2162
+ "statrs",
2080
2163
  "talib-rs",
2081
2164
  "thiserror 1.0.69",
2082
2165
  ]
2083
2166
 
2084
2167
  [[package]]
2085
2168
  name = "quantwave-plugins"
2086
- version = "0.1.18"
2169
+ version = "0.5.0"
2087
2170
  dependencies = [
2088
2171
  "polars",
2089
2172
  "polars-arrow",
@@ -2094,7 +2177,7 @@ dependencies = [
2094
2177
 
2095
2178
  [[package]]
2096
2179
  name = "quantwave-polars"
2097
- version = "0.1.18"
2180
+ version = "0.5.0"
2098
2181
  dependencies = [
2099
2182
  "polars",
2100
2183
  "quantwave-core",
@@ -2104,7 +2187,7 @@ dependencies = [
2104
2187
 
2105
2188
  [[package]]
2106
2189
  name = "quantwave-python"
2107
- version = "0.1.18"
2190
+ version = "0.5.0"
2108
2191
  dependencies = [
2109
2192
  "paste",
2110
2193
  "quantwave-core",
@@ -2113,7 +2196,7 @@ dependencies = [
2113
2196
 
2114
2197
  [[package]]
2115
2198
  name = "quantwave-xtask"
2116
- version = "0.1.18"
2199
+ version = "0.5.0"
2117
2200
  dependencies = [
2118
2201
  "anyhow",
2119
2202
  "quick-xml",
@@ -2132,9 +2215,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
2132
2215
 
2133
2216
  [[package]]
2134
2217
  name = "quick-xml"
2135
- version = "0.40.0"
2218
+ version = "0.40.1"
2136
2219
  source = "registry+https://github.com/rust-lang/crates.io-index"
2137
- checksum = "0b7315c86b26aaef0321fba33c9dcc160da659c6a9d278f0f6a5656d6561c03b"
2220
+ checksum = "2474bd2e5029e7ccb6abb2ba48cf2383a333851dedf495901544281590c7da7f"
2138
2221
  dependencies = [
2139
2222
  "memchr",
2140
2223
  "serde",
@@ -2304,6 +2387,12 @@ dependencies = [
2304
2387
  "bitflags",
2305
2388
  ]
2306
2389
 
2390
+ [[package]]
2391
+ name = "rawpointer"
2392
+ version = "0.2.1"
2393
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2394
+ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
2395
+
2307
2396
  [[package]]
2308
2397
  name = "rayon"
2309
2398
  version = "1.12.0"
@@ -2730,6 +2819,19 @@ version = "1.3.0"
2730
2819
  source = "registry+https://github.com/rust-lang/crates.io-index"
2731
2820
  checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
2732
2821
 
2822
+ [[package]]
2823
+ name = "simba"
2824
+ version = "0.9.1"
2825
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2826
+ checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95"
2827
+ dependencies = [
2828
+ "approx",
2829
+ "num-complex",
2830
+ "num-traits",
2831
+ "paste",
2832
+ "wide",
2833
+ ]
2834
+
2733
2835
  [[package]]
2734
2836
  name = "simd_cesu8"
2735
2837
  version = "1.1.1"
@@ -2823,6 +2925,18 @@ version = "1.1.0"
2823
2925
  source = "registry+https://github.com/rust-lang/crates.io-index"
2824
2926
  checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
2825
2927
 
2928
+ [[package]]
2929
+ name = "statrs"
2930
+ version = "0.18.0"
2931
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2932
+ checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e"
2933
+ dependencies = [
2934
+ "approx",
2935
+ "nalgebra",
2936
+ "num-traits",
2937
+ "rand 0.8.6",
2938
+ ]
2939
+
2826
2940
  [[package]]
2827
2941
  name = "streaming-decompression"
2828
2942
  version = "0.1.2"
@@ -3099,7 +3213,7 @@ version = "1.1.2+spec-1.1.0"
3099
3213
  source = "registry+https://github.com/rust-lang/crates.io-index"
3100
3214
  checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
3101
3215
  dependencies = [
3102
- "winnow 1.0.2",
3216
+ "winnow 1.0.3",
3103
3217
  ]
3104
3218
 
3105
3219
  [[package]]
@@ -3188,6 +3302,12 @@ version = "0.2.5"
3188
3302
  source = "registry+https://github.com/rust-lang/crates.io-index"
3189
3303
  checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
3190
3304
 
3305
+ [[package]]
3306
+ name = "typenum"
3307
+ version = "1.20.0"
3308
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3309
+ checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
3310
+
3191
3311
  [[package]]
3192
3312
  name = "unarray"
3193
3313
  version = "0.1.4"
@@ -3920,9 +4040,9 @@ dependencies = [
3920
4040
 
3921
4041
  [[package]]
3922
4042
  name = "winnow"
3923
- version = "1.0.2"
4043
+ version = "1.0.3"
3924
4044
  source = "registry+https://github.com/rust-lang/crates.io-index"
3925
- checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0"
4045
+ checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1"
3926
4046
 
3927
4047
  [[package]]
3928
4048
  name = "wit-bindgen"
@@ -3,7 +3,7 @@ members = ["quantwave-core", "quantwave-python"]
3
3
  resolver = "2"
4
4
 
5
5
  [workspace.package]
6
- version = "0.1.18"
6
+ version = "0.5.0"
7
7
  edition = "2024"
8
8
  license = "MIT"
9
9
  repository = "https://github.com/lavs9/quantwave"
@@ -15,7 +15,7 @@ categories = ["science", "mathematics"]
15
15
  keywords = ["trading", "technical-analysis", "polars", "finance"]
16
16
 
17
17
  [workspace.dependencies]
18
- polars = { version = "0.46", features = ["lazy", "dtype-struct"] }
18
+ polars = { version = "0.46", features = ["lazy", "dtype-struct", "moment", "cum_agg"] }
19
19
  polars-core = { version = "0.46" }
20
20
  polars-arrow = { version = "0.46" }
21
21
  talib-rs = "0.1"
@@ -27,6 +27,13 @@ rand = "0.8"
27
27
  serde_json = "1.0"
28
28
  log = "0.4"
29
29
  thiserror = "1.0"
30
+ chrono = { version = "0.4", features = ["serde"] }
31
+ nalgebra = { version = "0.33", features = ["serde-serialize"] }
32
+ statrs = "0.18"
33
+ quantwave-core = { path = "quantwave-core" }
34
+ quantwave-polars = { path = "quantwave-polars" }
35
+ quantwave-plugins = { path = "quantwave-plugins" }
36
+ quantwave-backtest = { path = "quantwave-backtest" }
30
37
 
31
38
  [profile.dev]
32
39
  opt-level = 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quantwave
3
- Version: 0.1.18
3
+ Version: 0.5.0
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Intended Audience :: Financial and Insurance Industry
@@ -1,4 +1,5 @@
1
1
  from ._quantwave import * # noqa
2
+ from . import polars # noqa
2
3
 
3
4
  # Nice namespace
4
5
  class ta:
@@ -11,64 +12,64 @@ class ta:
11
12
  adx = adx
12
13
  cci = cci
13
14
  stoch = stoch
14
- aroon = aroon
15
- mama = mama
15
+ aroon = Aroon
16
+ mama = Mama
16
17
  kama = kama
17
- t3 = t3
18
+ t3 = T3
18
19
  sar = sar
19
20
  mom = mom
20
21
  roc = roc
21
22
  willr = willr
22
23
  dema = dema
23
24
  tema = tema
24
- ichimoku = ichimoku_batch
25
+ ichimoku = ichimoku
25
26
  cg = cg
26
27
  cybercycle = cybercycle
27
28
  fisher = fisher
28
- inverse_fisher = inverse_fisher
29
+ inverse_fisher = inversefisher
29
30
  supersmoother = supersmoother
30
31
  bandpass = bandpass
31
- roofing_filter = roofing_filter
32
+ roofing_filter = roofingfilter
32
33
  zerolag = zerolag
33
- choppiness_index = choppiness_index
34
- classic_laguerre = classic_laguerre
34
+ choppiness_index = choppinessindex
35
+ classic_laguerre = classiclaguerre
35
36
  alligator = Alligator
36
37
  alma = alma
37
38
  atr_ts = AtrTs
38
39
  butterworth2 = butterworth2
39
40
  butterworth3 = butterworth3
40
- channel_cycle = channel_cycle
41
- continuation_index = continuation_index
42
- correlation_cycle = correlation_cycle
43
- correlation_trend = correlation_trend
44
- cybernetic_oscillator = cybernetic_oscillator
41
+ channel_cycle = channelcycle
42
+ continuation_index = continuationindex
43
+ correlation_cycle = correlationcycle
44
+ correlation_trend = correlationtrend
45
+ cybernetic_oscillator = cyberneticoscillator
45
46
  dmh = dmh
46
47
  donchian = donchian
47
48
  dsma = dsma
48
49
  emd = emd
49
50
  frama = frama
50
- am_detector = am_detector
51
- fm_demodulator = fm_demodulator
52
- ehlers_autocorrelation = EhlersAutocorrelation
53
- ehlers_filter = EhlersFilter
54
- ehlers_loops = EhlersLoops
55
- ehlers_stochastic = EhlersStochastic
56
- ehlers_ultimate_oscillator = EhlersUltimateOscillator
57
- fisher_high_pass = FisherHighPass
58
- fourier_series = FourierSeries
59
- fourier_dominant_cycle = FourierDominantCycle
60
- fractals = Fractals
61
- gaussian = Gaussian
62
- generalized_laguerre = GeneralizedLaguerre
63
- griffiths_dominant_cycle = GriffithsDominantCycle
64
- griffiths_predictor = GriffithsPredictor
65
- griffiths_spectrum = GriffithsSpectrum
66
- hamming = Hamming
67
- hann = Hann
68
- heikin_ashi = HeikinAshi
69
- high_pass = HighPass
70
- hma = Hma
71
- ehlers_wma4 = EhlersWma4
51
+ am_detector = amdetector
52
+ fm_demodulator = fmdemodulator
53
+ ehlers_autocorrelation = ehlersautocorrelation
54
+ ehlers_filter = ehlersfilter
55
+ ehlers_loops = ehlersloops
56
+ ehlers_stochastic = ehlersstochastic
57
+ ehlers_ultimate_oscillator = ehlersultimateoscillator
58
+ fisher_high_pass = fisherhighpass
59
+ fourier_series = fourierseries
60
+ fourier_dominant_cycle = fourierdominantcycle
61
+ fractals = fractals
62
+ gaussian = gaussian
63
+ generalized_laguerre = generalizedlaguerre
64
+ griffiths_dominant_cycle = griffithsdominantcycle
65
+ griffiths_predictor = griffithspredictor
66
+ griffiths_spectrum = griffithsspectrum
67
+ hamming = hamming
68
+ hann = hann
69
+ heikin_ashi = heikin_ashi
70
+ high_pass = highpass
71
+ hma = hma
72
+ ehlers_wma4 = ehlerswma4
72
73
  instantaneous_trendline = instantaneoustrendline
73
74
  undersampled_double_ma = undersampleddoublema
74
75
  keltner = keltner
@@ -79,7 +80,7 @@ class ta:
79
80
  pairs_rotation = pairsrotation
80
81
  phasor = phasor
81
82
  oc_price_rsi = ocpricersi
82
- pivot_points = pivotpoints
83
+ pivot_points = pivot_points
83
84
  one_euro_filter = oneeurofilter
84
85
  projected_moving_average = projectedmovingaverage
85
86
  precision_trend = precisiontrend
@@ -87,10 +88,9 @@ class ta:
87
88
  sine_wave = sinewave
88
89
  swiss_army_knife = swiss_army_knife
89
90
  system_evaluator = systemevaluator
90
- robustness_evaluator = RobustnessEvaluator
91
91
  ttm_squeeze = ttmsqueeze
92
- ultimate_bands = ultimatebands
93
- ultimate_channel = ultimatechannel
92
+ ultimate_bands = ultimate_bands
93
+ ultimate_channel = ultimate_channel
94
94
  ultimate_smoother = ultimatesmoother
95
95
  usi = usi
96
96
  ad = ad
@@ -125,10 +125,41 @@ class ta:
125
125
  rocket_rsi = rocketrsi
126
126
  trendflex = trendflex
127
127
  truncated_bandpass = truncatedbandpass
128
+ # ML features (gw7s notebook + harness + 4ps/gwx cross-epic deliverable)
129
+ cyber_cycle_feature_extractor = CyberCycleFeatureExtractor
130
+ hurst_feature_extractor = HurstFeatureExtractor
131
+ instantaneous_trendline_feature_extractor = InstantaneousTrendlineFeatureExtractor
132
+ trendflex_feature_extractor = TrendflexFeatureExtractor
133
+ regime_to_features = regime_to_features
134
+ # Newly wired for the E2E notebook (trivial parallel to above; completes the locked .ta.features.* surface in Python)
135
+ griffiths_dominant_cycle_feature_extractor = GriffithsDominantCycleFeatureExtractor
136
+ bull_bear_hmm = BullBearHMM
137
+ griffiths_dominant_cycle_features = griffiths_dominant_cycle_features # batch helper
128
138
  volume_profile = volumeprofile
129
139
 
140
+ class options_india:
141
+ bs_call_price = bs_call_price
142
+ bs_put_price = bs_put_price
143
+ bs_delta = bs_delta
144
+ bs_gamma = bs_gamma
145
+ bs_theta = bs_theta
146
+ bs_vega = bs_vega
147
+ bs_rho = bs_rho
148
+ implied_vol = implied_vol
149
+ max_pain = max_pain
150
+ strike_pcr = strike_pcr
151
+ chain_pcr = chain_pcr
152
+ oi_zones = oi_zones
153
+ gex_per_strike = gex_per_strike
154
+ gex_flip_strike = gex_flip_strike
155
+ atm_straddle = atm_straddle
156
+ synthetic_futures = synthetic_futures
157
+ moneyness = moneyness
158
+ nse_lot_size = nse_lot_size
159
+ nse_risk_free_rate = nse_risk_free_rate
160
+
130
161
  __all__ = [
131
- "ta", "Sma", "Ema", "Rsi", "SuperTrend", "Macd", "Atr", "Adx", "Cci", "Stoch",
162
+ "ta", "options_india", "Sma", "Ema", "Rsi", "SuperTrend", "Macd", "Atr", "Adx", "Cci", "Stoch",
132
163
  "Aroon", "Mama", "Kama", "T3", "Sar", "Mom", "Roc", "Willr", "Dema", "Tema",
133
164
  "Ichimoku", "Cg", "CyberCycle", "Fisher", "InverseFisher", "SuperSmoother",
134
165
  "Bandpass", "RoofingFilter", "ZeroLag", "ChoppinessIndex", "ClassicLaguerre",
@@ -149,5 +180,9 @@ __all__ = [
149
180
  "HtDcPeriod", "HtPhasor", "HtDcPhase", "HtSine", "HtTrendMode",
150
181
  "HurstExponent", "KalmanFilter", "MarketState", "RecursiveMedian",
151
182
  "RecursiveMedianOscillator", "Reflex", "RocketRsi", "Trendflex",
152
- "TruncatedBandpass", "VolumeProfile"
183
+ "TruncatedBandpass", "VolumeProfile",
184
+ # ML feature toolkit (quantwave-gw7s)
185
+ "CyberCycleFeatureExtractor", "HurstFeatureExtractor",
186
+ "InstantaneousTrendlineFeatureExtractor", "TrendflexFeatureExtractor",
187
+ "regime_to_features"
153
188
  ]