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.14.tar.gz (213.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.14-py3-none-win_amd64.whl (222.6 kB view details)

Uploaded Python 3Windows x86-64

quantwave-0.1.14-py3-none-manylinux_2_34_x86_64.whl (344.2 kB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

quantwave-0.1.14-py3-none-macosx_11_0_arm64.whl (308.3 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: quantwave-0.1.14.tar.gz
  • Upload date:
  • Size: 213.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.14.tar.gz
Algorithm Hash digest
SHA256 983dddadcb6d61d1f9857f16ed123cea03bdc2d3feced74c36b7a2fac68bef8c
MD5 3600f483c1e7e7360ed48fae45edf9f2
BLAKE2b-256 4012fe8528716fc537ed5a4159a8230819c4938ae86fcde48c44783b2c20fc43

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quantwave-0.1.14-py3-none-win_amd64.whl
  • Upload date:
  • Size: 222.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.14-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 85ee350153b7a2eb70e0754fe731f6696ac781edf8b7d884efd6cdd0bbb5032b
MD5 9aa930cb859c13d29e14ac8fae200cc2
BLAKE2b-256 84f9423fd5ccb585f82ad3460fa981f0a1a66d781e1fe21f8405aa22ab78e5f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantwave-0.1.14-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fd13623d1eb6d3066c1583a8eec4e52249991c0e65440a138d76e1fcf192d09b
MD5 8cd494619e02cfa91ef80fec9510021c
BLAKE2b-256 74cc60fc65179aed87eb4101e243780b2b6d40a1c1eb5136fbb8c454d7923b61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantwave-0.1.14-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 074197b453611e51554208d13f0ce7d373e26200262e4bfab404d9136285ad9d
MD5 16eb748131b5e9c1a8a741ddeb5e055c
BLAKE2b-256 9c95f3898319b6f38ccfeccc3f2c5f7a3ac83478e3f71928ae853e6a5b775ac2

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