QuantWave (Python)
Polars-native quantitative finance — 221 Rust indicators, Ehlers DSP, price action, regimes, and a built-in backtest engine with batch ↔ streaming parity.
pip install "quantwave[polars]"
quantwave doctor
Documentation · vs TA-Lib & pandas-ta · FAQ · llms.txt
Install
pip install "quantwave[polars]"
The wheel bundles quantwave._quantwave (indicators), quantwave_plugins (expression .ta), and quantwave._backtest. The [polars] extra adds Polars for .ta / .bt namespaces.
Example 1 — Polars batch (.ta)
import polars as pl
import quantwave # registers pl.col().ta and LazyFrame.bt
df = pl.DataFrame({
"high": [101.0, 102.0, 103.0, 102.0, 104.0],
"low": [99.0, 100.0, 101.0, 100.0, 102.0],
"close": [100.0, 101.0, 102.0, 101.0, 103.0],
})
out = (
df.lazy()
.with_columns(
pl.col("close").ta.rsi(timeperiod=14).alias("rsi"),
pl.col("close").ta.supertrend("high", "low", period=10, multiplier=3.0).alias("st"),
)
.collect()
)
print(out.tail())
Example 2 — Live streaming (parity with batch)
import quantwave as qw
cls = qw.streaming_class("rsi")
rsi = qw.wrap_streaming(cls(period=14), name="rsi")
for price in closes:
val = rsi.next(price)
if rsi.is_ready:
print(price, val)
# Optional: qw.assert_parity("rsi", {"period": 14}, closes)
Example 3 — Backtest (.bt in the same package)
import polars as pl
import quantwave
bars = pl.DataFrame({
"timestamp": range(20),
"close": [100 + i * 0.5 for i in range(20)],
"signal": [0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, -1.0, -1.0, 0.0] * 2,
})
report = (
bars.lazy()
.bt.backtest_with_report(signal="signal", close_col="close", timestamp_col="timestamp")
)
print(report.metrics())
See examples/03_backtest_quick.py in this directory.
Architecture
pip install quantwave[polars]
│
├── quantwave._quantwave # Rust indicators (Next<T> core)
├── quantwave_plugins # pl.col("close").ta.* expression plugins
├── quantwave._backtest # Rust simulation engine
│
├── import quantwave
│ ├── pl.col().ta.* batch indicators (plugins)
│ ├── df.lazy().bt.* backtest namespace (bt_polars)
│ ├── qw.streaming_class live bar-by-bar
│ ├── qw.metadata / assert_parity / CLI
│ └── quantwave.backtest BacktestEngine direct API
│
└── Docs: lavs9.github.io/quantwave/api/ (mkdocstrings)
One Rust math path powers batch, streaming, and backtest signal evaluation — validated by gold-standard tests.
Discovery & CLI
import quantwave as qw
print(len(qw.indicators()), "names")
meta = qw.metadata("rsi")
print(meta.warmup_bars, meta.category)
quantwave list --category "Classic"
quantwave info supertrend
quantwave doctor
Examples in this repo
| Script | What it shows |
|---|---|
examples/01_rsi_polars.py |
Polars .ta batch |
examples/02_supertrend_streaming.py |
RSI streaming + readiness |
examples/03_backtest_quick.py |
.bt.backtest_with_report |
Learn more
MIT licensed.
Metadata
Release files for quantwave 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| quantwave-0.8.0-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| quantwave-0.8.0-cp39-abi3-manylinux_2_35_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.35+ x86-64 | Details |
| quantwave-0.8.0-cp39-abi3-manylinux_2_35_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.35+ ARM64 | Details |
| quantwave-0.8.0-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 52.9 MB
Release files / quantwave-0.8.0-cp39-abi3-win_amd64.whl
| Download URL | quantwave-0.8.0-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
20f10d292fc3ed049236c4ab63d195ff272faef0cd17d8db27a78d99630748b7
|
|
BLAKE2b-256 checksum How to use checksums |
8c11a51e3864b38ec92d5381392192ecc9c8d2429e16aae0b62653b30bedbbf4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / quantwave-0.8.0-cp39-abi3-manylinux_2_35_x86_64.whl
| Download URL | quantwave-0.8.0-cp39-abi3-manylinux_2_35_x86_64.whl |
|---|---|
| Size | 13.4 MB |
| Tags | CPython 3.9 Linux glibc 2.35+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
41b0a7aa66020e61baeaae9055198b7de37155d084846d3477b60db75e4b40cf
|
|
BLAKE2b-256 checksum How to use checksums |
7ee0c825a3dbdf7f6d4f6d0cc873cd9ba5ac454f6a868161477818c307733a4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / quantwave-0.8.0-cp39-abi3-manylinux_2_35_aarch64.whl
| Download URL | quantwave-0.8.0-cp39-abi3-manylinux_2_35_aarch64.whl |
|---|---|
| Size | 14.6 MB |
| Tags | CPython 3.9 Linux glibc 2.35+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
8771a4dc812abd0407021ce6f276ffafa9927937331444d0c5b2174020ad423b
|
|
BLAKE2b-256 checksum How to use checksums |
3c2c2a01dc38f18da4c841e2c8372f3427f2c3b529390952c4d8e87241a55fd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / quantwave-0.8.0-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | quantwave-0.8.0-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 12.2 MB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bb2b491471732f9363c9497b6290944fcdd556f5e0bc9b27e819895986e3a73d
|
|
BLAKE2b-256 checksum How to use checksums |
c4b84b5a059064e39f0cb85679ec596ddcd0dff3861abfc1db90322d982446f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log