Skip to main content

High-performance Technical Analysis library (Rust core + UniFFI)

Project description

QuantWave 🌊

Ask DeepWiki Rust License Documentation

High-performance, Polars-native Technical Analysis for Rust.

QuantWave is a modern technical analysis library built from the ground up for the Polars ecosystem. It bridges the gap between high-speed batch backtesting and real-time streaming execution by ensuring bit-identical results across both modes.

Whether you are performing quantitative research over terabytes of historical data or deploying a live trading system on a tick-by-tick stream, QuantWave delivers industry-standard accuracy and extreme performance.


🚀 Why QuantWave?

  • Polars Native: Built specifically for Polars LazyFrame and Series with zero-copy expression plugins. Say goodbye to converting to/from Vec<f64> or ndarray to calculate your indicators.
  • Streaming-Batch Parity: Every indicator implements the "Universal Indicator" pattern, guaranteeing mathematically identical results for batch (backtesting) and streaming (live trading).
  • Comprehensive Suite: Featuring 150+ standard indicators (via robust TA-Lib wrapping) alongside modern DSP suites (Ehlers), ML feature engineering tools, and market structure algorithms.
  • Bit-Identical Validation: Sleep well at night. All indicators are rigorously verified against an extensive "Gold Standard" test suite using proptest and industry reference vectors.

📚 Documentation & Resources

For detailed indicator formulas, parameter definitions, and architectural deep-dives, please refer to our official documentation sites:


🛠 Installation

Add QuantWave to your Cargo.toml:

[dependencies]
quantwave = "0.1"

📖 Quick Start

QuantWave is designed to be completely intuitive whether you are processing historical dataframes or processing live WebSocket streams.

1. Batch Processing (Backtesting / Research)

Extend Polars with the .ta() namespace to rapidly compute indicators across your entire dataset.

use polars::prelude::*;
use quantwave::prelude::*;

let df = df.lazy()
    // Calculate SuperTrend with Period=10, Multiplier=3.0
    .ta()
    .supertrend("high", "low", "close", 10, 3.0)
    .collect()?;

2. Streaming Processing (Live Trading)

Use the core structs directly to process incoming ticks one by one without reallocating arrays or maintaining complex state buffers.

use quantwave::prelude::*;

// Initialize state machine once
let mut st = SuperTrend::new(10, 3.0);

// Feed it tick by tick in your live event loop
for tick in live_price_stream {
    // SuperTrend takes (high, low, close)
    let signal = st.next((tick.high, tick.low, tick.close));
    println!("Latest SuperTrend Value: {:?}", signal);
}

🧪 Rigorous Validation

QuantWave is built for institutional-grade reliability. We validate our calculations through a rigorous three-tier pipeline:

  1. Unit Tests: Ensuring edge cases and bounds are handled safely.
  2. Gold Standard Verification: Comparing outputs against JSON-encoded reference vectors sourced from TradingView, MetaTrader, and established platforms.
  3. Parity Tests: Proptest suites that continuously enforce Batch(data) == Streaming.collect(data).

🤝 Contributing & Issue Tracking

QuantWave uses Beads (bd) for deterministic, graph-aware issue tracking to ensure high-velocity agentic and human collaboration.

  • Check for ready work: bd ready
  • Claim a task: bd update <id> --claim

📄 License

Licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quantwave-0.1.16.tar.gz (240.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

quantwave-0.1.16-py3-none-win_amd64.whl (644.6 kB view details)

Uploaded Python 3Windows x86-64

quantwave-0.1.16-py3-none-manylinux_2_34_x86_64.whl (695.0 kB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

quantwave-0.1.16-py3-none-macosx_11_0_arm64.whl (645.6 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file quantwave-0.1.16.tar.gz.

File metadata

  • Download URL: quantwave-0.1.16.tar.gz
  • Upload date:
  • Size: 240.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for quantwave-0.1.16.tar.gz
Algorithm Hash digest
SHA256 7601498f3ed87a4c97f6f8fad7dbfa0ef5737ef0bf198bad434c78a0e4dd8a1f
MD5 341b4e7ce8b796783d31551692249d53
BLAKE2b-256 7607a7ad93b326a5056df4828e592fb460e5328db63e240e98cd6cf5b90dc073

See more details on using hashes here.

File details

Details for the file quantwave-0.1.16-py3-none-win_amd64.whl.

File metadata

  • Download URL: quantwave-0.1.16-py3-none-win_amd64.whl
  • Upload date:
  • Size: 644.6 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for quantwave-0.1.16-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e061959ac3ea1fb22536deea7ea3c3d16f5ed0b0c7f6e04108fb4219afdbbd2e
MD5 7968b9643488193a909c1a07699778b8
BLAKE2b-256 cb63e110adf291433027081168ceffba233a62ceb2182e39eaf9243e3d121868

See more details on using hashes here.

File details

Details for the file quantwave-0.1.16-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for quantwave-0.1.16-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1d823bf54763c8bbfe1eeec1291ed768e3937f76aecce0bade0bddbc19cdc1f7
MD5 22545657aff885a73bd7510fbe884137
BLAKE2b-256 0627c7d958f2fb89bbaceaff3c47b5168bd6f770abcfa92a6e7806e20470b78a

See more details on using hashes here.

File details

Details for the file quantwave-0.1.16-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quantwave-0.1.16-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a05c7979835c96b3df0e6c758164270b10a187f39c73057c77c38a9e4d8871c
MD5 b84ae3bcc88c4e406088c203c3ea7500
BLAKE2b-256 c00c4dea05dc0c0da1beb3a26b1048a165b49a548783cc70fb9662ee31ac65df

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page