Grepedia
WI

Wickra

A high-performance, streaming-first technical indicator library with 514 indicators and native support for 10 languages, providing identical output for live and backtest data.

Score0
About

Wickra is a streaming-first technical indicators library designed to provide constant-time updates for financial analysis. The library is built on a high-performance Rust core that powers bindings for ten languages, including Python, Node.js, WebAssembly (WASM), C, C++, C#, Go, Java, and R. By using a streaming state-machine architecture, Wickra avoids recomputing indicator values over historical data every time a new tick arrives, making it suitable for both high-frequency live trading and efficient backtesting. Every one of the 514 included indicators is implemented once in Rust and verified bit-for-bit against a shared test suite, ensuring consistent numerical output across all supported languages.

The library offers a zero-dependency installation experience across all target platforms, enabling developers to integrate sophisticated technical analysis without adding large third-party dependencies or managing complex system toolchains. The API surface is consistent across all bindings, allowing researchers to prototype in a notebook and deploy the exact same logic into production services with minimal friction. Wickra provides a comprehensive set of analytical tools spanning twenty-four families, including moving averages, momentum oscillators, trend indicators, volatility models, trailing stops, volume metrics, price statistics, market microstructure tools, and candlestick pattern detectors.

Some of the key features are:

  • Streaming-First Architecture: Every indicator functions as an O(1) state machine, keeping latency flat regardless of history length.
  • Language Parity: 514 indicators are verified through CI across 10 languages to ensure bit-identical results.
  • Zero-Dependency Install: Provides pre-built packages for Python, Node.js, and others without requiring system compilers or external libraries like NumPy.
  • Unified Backtest and Live: Same code paths are used for event-driven backtesting and live market data processing.
  • Memory Safety: The core logic is implemented in memory-safe Rust with no unsafe code.
  • Extensive Catalogue: Includes a wide array of indicators ranging from classical moving averages to modern market microstructure and derivatives analysis.

Operationally, the tool is used by instantiating an indicator class or struct with the required parameters. Users then feed price data or candle objects into the update method one at a time. The indicator maintains internal state and returns new output values only when sufficient data is available, as defined by the indicator's specific warmup period. For bulk processing, a batch API is provided that produces identical output to sequential streaming updates, ensuring mathematical consistency across different workflow types.

Some common use cases include:

  • Live Trading Systems: Processing high-frequency tick data from WebSocket feeds to compute indicators with minimal, stable per-tick latency.
  • Event-Driven Backtesting: Replaying historical market data through the same indicators used in live production to validate strategies.
  • Financial Research: Prototyping signal logic in Python notebooks and transferring the production logic directly to C++ or Java environments.
  • Browser-Based Visualization: Computing complex technical indicators on-the-fly in a web browser using the WASM bundle for interactive charts.
  • Parallel Market Screening: Scanning thousands of symbols simultaneously for specific technical conditions or market regime changes.