Skip to content

Releases: lavs9/quantwave

v0.7.0 — Unified PyO3 (abi3) FFI + complete TA-Lib surface

Choose a tag to compare

@lavs9 lavs9 released this 18 Jul 16:20
59f92d4

Retroactive GitHub Release for v0.7.0 (already tagged and published to PyPI). See docs/changelog.md for the full history.

Added

  • Complete classic TA-Lib surface (quantwave.talib): 161 functions, up from 8 — RSI, MACD, SMA, EMA, ATR, ADX, BBANDS, STOCH, OBV, all 61 candlestick patterns, plus math/price transforms. The classic array-in/array-out API (talib.RSI(close, timeperiod=14), multi-output tuples, OHLC/candlestick inputs) delegates to the Polars .ta plugins — values are the talib-rs-parity-tested Rust results.
  • Top-level native symbol access restored: qw.FracDiff, qw.fracdiff, qw.rsi, qw.SuperTrend, … bind alongside the slug-based qw.ta namespace.

Changed

  • Unified the Python FFI on PyO3 (abi3), retiring uniffi. Indicator bindings, Polars expression plugins, and the backtest engine are now a single PyO3 abi3-py39 extension in one crate (quantwave-py) producing one cdylib — a single maturin build yields one cp39-abi3 wheel with no wheel-merge step.
  • Collapsed the three PyO3 crates (quantwave-python, quantwave-plugins, quantwave-backtest-py) into quantwave-py; deleted scripts/build_unified_wheel.py; consolidated to one pyproject.toml.

Fixed

  • Wheel tag / install correctness: the published wheel is now cp39-abi3 and installs correctly on CPython 3.9–3.13. 0.6.1 shipped a py3-none wheel bundling CPython-3.12-only extensions, which broke pip install on 3.9/3.10/3.11/3.13.

PyPI: https://pypi.org/project/quantwave/0.7.0/

v0.6.0 — Product Guardrails & Research Loop

Choose a tag to compare

@lavs9 lavs9 released this 02 Jul 11:53

QuantWave 0.6.0 ships the v0.6 productization epic: CI guardrails, a single verify entrypoint, the full research loop (feature matrix + Monte Carlo), fractional differencing, HTML tear sheets, and documentation SOA completion.

Install: pip install quantwave or pip install "quantwave[polars]"

What's new

PyPI packaging (unified wheel)

  • Single wheel bundles core (quantwave._quantwave), Polars plugins (quantwave_plugins), and backtest (quantwave._backtest)
  • pip install "quantwave[polars]" — Polars extra for batch .ta / .bt namespaces
  • quantwave CLI — list, info, doctor, version
  • Core-only import — import quantwave works without Polars (streaming, metadata, list API)

Product guardrails

  • ./scripts/quantwave_verify.sh — one command for metadata drift, doc lint, nextest, and pytest smoke
  • Metadata drift gate in CI
  • Plugin vs .ta guide and expanded regime documentation

Research loop

  • qw.build_feature_matrix() — batch ML feature matrix from OHLCV
  • lf.bt.monte_carlo() — trade bootstrap + return-path VaR/CVaR (Python)
  • Fractional differencing (FracDiff) — Prado-style stationary features

Indicators & backtest

  • 217 registered indicators with full IndicatorMetadata pipeline
  • HTML tear sheets — BacktestReport.to_html() / save_html()
  • Sweep, WFO, cross-sectional, and Monte Carlo (Rust core)

Documentation

  • Indicator doc SOA complete — 217 indicators, native pages under documentation standards
  • Landing page redesign; doc drift checks in verify

Upgrade notes

  • No breaking API changes from 0.5.2 for core indicator/backtest surfaces
  • New optional APIs: frac_diff, build_feature_matrix, to_html tear sheets

Docs: https://lavs9.github.io/quantwave/

v0.5.2 - Python DX & Discoverability

Choose a tag to compare

@lavs9 lavs9 released this 30 May 19:46

See docs/changelog.md

v0.5.1 - Complete publishing + release reliability

Choose a tag to compare

@lavs9 lavs9 released this 30 May 19:27

v0.5.1 (clean re-tag)

  • All internal crates now publish successfully (including quantwave-backtest)
  • Release no longer hard-blocked by docs build warnings
  • See changelog for full details

v0.5.0 - Backtest Engine v0.2 + rich PA metadata sizers, high-fidelity execution & professional tearsheets

Choose a tag to compare

@lavs9 lavs9 released this 30 May 18:48

v0.5.0 - Backtest Engine v0.2 + rich PA metadata sizers, realistic execution models (incl. high-fidelity mode), professional tearsheets with attribution + PA metadata. Notebook + docs hardening, release workflow robustness.

Strict Next + Polars batch/streaming parity preserved across all enhancements (inspired by QF-Lib patterns for the vectorized path only).

Re-tagged cleanly on current main after internal crate version hygiene (path-only only in [workspace.dependencies]; no ^ pins for quantwave-* crates). This ensures Rust crates and Python wheels/sdist publish correctly.

Closes quantwave-n1yc epic and all 5 children (quantwave-n1yc.1 through .5) — rich position sizing from PA metadata, pluggable CommissionModel/SlippageModel (incl. SquareRootMarketImpact + volume limits), High-Fidelity ExecutionSimulator mode, BacktestTearsheet + EnrichedTrade + AttributionReport with full PA metadata, to_markdown() + trades_df() for Excel.

See docs/changelog.md for the complete list of changes.

CI publishing workflow (crates.io + PyPI): https://github.com/lavs9/quantwave/actions/runs/26691989511

(2026-05 IST — re-tag of exact v0.5.0 on the fixed main commit per user request)

v0.4.0 – Options India Suite & Polars Enhancements

Choose a tag to compare

@lavs9 lavs9 released this 25 May 09:53

v0.4.0 – Options India Suite & Polars Enhancements

This release delivers the long-requested Options India analytics suite and significant Polars quality-of-life improvements.

Highlights

  • Options India Suite (new): Full Black-Scholes Greeks (Delta, Gamma, Theta, Vega, Rho, etc.), Implied Volatility solvers, Chain Analytics (Max Pain, PCR, GEX, OI Zones, ATM Straddle, Synthetic Futures), plus NSE utilities (nse_lot_size, moneyness).
  • All Options India functionality is available as native Polars expressions with clean column-or-value parameter handling.
  • Major code hygiene pass and release build fixes.

Installation

  • Python: pip install quantwave
  • Rust: cargo add quantwave

Links

See the Changelog for complete details.