Skip to content

QuantWave

High-performance, Polars-native quantitative finance — 217 native indicators, full Ehlers DSP suite, regime detection, backtest engine, and bit-identical streaming parity.

Get Started (Python) Explore Indicators Run Benchmarks

217Native indicators
30+Ehlers DSP tools
1Mathematical truth (`Next<T>`)
0Batch vs streaming drift

Why QuantWave?

Most quant stacks force a tradeoff: Python convenience or Rust speed — rarely both with Polars-native ergonomics and research-to-production parity.

QuantWave is built as a Rust workspace with a single source of mathematical truth. Every indicator implements Next<T>; Polars plugins and Python streaming wrappers consume the same logic, validated by gold-standard vectors and proptests.

Approach Large-data speed Polars-native Streaming parity Ehlers + PA + regimes
pandas-ta / TA-Lib (Python) Slow Partial Rare Limited
Other Rust TA crates Fast Weak Rare Limited
QuantWave Fast Native Guaranteed Deep

What you get

Indicators

217 Rust-native indicators with metadata, gold-standard tests, and full docs. Classic TA, Ehlers DSP, candlestick patterns, price action, and fractional differencing.

Browse catalog →

Polars .ta() + plugins

Zero-copy expression plugins for hot paths, or the ergonomic .ta() namespace for research. Same math either way.

Plugin vs .ta

Backtest engine

Sweep, walk-forward, Monte Carlo, cross-sectional runs, and HTML tear sheets — Rust core with Python Polars integration.

Backtest quickstart →

Python DX

qw.indicators(), qw.metadata(), qw.assert_parity(), build_feature_matrix(), and arm64 wheels.

Python guide →

Quickstart

import polars as pl
import quantwave as qw

print(len(qw.indicators()), "indicators")
meta = qw.metadata("supertrend")

df = pl.DataFrame({"close": [100.0, 101.0, 102.0, 101.5, 103.0]})
out = df.lazy().ta.supertrend("high", "low", "close", 10, 3.0).collect()
use quantwave_core::indicators::supertrend::SuperTrend;
use quantwave_core::Next;

let mut st = SuperTrend::new(10, 3.0);
let v = st.next((100.0, 105.0, 95.0, 102.0));

Install: pip install "quantwave[polars]" or cargo add quantwave.

Performance snapshot

On 1M rows of realistic OHLCV:

  • SuperTrend: ~27× faster than common Python implementations
  • CyberCycle (Ehlers): ~100× faster than pandas loops
  • Memory: 2–5× lower than pandas on multi-ticker workloads

Full benchmarks →

Explore