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.15.tar.gz (220.8 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.15-py3-none-win_amd64.whl (644.1 kB view details)

Uploaded Python 3Windows x86-64

quantwave-0.1.15-py3-none-manylinux_2_34_x86_64.whl (695.9 kB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

quantwave-0.1.15-py3-none-macosx_11_0_arm64.whl (645.9 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: quantwave-0.1.15.tar.gz
  • Upload date:
  • Size: 220.8 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.15.tar.gz
Algorithm Hash digest
SHA256 722a78e44eb4b59842042b7bcc1190c5c5184b821ab3806e8a594ff0526e1693
MD5 95c39ecf875ba8c04d54ce8aca04c8b9
BLAKE2b-256 fa0329d3f6e2cfc1ae6a829f568ec34a966b28cd56394864791b4672f41ace42

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quantwave-0.1.15-py3-none-win_amd64.whl
  • Upload date:
  • Size: 644.1 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.15-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 117e06f10e6ee6c39a3c467adfd68e66a61830b5baf05aa6fee3a24449f326a1
MD5 3c65b8a5f800904828c42e2b99a446be
BLAKE2b-256 217fe77d093d1fdee7fccd7b1b9348b983efdad761eb51860b4c9a28f70d8eea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantwave-0.1.15-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 07ef228557086d80c9615caab524f542cf812fafd7daf01d692ca1db7941a8d2
MD5 eaf59b8a05817b5ec8bcd3a3b3ea3351
BLAKE2b-256 bab1eb8b5837650f86c574d12c6677666a13ddc43a4ca5663fe13d8e2e42b55b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantwave-0.1.15-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cefce8d0592075cbd227ac1a693fa250bd0ed87f4d25eac58586290fc81caf4
MD5 0b4db7f9c0ec73290a3fa8cfb2c953b9
BLAKE2b-256 340f67aed95ffa3e0d240070a3b890f9b3aacb16144989943918dd1628e34041

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